|
楼主 |
发表于 2013-3-11 19:54:51
|
显示全部楼层
array 发表于 2013-3-11 09:39
很显然这里就是您应该去排查的地方
我的回调函数是这样实现的,是否有错误
void CAL_ModelPan:perator()(osg::Node *node,osg::NodeVisitor *nv)
{
osg::Matrix mr;
if (isPan != 0)
{
CurrentPos += SpeedAxis; //计算模型在三维空间的下一个位置坐标
mr.makeTranslate(CurrentPos); //设定模型的位置坐标
mt->setMatrix(mt1*mRotateX*mRotateY*mRotateZ*mt2*mr);
traverse(node,nv); //跟踪调试到此处
}
else return;
}
//int isPan; //保存模型运动标志。0——不运动;1——运动
//osg::Vec3 SpeedAxis; //保存模型沿着哪个坐标轴移动,以及移动的速度(向量PanAxis的三维分量表示沿该坐标轴移 //动的速度)
//osg::Vec3 CurrentPos; //保存模型的当前坐标位置
//osg::Matrix mRotateX,mRotateY,mRotateZ;
//osg::Matrix mt1, mt2;
// osg::ref_ptr<osg::MatrixTransform> mt = dynamic_cast<osg::MatrixTransform*>(node);
每次跟踪调试,都定位在traverse(node,nv);这一句上
|
|