|
我的意思是 给相机增加一个监控事件,防止场景翻过去,就是视点z>0.
能实现吗?
让场景不翻过去。下面是我的思路,有些问题。
mViewer->setCamera(camera.get());
camera->addUpdateCallback(new viewcontrol());
//事件处理函数
void viewcontrol:perator()( osg::Node* node, osg::NodeVisitor* nv )
{
//
osg::Camera* camera =dynamic_cast<osg::Camera*>( node );
camera->getViewMatrixAsLookAt(position,center,up);
if(position[2]<0)
{
osg::Vec3 positionnew(0,-100,100) ;
osg::Vec3 centernew(0,0,0) ;
osg::Vec3 upnew(0,0,1) ;
camera->setViewMatrixAsLookAt(positionnew,centernew,upnew);
//这个里面如何让mViewer重新绘制
}
}
各位高手 谁有更好的办法。 |
|