//передвигаем камеру в соответствии с координатами пользователя и
направлением его взгляда
//следующие объявления отвечают за создание пользовательской камеры
osg::Matrixd myCameraMatrix;
osg::Matrixd cameraRotation;
osg::Matrixd cameraTrans;
float xtrans = BodyX;
float ztrans = BodyY;
float ytrans = BodyZ;
float xrotate = 360.0f - HeadX;
float yrotate = HeadY;//UserInput->getYrotate();
float zrotate = HeadZ;
cameraRotation.makeRotate(
osg::DegreesToRadians(zrotate), osg::Vec3(0,1,0), // roll
osg::DegreesToRadians(yrotate), osg::Vec3(1,0,0) , // pitch
osg::DegreesToRadians(xrotate), osg::Vec3(0,0,1) ); // heading
cameraTrans.makeTranslate( xtrans,ztrans,ytrans );
myCameraMatrix = cameraRotation * cameraTrans;
osg::Matrixd i = myCameraMatrix.inverse(myCameraMatrix);
UserOutput->getViewer()->getCamera()->setViewMatrix((osg::Matrixd(i.ptr()))*
osg::Matrixd::rotate( -3.14f / 2.0, 1, 0, 0 ));
MAX,
2009/2/21 Alexey Yurov <[email protected]>
> Hi all, it's my first expirience in openscenegraph (v2.6), and i need ur
> help plz. In my application i need to get camera position every frame, i try
> do this:
>
> Code:
>
> while(!viewer.done())
> {
> viewer.getCamera()->getViewMatrixAsLookAt(eye, center, up);
> //eye hold camera pos???
> viewer.frame();
> }
>
>
>
> or there is another way to get it?
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=7145#7145
>
>
>
>
>
> _______________________________________________
> 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