|
为了追踪节点 我使用了 这样的类
updateAccumulatedMatrix::Nodecallback
类里的函数为:
- void updateAccumulatedMatrix::getmatrix( osg::Matrix *matrixd )
- {
- *matrixd = *matrix;
- }
- updateAccumulatedMatrix::updateAccumulatedMatrix()
- {
- matrix=new osg::Matrix(1,2,3,4
- ,5,6,7,8
- ,1,2,3,4
- ,4,4,4,4);
- }
- void updateAccumulatedMatrix::operator()( osg::Node* node, osg::NodeVisitor* nv )
- {
- osg::NodePath nodepath=nv->getNodePath();
- *matrix = osg::computeWorldToLocal(nodepath);
- traverse(node,nv);
- }
复制代码
但是在使用的时候:(mat 为updateAccumulatedMatrix的实例)
- osg::Matrix get;
- mat->getmatrix(&get);
- osg::Vec3 des_center(get.getTrans());
复制代码
问题是 在使用 getmatrix之后
get的值 不便 仍然是 12345678.....
使用断点在()回调函数里面检查 矩阵的值确更改了 但是断电到getmatrix 函数里面仍然是12345678...
简单的说 就是matrix的值传不出来。
传回来我就得到了节点的位置了。
请教各位大神。 谢谢了~
|
|