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