[vtkusers] Problem moving a sphere through the 3D space
Imanol Muñoz Pandiella
imanolm at lsi.upc.edu
Thu Jan 10 12:23:59 EST 2013
Thanks for answer but I think that I haven't explain well what is my
problem.
I don't want to preserve the z value in the world coordinate system. I
want to preserve the z value of the observer coordinate system.
I want to move the sphere in the plane that crosses the center of the
sphere and is perpendicular to the ray which starts in the observers and
ends in the center of the sphere.
Do I have explained myself better? Apologise for my English...
El 09/01/2013 16:28, Yumin Yuan escribió:
> Try this:
>
> double center[3];
> mSphere->GetCenter(center);
> mSphere->SetCenter(point[0],point[1],center[2]);
>
> Yumin
>
> On Wed, Jan 9, 2013 at 6:32 AM, Imanol Muñoz Pandiella
> <imanolm at lsi.upc.edu> wrote:
>> Hello,
>>
>> in my vtk application i am visualizing a sphere in the space. I would like
>> to move the sphere with the mouse along the x and y axis of the camera's
>> reference frame. I mean, i don't want to modify the position in the z axis
>> of the camera's reference frame.
>>
>> In this way, I'm using the following code during the mouse movement to
>> obtain the new position of the sphere after an interaction with the mouse:
>>
>> double point[3];
>> mCellPicker->Pick(mStyle->GetInteractor()->GetEventPosition()[0],
>> mStyle->GetInteractor()->GetEventPosition()[1],
>> 0,
>> mStyle->GetInteractor()->GetRenderWindow()->GetRenderers()->GetFirstRenderer());
>> mCellPicker->GetPickPosition(point);
>> mSphere->SetCenter(point[0],point[1],point[2]);
>>
>> where mCellPicker and mStle are declared as follows:
>> vtkCellPicker *mCellPicker;
>> vtkInteractorStyleTrackballCamera* mStyle;
>>
>> The problem is the position of the sphere is modified in the x and y axis of
>> the camera's reference frame and also, in the z axis. In this axis the
>> sphere is placed in the middle of the zMin and zMax of the volume space.
>>
>> To ensure that the picker is not interacting with the rest of the actors of
>> the scene, i use the following code whe the mouse button is pressed down
>> without setting the actor list of the picker supposing that the picker will
>> use an empty actor's list:
>> mCellPicker->PickFromListOn();
>>
>> and the following code when the mouse button is released:
>> mCellPicker->PickFromListOff();
>>
>> I have seen in another application that it can be done with a
>> vtkPointWidget, and the translation works fine. The problem is I need this
>> functionality to spheres, cylinders, semi-spheres, ...
>>
>> What am I doing wrong? How can I translate the sphere through the volume
>> space without modifying the position of it in the z axis of the camera's
>> reference frame?
>>
>> Thank you very much for your help!
>>
>> --
>> Imanol Muñoz i Pandiella.
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
--
Imanol Muñoz i Pandiella.
More information about the vtkusers
mailing list