17 #ifndef _SCENE_PRIVATE_HH_
18 #define _SCENE_PRIVATE_HH_
25 #include <boost/unordered/unordered_map.hpp>
26 #include <boost/thread/recursive_mutex.hpp>
31 #include "gazebo/gazebo_config.h"
39 class BasicController;
64 typedef std::map<uint32_t, VisualPtr>
Visual_M;
68 typedef std::list<boost::shared_ptr<msgs::Visual const> >
VisualMsgs_L;
72 typedef std::list<boost::shared_ptr<msgs::Light const> >
LightMsgs_L;
80 typedef std::list<boost::shared_ptr<msgs::Scene const> >
SceneMsgs_L;
84 typedef std::list<boost::shared_ptr<msgs::Joint const> >
JointMsgs_L;
88 typedef std::list<boost::shared_ptr<msgs::Link const> >
LinkMsgs_L;
92 typedef std::list<boost::shared_ptr<msgs::Model const> >
ModelMsgs_L;
96 typedef std::list<boost::shared_ptr<msgs::Sensor const> >
SensorMsgs_L;
104 typedef std::map<std::string, LightPtr>
Light_M;
107 typedef std::list<boost::shared_ptr<msgs::PoseAnimation const> >
112 typedef boost::unordered_map<std::string,
129 public: sdf::ElementPtr
sdf;
uint32_t id
The unique ID of this scene.
Definition: ScenePrivate.hh:155
RequestMsgs_L requestMsgs
List of request message to process.
Definition: ScenePrivate.hh:185
transport::NodePtr node
Communication Node.
Definition: ScenePrivate.hh:206
boost::mutex * receiveMutex
Mutex to lock the various message buffers.
Definition: ScenePrivate.hh:200
std::list< boost::shared_ptr< msgs::Sensor const > > SensorMsgs_L
Definition: ScenePrivate.hh:96
transport::SubscriberPtr lightSub
Subscribe to light topics.
Definition: ScenePrivate.hh:221
transport::SubscriberPtr skySub
Subscribe to sky updates.
Definition: ScenePrivate.hh:239
uint32_t contactVisId
Keeps track of the visual ID for contact visualization.
Definition: ScenePrivate.hh:314
transport::SubscriberPtr selectionSub
Subscribe to selection updates.
Definition: ScenePrivate.hh:230
transport::SubscriberPtr jointSub
Subscribe to joint updates.
Definition: ScenePrivate.hh:227
boost::shared_ptr< Subscriber > SubscriberPtr
Definition: TransportTypes.hh:53
std::map< std::string, LightPtr > Light_M
Definition: ScenePrivate.hh:104
std::vector< Grid * > grids
All the grids in the scene.
Definition: ScenePrivate.hh:149
transport::SubscriberPtr sceneSub
Subscribe to scene topic.
Definition: ScenePrivate.hh:212
Forward declarations for transport.
transport::PublisherPtr requestPub
Publish requests.
Definition: ScenePrivate.hh:251
bool initialized
Initialized.
Definition: ScenePrivate.hh:303
transport::SubscriberPtr skeletonPoseSub
Subscribe to skeleton pose updates.
Definition: ScenePrivate.hh:236
boost::recursive_mutex poseMsgMutex
Mutex to lock the pose message buffers.
Definition: ScenePrivate.hh:203
transport::SubscriberPtr visSub
Subscribe to visual topic.
Definition: ScenePrivate.hh:218
common::Time sceneSimTimePosesReceived
SimTime of this Scene, as we receive PosesStamped from the world, we update this time accordingly...
Definition: ScenePrivate.hh:307
transport::SubscriberPtr responseSub
Subscribe to reponses.
Definition: ScenePrivate.hh:233
std::list< boost::shared_ptr< msgs::Model const > > ModelMsgs_L
Definition: ScenePrivate.hh:92
transport::SubscriberPtr modelInfoSub
Subscribe to model info updates.
Definition: ScenePrivate.hh:242
transport::SubscriberPtr sensorSub
Subscribe to sensor topic.
Definition: ScenePrivate.hh:209
PoseMsgs_M poseMsgs
List of pose message to process.
Definition: ScenePrivate.hh:167
std::list< boost::shared_ptr< msgs::Scene const > > SceneMsgs_L
Definition: ScenePrivate.hh:80
ModelMsgs_L modelMsgs
List of model message to process.
Definition: ScenePrivate.hh:179
Heightmap * terrain
The heightmap, if any.
Definition: ScenePrivate.hh:276
std::list< boost::shared_ptr< msgs::Light const > > LightMsgs_L
Definition: ScenePrivate.hh:72
std::map< std::string, Projector * > projectors
All the projectors.
Definition: ScenePrivate.hh:279
std::string name
Name of the scene.
Definition: ScenePrivate.hh:126
sdf::ElementPtr sdf
Scene SDF element.
Definition: ScenePrivate.hh:129
boost::shared_ptr< msgs::Selection const > selectionMsg
A message used to select an object.
Definition: ScenePrivate.hh:197
std::list< boost::shared_ptr< msgs::Joint const > > JointMsgs_L
Definition: ScenePrivate.hh:84
std::vector< OculusCameraPtr > oculusCameras
All the oculus cameras.
Definition: ScenePrivate.hh:139
LightMsgs_L lightMsgs
List of light message to process.
Definition: ScenePrivate.hh:164
std::vector< CameraPtr > cameras
All the cameras.
Definition: ScenePrivate.hh:132
Private data for the Visual class.
Definition: ScenePrivate.hh:116
Light_M lights
Map of all the lights in this scene.
Definition: ScenePrivate.hh:191
std::list< boost::shared_ptr< msgs::Visual const > > VisualMsgs_L
Definition: ScenePrivate.hh:68
Rendering a terrain using heightmap information.
Definition: Heightmap.hh:88
transport::PublisherPtr lightPub
Publish light updates.
Definition: ScenePrivate.hh:245
std::map< uint32_t, VisualPtr > Visual_M
Definition: ScenePrivate.hh:64
static uint32_t idCounter
Unique ID counter.
Definition: ScenePrivate.hh:152
SkyX::BasicController * skyxController
Controls the sky.
Definition: ScenePrivate.hh:285
transport::SubscriberPtr requestSub
Subscribe to the request topic.
Definition: ScenePrivate.hh:215
SensorMsgs_L sensorMsgs
List of sensor message to process.
Definition: ScenePrivate.hh:182
JointMsgs_M joints
Keep track of data of joints.
Definition: ScenePrivate.hh:317
std::vector< UserCameraPtr > userCameras
All the user cameras.
Definition: ScenePrivate.hh:135
JointMsgs_L jointMsgs
List of joint message to process.
Definition: ScenePrivate.hh:173
Visual_M visuals
Map of all the visuals in this scene.
Definition: ScenePrivate.hh:188
SkyX(Ogre::SceneManager *sm, Controller *c)
Contructor.
std::list< boost::shared_ptr< msgs::PoseAnimation const > > SkeletonPoseMsgs_L
Definition: ScenePrivate.hh:108
Ogre::SceneManager * manager
The ogre scene manager.
Definition: ScenePrivate.hh:143
std::list< boost::shared_ptr< msgs::Link const > > LinkMsgs_L
Definition: ScenePrivate.hh:88
VisualPtr selectedVis
Pointer to a visual selected by a user via the GUI.
Definition: ScenePrivate.hh:260
boost::shared_ptr< Node > NodePtr
Definition: TransportTypes.hh:57
SkyX::SkyX * skyx
Pointer to the sky.
Definition: ScenePrivate.hh:282
common::Time sceneSimTimePosesApplied
SimTime of this Scene, after applying PosesStamped to scene, we update this time accordingly.
Definition: ScenePrivate.hh:311
std::vector< event::ConnectionPtr > connections
Event connections.
Definition: ScenePrivate.hh:254
bool wireframe
True when all objects should be wireframe.
Definition: ScenePrivate.hh:300
std::string idString
String form of the id.
Definition: ScenePrivate.hh:158
transport::SubscriberPtr poseSub
Subscribe to pose updates.
Definition: ScenePrivate.hh:224
SkeletonPoseMsgs_L skeletonPoseMsgs
List of skeleton message to process.
Definition: ScenePrivate.hh:194
boost::shared_ptr< Visual > VisualPtr
Definition: RenderTypes.hh:102
bool showCOMs
True when all COMs should be visualized.
Definition: ScenePrivate.hh:288
msgs::Request * requestMsg
Keep around our request message.
Definition: ScenePrivate.hh:270
SceneMsgs_L sceneMsgs
List of scene message to process.
Definition: ScenePrivate.hh:170
VisualPtr worldVisual
The top level in our tree of visuals.
Definition: ScenePrivate.hh:257
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
transport::PublisherPtr responsePub
Respond to requests.
Definition: ScenePrivate.hh:248
Ogre::RaySceneQuery * raySceneQuery
A ray query used to locate distances to visuals.
Definition: ScenePrivate.hh:146
std::list< boost::shared_ptr< msgs::Request const > > RequestMsgs_L
Definition: ScenePrivate.hh:100
bool showCollisions
True when all collisions should be visualized.
Definition: ScenePrivate.hh:291
std::map< uint32_t, msgs::Pose > PoseMsgs_M
Definition: ScenePrivate.hh:76
bool transparent
True when all objects should be transparent.
Definition: ScenePrivate.hh:297
std::string selectionMode
Selection mode (normal or move).
Definition: ScenePrivate.hh:267
VisualMsgs_L visualMsgs
List of visual messages to process.
Definition: ScenePrivate.hh:161
bool showJoints
True when all joints should be visualized.
Definition: ScenePrivate.hh:294
LinkMsgs_L linkMsgs
List of link message to process.
Definition: ScenePrivate.hh:176
A Time class, can be used to hold wall- or sim-time.
Definition: Time.hh:43
boost::unordered_map< std::string, boost::shared_ptr< msgs::Joint const > > JointMsgs_M
Definition: ScenePrivate.hh:113
bool enableVisualizations
True if visualizations should be rendered.
Definition: ScenePrivate.hh:273