Revision: 8531
http://playerstage.svn.sourceforge.net/playerstage/?rev=8531&view=rev
Author: natepak
Date: 2010-01-27 01:47:07 +0000 (Wed, 27 Jan 2010)
Log Message:
-----------
Updated to use signals for viewing options
Modified Paths:
--------------
code/gazebo/trunk/server/World.cc
code/gazebo/trunk/server/World.hh
code/gazebo/trunk/server/gui/MainMenu.cc
code/gazebo/trunk/server/gui/MainMenu.hh
code/gazebo/trunk/server/physics/Geom.cc
code/gazebo/trunk/server/physics/PhysicsEngine.cc
code/gazebo/trunk/server/physics/PhysicsEngine.hh
code/gazebo/trunk/server/rendering/OgreCamera.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/CMakeLists.txt
Modified: code/gazebo/trunk/server/World.cc
===================================================================
--- code/gazebo/trunk/server/World.cc 2010-01-26 23:24:14 UTC (rev 8530)
+++ code/gazebo/trunk/server/World.cc 2010-01-27 01:47:07 UTC (rev 8531)
@@ -61,6 +61,7 @@
this->showJoints = false;
this->showContacts = false;
this->showLights = false;
+ this->showCameras = false;
this->wireframe = false;
this->showPhysics = false;
this->physicsEngine = NULL;
@@ -720,6 +721,7 @@
void World::SetShowContacts(bool show)
{
this->showContacts = show;
+ this->showContactsSignal(this->showContacts);
}
////////////////////////////////////////////////////////////////////////////////
@@ -745,10 +747,26 @@
}
////////////////////////////////////////////////////////////////////////////////
+/// Set whether to show the camera visuals
+void World::SetShowCameras(bool show)
+{
+ this->showCameras = show;
+ this->showCamerasSignal(this->showCameras);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Get whether to show the camera visuals
+bool World::GetShowCameras() const
+{
+ return this->showCameras;
+}
+
+////////////////////////////////////////////////////////////////////////////////
/// Set to view as wireframe
void World::SetWireframe( bool wire )
{
this->wireframe = wire;
+ this->wireframeSignal(this->wireframe);
}
////////////////////////////////////////////////////////////////////////////////
@@ -772,18 +790,17 @@
void World::SetShowPhysics(bool show)
{
this->showPhysics = show;
+ this->showPhysicsSignal(this->showPhysics);
- std::vector< Geom*>::iterator iter;
+ /*std::vector< Geom*>::iterator iter;
for (iter = this->geometries.begin(); iter != this->geometries.end(); iter++)
{
(*iter)->ShowPhysics(this->showPhysics);
- }
-
+ }*/
}
-
////////////////////////////////////////////////////////////////////////////////
// Update the simulation interface
void World::UpdateSimulationIface()
Modified: code/gazebo/trunk/server/World.hh
===================================================================
--- code/gazebo/trunk/server/World.hh 2010-01-26 23:24:14 UTC (rev 8530)
+++ code/gazebo/trunk/server/World.hh 2010-01-27 01:47:07 UTC (rev 8531)
@@ -200,6 +200,12 @@
/// \brief Get whether to show the light source visuals
public: bool GetShowLights() const;
+ /// \brief Set whether to show the camera visuals
+ public: void SetShowCameras(bool show);
+
+ /// \brief Get whether to show the camera visuals
+ public: bool GetShowCameras() const;
+
/// \brief Set to view as wireframe
public: void SetWireframe( bool wire );
@@ -234,6 +240,8 @@
private: bool showLights;
+ private: bool showCameras;
+
private: bool showPhysics;
private: bool wireframe;
@@ -268,7 +276,36 @@
showLightsSignal.connect(subscriber);
}
- /// \brif Get the names of interfaces defined in the tree of a model
+ /// \brief Connect a boost::slot the the show camera source signal
+ public: template<typename T>
+ void ConnectShowCamerasSignal( T subscriber )
+ {
+ showCamerasSignal.connect(subscriber);
+ }
+
+ /// \brief Connect a boost::slot the the show contacts signal
+ public: template<typename T>
+ void ConnectShowContactsSignal( T subscriber )
+ {
+ showContactsSignal.connect(subscriber);
+ }
+
+ /// \brief Connect a boost::slot the the show wireframe signal
+ public: template<typename T>
+ void ConnectShowWireframeSignal( T subscriber )
+ {
+ wireframeSignal.connect(subscriber);
+ }
+
+ /// \brief Connect a boost::slot the the show physics signal
+ public: template<typename T>
+ void ConnectShowPhysicsSignal( T subscriber )
+ {
+ showPhysicsSignal.connect(subscriber);
+ }
+
+
+ /// \brief Get the names of interfaces defined in the tree of a model
private: void GetInterfaceNames(Entity* m, std::vector<std::string>& list);
/// Pointer the physics engine
@@ -317,6 +354,10 @@
private: boost::signal<void (Entity*)> addEntitySignal;
private: boost::signal<void (bool)> showLightsSignal;
+ private: boost::signal<void (bool)> showCamerasSignal;
+ private: boost::signal<void (bool)> showContactsSignal;
+ private: boost::signal<void (bool)> wireframeSignal;
+ private: boost::signal<void (bool)> showPhysicsSignal;
private: std::deque<WorldState> worldStates;
private: std::deque<WorldState>::iterator worldStatesInsertIter;
Modified: code/gazebo/trunk/server/gui/MainMenu.cc
===================================================================
--- code/gazebo/trunk/server/gui/MainMenu.cc 2010-01-26 23:24:14 UTC (rev
8530)
+++ code/gazebo/trunk/server/gui/MainMenu.cc 2010-01-27 01:47:07 UTC (rev
8531)
@@ -64,6 +64,7 @@
{ "Show Joints", 0, &gazebo::MainMenu::ShowJointsCB,0, FL_MENU_TOGGLE,
FL_NORMAL_LABEL, 0, 14, 0},
{ "Show Contacts", 0, &gazebo::MainMenu::ShowContactsCB,0, FL_MENU_TOGGLE,
FL_NORMAL_LABEL, 0, 14, 0},
{ "Show Lights", 0, &gazebo::MainMenu::ShowLightsCB,0, FL_MENU_TOGGLE,
FL_NORMAL_LABEL, 0, 14, 0},
+ { "Show Cameras", 0, &gazebo::MainMenu::ShowCamerasCB,0, FL_MENU_TOGGLE,
FL_NORMAL_LABEL, 0, 14, 0},
{ 0 },
{ 0 }
@@ -167,3 +168,10 @@
{
World::Instance()->SetShowLights( !World::Instance()->GetShowLights() );
}
+
+////////////////////////////////////////////////////////////////////////////////
+// View the light source visuals
+void MainMenu::ShowCamerasCB(Fl_Widget * /*w*/, void * /*data*/)
+{
+ World::Instance()->SetShowCameras( !World::Instance()->GetShowCameras() );
+}
Modified: code/gazebo/trunk/server/gui/MainMenu.hh
===================================================================
--- code/gazebo/trunk/server/gui/MainMenu.hh 2010-01-26 23:24:14 UTC (rev
8530)
+++ code/gazebo/trunk/server/gui/MainMenu.hh 2010-01-27 01:47:07 UTC (rev
8531)
@@ -59,6 +59,8 @@
public: static void ShowLightsCB(Fl_Widget * /*w*/, void * /*data*/);
+ public: static void ShowCamerasCB(Fl_Widget * /*w*/, void * /*data*/);
+
};
}
Modified: code/gazebo/trunk/server/physics/Geom.cc
===================================================================
--- code/gazebo/trunk/server/physics/Geom.cc 2010-01-26 23:24:14 UTC (rev
8530)
+++ code/gazebo/trunk/server/physics/Geom.cc 2010-01-27 01:47:07 UTC (rev
8531)
@@ -76,6 +76,8 @@
this->laserFiducialIdP = new ParamT<int>("laserFiducialId",-1,0);
this->laserRetroP = new ParamT<float>("laserRetro",-1,0);
Param::End();
+
+ World::Instance()->ConnectShowPhysicsSignal( boost::bind(&Geom::ShowPhysics,
this, _1) );
}
////////////////////////////////////////////////////////////////////////////////
Modified: code/gazebo/trunk/server/physics/PhysicsEngine.cc
===================================================================
--- code/gazebo/trunk/server/physics/PhysicsEngine.cc 2010-01-26 23:24:14 UTC
(rev 8530)
+++ code/gazebo/trunk/server/physics/PhysicsEngine.cc 2010-01-27 01:47:07 UTC
(rev 8531)
@@ -72,6 +72,8 @@
this->visual->AttachObject(*this->contactLinesIter);
}
+ World::Instance()->ConnectShowContactsSignal(
boost::bind(&PhysicsEngine::ShowVisual, this, _1) );
+
this->contactLinesIter = this->contactLines.begin();
delete mat;
}
@@ -98,17 +100,10 @@
/// Update the physics engine
void PhysicsEngine::UpdatePhysics()
{
- if (World::Instance()->GetShowContacts())
- {
- this->visual->SetVisible(true);
- this->contactLinesIter = this->contactLines.begin();
- }
- else
- {
- this->visual->SetVisible(false);
- }
}
-
+
+
+
////////////////////////////////////////////////////////////////////////////////
/// Return the gavity vector
Vector3 PhysicsEngine::GetGravity() const
@@ -170,3 +165,12 @@
if (this->contactLinesIter == this->contactLines.end())
this->contactLinesIter = this->contactLines.begin();
}
+
+////////////////////////////////////////////////////////////////////////////////
+// Set whether to show contacts
+void PhysicsEngine::ShowVisual(bool show)
+{
+ this->visual->SetVisible(show);
+ if (show)
+ this->contactLinesIter = this->contactLines.begin();
+}
Modified: code/gazebo/trunk/server/physics/PhysicsEngine.hh
===================================================================
--- code/gazebo/trunk/server/physics/PhysicsEngine.hh 2010-01-26 23:24:14 UTC
(rev 8530)
+++ code/gazebo/trunk/server/physics/PhysicsEngine.hh 2010-01-27 01:47:07 UTC
(rev 8531)
@@ -150,6 +150,9 @@
/// \brief Convert a Gazebo mass to an engine specific mass
public: virtual void ConvertMass(void *engineMass, const Mass &mass) = 0;
+ /// \brief Set whether to show contacts
+ public: void ShowVisual(bool show);
+
/// \brief Add a contact visual
protected: void AddContactVisual(Vector3 pos, Vector3 norm);
Modified: code/gazebo/trunk/server/rendering/OgreCamera.cc
===================================================================
--- code/gazebo/trunk/server/rendering/OgreCamera.cc 2010-01-26 23:24:14 UTC
(rev 8530)
+++ code/gazebo/trunk/server/rendering/OgreCamera.cc 2010-01-27 01:47:07 UTC
(rev 8531)
@@ -86,6 +86,8 @@
this->renderPeriod = Time(1.0/(**this->updateRateP));
this->renderingEnabled = true;
+
+ World::Instance()->ConnectShowWireframeSignal(
boost::bind(&OgreCamera::ShowWireframe, this, _1) );
}
@@ -221,18 +223,6 @@
if (!Simulator::Instance()->GetRenderEngineEnabled())
return;
- if (this->camera)
- {
- if (World::Instance()->GetWireframe())
- {
- this->camera->setPolygonMode(Ogre::PM_WIREFRAME);
- }
- else
- {
- this->camera->setPolygonMode(Ogre::PM_SOLID);
- }
- }
-
if (this->sceneNode)
{
Ogre::Vector3 v = this->sceneNode->_getDerivedPosition();
@@ -714,3 +704,20 @@
this->origParentNode->addChild(this->sceneNode);
}
}
+
+//////////////////////////////////////////////////////////////////////////////
+// Set whether to view the world in wireframe
+void OgreCamera::ShowWireframe(bool s)
+{
+ if (this->camera)
+ {
+ if (s)
+ {
+ this->camera->setPolygonMode(Ogre::PM_WIREFRAME);
+ }
+ else
+ {
+ this->camera->setPolygonMode(Ogre::PM_SOLID);
+ }
+ }
+}
Modified: code/gazebo/trunk/server/rendering/OgreCamera.hh
===================================================================
--- code/gazebo/trunk/server/rendering/OgreCamera.hh 2010-01-26 23:24:14 UTC
(rev 8530)
+++ code/gazebo/trunk/server/rendering/OgreCamera.hh 2010-01-27 01:47:07 UTC
(rev 8531)
@@ -215,6 +215,9 @@
/// \brief Set the camera to track an entity
public: void TrackModel( Model *model );
+ /// \brief Set whether to view the world in wireframe
+ public: void ShowWireframe(bool s);
+
// Save the camera frame
protected: virtual void SaveFrame();
Modified: code/gazebo/trunk/server/rendering/UserCamera.cc
===================================================================
--- code/gazebo/trunk/server/rendering/UserCamera.cc 2010-01-26 23:24:14 UTC
(rev 8530)
+++ code/gazebo/trunk/server/rendering/UserCamera.cc 2010-01-27 01:47:07 UTC
(rev 8531)
@@ -35,6 +35,7 @@
#include "OgreCreator.hh"
#include "OgreVisual.hh"
#include "OgreDynamicLines.hh"
+#include "World.hh"
#include "UserCamera.hh"
using namespace gazebo;
@@ -55,6 +56,8 @@
this->name = stream.str();
this->viewport = NULL;
+
+ World::Instance()->ConnectShowCamerasSignal(
boost::bind(&UserCamera::ShowVisual, this, _1) );
}
////////////////////////////////////////////////////////////////////////////////
@@ -141,6 +144,7 @@
line->setVisibilityFlags(GZ_LASER_CAMERA);
this->visual->AttachObject(line);
+ this->visual->SetVisible(false);
this->SetCamera(this);
this->lastUpdate = Simulator::Instance()->GetRealTime();
@@ -250,3 +254,10 @@
{
return this->window;
}
+
+////////////////////////////////////////////////////////////////////////////////
+// Set whether to show the visual
+void UserCamera::ShowVisual(bool s)
+{
+ this->visual->SetVisible(s);
+}
Modified: code/gazebo/trunk/server/rendering/UserCamera.hh
===================================================================
--- code/gazebo/trunk/server/rendering/UserCamera.hh 2010-01-26 23:24:14 UTC
(rev 8530)
+++ code/gazebo/trunk/server/rendering/UserCamera.hh 2010-01-27 01:47:07 UTC
(rev 8531)
@@ -81,6 +81,9 @@
/// \brief Get the ogre window
public: Ogre::RenderWindow *GetWindow();
+ /// \brief Set whether to show the visual
+ private: void ShowVisual(bool s);
+
/// Pointer to the viewport
protected: Ogre::Viewport *viewport;
Modified: code/gazebo/trunk/worlds/CMakeLists.txt
===================================================================
--- code/gazebo/trunk/worlds/CMakeLists.txt 2010-01-26 23:24:14 UTC (rev
8530)
+++ code/gazebo/trunk/worlds/CMakeLists.txt 2010-01-27 01:47:07 UTC (rev
8531)
@@ -1,7 +1,6 @@
ADD_SUBDIRECTORY(models)
-SET (files audio.world
- bandit.world
+SET (files bandit.world
bsp.world
bumper.world
epuck_single.world
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit