27 std::string
get_type_name()
const override {
return "transformation_gizmo"; }
33 Mode get_mode()
const;
35 void set_mode(Mode mode);
37 vec3 get_scale()
const;
39 void set_scale(
const vec3& scale);
41 std::function<void(GizmoAction, Mode)> on_change;
44 void create_geometry()
override;
60 const float _center_radius = 0.15f;
61 const float _axis_radius = 0.01f;
62 const float _handle_size = 0.1f;
63 const float _plane_size = 0.2f;
64 const size_t _ring_segment_count = 32;
66 std::vector<vec2> _ring_points;
68 vec3 _scale = { 1.0f };
70 Mode _mode = Mode::kTranslation;
72 Mode _interaction_mode = Mode::kTranslation;
73 vec3 _drag_start_position = { 0.0f };
74 quat _drag_start_rotation;
75 vec3 _drag_start_scale = { 1.0f };
base class for all drawables, which is independent of the used rendering API.