18 #ifndef _GAZEBO_GUI_JOINTMAKER_HH_    19 #define _GAZEBO_GUI_JOINTMAKER_HH_    26 #include <ignition/math/Pose3.hh>    27 #include <ignition/math/Vector3.hh>    48   class recursive_mutex;
    70     class JointMakerPrivate;
   112       public: 
void Reset();
   115       public: 
void EnableEventHandlers();
   118       public: 
void DisableEventHandlers();
   122       public: 
void AddJoint(
const std::string &_type);
   126       public: 
void AddJoint(
const JointType _type);
   138       public: std::string CreateHotSpot(
JointData *_joint);
   141       public: 
void Update();
   146       public: 
void RemoveJoint(
const std::string &_jointName);
   150       public: 
void RemoveJointsByLink(
const std::string &_linkName);
   156       public: std::vector<JointData *> JointDataByLink(
   157           const std::string &_linkName) 
const;
   160       public: 
void GenerateSDF();
   164       public: sdf::ElementPtr SDF() 
const;
   169       public: 
static unsigned int JointAxisCount(
   175       public: 
static std::string TypeAsString(
   186       public: 
static std::string JointMaterial(
const std::string &_type);
   199       public: 
unsigned int JointCount();
   205       public: 
void CreateJointFromSDF(sdf::ElementPtr _jointElem,
   206           const std::string &_modelName = 
"");
   213       public: 
void AddScopedLinkName(
const std::string &_name);
   217       public slots: 
void ShowJoints(
const bool _show);
   222       public: 
void SetSelected(
const std::string &_name, 
const bool selected);
   228           const bool selected);
   232       public: std::map<std::string, std::string> LinkList() 
const;
   237       public slots: 
void OnType(
const int _typeInt);
   243       public slots: 
void SetAxis(
const std::string &_axis,
   244           const ignition::math::Vector3d &_value);
   249       public: 
void SetJointPose(
const ignition::math::Pose3d &_pose);
   255       public: 
void SetParentLink(
const std::string &_name);
   261       public: 
void SetChildLink(
const std::string &_name);
   270       public: 
void SetLinksRelativePose(
   271           const ignition::math::Pose3d &_pose, 
const bool _resetAll,
   272           const int _resetAxis = -1);
   280       public: 
void AlignLinks(
const bool _childToParent,
   281           const std::string &_axis, 
const std::string &_mode,
   282           const bool _reverse);
   285       public: 
void FinalizeCreation();
   315       private: ignition::math::Vector3d LinkWorldCentroid(
   320       private: 
void OpenInspector(
const std::string &_name);
   325       private: std::string ScopedLinkName(
const std::string &_name);
   329       private: 
void ShowContextMenu(
const std::string &_joint);
   332       private: 
void DeselectAll();
   337       private: 
void OnSetSelectedEntity(
const std::string &_name,
   338           const std::string &_mode);
   344       private: 
void OnSetSelectedJoint(
const std::string &_name,
   345           const bool _selected);
   349       private: 
void OnLinkInserted(
const std::string &_linkName);
   353       private: 
void OnLinkRemoved(
const std::string &_linkName);
   359       private: 
JointData *CreateJointLine(
const std::string &_name,
   366           const std::string &_name);
   388       Q_SIGNALS: 
void JointAdded();
   392       Q_SIGNALS: 
void EmitLinkInserted(
const std::string &_linkId);
   396       Q_SIGNALS: 
void EmitLinkRemoved(
const std::string &_linkId);
   399       private slots: 
void OnOpenInspector();
   403       private slots: 
void OnDelete();
   406       public: 
static std::map<JointMaker::JointType, std::string> 
jointTypes;
   412       public: 
static std::map<JointMaker::JointType, std::string>
   417       private: std::unique_ptr<JointMakerPrivate> dataPtr;
   429       public: 
void OpenInspector();
   433       public: 
void Update();
   436       public: 
void UpdateMsg();
   478       public: std::vector<ignition::math::Vector3d> 
axes;
   490       private slots: 
void OnOpenInspector();
   494       private slots: 
void OnApply();
 Class for drawing lines that can change. 
Definition: DynamicLines.hh:43
 
Generic description of a mouse event. 
Definition: MouseEvent.hh:35
 
Ball joint. 
Definition: JointMaker.hh:100
 
Definition: JointMaker.hh:46
 
Forward declarations for the common classes. 
Definition: Animation.hh:33
 
none 
Definition: JointMaker.hh:86
 
rendering::VisualPtr parent
Parent visual the joint is connected to. 
Definition: JointMaker.hh:451
 
static std::vector< ignition::math::Vector3d > unitVectors
Constant vector containing [UnitX, UnitY, UnitZ]. 
Definition: JointMaker.hh:409
 
Screw joint. 
Definition: JointMaker.hh:96
 
Hinge joint. 
Definition: JointMaker.hh:92
 
Fixed joint. 
Definition: JointMaker.hh:88
 
GAZEBO_VISIBLE msgs::Joint::Type ConvertJointType(const std::string &_str)
Convert a string to a msgs::Joint::Type enum. 
 
Generic description of a keyboard event. 
Definition: KeyEvent.hh:32
 
boost::shared_ptr< Joint > JointPtr
Definition: PhysicsTypes.hh:108
 
static std::map< JointMaker::JointType, std::string > jointMaterials
A map of joint type to its corresponding material. 
Definition: JointMaker.hh:413
 
msgs::JointPtr jointMsg
Msg containing joint data. 
Definition: JointMaker.hh:484
 
Slider joint. 
Definition: JointMaker.hh:90
 
ignition::math::Pose3d parentPose
Definition: JointMaker.hh:458
 
Hinge2 joint. 
Definition: JointMaker.hh:94
 
Ogre::BillboardSet * handles
Visual handle used to represent joint parent. 
Definition: JointMaker.hh:472
 
Handles the creation of joints in the model editor. 
Definition: JointMaker.hh:77
 
JointInspector * inspector
Inspector for configuring joint properties. 
Definition: JointMaker.hh:487
 
Universal joint. 
Definition: JointMaker.hh:98
 
rendering::DynamicLines * line
Visual line used to represent joint connecting parent and child. 
Definition: JointMaker.hh:469
 
JointMaker::JointType type
Type of joint. 
Definition: JointMaker.hh:475
 
rendering::JointVisualPtr jointVisual
Joint visual. 
Definition: JointMaker.hh:445
 
std::shared_ptr< JointVisual > JointVisualPtr
Definition: RenderTypes.hh:140
 
A class to inspect and modify joints. 
Definition: JointInspector.hh:42
 
std::vector< ignition::math::Vector3d > axes
Last known axes values. 
Definition: JointMaker.hh:478
 
ignition::math::Pose3d childPose
Definition: JointMaker.hh:462
 
Definition: JointMaker.hh:41
 
std::string name
Name of the joint. 
Definition: JointMaker.hh:439
 
std::shared_ptr< Visual > VisualPtr
Definition: RenderTypes.hh:112
 
rendering::VisualPtr child
Child visual the joint is connected to. 
Definition: JointMaker.hh:454
 
rendering::VisualPtr hotspot
Visual of the hotspot 
Definition: JointMaker.hh:448
 
static std::map< JointMaker::JointType, std::string > jointTypes
A map of joint type to its string value. 
Definition: JointMaker.hh:406
 
rendering::VisualPtr visual
Visual of the dynamic line. 
Definition: JointMaker.hh:442
 
bool dirty
True if the joint needs update. 
Definition: JointMaker.hh:481
 
ignition::math::Vector3d childScale
Definition: JointMaker.hh:466
 
JointType
Definition: JointMaker.hh:83
 
Helper class to store joint data. 
Definition: JointMaker.hh:424