osgManipulator.Projector是一个用于计算3D坐标转2D屏幕坐标的类。它可以处理相机的位置、投影矩阵和视口信息,从而提供一个用于处理拖动物体的鼠标事件的接口。
osgManipulator.Projector类的相关常见函数如下:
project
void project(const osg::Vec3d& point3D, osg::Vec3d& out_projectedPoint) const;
此函数是在相机的视角下,将对象的3D坐标点投影到2D屏幕坐标系中的x、y坐标应在[0,1]之间。投影的点可以被用来根据当前鼠标位置调整物体的位置。point3D参数是欲被投影的3D坐标点,out_projectedPoint是将会被输出的2D屏幕坐标点值。
unproject
void unproject(const osg::Vec3d& windowCoord, osg::Vec3d& out_worldCoord) const;
此函数是在相机的视角下,将屏幕上的2D坐标点反向投影到3D物体的坐标系中。windowCoord参数是欲被反向投影的2D坐标点,out_worldCoord是将会被输出的3D物体坐标系下的点。
getNearFar
void getNearFar(osg::Vec2d& out_nearFar) const;
此函数返回相机的近点和远点位置。返回值out_nearFar中的x和y分别表示相机视角内的近点和远点位置。
getViewMatrix
const osg::Matrixd& getViewMatrix() const;
此函数返回当前使用的相机视角的4x4矩阵。此矩阵可以被用来确定物体在相机视野中的位置。
setViewMatrix
void setViewMatrix(const osg::Matrixd& viewMatrix);
此函数被用来设置当前使用的相机视角的4x4矩阵。此矩阵可以被用来确定物体在相机视野中的位置。
getProjectionMatrix
const osg::Matrixd& getProjectionMatrix() const;
此函数返回当前使用的投影矩阵。此矩阵被用来将物体从3D坐标系中投影到2D屏幕坐标系上。
setProjectionMatrix
void setProjectionMatrix(const osg::Matrixd& projMatrix);
此函数被用来设置当前使用的投影矩阵。此矩阵被用来将物体从3D坐标系中投影到2D屏幕坐标系上。
getViewport
const osg::Viewport* getViewport() const;
此函数返回当前使用的视口信息。
setViewport
void setViewport(const osg::Viewport* viewport);
此函数被用来设置当前使用的视口信息。
以上是osgManipulator.Projector类的常见函数,可供相关开发者参考。