SceneNode * PCZSceneManager::createSceneNode( void ) { SceneNode * on = createSceneNodeImpl(); mSceneNodes[ on->getName() ] = on; // create any zone-specific data necessary createZoneSpecificNodeData((PCZSceneNode*)on); // return pointer to the node return on; }
DSceneNode* DSceneManager::createSceneNode( const DString& name ) { SceneNodeMap::iterator i = mSceneNodeMap.find(name); if (i != mSceneNodeMap.end()) { return i->second; } DSceneNode* n = createSceneNodeImpl(name); mSceneNodeMap[name] = n; return n; }
DSceneNode* DSceneManager::createSceneNode() { DSceneNode* ret; DSceneNode* n = createSceneNodeImpl(); SceneNodeMap::iterator i = mSceneNodeMap.find(n->getName()); if (i != mSceneNodeMap.end()) { ret = n; mSceneNodeMap[n->getName()] = n; } else { destroySceneNodeImpl(n); ret = i->second; } return ret; }
SceneNode * PCZSceneManager::createSceneNode( const String &name ) { // Check name not used if (mSceneNodes.find(name) != mSceneNodes.end()) { OGRE_EXCEPT( Exception::ERR_DUPLICATE_ITEM, "A scene node with the name " + name + " already exists", "PCZSceneManager::createSceneNode" ); } SceneNode * on = createSceneNodeImpl( name ); mSceneNodes[ on->getName() ] = on; // create any zone-specific data necessary createZoneSpecificNodeData((PCZSceneNode*)on); // return pointer to the node return on; }