|
我给飞机模型写了个更新回调函数使其位置动态变化。我想让视点随着飞机模型动态的变化。怎么实现?
我使用下面的方式好像不行。。
更新回调类如下:
class NodeCallback : public osg::NodeCallback
{
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
{ osg::MatrixTransform*
mtCow=dynamic_cast<osg::MatrixTransform*>(node);
osg::Matrix mr;
mr.makeRotate(angle,osg::Vec3(0.0f,0.0f,1.0f));
mtCow->setMatrix(mr);
angle+=0.01;
traverse(node,nv);
}
public:
double angle;
};
int main(){
.
.
.
.
while (!viewer.done())
{
viewer.getCamera()->setViewMatrixAsLookAt(osg::Vec3(bb.center().x(),bb.center().y(),bb.center().z()+100.f),osg::Vec3(0.f,0.f,-10.f),osg::Vec3(0.f,10.f,0.f));
viewer.frame();
}
其中bb是飞机模型的包围盒。 |
|