exillin - Do 11.11.10 14:48
Titel: c callback in c# ummünzen
hiho,
gerade hier gerada ein wenig an meine Grenzen und zwar versuche ich folgendes Beispiel in c# umzuwandeln, klappt auch alles ganz gut, bloß mit dem callback habe ich meine probleme:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| class vtkTIPWCallback : public vtkCommand { public: static vtkTIPWCallback *New() { return new vtkTIPWCallback; } virtual void Execute(vtkObject *caller, unsigned long, void*) { vtkImplicitPlaneWidget *planeWidget = reinterpret_cast<vtkImplicitPlaneWidget*>(caller); planeWidget->GetPlane(this->Plane); this->Actor->VisibilityOn(); } vtkTIPWCallback():Plane(0),Actor(0) {} vtkPlane *Plane; vtkActor *Actor;
}; |
also habe jetzt erstmal alles so geschrieben, aber strotzt noch vor Fehlern, wobei ich aber nicht genau weiß, wie ich die jetzt ausmerzen könnte :(
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| class vtkTIPWCallback : vtkCommand { public static new vtkTIPWCallback() { return new vtkTIPWCallback; }
virtual void Execute(vtkObject *caller, unsigned long, void*) { vtkImplicitPlaneWidget planeWidget = reinterpret_cast<vtkImplicitPlaneWidget*>(caller); planeWidget.GetPlane(this.Plane); this.Actor.VisibilityOn(); } vtkTIPWCallback(): Plane(0),Actor(0) {} vtkPlane Plane; vtkActor Actor; } |
hier noch das Beispiel:
http://public.kitware.com/cgi-bin/cvsweb.cgi/VTK/Hybrid/Testing/Cxx/Attic/TestImplicitPlaneWidget.cxx?rev=1.10;content-type=text%2Fplain
wäre für Hilfe sehr dankbar!
mfg
Th69 - Do 11.11.10 17:52
Benutzt du denn auch VTK.NET (
http://sourceforge.net/projects/vtkdotnet )?
Sind denn dort keine Beispiele dabei?
Auf jeden Fall ist
C#-Quelltext
1: 2: 3: 4:
| public static new vtkTIPWCallback() { return new vtkTIPWCallback; } |
komplett falsch.
Richtiger wäre wohl:
C#-Quelltext
1: 2:
| public static vtkTIPWCallback New() { return new vtkTIPWCallback(); } |
Und ich kann mir nicht vorstellen, daß der .NET-Wrapper das Zeiger-Zeugs ('*' d.h. unsafe) benötigt.