2013-02-08 35 views
0

我學習OSG的這些天:爲什麼model-> asGeode();返回NULL?

// 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? 

爲什麼模型 - > asGeode();返回NULL?

回答

2

如果你看一下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。你需要從readNodeFile返回的Node上獲取getChild(),然後你應該能夠像Geode()那樣。