17 #ifndef _GAZEBO_MODEL_DATA_HH_ 
   18 #define _GAZEBO_MODEL_DATA_HH_ 
   29   class recursive_mutex;
 
   37     class ModelPluginInspector;
 
   43       public: 
static std::string GetTemplateSDFString();
 
   47       public: 
static double GetEditTransparency();
 
   61       public: 
void SetName(
const std::string &_name);
 
   65       public: 
void SetPose(
const ignition::math::Pose3d &_pose);
 
   69       public: ignition::math::Pose3d Pose() 
const;
 
   73       public: 
int Depth() 
const;
 
   82       public: std::map<std::string, rendering::VisualWeakPtr> 
models;
 
   85       public: std::map<std::string, rendering::VisualWeakPtr> 
links;
 
  102       public: std::string GetName() 
const;
 
  106       public: 
void SetName(
const std::string &_name);
 
  110       public: ignition::math::Pose3d Pose() 
const;
 
  114       public: 
void SetPose(
const ignition::math::Pose3d &_pose3d);
 
  118       public: 
void Load(sdf::ElementPtr _sdf);
 
  122       public: ignition::math::Vector3d Scale() 
const;
 
  126       public: 
void SetScale(
const ignition::math::Vector3d &_scale);
 
  136           const msgs::Collision *_msg = 
NULL);
 
  139       public: 
void UpdateConfig();
 
  144       public: 
LinkData *Clone(
const std::string &_newName);
 
  147       private: 
void Update();
 
  151       private: 
bool Apply();
 
  155       private slots: 
void OnAccept();
 
  159       private slots: 
void OnApply();
 
  163       private slots: 
void OnAddVisual(
const std::string &_name);
 
  167       private slots: 
void OnAddCollision(
const std::string &_name);
 
  171       private slots: 
void OnRemoveVisual(
const std::string &_name);
 
  175       private slots: 
void OnRemoveCollision(
const std::string &_name);
 
  178       private: std::vector<event::ConnectionPtr> connections;
 
  181       private: boost::recursive_mutex *updateMutex;
 
  187       private: 
double mass;
 
  190       private: 
double inertiaIxx;
 
  193       private: 
double inertiaIyy;
 
  196       private: 
double inertiaIzz;
 
  199       public: ignition::math::Vector3d 
scale;
 
  205       public: std::map<rendering::VisualPtr, msgs::Visual> 
visuals;
 
  214       public: std::map<rendering::VisualPtr, msgs::Collision> 
collisions;
 
  236       public: 
void Load(sdf::ElementPtr _pluginElem);
 
sdf::ElementPtr modelSDF
SDF representing the model data. 
Definition: ModelData.hh:76
 
Definition: LinkInspector.hh:38
 
std::map< rendering::VisualPtr, msgs::Collision > collisions
Collisions of the link. 
Definition: ModelData.hh:214
 
std::vector< msgs::Visual * > visualUpdateMsgs
Msgs for updating visuals. 
Definition: ModelData.hh:208
 
rendering::VisualPtr modelVisual
Visual representing this model. 
Definition: ModelData.hh:79
 
#define GZ_GUI_VISIBLE
Definition: system.hh:284
 
rendering::VisualPtr linkVisual
Visual representing this link. 
Definition: ModelData.hh:202
 
sdf::ElementPtr linkSDF
SDF representing the link data. 
Definition: ModelData.hh:184
 
ModelPluginInspector * inspector
Inspector for configuring model plugin properties. 
Definition: ModelData.hh:239
 
Definition: ModelData.hh:39
 
LinkInspector * inspector
Inspector for configuring link properties. 
Definition: ModelData.hh:217
 
std::shared_ptr< Visual > VisualPtr
Definition: RenderTypes.hh:112
 
bool nested
Flag set to true if this is a link of a nested model. 
Definition: ModelData.hh:220
 
Helper class to store nested models data. 
Definition: ModelData.hh:57
 
std::map< rendering::VisualPtr, msgs::Visual > visuals
Visuals of the link. 
Definition: ModelData.hh:205
 
std::map< std::string, rendering::VisualWeakPtr > links
Links inside this model. 
Definition: ModelData.hh:85
 
Inspector for model plugin properties. 
Definition: ModelPluginInspector.hh:35
 
std::vector< msgs::Collision * > collisionUpdateMsgs
Msgs for updating collision visuals. 
Definition: ModelData.hh:211
 
sdf::ElementPtr modelPluginSDF
SDF representing the model plugin data. 
Definition: ModelData.hh:242
 
Helper class to store model plugin data. 
Definition: ModelData.hh:224
 
Helper class to store link data. 
Definition: ModelData.hh:90
 
ignition::math::Vector3d scale
Scale of link. 
Definition: ModelData.hh:199
 
#define NULL
Definition: CommonTypes.hh:31
 
std::map< std::string, rendering::VisualWeakPtr > models
Models inside this model. 
Definition: ModelData.hh:82