[vtkusers] picking actor
John Hunter
jdhunter at ace.bsd.uchicago.edu
Thu Apr 3 13:35:11 EST 2003
>>>>> "Prabhu" == Prabhu Ramachandran <prabhu at aero.iitm.ernet.in> writes:
Prabhu> That is a little surprising. I'm way out of touch on this
Prabhu> but the following fragment works fine for me with VTK off
Prabhu> CVS, Python2.2.
Yep, that would work fine for me too. My case is a little different.
My class is derived from vtk.Actor and I am dealing with an actor
*returned by a call a vtk.vtkPropPicker*. It's only after it comes
back from the picker that I lose the derived attributes.
Here is how I am working around it now. When I add my marker to the
vtkActorCollection, I add the original object to a dictionary with the
address as key.
key = marker.GetAddressAsString('Marker')
self.markerMap[key] = marker
self.markers.AddItem(marker)
self.ren.AddActor(marker)
After I pick the actor and get a vtkOpenGLActor back, I can get the
original actor back with it's special attributes with:
picker = vtk.vtkPropPicker()
picker.PickProp(x, y, renderer, self.markers)
actor = picker.GetActor()
key = actor.GetAddressAsString('Marker')
marker = self.markerMap[key]
print marker.call_some_derived_func()
This works for now, but if someone knows a better way, I'm eager to
hear it.
Prabhu> p.s. I'm using the excellent IPython interpreter
Me too :-)
John Hunter
More information about the vtkusers
mailing list