Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'xs/src/slic3r/GUI/GLGizmo.hpp')
-rw-r--r--xs/src/slic3r/GUI/GLGizmo.hpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/xs/src/slic3r/GUI/GLGizmo.hpp b/xs/src/slic3r/GUI/GLGizmo.hpp
index 0599955ed..a7c688531 100644
--- a/xs/src/slic3r/GUI/GLGizmo.hpp
+++ b/xs/src/slic3r/GUI/GLGizmo.hpp
@@ -262,6 +262,31 @@ private:
double calc_ratio(unsigned int preferred_plane_id, const Linef3& mouse_ray, const Vec3d& center) const;
};
+class GLGizmoMove3D : public GLGizmoBase
+{
+ static const double Offset;
+
+ Vec3d m_position;
+ Vec3d m_starting_drag_position;
+ Vec3d m_starting_box_center;
+
+public:
+ explicit GLGizmoMove3D(GLCanvas3D& parent);
+
+ const Vec3d& get_position() const { return m_position; }
+ void set_position(const Vec3d& position) { m_position = position; }
+
+protected:
+ virtual bool on_init();
+ virtual void on_start_dragging(const BoundingBoxf3& box);
+ virtual void on_update(const Linef3& mouse_ray);
+ virtual void on_render(const BoundingBoxf3& box) const;
+ virtual void on_render_for_picking(const BoundingBoxf3& box) const;
+
+private:
+ double calc_displacement(unsigned int preferred_plane_id, const Linef3& mouse_ray) const;
+};
+
class GLGizmoFlatten : public GLGizmoBase
{
// This gizmo does not use grabbers. The m_hover_id relates to polygon managed by the class itself.