Я надеюсь, что есть кто-то, кто понимает, почему код ниже не работает. Я пытаюсь получить экземпляр PositionAttitudeTransform (класс Openscenegraph) из объекта узла osg :: Node *. Но есть ошибка компилятора ниже, выделенная жирным шрифтом.
void CameraPosCallbackUpdate::operator()(osg::Node* node, osg::NodeVisitor* nv)
{
// other code goes here
osg::PositionAttitudeTransform* pat = dynamic_cast<osg::PositionAttitudeTransform*> (node);
}
IntelliSense: тип в dynamic_cast должен быть указателем или ссылкой на полный тип класса или void *
Пожалуйста, помогите мне с правильным способом доступа к моему объекту, и я был бы признателен за помощь в понимании, в чем заключается проблема, так как я считаю, что приведение должно быть возможным.
http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00529.html
Я считаю, что вы должны #include
заголовочный файл, который содержит тело class osg::PositionAttitudeTransform
,
dynamic_cast
выдает такую ошибку, когда тело класса назначения не видно.
Вот похожий ошибка воспроизводится в g ++.
Других решений пока нет …