[vtkusers] How to move points interactively, vtkHandleWidget

Karthik Krishnan karthik.krishnan at kitware.com
Fri Oct 17 11:49:17 EDT 2008


You can get it from the representation...
as in    widgetRep->GetWorldPosition( pos );

Dirk Fressmann wrote:
>
> Oh thanks that helped :-) I figured out how to use it and got the 
> sphere on the screen. But how do I get the new position (after 
> translation) in world coordinates?
>
> Thanks in advance
> Cheers Dirk
>
>
>
> Karthik Krishnan wrote:
>> On Fri, Oct 17, 2008 at 10:24 AM, Dirk Fressmann
>> <dirk.fressmann at dynamore.de> wrote:
>>> Hey Guys,
>>>
>>> I have a vtkUnstructuredGrid defined and want to be able to mousepick
>>> certain nodes to move them in space. I found two possibilities:
>>> - vtkPointWidget
>>> - vtkHandleWidget/vtkPointHandleRepresentation3D or
>>> vtkSphererHandleRepresentation.
>>>
>>> Especially since I want to highlight those points, which can be 
>>> moved by the
>>> user, I think the latter one is the best method. Unfortunately I 
>>> can't find
>>> any information or examples about this
>>
>> Did you take a look at the VTKTests.
>>
>> Specifically the following two tests are the examples you are
>> looking for:
>>
>>   TestSphereHandleWidget.cxx
>>   TestHandleWidget.cxx
>>
>>
>>> and I don't see any effects if I do
>>> something like this (python)
>>>
>>> vtkHandleRepr = vtk.vtkSphereHandleRepresentation()
>>> vtkHandleRepr.SetWorldPosition([0.0,0.0,0.0])
>>> vtkHandleRepr.SetHandleSize(5.0)
>>> vtkHandleRepr.SetSphereRadius(5)
>>> vtkHandleRepr.ActiveRepresentationOn()
>>> vtkHandleRepr.SetRenderer(ren)
>>>
>>> vtkHandle = vtk.vtkHandleWidget()
>>> vtkHandle.SetRepresentation(vtkHandleRepr)
>>> vtkHandle.SetInteractor(iren)
>>>
>>> # callback function
>>> def _testit(object,event):
>>>    print "hello"
>>> vtkHandle.AddObserver("LeftButtonPressEvent", _testit)
>>>
>>> or c++
>>>
>>>  vtkSphereHandleRepresentation *handleRep =
>>>    vtkSphereHandleRepresentation::New();
>>>  double pos[3] = {0.0, 0.0, 0.0};
>>>  handleRep->SetWorldPosition(pos);
>>>  handleRep->SetPlaceFactor(2.5);
>>>  handleRep->SetSphereRadius(5.0);
>>>  handleRep->PlaceWidget(vtkActor[1]->GetBounds());
>>>  handleRep->ActiveRepresentationOn();
>>>
>>>  vtkHandleWidget *handleWidget = vtkHandleWidget::New();
>>>  handleWidget->SetInteractor(iren);
>>>  handleWidget->SetRepresentation(handleRep);
>>>
>>> where there should be at least a sphere at position (0,0,0).
>>> Anyone any ideas or experiences with this?
>>>
>>> Cheers Dirk
>>> _______________________________________________
>>> This is the private VTK discussion list.
>>> Please keep messages on-topic. Check the FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>
>>
>>
>

-- 
Karthik Krishnan
R & D Engineer,
Kitware Inc,
Ph:  518 371 3971 x119
Fax: 518 371 3971




More information about the vtkusers mailing list