Ogre::SceneNode *node1 = node->createChildSceneNode( "node1", Ogre::Vector3(20, 0, 0) );
等效于:
Ogre::SceneNode *node1 = mSceneMgr->createSceneNode( "Node1" );
node->addChild( node1 );
node1->setPosition( 20, 0, 0 );
父节点的变换会传递给子节点:
Ogre::Entity *ent = mSceneMgr->createEntity( "MyEntity", "Sinbad.mesh" );
Ogre::SceneNode *node = mSceneMgr->createSceneNode( "Node1" );
node->setPosition( 10, 10, 0 );
mSceneMgr->getRootSceneNode()->addChild( node );
node->attachObject( ent );
Ogre::Entity *ent2 = mSceneMgr->createEntity( "MyEntitysNinja", "ninja.mesh" );
Ogre::SceneNode *node2 = node->createChildSceneNode( "node2" );
node2->setPosition( 10, 0, 0 );
node2->setScale( 0.02f, 0.02f, 0.02f );
node2->attachObject( ent2 );
得到:
对父节点变换:
node->setPosition( 40, 10, 0 );
node->yaw( Ogre::Degree(180.0f) );
得到:
显然父节点跟随子节点在变化。