Revision: 8396
http://playerstage.svn.sourceforge.net/playerstage/?rev=8396&view=rev
Author: natepak
Date: 2009-11-12 19:36:29 +0000 (Thu, 12 Nov 2009)
Log Message:
-----------
Added ability to switch between cameras
Modified Paths:
--------------
code/gazebo/trunk/server/gui/GLFrame.cc
code/gazebo/trunk/server/gui/GLWindow.cc
code/gazebo/trunk/server/rendering/OgreCamera.hh
code/gazebo/trunk/server/rendering/UserCamera.cc
code/gazebo/trunk/server/rendering/UserCamera.hh
code/gazebo/trunk/worlds/willowgarage.world
Modified: code/gazebo/trunk/server/gui/GLFrame.cc
===================================================================
--- code/gazebo/trunk/server/gui/GLFrame.cc 2009-11-12 17:36:32 UTC (rev
8395)
+++ code/gazebo/trunk/server/gui/GLFrame.cc 2009-11-12 19:36:29 UTC (rev
8396)
@@ -144,6 +144,12 @@
CameraManager::Instance()->ConnectAddCameraSignal(
boost::bind(&GLFrame::CameraAddedSlot, this, _1) );
+ // Add all the current cameras
+ for (unsigned int i=0; i < CameraManager::Instance()->GetNumCameras(); i++)
+ {
+ this->CameraAddedSlot( CameraManager::Instance()->GetCamera(i) );
+ }
+
this->show();
this->redraw();
}
Modified: code/gazebo/trunk/server/gui/GLWindow.cc
===================================================================
--- code/gazebo/trunk/server/gui/GLWindow.cc 2009-11-12 17:36:32 UTC (rev
8395)
+++ code/gazebo/trunk/server/gui/GLWindow.cc 2009-11-12 19:36:29 UTC (rev
8396)
@@ -33,6 +33,7 @@
#include <GL/glx.h>
+#include <Ogre.h>
#include "Param.hh"
#include "Entity.hh"
#include "Body.hh"
@@ -786,7 +787,8 @@
}
else
{
- this->activeCamera = CameraManager::Instance()->GetCamera( view );
+ OgreCamera *cam = CameraManager::Instance()->GetCamera( view );
+ ((UserCamera*)this->activeCamera)->SetCamera(cam);
}
cam->SetWorldPose( pose );
Modified: code/gazebo/trunk/server/rendering/OgreCamera.hh
===================================================================
--- code/gazebo/trunk/server/rendering/OgreCamera.hh 2009-11-12 17:36:32 UTC
(rev 8395)
+++ code/gazebo/trunk/server/rendering/OgreCamera.hh 2009-11-12 19:36:29 UTC
(rev 8396)
@@ -236,7 +236,7 @@
protected: Ogre::PixelFormat imageFormat;
protected: unsigned int visibilityMask;
- protected: Ogre::RenderTarget *renderTarget;
+ public: Ogre::RenderTarget *renderTarget;
protected: Ogre::TexturePtr renderTexture;
Modified: code/gazebo/trunk/server/rendering/UserCamera.cc
===================================================================
--- code/gazebo/trunk/server/rendering/UserCamera.cc 2009-11-12 17:36:32 UTC
(rev 8395)
+++ code/gazebo/trunk/server/rendering/UserCamera.cc 2009-11-12 19:36:29 UTC
(rev 8396)
@@ -138,19 +138,28 @@
this->visual->AttachObject(line);
+ //this->renderTarget = this->window;
- this->viewport = this->window->addViewport(this->GetOgreCamera());
+ this->SetCamera(this);
+ this->lastUpdate = Simulator::Instance()->GetRealTime();
+}
+
+void UserCamera::SetCamera( OgreCamera *cam )
+{
+ this->window->removeAllViewports();
+
+ if (cam == NULL)
+ cam = this;
+
+ this->viewport = this->window->addViewport(cam->GetOgreCamera());
this->viewport->setBackgroundColour(Ogre::ColourValue::Black);
this->SetAspectRatio( Ogre::Real(this->viewport->getActualWidth()) /
Ogre::Real(this->viewport->getActualHeight()) );
this->viewport->setVisibilityMask(this->visibilityMask);
+}
- this->renderTarget = this->window;
- this->lastUpdate = Simulator::Instance()->GetRealTime();
-}
-
////////////////////////////////////////////////////////////////////////////////
/// Update
void UserCamera::Update()
Modified: code/gazebo/trunk/server/rendering/UserCamera.hh
===================================================================
--- code/gazebo/trunk/server/rendering/UserCamera.hh 2009-11-12 17:36:32 UTC
(rev 8395)
+++ code/gazebo/trunk/server/rendering/UserCamera.hh 2009-11-12 19:36:29 UTC
(rev 8396)
@@ -55,6 +55,8 @@
/// \brief Initialize
public: void Init();
+ public: void SetCamera( OgreCamera *cam );
+
/// \brief Update
public: void Update();
Modified: code/gazebo/trunk/worlds/willowgarage.world
===================================================================
--- code/gazebo/trunk/worlds/willowgarage.world 2009-11-12 17:36:32 UTC (rev
8395)
+++ code/gazebo/trunk/worlds/willowgarage.world 2009-11-12 19:36:29 UTC (rev
8396)
@@ -95,6 +95,20 @@
<include embedded="true">
<xi:include href="models/pr2.model" />
</include>
+
+ <body:box name="camera_body">
+ <xyz>-0.5 0 1.5</xyz>
+ <rpy>0 30 0</rpy>
+ <sensor:camera name="r_forearm_cam_sensor">
+ <imageSize>640.0 480.0</imageSize>
+ <imageFormat>L8</imageFormat>
+ <hfov>90.0</hfov>
+ <nearClip>0.1</nearClip>
+ <farClip>100</farClip>
+ <updateRate>20.0</updateRate>
+ </sensor:camera>
+ </body:box>
+
</model:physical>
<!--
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit