«Ошибка запуска» при попытке установить манипулятор трекбола (OpenSceneGraph) - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть класс (Автомобиль), который расширяет osg::PositionAttitudeTransform. Теперь я хочу создать камеру, которая имеет ту же позицию. Итак, я получаю матрицу автомобиля в Камерах методом getMatrix ():

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

и я хочу установить манипулятор трекбола:

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

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

    viewer.frame();
}

После этого мое приложение завершает работу с кодом ошибки (RUN FAILED (значение выхода 1, общее время: 119 мс)). Что не так с моим кодом и как я могу его отладить?

// редактировать

отладчик говорит, что это ошибка сегментации в этом месте (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];
}

Но я до сих пор не знаю, как это исправить.

...