|
virtual void operator()(osg::Node*node,osg::NodeVisitor*nv)
{
osg::ref_ptr<osg::MatrixTransform>mt=dynamic_cast<osg::MatrixTransform*>(node);
osg::Matrix m;
m.makeRotate(angle,osg::Vec3(0.0,1.0,0.0));
mt->setMatrix(m);
angle+=0.01
traverse(node,nv);
}
这里通过回调实现物体的旋转,angle值每更新一次增加0.01,现在是有一组数据,想用这组数据来代替angle的值,应该怎么弄?下面是我写的一段代码,但是无法运行
virtual void operator()(osg::Node*node,osg::NodeVisitor*nv)
{
osg::ref_ptr<osg::MatrixTransform>mt=dynamic_cast<osg::MatrixTransform*>(node);
osg::Matrix m;
m.makeRotate(angle,osg::Vec3(0.0,1.0,0.0));
mt->setMatrix(m);
readtxt();//这个函数是读取数组中的数据,m行一列的
angle=a[0]; //angle每次取一个数据
traverse(node,nv);
}
调试后的问题出现在
traverse(node,nv);
堆栈信息:
|
|