1

私は最近 OpenSceneGraph を勉強しています:

// Assumes the Cessna's root node is a group node.
osg::ref_ptr<osg::Node> model = osgDB::readNodeFile("cessna.osg");
osg::Group* convModel1 = model->asGroup(); // OK!
osg::Geode* convModel2 = model->asGeode(); // Returns NULL?

なぜ model->asGeode(); NULL を返しますか?

4

1 に答える 1

3

テキスト エディターで cessna.osg を見ると、次のようになります。

Group {
  UniqueID Group_0
  DataVariance STATIC
  cullingActive TRUE
  num_children 1
  Geode {
    DataVariance DYNAMIC
    name "cessna.osg"
    cullingActive TRUE
    num_drawables 1
    Geometry {

最上位のエンティティが Geode ではなく Group であることがわかります。readNodeFile から戻ってきた Node で getChild() を実行する必要があり、それを asGeode() できるはずです。

于 2013-02-11T05:26:51.813 に答える