Revision: 8672 http://playerstage.svn.sourceforge.net/playerstage/?rev=8672&view=rev Author: hsujohnhsu Date: 2010-05-11 23:05:55 +0000 (Tue, 11 May 2010)
Log Message: ----------- add function to unregister camera from scenenode. call unregister on ogrecamera destruct. Modified Paths: -------------- code/gazebo/trunk/server/rendering/OgreAdaptor.cc code/gazebo/trunk/server/rendering/OgreAdaptor.hh code/gazebo/trunk/server/rendering/OgreCamera.cc Modified: code/gazebo/trunk/server/rendering/OgreAdaptor.cc =================================================================== --- code/gazebo/trunk/server/rendering/OgreAdaptor.cc 2010-05-11 22:41:08 UTC (rev 8671) +++ code/gazebo/trunk/server/rendering/OgreAdaptor.cc 2010-05-11 23:05:55 UTC (rev 8672) @@ -258,7 +258,7 @@ } // Default background color - this->backgroundColor = new Ogre::ColourValue(Ogre::ColourValue::Black); + this->backgroundColor = new Ogre::ColourValue(Ogre::ColourValue::White); // Load all the plugins this->LoadPlugins(); @@ -727,6 +727,21 @@ } //////////////////////////////////////////////////////////////////////////////// +/// Unregister a user camera +void OgreAdaptor::UnregisterCamera( OgreCamera *cam ) +{ + std::vector<OgreCamera*>::iterator iter; + for(iter=this->cameras.begin();iter != this->cameras.end();iter++) + { + if ((*iter) == cam) + { + this->cameras.erase(iter); + break; + } + } +} + +//////////////////////////////////////////////////////////////////////////////// /// Print scene graph void OgreAdaptor::PrintSceneGraph() { Modified: code/gazebo/trunk/server/rendering/OgreAdaptor.hh =================================================================== --- code/gazebo/trunk/server/rendering/OgreAdaptor.hh 2010-05-11 22:41:08 UTC (rev 8671) +++ code/gazebo/trunk/server/rendering/OgreAdaptor.hh 2010-05-11 23:05:55 UTC (rev 8672) @@ -112,6 +112,7 @@ /// \brief Register a user camera public: void RegisterCamera( OgreCamera *cam ); + public: void UnregisterCamera( OgreCamera *cam ); public: void PrintSceneGraph(); Modified: code/gazebo/trunk/server/rendering/OgreCamera.cc =================================================================== --- code/gazebo/trunk/server/rendering/OgreCamera.cc 2010-05-11 22:41:08 UTC (rev 8671) +++ code/gazebo/trunk/server/rendering/OgreCamera.cc 2010-05-11 23:05:55 UTC (rev 8672) @@ -114,11 +114,18 @@ delete this->imageFormatP; delete this->visMaskP; delete this->hfovP; + + if (this->pitchNode) + { + this->sceneNode->removeAndDestroyChild( this->cameraName + "PitchNode"); + this->pitchNode = NULL; + } if (this->camera) { OgreCreator::DeleteCamera(this->camera); this->camera = NULL; } + OgreAdaptor::Instance()->UnregisterCamera(this); } ////////////////////////////////////////////////////////////////////////////// This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ _______________________________________________ Playerstage-commit mailing list Playerstage-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/playerstage-commit