thanks again for your help :
but i have another problem :
while( !viewer.done() || !viewer1.done() )
{
viewer.getCamera()->getViewMatrixAsLookAt(eye, center, up);
cout << "eye2 " << eye.x() << " " << eye.y() << " " << eye.z()
<< endl;
cout << "center " << center.x() << " " << center.y() << " " <<
center.z() << endl;
cout << "up " << up.x() << " " << up.y() << " " << up.z() <<
endl;
osg::Matrixd m(viewer.getCamera()->getViewMatrix());
mt->setMatrix(osg::Matrix::translate(eye.x(),eye.y(),eye.z())*
osg::Matrix::rotate(m.getRotate().inverse()));
i tried m.getRotate().inverse() and m.getRotate()
they rotate the object but i the wrong way they flip it
does any one have recomendations ??
--- On Wed, 12/17/08, Vincent Bourdier <[email protected]> wrote:
> From: Vincent Bourdier <[email protected]>
> Subject: Re: [osg-users] my current position
> To: [email protected]
> Date: Wednesday, December 17, 2008, 9:58 AM
> You can do it using different things:
>
> * You get eye, center, up . With theses vector, you can
> compute the front,
> up, side vectors of the camera, an so compute the rotation.
> (eye is camera position, center is the point the camera
> look at)
>
> * You can get the matrix from the manipulator, and
> getRotation from it. You
> will have the quaternion representing the rotation. (or
> rotation inverse, I
> don't remember)
>
> * you can get the matrix from manipulator, and use
> getFrontVector(...),
> getSidevector() and getUpVector() from it. After that, just
> compute the
> rotation.
>
> Vincent.
>
>
> 2008/12/17 olfat ibrahim <[email protected]>
>
> > you were right thank you very much
> > now i need to get the H P R
> >
> > by H P R i mean the rotation arround x ,y , z axis .
> >
> >
> > i tried the three functions in the following mannare :
> >
> > osg::Vec3f eye;
> > osg::Vec3f center;
> > osg::Vec3f up;
> >
> > osg::Vec3f eye1;
> > osg::Vec3f center1;
> > osg::Vec3f up1;
> >
> > osg::Vec3f position;
> > osg::Matrixd
> m(keyswitchManipulatorL->getCoordinateFrame(position));
> >
> > while( !viewer.done() || !viewer1.done() )
> > {
> > cameraL->getViewMatrixAsLookAt(eye1,
> center1, up1);
> >
> viewer.getCamera()->getViewMatrixAsLookAt(eye, center,
> up);
> > osg::Matrixd
> >
> m(keyswitchManipulatorL->getCoordinateFrame(position));
> > // cout << position.x <<
> position.y << position.z << endl;
> > cout << "eye " <<
> position.x() << " " << position.y()
> << " "
> > << position.z() << endl;
> >
> > cout << "eye " <<
> eye.x() << " " << eye.y() <<
> " " <<
> > eye.z() << endl;
> > cout << "center "
> << center.x() << " " <<
> center.y() << " "
> > << center.z() << endl;
> > cout << "up " <<
> up.x() << " " << up.y() <<
> " " << up.z() <<
> > endl;
> >
> >
> > cout << "eye " <<
> eye1.x() << " " << eye1.y() <<
> " " <<
> > eye1.z() << endl;
> > cout << "center "
> << center1.x() << " " <<
> center1.y() << "
> > " << center1.z() << endl;
> > cout << "up " <<
> up1.x() << " " << up1.y() <<
> " " << up1.z()
> > << endl;
> > // fire off the cull and draw traversals of the
> scene.
> > viewer.frame();
> > }
> >
> > can any ong give me ideas ??
> >
> >
> > --- On Wed, 12/17/08, Vincent Bourdier
> <[email protected]> wrote:
> >
> > > From: Vincent Bourdier
> <[email protected]>
> > > Subject: Re: [osg-users] my current position
> > > To: [email protected], "OpenSceneGraph
> Users" <
> > [email protected]>
> > > Date: Wednesday, December 17, 2008, 9:37 AM
> > > Hi,
> > >
> > > 2008/12/17 olfat ibrahim
> <[email protected]>
> > >
> > > >
> > > >
> > > >
> > > > --- On Wed, 12/17/08, olfat ibrahim
> > > <[email protected]> wrote:
> > > >
> > > > > From: olfat ibrahim
> > > <[email protected]>
> > > > > Subject: my current position
> > > > > To: "OSG"
> > > <[email protected]>
> > > > > Date: Wednesday, December 17, 2008,
> 9:01 AM
> > > > > i am using keyswitchManipulator :
> > > > >
> > > > > i need to print my current location
> while iam
> > > driving in
> > > > > the scene :
> > > > >
> > > > > i tried the functions :
> > > > >
> > > > > keyswitchManipulatorL->getMatrix()
> > > > >
> viewer.getCamera()->getViewMatrixAsLookAt(eye,
> > > center,
> > > > > up)
> > >
> > >
> > > eye is camera position.
> > >
> > >
> > > >
> > > > > cameraL->getViewMatrixAsLookAt(eye,
> center,
> > > up)
> > > > >
> > > > > all of those does not get me my moving
> statuse .
> > > > > i need my x,y,z and h,p,r current
> position ;
> > > > >
> > >
> > >
> > > Are you sure you get the position each frame ?
> because
> > > theses functions will
> > > give you
> > > vector copy, so if you don't get them each
> frame, they
> > > will not change.
> > >
> > > What do you meen by h,r,p ? second camera
> position ?
> > >
> > > Vincent.
> > >
> > >
> > > > > is there a function should i call to
> get me what
> > > i need ?
> > > > >
> > > > > thanks
> > > >
> > > >
> > > >
> > > >
> _______________________________________________
> > > > osg-users mailing list
> > > > [email protected]
> > > >
> > >
> >
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> > > >
> >
> >
> >
> >
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org