17 #ifndef GAZEBO_GUI_MODELMANIPULATOR_HH_
18 #define GAZEBO_GUI_MODELMANIPULATOR_HH_
22 #include <ignition/math/Vector2.hh>
23 #include <ignition/math/Vector3.hh>
24 #include <ignition/math/Pose3.hh>
41 class ModelManipulatorPrivate;
62 public:
void Detach();
66 public:
void SetManipulationMode(
const std::string &_mode);
96 const ignition::math::Vector3d &_axis,
97 const bool _local =
false);
104 const ignition::math::Vector3d &_axis,
105 const bool _local =
false);
112 const ignition::math::Vector3d &_axis,
113 const bool _local =
false);
123 public:
static ignition::math::Vector3d SnapPoint(
124 const ignition::math::Vector3d &_point,
125 const double _interval = 1.0,
const double _sensitivity = 0.4);
132 public:
static ignition::math::Vector3d MousePositionOnPlane(
144 public:
static ignition::math::Vector3d MouseMoveDistance(
146 const ignition::math::Vector2i &_start,
147 const ignition::math::Vector2i &_end,
148 const ignition::math::Pose3d &_pose,
149 const ignition::math::Vector3d &_axis,
const bool _local);
156 private: ignition::math::Vector3d MouseMoveDistance(
157 const ignition::math::Pose3d &_pose,
158 const ignition::math::Vector3d &_axis,
const bool _local)
const;
178 private: ignition::math::Vector3d UpdateScale(
179 const ignition::math::Vector3d &_axis,
180 const ignition::math::Vector3d &_scale,
const std::string &_geom);
187 private: std::unique_ptr<ModelManipulatorPrivate> dataPtr;