Autor Beitrag
exillin
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 11.11.10 14:48 
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:

ausblenden 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 longvoid*)
    {
      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 :(

ausblenden 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 longvoid*)
        {
          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: public.kitware.com/c...nt-type=text%2Fplain

wäre für Hilfe sehr dankbar!

mfg
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 11.11.10 17:52 
Benutzt du denn auch VTK.NET ( sourceforge.net/projects/vtkdotnet )?

Sind denn dort keine Beispiele dabei?

Auf jeden Fall ist
ausblenden C#-Quelltext
1:
2:
3:
4:
public static new vtkTIPWCallback()

    return new vtkTIPWCallback; 
}

komplett falsch.

Richtiger wäre wohl:
ausblenden 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.