[vtkusers] Converting Python code to C++
Vetria Byrd
byrdv at cis.uab.edu
Mon Feb 16 17:44:41 EST 2004
I am trying to convert the following call back functions written in python C++
# Callback functions that actually generate streamlines.
def BeginInteraction(obj, event):
global streamline
streamline.VisibilityOn()
def GenerateStreamlines(obj, event):
global seeds, renWin
obj.GetPolyData(seeds)
renWin.Render()
def BeginInteraction2(obj, event):
global streamline2
streamline2.VisibilityOn()
def GenerateStreamlines2(obj, event):
global seeds2, renWin
obj.GetPolyData(seeds2)
renWin.Render()
C++ code:
//globals
vtkActor *streamline = vtkActor::New()
;
vtkPolyData *seeds = vtkPolyData::New()
;
vtkRenderWindow *renWin = vtkRenderWindow::New()
;
vtkActor *streamline2 = vtkActor::New()
;
vtkPolyData *seeds2 = vtkPolyData::New()
;
class vtkMyCallback : public vtkCommand
{
public:
static vtkMyCallback *New()
{ return new vtkMyCallback; }
virtual void BeginInteraction(vtkObject obj, unsigned long ) {
streamline->VisibilityOn() ;
}
virtual void GenerateStreamlines(vtkObject *obj, unsigned long ){
obj->GetPolyData(seeds)
;
renWin->Render();
}
virtual void BeginInteraction2(vtkObject *obj, unsigned long ) {
streamline2->VisibilityOn();
}
virtual void GenerateStreamlines2(vtkObject obj, unsigned long ) {
obj->GetPolyData(seeds2);
renWin->Render()
; }
};
In the program:
:
:
vtkMyCallback *BeginInteraction = vtkMyCallback::New();
vtkMyCallback *GenerateStreamlines = vtkMyCallback::New();
vtkMyCallback *BeginInteraction2 = vtkMyCallback::New();
vtkMyCallback *GenerateStreamlines2 = vtkMyCallback::New();
// Associate the line widget with the interactor and setup callbacks.
:
:
lineWidget->AddObserver(vtkCommand::StartInteractionEvent, BeginInteraction)
;
lineWidget->AddObserver(vtkCommand::InteractionEvent, GenerateStreamlines)
;
:
:
lineWidget2->AddObserver(vtkCommand::StartInteractionEvent, BeginInteraction2)
;
lineWidget2->AddObserver(vtkCommand::EndInteractionEvent, GenerateStreamlines2)
;
I am getting the following error messages:
In method `void vtkMyCallback::GenerateStreamlines(vtkObject *, long unsigned int)':
no matching function for call to `vtkObject::GetPolyData (vtkPolyData *)'
In method `void vtkMyCallback::GenerateStreamlines2(vtkObject *, long unsigned int)':
no matching function for call to `vtkObject::GetPolyData (vtkPolyData *)'
What am I doing wrong?
Thanks,
Vetria
More information about the vtkusers
mailing list