当我尝试设置轨迹球操纵器时,“运行失败”(OpenSceneGraph)

时间:2012-02-13 02:26:38

标签: c++ viewer openscenegraph manipulators

我有一个类(Car),它扩展了osg::PositionAttitudeTransform。现在我想创建一个具有相同位置的相机。所以我在Cameras getMatrix()方法中得到汽车的矩阵:

matrix = car->asMatrixTransform()->getMatrix();
return matrix;

我想设置轨迹球操纵器:

while( !viewer.done() )
{
    (*car).update();
    (*camera).update();

    trackball_manipulator->setByInverseMatrix((*camera).getMatrix());

    viewer.frame();
}

之后我的应用程序退出并显示错误代码(RUN FAILED(退出值1,总时间:119ms))。我的代码有什么问题,如何调试呢?

//修改

调试器说,这是在这个地方的分段错误(Matrixd.cpp):

inline void set(double const * const ptr)
{
    value_type* local_ptr = (value_type*)_mat;
    for(int i=0;i<16;++i) local_ptr[i]=(value_type)ptr[i];
}

但我仍然不知道如何解决它。

0 个答案:

没有答案