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

Reply via email to