|
我打算实现的功能是在while绘制循环外,保证camera“盯”着某一运动目标看.
调用的回调函数形式是: camera->setPreDrawCallback(new MyCamera(TargetPosition)); 其中TargetPosition是一运动目标的位置。
回调函数:
class MyCamera : public osg::Camera:rawCallback
{
public :
osg::Vec3d _vec;
MyCamera(osg::Vec3d vec) _vec(vec){};
virtual void operate() (osg::Camera*camera) const
{
camera->setViewMatrixAsLookAt(osg::Vec3(0,0,0), _vec, osg::Vec3(0, 0, 1.0));
}
}
问题是:TargetPosition位置是正确的,每次更新TargetPosition位置值后,camera的LookAt的位置并不更新。
我该采用osg::Camera的哪种调用关联方法? setPreDrawCallback/setPostDrawCallback?
还是该采用osg::Node的回调形式? setUpdateCallback/setCullCallback?
谢谢! |
|