Hi all,
I am working on a program which display a little map of a particular
place.
I know the question has been already asked but I really don't
understand how to proceed.
I would like use 3d space navigator which is mapped like a simple
joystick
(with RBC9-SpaceNav driver),
values' access from axes can do with variables : etat.lX, etat.lY,
etat.lZ for translation and
etat.lRx, etat.lRy, etat.lRz for rotation which give a value between 0
and 360.
I use directinput to enable joystick too.
so, here's the problem, i want control main camera (as an helicopter)
movements of this camera moves the point of view and not the map.
I saw I don't declare a trackball/flight/..manipulator but
on the main loop I must do something like that :
DIJOYSTATE2 etat;
Matrixd, myViewMatrix, camRot, camTrans;
viewer.realize();
while(!viewer.done())
{
//Recover joystick's state
joystick->etatsJoystick(&etat);
camRot.makeRotate(degreesToRadians(etat.lRx),Vec3(1,0,0),
degreesToRadians(etat.lRy),Vec3(0,0,1),
degreesToRadians(etat.lRz),Vec3(0,1,0)
);
camTrans.makeTranslate(etat.lX,etat.lZ,etat.lY);
myViewMatrix = camRot*camTrans;
viewer.getCamera()->setViewMatrix(myViewMatrix);
viewer.frame();
}
1) my map is not centered like when i use trackball/Flight/
terrain...Manipulator
so how to do to center my object in the middle of the screen ?
I initialize object with positionAttitudetransform with a 60°deg
rotation of x-axis.
2) How to keep the last position when I release 3d mouse ?
at this time, when I release, object takes his initial position.
these questions comes from missunderstanding of osg and algorithmic/
logic problems.
thanks for reading.. and answering.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org