OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::GLGizmoRotate Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp>

Inheritance diagram for Slic3r::GUI::GLGizmoRotate:
Collaboration diagram for Slic3r::GUI::GLGizmoRotate:

Classes

struct  GrabberConnection

Public Types

enum  Axis : unsigned char { X =0 , Y =1 , Z =2 }
enum class  EGrabberExtension {
  None = 0 , PosX = 1 << 0 , NegX = 1 << 1 , PosY = 1 << 2 ,
  NegY = 1 << 3 , PosZ = 1 << 4 , NegZ = 1 << 5
}
enum  EState { Off , On , Num_States }

Public Member Functions

 GLGizmoRotate (GLCanvas3D &parent, Axis axis)
virtual ~GLGizmoRotate ()=default
double get_angle () const
void set_angle (double angle)
std::string get_tooltip () const override
 Mouse tooltip text.
void set_group_id (int group_id)
void set_force_local_coordinate (bool use)
void start_dragging ()
void stop_dragging ()
void enable_grabber ()
void disable_grabber ()
void set_highlight_color (const ColorRGBA &color)
bool on_mouse (const wxMouseEvent &mouse_event) override
 Postpone to Grabber for move Detect move of object by dragging.
void dragging (const UpdateData &data)
bool init ()
void load (cereal::BinaryInputArchive &ar)
void save (cereal::BinaryOutputArchive &ar) const
std::string get_name (bool include_shortcut=true) const
EState get_state () const
void set_state (EState state)
std::optional< Shortcut > shortcut () const
const std::string & get_icon_filename () const
void set_icon_filename (const std::string &filename)
bool is_activable () const
bool is_selectable () const
CommonGizmosDataID get_requirements () const
virtual bool wants_enter_leave_snapshots () const
virtual bool render_follows_cursor () const
virtual std::string get_gizmo_entering_text () const
virtual std::string get_gizmo_leaving_text () const
virtual std::string get_action_snapshot_name () const
void set_common_data_pool (CommonGizmosDataPool *ptr)
virtual bool apply_clipping_plane ()
unsigned int get_sprite_id () const
int get_hover_id () const
void set_hover_id (int id)
bool is_dragging () const
bool update_items_state ()
void render ()
void render_input_window (float x, float y, float bottom_limit)
virtual void on_change_color_mode (bool is_dark)
int get_count ()
std::string get_gizmo_name ()
virtual void data_changed (bool is_serializing)
 Is called when data (Selection) is changed.
void register_raycasters_for_picking ()
void unregister_raycasters_for_picking ()
virtual bool is_in_editing_mode () const
virtual bool is_selection_rectangle_dragging () const

Static Public Member Functions

static void update_render_colors ()
static void load_render_colors ()

Static Public Attributes

static const unsigned int BASE_ID = 255 * 255 * 254
static const unsigned int GRABBER_ELEMENTS_MAX_COUNT = 7
static float INV_ZOOM = 1.0f
static ColorRGBA DEFAULT_BASE_COLOR = { 0.625f, 0.625f, 0.625f, 1.0f }
static ColorRGBA DEFAULT_DRAG_COLOR = { 1.0f, 1.0f, 1.0f, 1.0f }
static ColorRGBA DEFAULT_HIGHLIGHT_COLOR = {1.0f, 0.38f, 0.0f, 1.0f}
static std::array< ColorRGBA, 3 > AXES_COLOR
static std::array< ColorRGBA, 3 > AXES_HOVER_COLOR
static ColorRGBA CONSTRAINED_COLOR = {0.5f, 0.5f, 0.5f, 1.0f}
static ColorRGBA FLATTEN_COLOR = {0.96f, 0.93f, 0.93f, 0.5f}
static ColorRGBA FLATTEN_HOVER_COLOR = {1.0f, 1.0f, 1.0f, 0.75f}
static ColorRGBA GRABBER_NORMAL_COL = {1.0f, 1.0f, 1.0f, 1.0f}
static ColorRGBA GRABBER_HOVER_COL = {0.863f, 0.125f, 0.063f, 1.0f}
static ColorRGBA GRABBER_UNIFORM_COL = {0, 1.0, 1.0, 1.0f}
static ColorRGBA GRABBER_UNIFORM_HOVER_COL = {0, 0.7, 0.7, 1.0f}

Protected Member Functions

bool on_init () override
std::string on_get_name () const override
void on_start_dragging () override
void on_dragging (const UpdateData &data) override
void on_render () override
bool render_combo (const std::string &label, const std::vector< std::string > &lines, int &selection_idx, float label_width, float item_width)
void render_cross_mark (const Vec3f &target, bool is_single=false)
virtual void on_load (cereal::BinaryInputArchive &ar)
virtual void on_save (cereal::BinaryOutputArchive &ar) const
virtual void on_set_state ()
virtual void on_set_hover_id ()
virtual bool on_is_activable () const
virtual bool on_is_selectable () const
virtual CommonGizmosDataID on_get_requirements () const
virtual void on_enable_grabber (unsigned int id)
virtual void on_disable_grabber (unsigned int id)
virtual void on_stop_dragging ()
virtual void on_render_input_window (float x, float y, float bottom_limit)
bool GizmoImguiBegin (const std::string &name, int flags)
void GizmoImguiEnd ()
void GizmoImguiSetNextWIndowPos (float &x, float y, int flag, float pivot_x=0.0f, float pivot_y=0.0f)
void GizmoImguiSetNextWIndowPos (float &x, float y, float w, float h, int flag, float pivot_x=0.0f, float pivot_y=0.0f)
void register_grabbers_for_picking ()
void unregister_grabbers_for_picking ()
virtual void on_register_raycasters_for_picking ()
virtual void on_unregister_raycasters_for_picking ()
void render_grabbers (const BoundingBoxf3 &box) const
void render_grabbers (float size) const
void render_grabbers (size_t first, size_t last, float size, bool force_hover) const
std::string format (float value, unsigned int decimals) const
void set_dirty ()
bool use_grabbers (const wxMouseEvent &mouse_event)
 function which Set up m_dragging and call functions on_start_dragging / on_dragging / on_stop_dragging
void do_stop_dragging (bool perform_mouse_cleanup)

Protected Attributes

GLCanvas3D & m_parent
int m_group_id
EState m_state
std::optional< Shortcut > m_shortcut
std::string m_icon_filename
unsigned int m_sprite_id
int m_hover_id { -1 }
bool m_dragging { false }
std::vector< Grabber > m_grabbers
ImGuiWrapper * m_imgui
bool m_first_input_window_render { true }
CommonGizmosDataPool * m_c { nullptr }
bool m_is_dark_mode = false
float last_input_window_width = 0

Private Member Functions

void render_circle (const ColorRGBA &color, bool radius_changed)
void render_scale (const ColorRGBA &color, bool radius_changed)
void render_snap_radii (const ColorRGBA &color, bool radius_changed)
void render_reference_radius (const ColorRGBA &color, bool radius_changed)
void render_angle_arc (const ColorRGBA &color, bool radius_changed)
void render_grabber_connection (const ColorRGBA &color, bool radius_changed)
void render_grabber (const BoundingBoxf3 &box)
Transform3d local_transform (const Selection &selection) const
Vec3d mouse_position_in_local_plane (const Linef3 &mouse_ray) const
void init_data_from_selection (const Selection &selection)

Private Attributes

Axis m_axis
double m_angle { 0.0 }
Vec3d m_center { Vec3d::Zero() }
float m_radius { 0.0f }
float m_snap_coarse_in_radius { 0.0f }
float m_snap_coarse_out_radius { 0.0f }
float m_snap_fine_in_radius { 0.0f }
float m_snap_fine_out_radius { 0.0f }
BoundingBoxf3 m_bounding_box
Transform3d m_orient_matrix { Transform3d::Identity() }
GLModel m_circle
GLModel m_scale
GLModel m_snap_radii
GLModel m_reference_radius
GLModel m_angle_arc
GrabberConnection m_grabber_connection
float m_old_radius { 0.0f }
float m_old_hover_radius { 0.0f }
float m_old_angle { 0.0f }
bool m_force_local_coordinate { false }
ColorRGBA m_drag_color
ColorRGBA m_highlight_color
bool m_dirty { false }
int count = 0

Static Private Attributes

static const float Offset = 5.0f
static const unsigned int AngleResolution = 64
static const unsigned int ScaleStepsCount = 72
static const float ScaleStepRad = 2.0f * float(PI) / GLGizmoRotate::ScaleStepsCount
static const unsigned int ScaleLongEvery = 2
static const float ScaleLongTooth = 0.1f
static const unsigned int SnapRegionsCount = 8
static const float GrabberOffset = 0.15f

Detailed Description


Class Documentation

◆ Slic3r::GUI::GLGizmoRotate::GrabberConnection

struct Slic3r::GUI::GLGizmoRotate::GrabberConnection
Collaboration diagram for Slic3r::GUI::GLGizmoRotate::GrabberConnection:
Class Members
GLModel model
Vec3d old_center { Vec3d::Zero() }

Member Enumeration Documentation

◆ Axis

enum Slic3r::GUI::GLGizmoRotate::Axis : unsigned char
Enumerator
X 
Y 
Z 
33 {
34 X=0,
35 Y=1,
36 Z=2
37 };
@ Y
Definition GLGizmoRotate.hpp:35
@ X
Definition GLGizmoRotate.hpp:34
@ Z
Definition GLGizmoRotate.hpp:36

◆ EGrabberExtension

enum class Slic3r::GUI::GLGizmoBase::EGrabberExtension
stronginherited
Enumerator
None 
PosX 
NegX 
PosY 
NegY 
PosZ 
NegZ 
74 {
75 None = 0,
76 PosX = 1 << 0,
77 NegX = 1 << 1,
78 PosY = 1 << 2,
79 NegY = 1 << 3,
80 PosZ = 1 << 4,
81 NegZ = 1 << 5,
82 };
@ PosX
Definition PrintConfig.hpp:350
@ NegY
Definition PrintConfig.hpp:351
@ NegX
Definition PrintConfig.hpp:351
@ PosY
Definition PrintConfig.hpp:350
@ NegZ
Definition PrintConfig.hpp:351
@ PosZ
Definition PrintConfig.hpp:350
@ None
Definition SketchEngine.hpp:180

◆ EState

Enumerator
Off 
On 
Num_States 
126 {
127 Off,
128 On,
130 };
@ On
Definition GLGizmoBase.hpp:128
@ Num_States
Definition GLGizmoBase.hpp:129
@ Off
Definition GLGizmoBase.hpp:127

Constructor & Destructor Documentation

◆ GLGizmoRotate()

Slic3r::GUI::GLGizmoRotate::GLGizmoRotate ( GLCanvas3D & parent,
GLGizmoRotate::Axis axis )
59 : GLGizmoBase(parent, "", -1)
60 , m_axis(axis)
61 , m_angle(0.0)
62 , m_center(0.0, 0.0, 0.0)
63 , m_radius(0.0f)
70{
71 m_group_id = static_cast<int>(axis);
72}
static ColorRGBA DEFAULT_DRAG_COLOR
Definition GLGizmoBase.hpp:58
GLGizmoBase(GLCanvas3D &parent, const std::string &icon_filename, unsigned int sprite_id)
Definition GLGizmoBase.cpp:327
static ColorRGBA DEFAULT_HIGHLIGHT_COLOR
Definition GLGizmoBase.hpp:59
int m_group_id
Definition GLGizmoBase.hpp:145
Axis m_axis
Definition GLGizmoRotate.hpp:40
Vec3d m_center
Definition GLGizmoRotate.hpp:42
ColorRGBA m_highlight_color
Definition GLGizmoRotate.hpp:70
ColorRGBA m_drag_color
Definition GLGizmoRotate.hpp:69
float m_snap_coarse_out_radius
Definition GLGizmoRotate.hpp:45
float m_radius
Definition GLGizmoRotate.hpp:43
float m_snap_coarse_in_radius
Definition GLGizmoRotate.hpp:44
float m_snap_fine_out_radius
Definition GLGizmoRotate.hpp:47
double m_angle
Definition GLGizmoRotate.hpp:41
float m_snap_fine_in_radius
Definition GLGizmoRotate.hpp:46

References Slic3r::GUI::GLGizmoBase::GLGizmoBase(), Slic3r::GUI::GLGizmoBase::DEFAULT_DRAG_COLOR, Slic3r::GUI::GLGizmoBase::DEFAULT_HIGHLIGHT_COLOR, m_angle, m_axis, m_center, m_drag_color, Slic3r::GUI::GLGizmoBase::m_group_id, m_highlight_color, m_radius, m_snap_coarse_in_radius, m_snap_coarse_out_radius, m_snap_fine_in_radius, and m_snap_fine_out_radius.

Here is the call graph for this function:

◆ ~GLGizmoRotate()

virtual Slic3r::GUI::GLGizmoRotate::~GLGizmoRotate ( )
virtualdefault

Member Function Documentation

◆ apply_clipping_plane()

virtual bool Slic3r::GUI::GLGizmoBase::apply_clipping_plane ( )
inlinevirtualinherited
195{ return true; }

Referenced by Slic3r::GUI::GLCanvas3D::_render_objects(), and Slic3r::GUI::GLCanvas3D::get_raycaster_clipping_plane().

Here is the caller graph for this function:

◆ data_changed()

◆ disable_grabber()

void Slic3r::GUI::GLGizmoRotate::disable_grabber ( )
119{ m_grabbers[0].enabled = false; }
std::vector< Grabber > m_grabbers
Definition GLGizmoBase.hpp:152

References Slic3r::GUI::GLGizmoBase::m_grabbers.

◆ do_stop_dragging()

void Slic3r::GUI::GLGizmoBase::do_stop_dragging ( bool perform_mouse_cleanup)
protectedinherited
494{
495 for (auto& grabber : m_grabbers) grabber.dragging = false;
496 m_dragging = false;
497
498 // NOTE: This should be part of GLCanvas3D
499 // Reset hover_id when leave window
500 if (perform_mouse_cleanup) m_parent.mouse_up_cleanup();
501
503
504 // There is prediction that after draggign, data are changed
505 // Data are updated twice also by canvas3D::reload_scene.
506 // Should be fixed.
507 m_parent.get_gizmos_manager().update_data();
508
509 wxGetApp().obj_manipul()->set_dirty();
510
511 // Let the plater know that the dragging finished, so a delayed
512 // refresh of the scene with the background processing data should
513 // be performed.
514 m_parent.post_event(SimpleEvent(EVT_GLCANVAS_MOUSE_DRAGGING_FINISHED));
515 // updates camera target constraints
516 m_parent.refresh_camera_scene_box();
517}
GLCanvas3D & m_parent
Definition GLGizmoBase.hpp:143
bool m_dragging
Definition GLGizmoBase.hpp:151
virtual void on_stop_dragging()
Definition GLGizmoBase.hpp:254

References m_dragging, m_grabbers, m_parent, and on_stop_dragging().

Referenced by use_grabbers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dragging()

void Slic3r::GUI::GLGizmoRotate::dragging ( const UpdateData & data)
104{ on_dragging(data); }
void on_dragging(const UpdateData &data) override
Definition GLGizmoRotate.cpp:133

References on_dragging().

Here is the call graph for this function:

◆ enable_grabber()

void Slic3r::GUI::GLGizmoRotate::enable_grabber ( )
118{ m_grabbers[0].enabled = true; }

References Slic3r::GUI::GLGizmoBase::m_grabbers.

◆ format()

std::string Slic3r::GUI::GLGizmoBase::format ( float value,
unsigned int decimals ) const
protectedinherited

◆ get_action_snapshot_name()

std::string Slic3r::GUI::GLGizmoBase::get_action_snapshot_name ( ) const
virtualinherited

Reimplemented in Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoEmboss, Slic3r::GUI::GLGizmoFdmSupports, Slic3r::GUI::GLGizmoFuzzySkin, Slic3r::GUI::GLGizmoMmuSegmentation, Slic3r::GUI::GLGizmoSeam, Slic3r::GUI::GLGizmoSVG, and Slic3r::GUI::GLGizmoTextureDisplacement.

339{
340 return "Gizmo action";
341}

Referenced by Slic3r::GUI::Plater::priv::take_snapshot().

Here is the caller graph for this function:

◆ get_angle()

double Slic3r::GUI::GLGizmoRotate::get_angle ( ) const
inline
76{ return m_angle; }

References m_angle.

◆ get_count()

int Slic3r::GUI::GLGizmoBase::get_count ( )
inlineinherited
224{ return ++count; }
int count
Definition GLGizmoBase.hpp:294

References count.

◆ get_gizmo_entering_text()

virtual std::string Slic3r::GUI::GLGizmoBase::get_gizmo_entering_text ( ) const
inlinevirtualinherited

◆ get_gizmo_leaving_text()

virtual std::string Slic3r::GUI::GLGizmoBase::get_gizmo_leaving_text ( ) const
inlinevirtualinherited

◆ get_gizmo_name()

std::string Slic3r::GUI::GLGizmoBase::get_gizmo_name ( )
inlineinherited
225{ return on_get_name(); }
virtual std::string on_get_name() const =0

References on_get_name().

Here is the call graph for this function:

◆ get_hover_id()

int Slic3r::GUI::GLGizmoBase::get_hover_id ( ) const
inlineinherited
206{ return m_hover_id; }
int m_hover_id
Definition GLGizmoBase.hpp:150

References m_hover_id.

Referenced by Slic3r::GUI::GLCanvas3D::_scene_cache_key(), Slic3r::GUI::GLGizmosManager::grabber_contains_mouse(), Slic3r::GUI::GLGizmoBrimEars::on_mouse(), Slic3r::GUI::GLGizmoCut3D::on_mouse(), Slic3r::GUI::GLGizmoMeshBoolean::on_mouse(), and Slic3r::GUI::GLGizmoPainterBase::on_mouse().

Here is the caller graph for this function:

◆ get_icon_filename()

const std::string & Slic3r::GUI::GLGizmoBase::get_icon_filename ( ) const
inlineinherited
180{ return m_icon_filename; }
std::string m_icon_filename
Definition GLGizmoBase.hpp:148

References m_icon_filename.

◆ get_name()

std::string Slic3r::GUI::GLGizmoBase::get_name ( bool include_shortcut = true) const
inherited
545{
546 const std::string name = on_get_name();
547 return include_shortcut && m_shortcut.has_value() ? wxGetApp().shortcuts().with_key(name, *m_shortcut) : name;
548}
std::optional< Shortcut > m_shortcut
Definition GLGizmoBase.hpp:147

References m_shortcut, and on_get_name().

Referenced by Slic3r::GUI::GLGizmoAssembly::on_render_input_window(), Slic3r::GUI::GLGizmoBrimEars::on_render_input_window(), Slic3r::GUI::GLGizmoCut3D::on_render_input_window(), Slic3r::GUI::GLGizmoEmboss::on_render_input_window(), Slic3r::GUI::GLGizmoFdmSupports::on_render_input_window(), Slic3r::GUI::GLGizmoFuzzySkin::on_render_input_window(), Slic3r::GUI::GLGizmoMeasure::on_render_input_window(), Slic3r::GUI::GLGizmoMmuSegmentation::on_render_input_window(), Slic3r::GUI::GLGizmoSeam::on_render_input_window(), Slic3r::GUI::GLGizmoTextureDisplacement::on_render_input_window(), and Slic3r::GUI::GLGizmosManager::update_hover_state().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_requirements()

CommonGizmosDataID Slic3r::GUI::GLGizmoBase::get_requirements ( ) const
inlineinherited
186{ return on_get_requirements(); }
virtual CommonGizmosDataID on_get_requirements() const
Definition GLGizmoBase.hpp:248

References on_get_requirements().

Here is the call graph for this function:

◆ get_sprite_id()

unsigned int Slic3r::GUI::GLGizmoBase::get_sprite_id ( ) const
inlineinherited
204{ return m_sprite_id; }
unsigned int m_sprite_id
Definition GLGizmoBase.hpp:149

References m_sprite_id.

Referenced by Slic3r::GUI::GLGizmosManager::do_render_overlay().

Here is the caller graph for this function:

◆ get_state()

EState Slic3r::GUI::GLGizmoBase::get_state ( ) const
inlineinherited

◆ get_tooltip()

std::string Slic3r::GUI::GLGizmoRotate::get_tooltip ( ) const
overridevirtual

Mouse tooltip text.

Returns
Text to be visible in mouse tooltip

Reimplemented from Slic3r::GUI::GLGizmoBase.

88{
89 std::string axis;
90 switch (m_axis)
91 {
92 case X: { axis = "X"; break; }
93 case Y: { axis = "Y"; break; }
94 case Z: { axis = "Z"; break; }
95 }
96 return (m_hover_id == 0 || m_grabbers.front().dragging) ? axis + ": " + format(float(Geometry::rad2deg(m_angle)), 2) : "";
97}
std::string format(float value, unsigned int decimals) const
Definition GLGizmoBase.cpp:519
T rad2deg(T angle)
Definition Geometry.hpp:310

References Slic3r::GUI::GLGizmoBase::format(), m_angle, m_axis, Slic3r::GUI::GLGizmoBase::m_grabbers, Slic3r::GUI::GLGizmoBase::m_hover_id, Slic3r::Geometry::rad2deg(), X, Y, and Z.

Here is the call graph for this function:

◆ GizmoImguiBegin()

◆ GizmoImguiEnd()

◆ GizmoImguiSetNextWIndowPos() [1/2]

void Slic3r::GUI::GLGizmoBase::GizmoImguiSetNextWIndowPos ( float & x,
float y,
float w,
float h,
int flag,
float pivot_x = 0.0f,
float pivot_y = 0.0f )
protectedinherited
384{
385 if (abs(w) > 0.01f) {
386 if (x + w > m_parent.get_canvas_size().get_width()) {
387 if (w > m_parent.get_canvas_size().get_width()) {
388 x = 0;
389 } else {
390 x = m_parent.get_canvas_size().get_width() - w;
391 }
392 }
393 }
394
395 m_imgui->set_next_window_pos(x, y, flag, pivot_x, pivot_y);
396}

References m_imgui, and m_parent.

◆ GizmoImguiSetNextWIndowPos() [2/2]

void Slic3r::GUI::GLGizmoBase::GizmoImguiSetNextWIndowPos ( float & x,
float y,
int flag,
float pivot_x = 0.0f,
float pivot_y = 0.0f )
protectedinherited

◆ init()

bool Slic3r::GUI::GLGizmoBase::init ( )
inlineinherited
168{ return on_init(); }
virtual bool on_init()=0

References on_init().

Here is the call graph for this function:

◆ init_data_from_selection()

void Slic3r::GUI::GLGizmoRotate::init_data_from_selection ( const Selection & selection)
private
236{
237 const auto [box, box_trafo] = m_force_local_coordinate ?
238 selection.get_bounding_box_in_reference_system(ECoordinatesType::Local) : selection.get_bounding_box_in_current_reference_system();
239 m_bounding_box = box;
240 const std::pair<Vec3d, double> sphere = selection.get_bounding_sphere();
241 m_center = sphere.first;
242 m_radius = Offset + sphere.second;
243 m_orient_matrix = box_trafo;
244 m_orient_matrix.translation() = m_center;
249}
bool m_force_local_coordinate
Definition GLGizmoRotate.hpp:67
static const float Offset
Definition GLGizmoRotate.hpp:22
static const float ScaleLongTooth
Definition GLGizmoRotate.hpp:27
BoundingBoxf3 m_bounding_box
Definition GLGizmoRotate.hpp:48
Transform3d m_orient_matrix
Definition GLGizmoRotate.hpp:49
@ Local
Definition GUI_Geometry.hpp:11
indexed_triangle_set sphere(double rho, Portion portion, double fa)
Definition SupportTreeMesher.cpp:14

References Slic3r::GUI::Selection::get_bounding_box_in_current_reference_system(), Slic3r::GUI::Selection::get_bounding_box_in_reference_system(), Slic3r::GUI::Selection::get_bounding_sphere(), Slic3r::GUI::Local, m_bounding_box, m_center, m_force_local_coordinate, m_orient_matrix, m_radius, m_snap_coarse_in_radius, m_snap_coarse_out_radius, m_snap_fine_in_radius, m_snap_fine_out_radius, Offset, and ScaleLongTooth.

Referenced by on_render(), and on_start_dragging().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_activable()

bool Slic3r::GUI::GLGizmoBase::is_activable ( ) const
inlineinherited
184{ return on_is_activable(); }
virtual bool on_is_activable() const
Definition GLGizmoBase.hpp:246

References on_is_activable().

Referenced by Slic3r::GUI::GLGizmosManager::activate_gizmo(), Slic3r::GUI::GLGizmosManager::do_render_overlay(), Slic3r::GUI::GLGizmoEmboss::init_create(), and Slic3r::GUI::GLGizmosManager::update_hover_state().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_dragging()

bool Slic3r::GUI::GLGizmoBase::is_dragging ( ) const
inlineinherited
209{ return m_dragging; }

References m_dragging.

Referenced by Slic3r::GUI::GLGizmoCut3D::gizmo_event(), Slic3r::GUI::GLGizmoEmboss::on_mouse_for_translate(), and Slic3r::GUI::GLGizmoSVG::on_mouse_for_translate().

Here is the caller graph for this function:

◆ is_in_editing_mode()

virtual bool Slic3r::GUI::GLGizmoBase::is_in_editing_mode ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoCut3D.

235{ return false; }

Referenced by Slic3r::GUI::GLGizmosManager::on_key().

Here is the caller graph for this function:

◆ is_selectable()

bool Slic3r::GUI::GLGizmoBase::is_selectable ( ) const
inlineinherited
185{ return on_is_selectable(); }
virtual bool on_is_selectable() const
Definition GLGizmoBase.hpp:247

References on_is_selectable().

Here is the call graph for this function:

◆ is_selection_rectangle_dragging()

virtual bool Slic3r::GUI::GLGizmoBase::is_selection_rectangle_dragging ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, and Slic3r::GUI::GLGizmoCut3D.

236{ return false; }

◆ load()

void Slic3r::GUI::GLGizmoBase::load ( cereal::BinaryInputArchive & ar)
inlineinherited
170{ m_state = On; on_load(ar); }
virtual void on_load(cereal::BinaryInputArchive &ar)
Definition GLGizmoBase.hpp:241

References m_state, On, and on_load().

Here is the call graph for this function:

◆ load_render_colors()

void Slic3r::GUI::GLGizmoBase::load_render_colors ( )
staticinherited
93{
99}
@ RenderCol_Grabber_Y
Definition GUI_Colors.hpp:27
@ RenderCol_Flatten_Plane
Definition GUI_Colors.hpp:29
@ RenderCol_Grabber_X
Definition GUI_Colors.hpp:26
@ RenderCol_Grabber_Z
Definition GUI_Colors.hpp:28
@ RenderCol_Flatten_Plane_Hover
Definition GUI_Colors.hpp:30
static ColorRGBA FLATTEN_COLOR
Definition GLGizmoBase.hpp:63
static std::array< ColorRGBA, 3 > AXES_COLOR
Definition GLGizmoBase.hpp:60
static ColorRGBA FLATTEN_HOVER_COLOR
Definition GLGizmoBase.hpp:64
static ImVec4 to_ImVec4(const ColorRGB &color)
Definition ImGuiWrapper.cpp:1053
static ImVec4 colors[RenderCol_Count]
Definition GUI_Colors.hpp:40

References AXES_COLOR, Slic3r::RenderColor::colors, FLATTEN_COLOR, FLATTEN_HOVER_COLOR, RenderCol_Flatten_Plane, RenderCol_Flatten_Plane_Hover, RenderCol_Grabber_X, RenderCol_Grabber_Y, RenderCol_Grabber_Z, and Slic3r::GUI::ImGuiWrapper::to_ImVec4().

Referenced by Slic3r::GUI::GLCanvas3D::init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ local_transform()

Transform3d Slic3r::GUI::GLGizmoRotate::local_transform ( const Selection & selection) const
private
471{
472 Transform3d ret;
473
474 switch (m_axis)
475 {
476 case X:
477 {
478 ret = Geometry::rotation_transform(0.5 * PI * Vec3d::UnitY()) * Geometry::rotation_transform(-0.5 * PI * Vec3d::UnitZ());
479 break;
480 }
481 case Y:
482 {
483 ret = Geometry::rotation_transform(-0.5 * PI * Vec3d::UnitZ()) * Geometry::rotation_transform(-0.5 * PI * Vec3d::UnitY());
484 break;
485 }
486 default:
487 case Z:
488 {
489 ret = Transform3d::Identity();
490 break;
491 }
492 }
493
494 return m_orient_matrix * ret;
495}
static constexpr double PI
Definition libslic3r.h:81
void rotation_transform(Transform3d &transform, const Vec3d &rotation)
Definition Geometry.cpp:359
Eigen::Transform< double, 3, Eigen::Affine, Eigen::DontAlign > Transform3d
Definition Point.hpp:96

References m_axis, m_orient_matrix, PI, Slic3r::Geometry::rotation_transform(), X, Y, and Z.

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mouse_position_in_local_plane()

Vec3d Slic3r::GUI::GLGizmoRotate::mouse_position_in_local_plane ( const Linef3 & mouse_ray) const
private
498{
499 const double half_pi = 0.5 * double(PI);
500
501 Transform3d m = Transform3d::Identity();
502
503 switch (m_axis)
504 {
505 case X:
506 {
507 m.rotate(Eigen::AngleAxisd(half_pi, Vec3d::UnitZ()));
508 m.rotate(Eigen::AngleAxisd(-half_pi, Vec3d::UnitY()));
509 break;
510 }
511 case Y:
512 {
513 m.rotate(Eigen::AngleAxisd(half_pi, Vec3d::UnitY()));
514 m.rotate(Eigen::AngleAxisd(half_pi, Vec3d::UnitZ()));
515 break;
516 }
517 default:
518 case Z:
519 {
520 // no rotation applied
521 break;
522 }
523 }
524
525 m = m * Geometry::Transformation(m_orient_matrix).get_matrix_no_offset().inverse();
526
527 m.translate(-m_center);
528
529 const Linef3 local_mouse_ray = transform(mouse_ray, m);
530 if (std::abs(local_mouse_ray.vector().dot(Vec3d::UnitZ())) < EPSILON) {
531 // if the ray is parallel to the plane containing the circle
532 if (std::abs(local_mouse_ray.vector().dot(Vec3d::UnitY())) > 1.0 - EPSILON)
533 // if the ray is parallel to grabber direction
534 return Vec3d::UnitX();
535 else {
536 const Vec3d world_pos = (local_mouse_ray.a.x() >= 0.0) ? mouse_ray.a - m_center : mouse_ray.b - m_center;
537 m.translate(m_center);
538 return m * world_pos;
539 }
540 }
541 else
542 return local_mouse_ray.intersect_plane(0.0);
543}
#define EPSILON
Definition ColorUtils.cpp:64
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vec3d
Definition Point.hpp:68
Linef3 transform(const Linef3 &line, const Transform3d &t)
Definition Line.cpp:15

References Slic3r::Linef3::a, Slic3r::Linef3::b, EPSILON, Slic3r::Geometry::Transformation::get_matrix_no_offset(), Slic3r::Linef3::intersect_plane(), m_axis, m_center, m_orient_matrix, PI, Slic3r::transform(), Slic3r::Linef3::vector(), X, Y, and Z.

Referenced by on_dragging().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_change_color_mode()

virtual void Slic3r::GUI::GLGizmoBase::on_change_color_mode ( bool is_dark)
inlinevirtualinherited
static bool is_dark()
Definition TextureImportDialog.cpp:85
bool m_is_dark_mode
Definition GLGizmoBase.hpp:157

References is_dark(), and m_is_dark_mode.

Here is the call graph for this function:

◆ on_disable_grabber()

virtual void Slic3r::GUI::GLGizmoBase::on_disable_grabber ( unsigned int id)
inlineprotectedvirtualinherited

◆ on_dragging()

void Slic3r::GUI::GLGizmoRotate::on_dragging ( const UpdateData & data)
overrideprotectedvirtual

Reimplemented from Slic3r::GUI::GLGizmoBase.

134{
135 const Vec2d mouse_pos = to_2d(mouse_position_in_local_plane(data.mouse_ray));
136 const Vec2d orig_dir = Vec2d::UnitX();
137 const Vec2d new_dir = mouse_pos.normalized();
138
139 double theta = ::acos(std::clamp(new_dir.dot(orig_dir), -1.0, 1.0));
140 if (cross2(orig_dir, new_dir) < 0.0)
141 theta = 2.0 * (double)PI - theta;
142
143 const double len = mouse_pos.norm();
144
145 // snap to coarse snap region
147 const double step = 2.0 * double(PI) / double(SnapRegionsCount);
148 theta = step * std::round(theta / step);
149 }
150 else {
151 // snap to fine snap region (scale)
152 if (m_snap_fine_in_radius <= len && len <= m_snap_fine_out_radius) {
153 const double step = 2.0 * double(PI) / double(ScaleStepsCount);
154 theta = step * std::round(theta / step);
155 }
156 }
157
158 if (theta == 2.0 * double(PI))
159 theta = 0.0;
160
161 m_angle = theta;
162}
static const unsigned int SnapRegionsCount
Definition GLGizmoRotate.hpp:28
Vec3d mouse_position_in_local_plane(const Linef3 &mouse_ray) const
Definition GLGizmoRotate.cpp:497
static const unsigned int ScaleStepsCount
Definition GLGizmoRotate.hpp:24
int32_t cross2(const Eigen::MatrixBase< Eigen::Matrix< int32_t, 2, 1, Options > > &v1, const Eigen::MatrixBase< Eigen::Matrix< int32_t, 2, 1, Options > > &v2)=delete
Eigen::Matrix< typename Derived::Scalar, 2, 1, Eigen::DontAlign > to_2d(const Eigen::MatrixBase< Derived > &ptN)
Definition Point.hpp:147
Eigen::Matrix< double, 2, 1, Eigen::DontAlign > Vec2d
Definition Point.hpp:67
void step(Coord &crd, const Dir d, const long n=1)
Definition MarchingSquares.hpp:213

References Slic3r::cross2(), m_angle, m_snap_coarse_in_radius, m_snap_coarse_out_radius, m_snap_fine_in_radius, m_snap_fine_out_radius, mouse_position_in_local_plane(), Slic3r::GUI::GLGizmoBase::UpdateData::mouse_ray, PI, ScaleStepsCount, SnapRegionsCount, and Slic3r::to_2d().

Referenced by dragging().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_enable_grabber()

virtual void Slic3r::GUI::GLGizmoBase::on_enable_grabber ( unsigned int id)
inlineprotectedvirtualinherited

◆ on_get_name()

std::string Slic3r::GUI::GLGizmoRotate::on_get_name ( ) const
inlineoverrideprotectedvirtual

Implements Slic3r::GUI::GLGizmoBase.

103{ return ""; }

◆ on_get_requirements()

virtual CommonGizmosDataID Slic3r::GUI::GLGizmoBase::on_get_requirements ( ) const
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoFlatten, Slic3r::GUI::GLGizmoMeshBoolean, Slic3r::GUI::GLGizmoPainterBase, and Slic3r::GUI::GLGizmoSimplify.

248{ return CommonGizmosDataID(0); }
CommonGizmosDataID
Definition GLGizmosCommon.hpp:72

Referenced by get_requirements().

Here is the caller graph for this function:

◆ on_init()

bool Slic3r::GUI::GLGizmoRotate::on_init ( )
overrideprotectedvirtual

◆ on_is_activable()

virtual bool Slic3r::GUI::GLGizmoBase::on_is_activable ( ) const
inlineprotectedvirtualinherited

◆ on_is_selectable()

virtual bool Slic3r::GUI::GLGizmoBase::on_is_selectable ( ) const
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoMmuSegmentation, Slic3r::GUI::GLGizmoPainterBase, Slic3r::GUI::GLGizmoSimplify, and Slic3r::GUI::GLGizmoSVG.

247{ return true; }

Referenced by is_selectable().

Here is the caller graph for this function:

◆ on_load()

virtual void Slic3r::GUI::GLGizmoBase::on_load ( cereal::BinaryInputArchive & ar)
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoMeshBoolean, and Slic3r::GUI::GLGizmoPainterBase.

241{}

Referenced by load().

Here is the caller graph for this function:

◆ on_mouse()

bool Slic3r::GUI::GLGizmoRotate::on_mouse ( const wxMouseEvent & mouse_event)
overridevirtual

Postpone to Grabber for move Detect move of object by dragging.

Parameters
mouse_eventKeep information about mouse click
Returns
Return True when use the information otherwise False.

Reimplemented from Slic3r::GUI::GLGizmoBase.

100{
101 return use_grabbers(mouse_event);
102}
bool use_grabbers(const wxMouseEvent &mouse_event)
function which Set up m_dragging and call functions on_start_dragging / on_dragging / on_stop_draggin...
Definition GLGizmoBase.cpp:444

References Slic3r::GUI::GLGizmoBase::use_grabbers(), and Slic3r::GUI::wxMouseEvent.

Here is the call graph for this function:

◆ on_register_raycasters_for_picking()

virtual void Slic3r::GUI::GLGizmoBase::on_register_raycasters_for_picking ( )
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoEmboss, Slic3r::GUI::GLGizmoFlatten, Slic3r::GUI::GLGizmoMove3D, Slic3r::GUI::GLGizmoRotate3D, Slic3r::GUI::GLGizmoScale3D, and Slic3r::GUI::GLGizmoSVG.

267{}

Referenced by register_raycasters_for_picking().

Here is the caller graph for this function:

◆ on_render()

void Slic3r::GUI::GLGizmoRotate::on_render ( )
overrideprotectedvirtual

Implements Slic3r::GUI::GLGizmoBase.

165{
166 if (!m_grabbers.front().enabled)
167 return;
168
169 const Selection& selection = m_parent.get_selection();
170 if (m_hover_id != 0 && !m_grabbers.front().dragging)
171 init_data_from_selection(selection);
172
173 const double grabber_radius = (double)m_radius * (1.0 + (double)GrabberOffset);
174 m_grabbers.front().center = Vec3d(::cos(m_angle) * grabber_radius, ::sin(m_angle) * grabber_radius, 0.0);
175 m_grabbers.front().angles.z() = m_angle;
176 m_grabbers.front().color = AXES_COLOR[m_axis];
177 m_grabbers.front().hover_color = AXES_HOVER_COLOR[m_axis];
178
180
181 m_grabbers.front().matrix = local_transform(selection);
182
183#if !SLIC3R_OPENGL_ES
184 if (!OpenGLManager::get_gl_info().is_core_profile())
185 glsafe(::glLineWidth((m_hover_id != -1) ? 2.0f : 1.5f));
186#endif // !SLIC3R_OPENGL_ES
187
188#if SLIC3R_OPENGL_ES
189 GLShaderProgram* shader = wxGetApp().get_shader("dashed_lines");
190#else
191 GLShaderProgram* shader = OpenGLManager::get_gl_info().is_core_profile() ? wxGetApp().get_shader("dashed_thick_lines") : wxGetApp().get_shader("flat");
192#endif // SLIC3R_OPENGL_ES
193 if (shader != nullptr) {
194 shader->start_using();
195
196 const Camera& camera = wxGetApp().plater()->get_camera();
197 const Transform3d view_model_matrix = camera.get_view_matrix() * m_grabbers.front().matrix;
198 shader->set_uniform("view_model_matrix", view_model_matrix);
199 shader->set_uniform("projection_matrix", camera.get_projection_matrix());
200#if !SLIC3R_OPENGL_ES
201 if (OpenGLManager::get_gl_info().is_core_profile()) {
202#endif // !SLIC3R_OPENGL_ES
203 const std::array<int, 4>& viewport = camera.get_viewport();
204 shader->set_uniform("viewport_size", Vec2d(double(viewport[2]), double(viewport[3])));
205 shader->set_uniform("width", 0.25f);
206 shader->set_uniform("gap_size", 0.0f);
207#if !SLIC3R_OPENGL_ES
208 }
209#endif // !SLIC3R_OPENGL_ES
210
211 const bool radius_changed = std::abs(m_old_radius - m_radius) > EPSILON;
213
214 const ColorRGBA color = (m_hover_id != -1) ? m_drag_color : m_highlight_color;
215 render_circle(color, radius_changed);
216 if (m_hover_id != -1) {
217 const bool hover_radius_changed = std::abs(m_old_hover_radius - m_radius) > EPSILON;
219
220 render_scale(color, hover_radius_changed);
221 render_snap_radii(color, hover_radius_changed);
222 render_reference_radius(color, hover_radius_changed);
223 render_angle_arc(m_highlight_color, hover_radius_changed);
224 }
225
226 // ORCA dont use axis color on line because they are not on same direction with axis
227 const ColorRGBA line_color = (m_hover_id != -1) ? m_drag_color : ColorRGBA(.6f, .6f ,.6f, 1.f);
228 render_grabber_connection(line_color, radius_changed);
229 shader->stop_using();
230 }
231
233}
#define glsafe(cmd)
Definition OpenGLUtils.hpp:25
static std::array< ColorRGBA, 3 > AXES_HOVER_COLOR
Definition GLGizmoBase.hpp:61
Transform3d local_transform(const Selection &selection) const
Definition GLGizmoRotate.cpp:470
static const float GrabberOffset
Definition GLGizmoRotate.hpp:29
void render_angle_arc(const ColorRGBA &color, bool radius_changed)
Definition GLGizmoRotate.cpp:408
void render_scale(const ColorRGBA &color, bool radius_changed)
Definition GLGizmoRotate.cpp:307
void render_reference_radius(const ColorRGBA &color, bool radius_changed)
Definition GLGizmoRotate.cpp:384
void render_circle(const ColorRGBA &color, bool radius_changed)
Definition GLGizmoRotate.cpp:283
void render_grabber(const BoundingBoxf3 &box)
Definition GLGizmoRotate.cpp:464
void render_snap_radii(const ColorRGBA &color, bool radius_changed)
Definition GLGizmoRotate.cpp:345
float m_old_hover_radius
Definition GLGizmoRotate.hpp:63
void init_data_from_selection(const Selection &selection)
Definition GLGizmoRotate.cpp:235
void render_grabber_connection(const ColorRGBA &color, bool radius_changed)
Definition GLGizmoRotate.cpp:439
float m_old_radius
Definition GLGizmoRotate.hpp:62
bool is_core_profile() const
Definition OpenGLManager.hpp:53
static const GLInfo & get_gl_info()
Definition OpenGLManager.hpp:106
#define glEnable
Definition gl.h:3667
#define GL_DEPTH_TEST
Definition gl.h:574
#define glLineWidth
Definition gl.h:4215
@ Selection
Definition Shortcuts.hpp:72
@ Camera
Definition Shortcuts.hpp:72

References Slic3r::GUI::GLGizmoBase::AXES_COLOR, Slic3r::GUI::GLGizmoBase::AXES_HOVER_COLOR, EPSILON, Slic3r::GUI::OpenGLManager::get_gl_info(), Slic3r::GUI::Camera::get_projection_matrix(), Slic3r::GUI::Camera::get_view_matrix(), Slic3r::GUI::Camera::get_viewport(), GL_DEPTH_TEST, glEnable, glLineWidth, glsafe, GrabberOffset, init_data_from_selection(), Slic3r::GUI::OpenGLManager::GLInfo::is_core_profile(), local_transform(), m_angle, m_axis, m_bounding_box, m_drag_color, Slic3r::GUI::GLGizmoBase::m_grabbers, m_highlight_color, Slic3r::GUI::GLGizmoBase::m_hover_id, m_old_hover_radius, m_old_radius, Slic3r::GUI::GLGizmoBase::m_parent, m_radius, render_angle_arc(), render_circle(), render_grabber(), render_grabber_connection(), render_reference_radius(), render_scale(), render_snap_radii(), Slic3r::GLShaderProgram::set_uniform(), Slic3r::GLShaderProgram::start_using(), and Slic3r::GLShaderProgram::stop_using().

Here is the call graph for this function:

◆ on_render_input_window()

virtual void Slic3r::GUI::GLGizmoBase::on_render_input_window ( float x,
float y,
float bottom_limit )
inlineprotectedvirtualinherited

◆ on_save()

virtual void Slic3r::GUI::GLGizmoBase::on_save ( cereal::BinaryOutputArchive & ar) const
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoMeshBoolean, and Slic3r::GUI::GLGizmoPainterBase.

242{}

Referenced by save().

Here is the caller graph for this function:

◆ on_set_hover_id()

virtual void Slic3r::GUI::GLGizmoBase::on_set_hover_id ( )
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoEmboss, Slic3r::GUI::GLGizmoRotate3D, and Slic3r::GUI::GLGizmoSVG.

245{}

Referenced by set_hover_id().

Here is the caller graph for this function:

◆ on_set_state()

virtual void Slic3r::GUI::GLGizmoBase::on_set_state ( )
inlineprotectedvirtualinherited

◆ on_start_dragging()

void Slic3r::GUI::GLGizmoRotate::on_start_dragging ( )
overrideprotectedvirtual

Reimplemented from Slic3r::GUI::GLGizmoBase.

129{
130 init_data_from_selection(m_parent.get_selection());
131}

References init_data_from_selection(), and Slic3r::GUI::GLGizmoBase::m_parent.

Referenced by start_dragging().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_stop_dragging()

virtual void Slic3r::GUI::GLGizmoBase::on_stop_dragging ( )
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoEmboss, Slic3r::GUI::GLGizmoMove3D, Slic3r::GUI::GLGizmoRotate3D, Slic3r::GUI::GLGizmoScale3D, and Slic3r::GUI::GLGizmoSVG.

254{}

Referenced by do_stop_dragging(), and Slic3r::GUI::GLGizmoRotate::stop_dragging().

Here is the caller graph for this function:

◆ on_unregister_raycasters_for_picking()

virtual void Slic3r::GUI::GLGizmoBase::on_unregister_raycasters_for_picking ( )
inlineprotectedvirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoEmboss, Slic3r::GUI::GLGizmoFlatten, Slic3r::GUI::GLGizmoMove3D, Slic3r::GUI::GLGizmoRotate3D, Slic3r::GUI::GLGizmoScale3D, and Slic3r::GUI::GLGizmoSVG.

268{}

Referenced by unregister_raycasters_for_picking().

Here is the caller graph for this function:

◆ register_grabbers_for_picking()

void Slic3r::GUI::GLGizmoBase::register_grabbers_for_picking ( )
protectedinherited
399{
400 for (size_t i = 0; i < m_grabbers.size(); ++i) {
401 m_grabbers[i].register_raycasters_for_picking((m_group_id >= 0) ? m_group_id : i);
402 }
403}

References m_grabbers, and m_group_id.

Referenced by register_raycasters_for_picking().

Here is the caller graph for this function:

◆ register_raycasters_for_picking()

void Slic3r::GUI::GLGizmoBase::register_raycasters_for_picking ( )
inlineinherited
void register_grabbers_for_picking()
Definition GLGizmoBase.cpp:398
virtual void on_register_raycasters_for_picking()
Definition GLGizmoBase.hpp:267

References on_register_raycasters_for_picking(), and register_grabbers_for_picking().

Referenced by Slic3r::GUI::GLGizmosManager::activate_gizmo(), and Slic3r::GUI::GLCanvas3D::reload_scene().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render()

void Slic3r::GUI::GLGizmoBase::render ( )
inlineinherited
214{ on_render(); }
virtual void on_render()=0

References on_render().

Here is the call graph for this function:

◆ render_angle_arc()

void Slic3r::GUI::GLGizmoRotate::render_angle_arc ( const ColorRGBA & color,
bool radius_changed )
private
409{
410 const float step_angle = float(m_angle) / float(AngleResolution);
411 const float ex_radius = m_radius * (1.0f + GrabberOffset);
412
413 const bool angle_changed = std::abs(m_old_angle - m_angle) > EPSILON;
415
416 if (!m_angle_arc.is_initialized() || radius_changed || angle_changed) {
417 m_angle_arc.reset();
418 if (m_angle > 0.0f) {
419 GLModel::Geometry init_data;
421 init_data.reserve_vertices(1 + AngleResolution);
422 init_data.reserve_indices(1 + AngleResolution);
423
424 // vertices + indices
425 for (unsigned int i = 0; i <= AngleResolution; ++i) {
426 const float angle = float(i) * step_angle;
427 init_data.add_vertex(Vec3f(::cos(angle) * ex_radius, ::sin(angle) * ex_radius, 0.0f));
428 init_data.add_index(i);
429 }
430
431 m_angle_arc.init_from(std::move(init_data));
432 }
433 }
434
435 m_angle_arc.set_color(color);
436 m_angle_arc.render();
437}
static const unsigned int AngleResolution
Definition GLGizmoRotate.hpp:23
GLModel m_angle_arc
Definition GLGizmoRotate.hpp:55
float m_old_angle
Definition GLGizmoRotate.hpp:64
Eigen::Matrix< float, 3, 1, Eigen::DontAlign > Vec3f
Definition Point.hpp:65
double angle(const Eigen::MatrixBase< Derived > &v1, const Eigen::MatrixBase< Derived2 > &v2)
Definition Point.hpp:138

References Slic3r::GUI::GLModel::Geometry::add_index(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::angle(), AngleResolution, EPSILON, Slic3r::GUI::GLModel::Geometry::format, GrabberOffset, Slic3r::GUI::GLModel::Geometry::LineStrip, m_angle, m_angle_arc, m_old_angle, m_radius, Slic3r::GUI::GLModel::Geometry::P3, Slic3r::GUI::GLModel::Geometry::reserve_indices(), and Slic3r::GUI::GLModel::Geometry::reserve_vertices().

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_circle()

void Slic3r::GUI::GLGizmoRotate::render_circle ( const ColorRGBA & color,
bool radius_changed )
private
284{
285 if (!m_circle.is_initialized() || radius_changed) {
286 m_circle.reset();
287
288 GLModel::Geometry init_data;
290 init_data.reserve_vertices(ScaleStepsCount);
291 init_data.reserve_indices(ScaleStepsCount);
292
293 // vertices + indices
294 for (unsigned int i = 0; i < ScaleStepsCount; ++i) {
295 const float angle = float(i * ScaleStepRad);
296 init_data.add_vertex(Vec3f(::cos(angle) * m_radius, ::sin(angle) * m_radius, 0.0f));
297 init_data.add_index(i);
298 }
299
300 m_circle.init_from(std::move(init_data));
301 }
302
303 m_circle.set_color(color);
304 m_circle.render();
305}
static const float ScaleStepRad
Definition GLGizmoRotate.hpp:25
GLModel m_circle
Definition GLGizmoRotate.hpp:51

References Slic3r::GUI::GLModel::Geometry::add_index(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::angle(), Slic3r::GUI::GLModel::Geometry::format, Slic3r::GUI::GLModel::Geometry::LineLoop, m_circle, m_radius, Slic3r::GUI::GLModel::Geometry::P3, Slic3r::GUI::GLModel::Geometry::reserve_indices(), Slic3r::GUI::GLModel::Geometry::reserve_vertices(), ScaleStepRad, and ScaleStepsCount.

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_combo()

bool Slic3r::GUI::GLGizmoBase::render_combo ( const std::string & label,
const std::vector< std::string > & lines,
int & selection_idx,
float label_width,
float item_width )
protectedinherited
227{
229 ImGui::AlignTextToFramePadding();
230 m_imgui->text(label);
231 ImGui::SameLine(label_width);
232 ImGui::PushItemWidth(item_width);
233
234 size_t selection_out = selection_idx;
235
236 const char *selected_str = (selection_idx >= 0 && selection_idx < int(lines.size())) ? lines[selection_idx].c_str() : "";
237 if (ImGui::BBLBeginCombo(("##" + label).c_str(), selected_str, 0)) {
238 for (size_t line_idx = 0; line_idx < lines.size(); ++line_idx) {
239 ImGui::PushID(int(line_idx));
240 if (ImGui::Selectable("", line_idx == selection_idx)) selection_out = line_idx;
241
242 ImGui::SameLine();
243 ImGui::Text("%s", lines[line_idx].c_str());
244 ImGui::PopID();
245 }
246
247 ImGui::EndCombo();
248 }
249
250 bool is_changed = selection_idx != selection_out;
251 selection_idx = selection_out;
252
253 //if (is_changed) update_connector_shape();
255
256 return is_changed;
257}
static void pop_combo_style()
Definition ImGuiWrapper.cpp:2932
static void push_combo_style(const float scale)
Definition ImGuiWrapper.cpp:2907

References m_imgui, m_parent, Slic3r::GUI::ImGuiWrapper::pop_combo_style(), and Slic3r::GUI::ImGuiWrapper::push_combo_style().

Referenced by Slic3r::GUI::GLGizmoAssembly::render_assembly_mode_combo(), and Slic3r::GUI::GLGizmoCut3D::render_connectors_input_window().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_cross_mark()

void Slic3r::GUI::GLGizmoBase::render_cross_mark ( const Vec3f & target,
bool is_single = false )
protectedinherited
260{
261 const float half_length = 4.0f;
262
263 // ORCA: OpenGL Core Profile
264#if !SLIC3R_OPENGL_ES
265 if (!OpenGLManager::get_gl_info().is_core_profile())
266 glsafe(::glLineWidth(2.0f));
267#endif // !SLIC3R_OPENGL_ES
268
269 auto render_line = [](const Vec3f& p1, const Vec3f& p2, const ColorRGBA& color) {
270 GLModel::Geometry init_data;
272 init_data.color = color;
273 init_data.reserve_vertices(2);
274 init_data.reserve_indices(2);
275
276 // vertices
277 init_data.add_vertex(p1);
278 init_data.add_vertex(p2);
279
280 // indices
281 init_data.add_line(0, 1);
282
283 GLModel model;
284 model.init_from(std::move(init_data));
285 model.render();
286 };
287
288 // draw line for x axis
289 if (!is_single) {
290 render_line(
291 {target(0) - half_length, target(1), target(2)},
292 {target(0) + half_length, target(1), target(2)},
293 ColorRGBA::X()); // ORCA match axis colors
294 }
295 else {
296 render_line(
297 {target(0), target(1), target(2)},
298 {target(0) + half_length, target(1), target(2)},
299 ColorRGBA::X()); // ORCA match axis colors
300 }
301 // draw line for y axis
302 if (!is_single) {
303 render_line(
304 {target(0), target(1) - half_length, target(2)},
305 {target(0), target(1) + half_length, target(2)},
306 ColorRGBA::Y()); // ORCA match axis colors
307 } else {
308 render_line(
309 {target(0), target(1), target(2)},
310 {target(0), target(1) + half_length, target(2)},
311 ColorRGBA::Y()); // ORCA match axis colors
312 }
313 // draw line for z axis
314 if (!is_single) {
315 render_line(
316 {target(0), target(1), target(2) - half_length},
317 {target(0), target(1), target(2) + half_length},
318 ColorRGBA::Z()); // ORCA match axis colors
319 } else {
320 render_line(
321 {target(0), target(1), target(2)},
322 {target(0), target(1), target(2) + half_length},
323 ColorRGBA::Z()); // ORCA match axis colors
324 }
325}
static const ColorRGBA Y()
Definition Color.hpp:146
static const ColorRGBA X()
Definition Color.hpp:145
static const ColorRGBA Z()
Definition Color.hpp:147

References Slic3r::GUI::GLModel::Geometry::add_line(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::GUI::GLModel::Geometry::color, Slic3r::GUI::GLModel::Geometry::format, Slic3r::GUI::OpenGLManager::get_gl_info(), glLineWidth, glsafe, Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::GLModel::Geometry::Lines, Slic3r::GUI::GLModel::Geometry::P3, Slic3r::GUI::GLModel::render(), Slic3r::GUI::GLModel::Geometry::reserve_indices(), Slic3r::GUI::GLModel::Geometry::reserve_vertices(), Slic3r::ColorRGBA::X(), Slic3r::ColorRGBA::Y(), and Slic3r::ColorRGBA::Z().

Referenced by Slic3r::GUI::GLGizmoMove3D::on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_follows_cursor()

virtual bool Slic3r::GUI::GLGizmoBase::render_follows_cursor ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoMeasure, and Slic3r::GUI::GLGizmoPainterBase.

189{ return false; }

Referenced by Slic3r::GUI::GLCanvas3D::_is_scene_cacheable().

Here is the caller graph for this function:

◆ render_grabber()

void Slic3r::GUI::GLGizmoRotate::render_grabber ( const BoundingBoxf3 & box)
private
465{
466 m_grabbers.front().color = m_highlight_color;
467 render_grabbers(box);
468}
void render_grabbers(const BoundingBoxf3 &box) const
Definition GLGizmoBase.cpp:412

References Slic3r::GUI::GLGizmoBase::m_grabbers, m_highlight_color, and Slic3r::GUI::GLGizmoBase::render_grabbers().

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_grabber_connection()

void Slic3r::GUI::GLGizmoRotate::render_grabber_connection ( const ColorRGBA & color,
bool radius_changed )
private
440{
441 if (!m_grabber_connection.model.is_initialized() || radius_changed || !m_grabber_connection.old_center.isApprox(m_grabbers.front().center)) {
442 m_grabber_connection.model.reset();
443 m_grabber_connection.old_center = m_grabbers.front().center;
444
445 GLModel::Geometry init_data;
447 init_data.reserve_vertices(2);
448 init_data.reserve_indices(2);
449
450 // vertices
451 init_data.add_vertex(Vec3f(0.0f, 0.0f, 0.0f));
452 init_data.add_vertex((Vec3f)m_grabbers.front().center.cast<float>());
453
454 // indices
455 init_data.add_line(0, 1);
456
457 m_grabber_connection.model.init_from(std::move(init_data));
458 }
459
460 m_grabber_connection.model.set_color(color);
461 m_grabber_connection.model.render();
462}
GrabberConnection m_grabber_connection
Definition GLGizmoRotate.hpp:61

References Slic3r::GUI::GLModel::Geometry::add_line(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::GUI::GLModel::Geometry::format, Slic3r::GUI::GLModel::Geometry::Lines, m_grabber_connection, Slic3r::GUI::GLGizmoBase::m_grabbers, Slic3r::GUI::GLModel::Geometry::P3, Slic3r::GUI::GLModel::Geometry::reserve_indices(), and Slic3r::GUI::GLModel::Geometry::reserve_vertices().

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_grabbers() [1/3]

void Slic3r::GUI::GLGizmoBase::render_grabbers ( const BoundingBoxf3 & box) const
protectedinherited
413{
414#if ENABLE_FIXED_GRABBER
416#else
417 render_grabbers((float)((box.size().x() + box.size().y() + box.size().z()) / 3.0));
418#endif
419}
static const float FixedGrabberSize
Definition GLGizmoBase.hpp:90

References Slic3r::GUI::GLGizmoBase::Grabber::FixedGrabberSize, render_grabbers(), and Slic3r::BoundingBox3Base< PointType >::size().

Referenced by Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::GLGizmoScale3D::on_render(), Slic3r::GUI::GLGizmoRotate::render_grabber(), render_grabbers(), and render_grabbers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_grabbers() [2/3]

void Slic3r::GUI::GLGizmoBase::render_grabbers ( float size) const
protectedinherited
422{
423 render_grabbers(0, m_grabbers.size() - 1, size, false);
424}

References m_grabbers, and render_grabbers().

Here is the call graph for this function:

◆ render_grabbers() [3/3]

void Slic3r::GUI::GLGizmoBase::render_grabbers ( size_t first,
size_t last,
float size,
bool force_hover ) const
protectedinherited
427{
428 GLShaderProgram* shader = wxGetApp().get_shader("gouraud_light");
429 if (shader == nullptr)
430 return;
431 shader->start_using();
432 shader->set_uniform("emission_factor", 0.1f);
434 for (size_t i = first; i <= last; ++i) {
435 if (m_grabbers[i].enabled)
436 m_grabbers[i].render(force_hover ? true : m_hover_id == (int)i, size);
437 }
439 shader->stop_using();
440}
#define GL_CULL_FACE
Definition gl.h:500
#define glDisable
Definition gl.h:3607

References GL_CULL_FACE, glDisable, glEnable, glsafe, m_grabbers, m_hover_id, Slic3r::GLShaderProgram::set_uniform(), Slic3r::GLShaderProgram::start_using(), and Slic3r::GLShaderProgram::stop_using().

Here is the call graph for this function:

◆ render_input_window()

void Slic3r::GUI::GLGizmoBase::render_input_window ( float x,
float y,
float bottom_limit )
inherited
529{
530 on_render_input_window(x, y, bottom_limit);
532 // imgui windows that don't have an initial size needs to be processed once to get one
533 // and are not rendered in the first frame
534 // so, we forces to render another frame the first time the imgui window is shown
535 // https://github.com/ocornut/imgui/issues/2949
536 m_parent.set_as_dirty();
537 m_parent.request_extra_frame();
539 }
540}
virtual void on_render_input_window(float x, float y, float bottom_limit)
Definition GLGizmoBase.hpp:258
bool m_first_input_window_render
Definition GLGizmoBase.hpp:154

References m_first_input_window_render, m_parent, and on_render_input_window().

Here is the call graph for this function:

◆ render_reference_radius()

void Slic3r::GUI::GLGizmoRotate::render_reference_radius ( const ColorRGBA & color,
bool radius_changed )
private
385{
386 if (!m_reference_radius.is_initialized() || radius_changed) {
387 m_reference_radius.reset();
388
389 GLModel::Geometry init_data;
391 init_data.reserve_vertices(2);
392 init_data.reserve_indices(2);
393
394 // vertices
395 init_data.add_vertex(Vec3f(0.0f, 0.0f, 0.0f));
396 init_data.add_vertex(Vec3f(m_radius * (1.0f + GrabberOffset), 0.0f, 0.0f));
397
398 // indices
399 init_data.add_line(0, 1);
400
401 m_reference_radius.init_from(std::move(init_data));
402 }
403
404 m_reference_radius.set_color(color);
405 m_reference_radius.render();
406}
GLModel m_reference_radius
Definition GLGizmoRotate.hpp:54

References Slic3r::GUI::GLModel::Geometry::add_line(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::GUI::GLModel::Geometry::format, GrabberOffset, Slic3r::GUI::GLModel::Geometry::Lines, m_radius, m_reference_radius, Slic3r::GUI::GLModel::Geometry::P3, Slic3r::GUI::GLModel::Geometry::reserve_indices(), and Slic3r::GUI::GLModel::Geometry::reserve_vertices().

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_scale()

void Slic3r::GUI::GLGizmoRotate::render_scale ( const ColorRGBA & color,
bool radius_changed )
private
308{
309 const float out_radius_long = m_snap_fine_out_radius;
310 const float out_radius_short = m_radius * (1.0f + 0.5f * ScaleLongTooth);
311
312 if (!m_scale.is_initialized() || radius_changed) {
313 m_scale.reset();
314
315 GLModel::Geometry init_data;
317 init_data.reserve_vertices(2 * ScaleStepsCount);
318 init_data.reserve_indices(2 * ScaleStepsCount);
319
320 // vertices + indices
321 for (unsigned int i = 0; i < ScaleStepsCount; ++i) {
322 const float angle = float(i * ScaleStepRad);
323 const float cosa = ::cos(angle);
324 const float sina = ::sin(angle);
325 const float in_x = cosa * m_radius;
326 const float in_y = sina * m_radius;
327 const float out_x = (i % ScaleLongEvery == 0) ? cosa * out_radius_long : cosa * out_radius_short;
328 const float out_y = (i % ScaleLongEvery == 0) ? sina * out_radius_long : sina * out_radius_short;
329
330 // vertices
331 init_data.add_vertex(Vec3f(in_x, in_y, 0.0f));
332 init_data.add_vertex(Vec3f(out_x, out_y, 0.0f));
333
334 // indices
335 init_data.add_line(i * 2, i * 2 + 1);
336 }
337
338 m_scale.init_from(std::move(init_data));
339 }
340
341 m_scale.set_color(color);
342 m_scale.render();
343}
static const unsigned int ScaleLongEvery
Definition GLGizmoRotate.hpp:26
GLModel m_scale
Definition GLGizmoRotate.hpp:52

References Slic3r::GUI::GLModel::Geometry::add_line(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::angle(), Slic3r::GUI::GLModel::Geometry::format, Slic3r::GUI::GLModel::Geometry::Lines, m_radius, m_scale, m_snap_fine_out_radius, Slic3r::GUI::GLModel::Geometry::P3, Slic3r::GUI::GLModel::Geometry::reserve_indices(), Slic3r::GUI::GLModel::Geometry::reserve_vertices(), ScaleLongEvery, ScaleLongTooth, ScaleStepRad, and ScaleStepsCount.

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render_snap_radii()

void Slic3r::GUI::GLGizmoRotate::render_snap_radii ( const ColorRGBA & color,
bool radius_changed )
private
346{
347 const float step = 2.0f * float(PI) / float(SnapRegionsCount);
348 const float in_radius = m_radius / 3.0f;
349 const float out_radius = 2.0f * in_radius;
350
351 if (!m_snap_radii.is_initialized() || radius_changed) {
352 m_snap_radii.reset();
353
354 GLModel::Geometry init_data;
356 init_data.reserve_vertices(2 * ScaleStepsCount);
357 init_data.reserve_indices(2 * ScaleStepsCount);
358
359 // vertices + indices
360 for (unsigned int i = 0; i < ScaleStepsCount; ++i) {
361 const float angle = float(i * step);
362 const float cosa = ::cos(angle);
363 const float sina = ::sin(angle);
364 const float in_x = cosa * in_radius;
365 const float in_y = sina * in_radius;
366 const float out_x = cosa * out_radius;
367 const float out_y = sina * out_radius;
368
369 // vertices
370 init_data.add_vertex(Vec3f(in_x, in_y, 0.0f));
371 init_data.add_vertex(Vec3f(out_x, out_y, 0.0f));
372
373 // indices
374 init_data.add_line(i * 2, i * 2 + 1);
375 }
376
377 m_snap_radii.init_from(std::move(init_data));
378 }
379
380 m_snap_radii.set_color(color);
381 m_snap_radii.render();
382}
GLModel m_snap_radii
Definition GLGizmoRotate.hpp:53

References Slic3r::GUI::GLModel::Geometry::add_line(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::angle(), Slic3r::GUI::GLModel::Geometry::format, Slic3r::GUI::GLModel::Geometry::Lines, m_radius, m_snap_radii, Slic3r::GUI::GLModel::Geometry::P3, PI, Slic3r::GUI::GLModel::Geometry::reserve_indices(), Slic3r::GUI::GLModel::Geometry::reserve_vertices(), ScaleStepsCount, and SnapRegionsCount.

Referenced by on_render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ save()

void Slic3r::GUI::GLGizmoBase::save ( cereal::BinaryOutputArchive & ar) const
inlineinherited
171{ on_save(ar); }
virtual void on_save(cereal::BinaryOutputArchive &ar) const
Definition GLGizmoBase.hpp:242

References on_save().

Here is the call graph for this function:

◆ set_angle()

void Slic3r::GUI::GLGizmoRotate::set_angle ( double angle)
80{
81 if (std::abs(angle - 2.0 * double(PI)) < EPSILON)
82 angle = 0.0;
83
84 m_angle = angle;
85}

References Slic3r::angle(), EPSILON, m_angle, and PI.

Here is the call graph for this function:

◆ set_common_data_pool()

void Slic3r::GUI::GLGizmoBase::set_common_data_pool ( CommonGizmosDataPool * ptr)
inlineinherited
193{ m_c = ptr; }
CommonGizmosDataPool * m_c
Definition GLGizmoBase.hpp:155

References m_c.

◆ set_dirty()

void Slic3r::GUI::GLGizmoBase::set_dirty ( )
protectedinherited
524 {
525 m_dirty = true;
526}
bool m_dirty
Definition GLGizmoBase.hpp:293

References m_dirty.

Referenced by Slic3r::GUI::GLGizmoCut3D::process_cut_line(), and Slic3r::GUI::GLGizmoSimplify::request_rerender().

Here is the caller graph for this function:

◆ set_force_local_coordinate()

void Slic3r::GUI::GLGizmoRotate::set_force_local_coordinate ( bool use)
inline

◆ set_group_id()

void Slic3r::GUI::GLGizmoRotate::set_group_id ( int group_id)
inline
uint32_t group_id(std::vector< Bridge > &bridges, uint32_t src_id)
Definition LayerRegion.cpp:214

References Slic3r::group_id(), and Slic3r::GUI::GLGizmoBase::m_group_id.

Here is the call graph for this function:

◆ set_highlight_color()

void Slic3r::GUI::GLGizmoRotate::set_highlight_color ( const ColorRGBA & color)
75{
76 m_highlight_color = color;
77}

References m_highlight_color.

◆ set_hover_id()

void Slic3r::GUI::GLGizmoBase::set_hover_id ( int id)
inherited
348{
349 // do not change hover id during dragging
350 assert(!m_dragging);
351
352 // allow empty grabbers when not using grabbers but use hover_id - flatten, rotate
353// if (!m_grabbers.empty() && id >= (int) m_grabbers.size())
354// return;
355
356 m_hover_id = id;
358}
virtual void on_set_hover_id()
Definition GLGizmoBase.hpp:245

References m_dragging, m_hover_id, and on_set_hover_id().

Referenced by Slic3r::GUI::GLGizmoRotate3D::on_set_hover_id().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_icon_filename()

void Slic3r::GUI::GLGizmoBase::set_icon_filename ( const std::string & filename)
inherited
343 {
344 m_icon_filename = filename;
345}

References m_icon_filename.

◆ set_state()

void Slic3r::GUI::GLGizmoBase::set_state ( EState state)
inlineinherited
176{ m_state = state; on_set_state(); }
virtual void on_set_state()
Definition GLGizmoBase.hpp:244

References m_state, and on_set_state().

Referenced by Slic3r::GUI::GLGizmosManager::activate_gizmo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shortcut()

std::optional< Shortcut > Slic3r::GUI::GLGizmoBase::shortcut ( ) const
inlineinherited
178{ return m_shortcut; }

References m_shortcut.

Referenced by Slic3r::GUI::GLGizmoFdmSupports::on_tool_shortcut(), Slic3r::GUI::GLGizmoMmuSegmentation::on_tool_shortcut(), Slic3r::GUI::GLGizmoPainterBase::on_tool_shortcut(), and Slic3r::GUI::GLGizmoSeam::on_tool_shortcut().

Here is the caller graph for this function:

◆ start_dragging()

void Slic3r::GUI::GLGizmoRotate::start_dragging ( )
107{
108 m_grabbers[0].dragging = true;
110}
void on_start_dragging() override
Definition GLGizmoRotate.cpp:128

References Slic3r::GUI::GLGizmoBase::m_grabbers, and on_start_dragging().

Here is the call graph for this function:

◆ stop_dragging()

void Slic3r::GUI::GLGizmoRotate::stop_dragging ( )
113{
114 m_grabbers[0].dragging = false;
116}

References Slic3r::GUI::GLGizmoBase::m_grabbers, and Slic3r::GUI::GLGizmoBase::on_stop_dragging().

Here is the call graph for this function:

◆ unregister_grabbers_for_picking()

void Slic3r::GUI::GLGizmoBase::unregister_grabbers_for_picking ( )
protectedinherited
406{
407 for (size_t i = 0; i < m_grabbers.size(); ++i) {
408 m_grabbers[i].unregister_raycasters_for_picking();
409 }
410}

References m_grabbers.

Referenced by unregister_raycasters_for_picking().

Here is the caller graph for this function:

◆ unregister_raycasters_for_picking()

void Slic3r::GUI::GLGizmoBase::unregister_raycasters_for_picking ( )
inlineinherited
virtual void on_unregister_raycasters_for_picking()
Definition GLGizmoBase.hpp:268
void unregister_grabbers_for_picking()
Definition GLGizmoBase.cpp:405

References on_unregister_raycasters_for_picking(), and unregister_grabbers_for_picking().

Referenced by Slic3r::GUI::GLGizmosManager::activate_gizmo(), and Slic3r::GUI::GLCanvas3D::reload_scene().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_items_state()

bool Slic3r::GUI::GLGizmoBase::update_items_state ( )
inherited
361{
362 bool res = m_dirty;
363 m_dirty = false;
364 return res;
365}

References m_dirty.

◆ update_render_colors()

void Slic3r::GUI::GLGizmoBase::update_render_colors ( )
staticinherited

References AXES_COLOR, Slic3r::RenderColor::colors, FLATTEN_COLOR, FLATTEN_HOVER_COLOR, Slic3r::GUI::ImGuiWrapper::from_ImVec4(), RenderCol_Flatten_Plane, RenderCol_Flatten_Plane_Hover, RenderCol_Grabber_X, RenderCol_Grabber_Y, and RenderCol_Grabber_Z.

Referenced by Slic3r::GUI::GLCanvas3D::_render_style_editor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ use_grabbers()

bool Slic3r::GUI::GLGizmoBase::use_grabbers ( const wxMouseEvent & mouse_event)
protectedinherited

function which Set up m_dragging and call functions on_start_dragging / on_dragging / on_stop_dragging

Parameters
mouse_eventKeep information about mouse click
Returns
same as on_mouse
444 {
445 bool is_dragging_finished = false;
446 if (mouse_event.Moving()) {
447 // it should not happen but for sure
448 assert(!m_dragging);
449 if (m_dragging) is_dragging_finished = true;
450 else return false;
451 }
452
453 if (mouse_event.LeftDown()) {
454 Selection &selection = m_parent.get_selection();
455 if (!selection.is_empty() && m_hover_id != -1 /* &&
456 (m_grabbers.empty() || m_hover_id < static_cast<int>(m_grabbers.size()))*/) {
457 selection.setup_cache();
458
459 m_dragging = true;
460 for (auto &grabber : m_grabbers) grabber.dragging = false;
461// if (!m_grabbers.empty() && m_hover_id < int(m_grabbers.size()))
462// m_grabbers[m_hover_id].dragging = true;
463
465
466 // Let the plater know that the dragging started
467 m_parent.post_event(SimpleEvent(EVT_GLCANVAS_MOUSE_DRAGGING_STARTED));
468 m_parent.set_as_dirty();
469 return true;
470 }
471 } else if (m_dragging) {
472 // when mouse cursor leave window than finish actual dragging operation
473 bool is_leaving = mouse_event.Leaving() && !m_parent.has_mouse_capture(); // ORCA keep tracking mouse position while drag active and cursor not in window bounds
474 if (mouse_event.Dragging()) {
475 Point mouse_coord(mouse_event.GetX(), mouse_event.GetY());
476 auto ray = m_parent.mouse_ray(mouse_coord);
477 UpdateData data(ray, mouse_coord);
478
479 on_dragging(data);
480
481 wxGetApp().obj_manipul()->set_dirty();
482 m_parent.set_as_dirty();
483 return true;
484 }
485 else if (mouse_event.LeftUp() || is_leaving || is_dragging_finished) {
486 do_stop_dragging(is_leaving);
487 return true;
488 }
489 }
490 return false;
491}
virtual void on_dragging(const UpdateData &data)
Definition GLGizmoBase.hpp:255
virtual void on_start_dragging()
Definition GLGizmoBase.hpp:253
void do_stop_dragging(bool perform_mouse_cleanup)
Definition GLGizmoBase.cpp:493
Kernel::Point_3 Point
Definition MeshRepair.cpp:81
Definition GLGizmoBase.hpp:133

References do_stop_dragging(), Slic3r::GUI::Selection::is_empty(), m_dragging, m_grabbers, m_hover_id, m_parent, on_dragging(), on_start_dragging(), Slic3r::GUI::Selection::setup_cache(), and Slic3r::GUI::wxMouseEvent.

Referenced by Slic3r::GUI::GLGizmoBrimEars::on_mouse(), Slic3r::GUI::GLGizmoCut3D::on_mouse(), Slic3r::GUI::GLGizmoMove3D::on_mouse(), Slic3r::GUI::GLGizmoRotate3D::on_mouse(), Slic3r::GUI::GLGizmoRotate::on_mouse(), Slic3r::GUI::GLGizmoScale3D::on_mouse(), Slic3r::GUI::GLGizmoEmboss::on_mouse_for_rotation(), and Slic3r::GUI::GLGizmoSVG::on_mouse_for_rotation().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wants_enter_leave_snapshots()

virtual bool Slic3r::GUI::GLGizmoBase::wants_enter_leave_snapshots ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::GUI::GLGizmoAssembly, Slic3r::GUI::GLGizmoBrimEars, Slic3r::GUI::GLGizmoCut3D, Slic3r::GUI::GLGizmoEmboss, Slic3r::GUI::GLGizmoMeasure, Slic3r::GUI::GLGizmoPainterBase, and Slic3r::GUI::GLGizmoSVG.

187{ return false; }

Referenced by Slic3r::GUI::GLGizmosManager::activate_gizmo().

Here is the caller graph for this function:

Member Data Documentation

◆ AngleResolution

const unsigned int Slic3r::GUI::GLGizmoRotate::AngleResolution = 64
staticprivate

Referenced by render_angle_arc().

◆ AXES_COLOR

◆ AXES_HOVER_COLOR

std::array< ColorRGBA, 3 > Slic3r::GUI::GLGizmoBase::AXES_HOVER_COLOR
staticinherited
Initial value:
= {{
{ColorRGBA::X().r() * 1.2f, ColorRGBA::X().g() * 1.4f, ColorRGBA::X().b() * 1.4f, 1.0f},
{ColorRGBA::Y().r() * 1.2f, ColorRGBA::Y().g() * 1.2f, ColorRGBA::Y().b() * 1.2f, 1.0f},
{ColorRGBA::Z().r() * 1.2f, ColorRGBA::Z().g() * 1.2f, ColorRGBA::Z().b() * 1.2f, 1.0f},
}}
float b() const
Definition Color.hpp:107
float r() const
Definition Color.hpp:105
float g() const
Definition Color.hpp:106

Referenced by Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::GLGizmoRotate::on_render(), and Slic3r::GUI::GLGizmoScale3D::update_grabbers_data().

◆ BASE_ID

const unsigned int Slic3r::GUI::GLGizmoBase::BASE_ID = 255 * 255 * 254
staticinherited

◆ CONSTRAINED_COLOR

ColorRGBA Slic3r::GUI::GLGizmoBase::CONSTRAINED_COLOR = {0.5f, 0.5f, 0.5f, 1.0f}
staticinherited

◆ count

◆ DEFAULT_BASE_COLOR

ColorRGBA Slic3r::GUI::GLGizmoBase::DEFAULT_BASE_COLOR = { 0.625f, 0.625f, 0.625f, 1.0f }
staticinherited

◆ DEFAULT_DRAG_COLOR

ColorRGBA Slic3r::GUI::GLGizmoBase::DEFAULT_DRAG_COLOR = { 1.0f, 1.0f, 1.0f, 1.0f }
staticinherited

◆ DEFAULT_HIGHLIGHT_COLOR

ColorRGBA Slic3r::GUI::GLGizmoBase::DEFAULT_HIGHLIGHT_COLOR = {1.0f, 0.38f, 0.0f, 1.0f}
staticinherited

◆ FLATTEN_COLOR

ColorRGBA Slic3r::GUI::GLGizmoBase::FLATTEN_COLOR = {0.96f, 0.93f, 0.93f, 0.5f}
staticinherited

◆ FLATTEN_HOVER_COLOR

ColorRGBA Slic3r::GUI::GLGizmoBase::FLATTEN_HOVER_COLOR = {1.0f, 1.0f, 1.0f, 0.75f}
staticinherited

◆ GRABBER_ELEMENTS_MAX_COUNT

const unsigned int Slic3r::GUI::GLGizmoBase::GRABBER_ELEMENTS_MAX_COUNT = 7
staticinherited

◆ GRABBER_HOVER_COL

ColorRGBA Slic3r::GUI::GLGizmoBase::GRABBER_HOVER_COL = {0.863f, 0.125f, 0.063f, 1.0f}
staticinherited

◆ GRABBER_NORMAL_COL

ColorRGBA Slic3r::GUI::GLGizmoBase::GRABBER_NORMAL_COL = {1.0f, 1.0f, 1.0f, 1.0f}
staticinherited

◆ GRABBER_UNIFORM_COL

ColorRGBA Slic3r::GUI::GLGizmoBase::GRABBER_UNIFORM_COL = {0, 1.0, 1.0, 1.0f}
staticinherited

◆ GRABBER_UNIFORM_HOVER_COL

ColorRGBA Slic3r::GUI::GLGizmoBase::GRABBER_UNIFORM_HOVER_COL = {0, 0.7, 0.7, 1.0f}
staticinherited

◆ GrabberOffset

const float Slic3r::GUI::GLGizmoRotate::GrabberOffset = 0.15f
staticprivate

◆ INV_ZOOM

◆ last_input_window_width

float Slic3r::GUI::GLGizmoBase::last_input_window_width = 0
protectedinherited

◆ m_angle

double Slic3r::GUI::GLGizmoRotate::m_angle { 0.0 }
private

◆ m_angle_arc

GLModel Slic3r::GUI::GLGizmoRotate::m_angle_arc
private

Referenced by render_angle_arc().

◆ m_axis

Axis Slic3r::GUI::GLGizmoRotate::m_axis
private

◆ m_bounding_box

BoundingBoxf3 Slic3r::GUI::GLGizmoRotate::m_bounding_box
private

◆ m_c

CommonGizmosDataPool* Slic3r::GUI::GLGizmoBase::m_c { nullptr }
protectedinherited
155{ nullptr };

Referenced by Slic3r::GUI::GLGizmoTextureDisplacement::apply_projection_frame(), Slic3r::GUI::GLGizmoTextureDisplacement::bake(), Slic3r::GUI::GLGizmoTextureDisplacement::capture_view_projection(), Slic3r::GUI::GLGizmoCut3D::check_and_update_connectors_state(), Slic3r::GUI::GLGizmoBrimEars::data_changed(), Slic3r::GUI::GLGizmoCut3D::data_changed(), Slic3r::GUI::GLGizmoMmuSegmentation::data_changed(), Slic3r::GUI::GLGizmoPainterBase::data_changed(), Slic3r::GUI::GLGizmoCut3D::dragging_connector(), Slic3r::GUI::GLGizmoMeshBoolean::generate_new_volume(), Slic3r::GUI::GLGizmoPainterBase::get_clipping_plane_data(), Slic3r::GUI::GLGizmoPainterBase::get_clipping_plane_in_volume_coordinates(), Slic3r::GUI::GLGizmoBrimEars::get_config_options(), Slic3r::GUI::GLGizmoPainterBase::get_projected_height_range(), Slic3r::GUI::GLGizmoPainterBase::get_projected_mouse_positions(), Slic3r::GUI::GLGizmoFdmSupports::get_selection_support_threshold_angle(), Slic3r::GUI::GLGizmoBrimEars::gizmo_event(), Slic3r::GUI::GLGizmoCut3D::gizmo_event(), Slic3r::GUI::GLGizmoMeshBoolean::gizmo_event(), Slic3r::GUI::GLGizmoPainterBase::gizmo_event(), Slic3r::GUI::GLGizmoCut3D::has_valid_contour(), Slic3r::GUI::GLGizmoSimplify::init_model(), Slic3r::GUI::GLGizmoMmuSegmentation::init_model_triangle_selectors(), Slic3r::GUI::GLGizmoFdmSupports::init_print_instance(), Slic3r::GUI::GLGizmoBrimEars::is_mesh_point_clipped(), Slic3r::GUI::GLGizmoPainterBase::is_mesh_point_clipped(), Slic3r::GUI::GLGizmoCut3D::is_outside_of_cut_contour(), Slic3r::GUI::GLGizmoFlatten::is_plane_update_necessary(), Slic3r::GUI::GLGizmoPainterBase::mesh_trafo_matrices(), Slic3r::GUI::GLGizmoFdmSupports::need_regenerate_support_volumes(), Slic3r::GUI::GLGizmoMeshBoolean::on_get_requirements(), Slic3r::GUI::GLGizmoMeshBoolean::on_load(), Slic3r::GUI::GLGizmoTextureDisplacement::on_mouse_adjust_texture(), Slic3r::GUI::GLGizmoCut3D::on_register_raycasters_for_picking(), Slic3r::GUI::GLGizmoBrimEars::on_render(), Slic3r::GUI::GLGizmoMeshBoolean::on_render(), Slic3r::GUI::GLGizmoBrimEars::on_render_input_window(), Slic3r::GUI::GLGizmoCut3D::on_render_input_window(), Slic3r::GUI::GLGizmoFdmSupports::on_render_input_window(), Slic3r::GUI::GLGizmoFuzzySkin::on_render_input_window(), Slic3r::GUI::GLGizmoMmuSegmentation::on_render_input_window(), Slic3r::GUI::GLGizmoSeam::on_render_input_window(), Slic3r::GUI::GLGizmoTextureDisplacement::on_render_input_window(), Slic3r::GUI::GLGizmoCut3D::on_set_state(), Slic3r::GUI::GLGizmoFdmSupports::on_set_state(), Slic3r::GUI::GLGizmoMmuSegmentation::on_set_state(), Slic3r::GUI::GLGizmoSeam::on_set_state(), Slic3r::GUI::GLGizmoTextureDisplacement::preview_part(), Slic3r::GUI::GLGizmoCut3D::process_contours(), Slic3r::GUI::GLGizmoCut3D::process_selection_rectangle(), Slic3r::GUI::GLGizmoCut3D::put_connectors_on_cut_plane(), Slic3r::GUI::GLGizmoTextureDisplacement::queue_prepare(), Slic3r::GUI::GLGizmoBrimEars::reload_cache(), Slic3r::GUI::GLGizmoMmuSegmentation::remap_filament_assignments(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoCut3D::render_clipper_cut(), Slic3r::GUI::GLGizmoCut3D::render_connectors(), Slic3r::GUI::GLGizmoCut3D::render_debug_input_window(), Slic3r::GUI::GLGizmoPainterBase::render_follows_cursor(), Slic3r::GUI::GLGizmoTextureDisplacement::render_island_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::render_paint_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::render_painted_colors(), Slic3r::GUI::GLGizmoFdmSupports::render_painter_gizmo(), Slic3r::GUI::GLGizmoFuzzySkin::render_painter_gizmo(), Slic3r::GUI::GLGizmoMmuSegmentation::render_painter_gizmo(), Slic3r::GUI::GLGizmoSeam::render_painter_gizmo(), Slic3r::GUI::GLGizmoTextureDisplacement::render_painter_gizmo(), Slic3r::GUI::GLGizmoBrimEars::render_points(), Slic3r::GUI::GLGizmoTextureDisplacement::render_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::render_seam_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::render_shaded_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::render_subdivide_preview(), Slic3r::GUI::GLGizmoPainterBase::render_triangles(), Slic3r::GUI::GLGizmoTextureDisplacement::render_uvcheck_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::render_wireframe_overlay(), Slic3r::GUI::GLGizmoCut3D::reset_connectors(), Slic3r::GUI::GLGizmoFdmSupports::run_thread(), Slic3r::GUI::GLGizmoTextureDisplacement::seam_edge_at(), Slic3r::GUI::GLGizmoTextureDisplacement::seam_vertex_at(), Slic3r::GUI::GLGizmoFdmSupports::select_facets_by_angle(), Slic3r::GUI::GLGizmoTextureDisplacement::select_visible_faces(), Slic3r::GUI::GLGizmoTextureDisplacement::select_whole_model(), Slic3r::GUI::GLGizmoBrimEars::set_brim_data(), set_common_data_pool(), Slic3r::GUI::GLGizmoCut3D::set_connectors_editing(), Slic3r::GUI::GLGizmoTextureDisplacement::shaded_preview_ready(), Slic3r::GUI::GLGizmoTextureDisplacement::smooth_model(), Slic3r::GUI::GLGizmoTextureDisplacement::subdivide_model(), Slic3r::GUI::GLGizmoTextureDisplacement::swap_layer_slots(), Slic3r::GUI::GLGizmoCut3D::switch_to_mode(), Slic3r::GUI::GLGizmoTextureDisplacement::texture_parts(), Slic3r::GUI::GLGizmoTextureDisplacement::texture_volume(), Slic3r::GUI::GLGizmoTextureDisplacement::texture_volume_raycaster_index(), Slic3r::GUI::GLGizmoCut3D::unproject_on_cut_plane(), Slic3r::GUI::GLGizmoBrimEars::unproject_on_mesh(), Slic3r::GUI::GLGizmoBrimEars::unproject_on_mesh2(), Slic3r::GUI::GLGizmoCut3D::update_bb(), Slic3r::GUI::GLGizmoCut3D::update_clipper(), Slic3r::GUI::GLGizmoFdmSupports::update_from_model_object(), Slic3r::GUI::GLGizmoFuzzySkin::update_from_model_object(), Slic3r::GUI::GLGizmoSeam::update_from_model_object(), Slic3r::GUI::GLGizmoTextureDisplacement::update_from_model_object(), Slic3r::GUI::GLGizmoBrimEars::update_model_object(), Slic3r::GUI::GLGizmoFdmSupports::update_model_object(), Slic3r::GUI::GLGizmoFuzzySkin::update_model_object(), Slic3r::GUI::GLGizmoMmuSegmentation::update_model_object(), Slic3r::GUI::GLGizmoSeam::update_model_object(), Slic3r::GUI::GLGizmoTextureDisplacement::update_model_object(), Slic3r::GUI::GLGizmoFlatten::update_planes(), Slic3r::GUI::GLGizmoPainterBase::update_raycast_cache(), and Slic3r::GUI::GLGizmoCut3D::update_raycasters_for_picking_transform().

◆ m_center

Vec3d Slic3r::GUI::GLGizmoRotate::m_center { Vec3d::Zero() }
private

◆ m_circle

GLModel Slic3r::GUI::GLGizmoRotate::m_circle
private

Referenced by render_circle().

◆ m_dirty

bool Slic3r::GUI::GLGizmoBase::m_dirty { false }
privateinherited
293{ false };

Referenced by set_dirty(), and update_items_state().

◆ m_drag_color

ColorRGBA Slic3r::GUI::GLGizmoRotate::m_drag_color
private

Referenced by GLGizmoRotate(), and on_render().

◆ m_dragging

◆ m_first_input_window_render

bool Slic3r::GUI::GLGizmoBase::m_first_input_window_render { true }
protectedinherited
154{ true };

Referenced by render_input_window().

◆ m_force_local_coordinate

bool Slic3r::GUI::GLGizmoRotate::m_force_local_coordinate { false }
private
67{ false };

Referenced by init_data_from_selection(), and set_force_local_coordinate().

◆ m_grabber_connection

GrabberConnection Slic3r::GUI::GLGizmoRotate::m_grabber_connection
private

◆ m_grabbers

◆ m_group_id

int Slic3r::GUI::GLGizmoBase::m_group_id
protectedinherited

◆ m_highlight_color

ColorRGBA Slic3r::GUI::GLGizmoRotate::m_highlight_color
private

◆ m_hover_id

int Slic3r::GUI::GLGizmoBase::m_hover_id { -1 }
protectedinherited
150{ -1 };

Referenced by Slic3r::GUI::GLGizmoScale3D::calc_ratio(), Slic3r::GUI::GLGizmoScale3D::do_scale_along_axis(), Slic3r::GUI::GLGizmoScale3D::do_scale_uniform(), Slic3r::GUI::GLGizmoCut3D::dragging_connector(), Slic3r::GUI::GLGizmoCut3D::dragging_grabber_move(), Slic3r::GUI::GLGizmoCut3D::dragging_grabber_rotation(), get_hover_id(), Slic3r::GUI::GLGizmoCut3D::get_tooltip(), Slic3r::GUI::GLGizmoMove3D::get_tooltip(), Slic3r::GUI::GLGizmoRotate::get_tooltip(), Slic3r::GUI::GLGizmoScale3D::get_tooltip(), Slic3r::GUI::GLGizmoBrimEars::gizmo_event(), Slic3r::GUI::GLGizmoCut3D::gizmo_event(), Slic3r::GUI::GLGizmoCut3D::is_selection_changed(), Slic3r::GUI::GLGizmoBrimEars::on_dragging(), Slic3r::GUI::GLGizmoCut3D::on_dragging(), Slic3r::GUI::GLGizmoMove3D::on_dragging(), Slic3r::GUI::GLGizmoRotate3D::on_dragging(), Slic3r::GUI::GLGizmoScale3D::on_dragging(), Slic3r::GUI::GLGizmoCut3D::on_mouse(), Slic3r::GUI::GLGizmoFlatten::on_mouse(), Slic3r::GUI::GLGizmoMeasure::on_mouse(), Slic3r::GUI::GLGizmoFlatten::on_render(), Slic3r::GUI::GLGizmoMeasure::on_render(), Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::GLGizmoRotate3D::on_render(), Slic3r::GUI::GLGizmoRotate::on_render(), Slic3r::GUI::GLGizmoScale3D::on_render(), Slic3r::GUI::GLGizmoBrimEars::on_set_hover_id(), Slic3r::GUI::GLGizmoEmboss::on_set_hover_id(), Slic3r::GUI::GLGizmoRotate3D::on_set_hover_id(), Slic3r::GUI::GLGizmoSVG::on_set_hover_id(), Slic3r::GUI::GLGizmoMeasure::on_set_state(), Slic3r::GUI::GLGizmoBrimEars::on_start_dragging(), Slic3r::GUI::GLGizmoCut3D::on_start_dragging(), Slic3r::GUI::GLGizmoMove3D::on_start_dragging(), Slic3r::GUI::GLGizmoRotate3D::on_start_dragging(), Slic3r::GUI::GLGizmoScale3D::on_start_dragging(), Slic3r::GUI::GLGizmoBrimEars::on_stop_dragging(), Slic3r::GUI::GLGizmoCut3D::on_stop_dragging(), Slic3r::GUI::GLGizmoRotate3D::on_stop_dragging(), Slic3r::GUI::GLGizmoCut3D::render_connectors(), Slic3r::GUI::GLGizmoCut3D::render_cut_plane_grabbers(), Slic3r::GUI::GLGizmoCut3D::render_flip_plane_button(), render_grabbers(), Slic3r::GUI::GLGizmoBrimEars::render_points(), set_hover_id(), Slic3r::GUI::GLGizmoMeasure::show_selection_ui(), Slic3r::GUI::GLGizmoScale3D::update_grabbers_data(), and use_grabbers().

◆ m_icon_filename

std::string Slic3r::GUI::GLGizmoBase::m_icon_filename
protectedinherited

◆ m_imgui

ImGuiWrapper* Slic3r::GUI::GLGizmoBase::m_imgui
protectedinherited

Referenced by GLGizmoBase(), Slic3r::GUI::GLGizmoEmboss::GLGizmoEmboss(), Slic3r::GUI::GLGizmoCut3D::add_horizontal_scaled_interval(), Slic3r::GUI::GLGizmoCut3D::add_vertical_scaled_interval(), Slic3r::GUI::GLGizmoSimplify::create_gui_cfg(), Slic3r::GUI::GLGizmoEmboss::draw_advanced(), Slic3r::GUI::GLGizmoEmboss::draw_bold_button(), Slic3r::GUI::GLGizmoEmboss::draw_delete_style_button(), Slic3r::GUI::GLGizmoSVG::draw_depth(), Slic3r::GUI::GLGizmoSVG::draw_distance(), Slic3r::GUI::GLGizmoSVG::draw_filename(), Slic3r::GUI::GLGizmoEmboss::draw_font_list(), Slic3r::GUI::GLGizmoEmboss::draw_font_list_line(), Slic3r::GUI::GLGizmoEmboss::draw_italic_button(), Slic3r::GUI::GLGizmoSVG::draw_mirroring(), Slic3r::GUI::GLGizmoEmboss::draw_model_type(), Slic3r::GUI::GLGizmoSVG::draw_model_type(), Slic3r::GUI::GLGizmoSVG::draw_rotation(), Slic3r::GUI::GLGizmoSVG::draw_size(), Slic3r::GUI::GLGizmoEmboss::draw_style_add_button(), Slic3r::GUI::GLGizmoEmboss::draw_style_list(), Slic3r::GUI::GLGizmoEmboss::draw_style_rename_button(), Slic3r::GUI::GLGizmoEmboss::draw_style_rename_popup(), Slic3r::GUI::GLGizmoEmboss::draw_style_save_as_popup(), Slic3r::GUI::GLGizmoEmboss::draw_style_save_button(), Slic3r::GUI::GLGizmoEmboss::draw_text_input(), Slic3r::GUI::GLGizmoSVG::draw_use_surface(), Slic3r::GUI::GLGizmoEmboss::draw_window(), GizmoImguiBegin(), GizmoImguiEnd(), GizmoImguiSetNextWIndowPos(), Slic3r::GUI::GLGizmoCut3D::init_input_window_data(), Slic3r::GUI::GLGizmoMeasure::on_mouse(), Slic3r::GUI::GLGizmoAssembly::on_render_input_window(), Slic3r::GUI::GLGizmoBrimEars::on_render_input_window(), Slic3r::GUI::GLGizmoEmboss::on_render_input_window(), Slic3r::GUI::GLGizmoFdmSupports::on_render_input_window(), Slic3r::GUI::GLGizmoFuzzySkin::on_render_input_window(), Slic3r::GUI::GLGizmoMeasure::on_render_input_window(), Slic3r::GUI::GLGizmoMeshBoolean::on_render_input_window(), Slic3r::GUI::GLGizmoMmuSegmentation::on_render_input_window(), Slic3r::GUI::GLGizmoMove3D::on_render_input_window(), Slic3r::GUI::GLGizmoRotate3D::on_render_input_window(), Slic3r::GUI::GLGizmoScale3D::on_render_input_window(), Slic3r::GUI::GLGizmoSeam::on_render_input_window(), Slic3r::GUI::GLGizmoSimplify::on_render_input_window(), Slic3r::GUI::GLGizmoSVG::on_render_input_window(), Slic3r::GUI::GLGizmoTextureDisplacement::on_render_input_window(), Slic3r::GUI::GLGizmoTextureDisplacement::panel_tooltip(), Slic3r::GUI::GLGizmoCut3D::render_angle_input(), Slic3r::GUI::GLGizmoCut3D::render_build_size(), Slic3r::GUI::GLGizmoCut3D::render_color_marker(), render_combo(), Slic3r::GUI::GLGizmoCut3D::render_connectors_input_window(), Slic3r::GUI::GLGizmoCut3D::render_cut_mode_combo(), Slic3r::GUI::GLGizmoCut3D::render_cut_plane_input_window(), Slic3r::GUI::GLGizmoCut3D::render_debug_input_window(), Slic3r::GUI::GLGizmoTextureDisplacement::render_debug_stage_panel(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), Slic3r::GUI::GLGizmoCut3D::render_double_input(), Slic3r::GUI::GLGizmoMmuSegmentation::render_filament_remap_ui(), Slic3r::GUI::GLGizmoCut3D::render_flip_plane_button(), Slic3r::GUI::GLGizmoCut3D::render_groove_float_input(), Slic3r::GUI::GLGizmoCut3D::render_groove_int_input(), Slic3r::GUI::GLGizmoCut3D::render_groove_two_float_input(), Slic3r::GUI::GLGizmoTextureDisplacement::render_image_adjust_window(), Slic3r::GUI::GLGizmoAssembly::render_input_window_warning(), Slic3r::GUI::GLGizmoCut3D::render_input_window_warning(), Slic3r::GUI::GLGizmoCut3D::render_move_center_input(), Slic3r::GUI::GLGizmoCut3D::render_reset_button(), Slic3r::GUI::GLGizmoCut3D::render_slider_input(), Slic3r::GUI::GLGizmoCut3D::render_slider_two_input(), Slic3r::GUI::GLGizmoCut3D::render_snap_specific_input(), Slic3r::GUI::GLGizmoTextureDisplacement::render_texture_library_popup(), Slic3r::GUI::GLGizmoTextureDisplacement::render_tip_media(), Slic3r::GUI::GLGizmoCut3D::render_tooltip_button(), Slic3r::GUI::GLGizmoFdmSupports::render_tooltip_button(), Slic3r::GUI::GLGizmoFuzzySkin::render_tooltip_button(), Slic3r::GUI::GLGizmoMmuSegmentation::render_tooltip_button(), Slic3r::GUI::GLGizmoPainterBase::render_triangles(), Slic3r::GUI::GLGizmoEmboss::rev_checkbox(), Slic3r::GUI::GLGizmoEmboss::rev_input(), Slic3r::GUI::GLGizmoEmboss::rev_slider(), Slic3r::GUI::GLGizmoEmboss::rev_slider(), Slic3r::GUI::GLGizmoEmboss::rev_slider(), Slic3r::GUI::GLGizmoEmboss::revertible(), Slic3r::GUI::GLGizmoMeasure::show_distance_xyz_ui(), Slic3r::GUI::GLGizmoMeasure::show_face_face_assembly_common(), Slic3r::GUI::GLGizmoMeasure::show_face_face_assembly_senior(), and Slic3r::GUI::GLGizmoMeasure::show_selection_ui().

◆ m_is_dark_mode

◆ m_old_angle

float Slic3r::GUI::GLGizmoRotate::m_old_angle { 0.0f }
private
64{ 0.0f };

Referenced by render_angle_arc().

◆ m_old_hover_radius

float Slic3r::GUI::GLGizmoRotate::m_old_hover_radius { 0.0f }
private
63{ 0.0f };

Referenced by on_render().

◆ m_old_radius

float Slic3r::GUI::GLGizmoRotate::m_old_radius { 0.0f }
private
62{ 0.0f };

Referenced by on_render().

◆ m_orient_matrix

Transform3d Slic3r::GUI::GLGizmoRotate::m_orient_matrix { Transform3d::Identity() }
private
49{ Transform3d::Identity() };

Referenced by init_data_from_selection(), local_transform(), and mouse_position_in_local_plane().

◆ m_parent

GLCanvas3D& Slic3r::GUI::GLGizmoBase::m_parent
protectedinherited

Referenced by GLGizmoBase(), Slic3r::GUI::GLGizmoCut3D::add_connector(), Slic3r::GUI::GLGizmoTextureDisplacement::add_texture_layer(), Slic3r::GUI::GLGizmoCut3D::apply_color_clip_plane_colors(), Slic3r::GUI::GLGizmoTextureDisplacement::apply_projection_frame(), Slic3r::GUI::GLGizmoSimplify::apply_simplify(), Slic3r::GUI::GLGizmoTextureDisplacement::apply_view_mode(), Slic3r::GUI::GLGizmoBrimEars::auto_generate(), Slic3r::GUI::GLGizmoTextureDisplacement::bake(), Slic3r::GUI::GLGizmoCut3D::bounding_box(), Slic3r::GUI::GLGizmoPainterBase::bounding_box(), Slic3r::GUI::GLGizmoEmboss::calculate_scale(), Slic3r::GUI::GLGizmoSVG::calculate_scale(), Slic3r::GUI::GLGizmoTextureDisplacement::capture_view_projection(), Slic3r::GUI::GLGizmoMove3D::change_cs_by_selection(), Slic3r::GUI::GLGizmoScale3D::change_cs_by_selection(), Slic3r::GUI::GLGizmoEmboss::close(), Slic3r::GUI::GLGizmoSimplify::close(), Slic3r::GUI::GLGizmoSVG::close(), Slic3r::GUI::GLGizmoTextureDisplacement::close_image_adjust(), Slic3r::GUI::GLGizmoEmboss::create_volume(), Slic3r::GUI::GLGizmoEmboss::create_volume(), Slic3r::GUI::GLGizmoSVG::create_volume(), Slic3r::GUI::GLGizmoSVG::create_volume(), Slic3r::GUI::GLGizmoSVG::create_volume(), Slic3r::GUI::GLGizmoSVG::create_volume(), Slic3r::GUI::GLGizmoFlatten::data_changed(), Slic3r::GUI::GLGizmoMeasure::data_changed(), Slic3r::GUI::GLGizmoMove3D::data_changed(), Slic3r::GUI::GLGizmoPainterBase::data_changed(), Slic3r::GUI::GLGizmoRotate3D::data_changed(), Slic3r::GUI::GLGizmoScale3D::data_changed(), Slic3r::GUI::GLGizmoCut3D::delete_selected_connectors(), Slic3r::GUI::GLGizmoEmboss::do_mirror(), do_stop_dragging(), Slic3r::GUI::GLGizmoEmboss::draw_advanced(), Slic3r::GUI::GLGizmoSVG::draw_distance(), Slic3r::GUI::GLGizmoSVG::draw_face_the_camera(), Slic3r::GUI::GLGizmoSVG::draw_filename(), Slic3r::GUI::GLGizmoSVG::draw_mirroring(), Slic3r::GUI::GLGizmoEmboss::draw_model_type(), Slic3r::GUI::GLGizmoSVG::draw_model_type(), Slic3r::GUI::GLGizmoSVG::draw_rotation(), Slic3r::GUI::GLGizmoSVG::draw_size(), Slic3r::GUI::GLGizmoEmboss::draw_style_list(), Slic3r::GUI::GLGizmoEmboss::draw_window(), Slic3r::GUI::GLGizmoTextureDisplacement::ease_wheel_scroll(), Slic3r::GUI::GLGizmoBrimEars::find_single(), Slic3r::GUI::GLGizmoBrimEars::first_layer_slicer(), Slic3r::GUI::GLGizmoMeshBoolean::generate_new_volume(), Slic3r::GUI::GLGizmoPainterBase::get_projected_height_range(), Slic3r::GUI::GLGizmoMove3D::get_tooltip(), Slic3r::GUI::GLGizmoScale3D::get_tooltip(), Slic3r::GUI::GLGizmoBrimEars::gizmo_event(), Slic3r::GUI::GLGizmoMeasure::gizmo_event(), Slic3r::GUI::GLGizmoMeshBoolean::gizmo_event(), Slic3r::GUI::GLGizmoPainterBase::gizmo_event(), GizmoImguiSetNextWIndowPos(), Slic3r::GUI::GLGizmoCut3D::has_valid_groove(), Slic3r::GUI::GLGizmoSimplify::init_model(), Slic3r::GUI::GLGizmoMeasure::init_plane_glmodel(), Slic3r::GUI::GLGizmoFdmSupports::init_print_instance(), Slic3r::GUI::GLGizmoPainterBase::mesh_trafo_matrices(), Slic3r::GUI::GLGizmoTextureDisplacement::move_texture_layer(), Slic3r::GUI::GLGizmoMove3D::on_dragging(), Slic3r::GUI::GLGizmoAssembly::on_is_activable(), Slic3r::GUI::GLGizmoBrimEars::on_is_activable(), Slic3r::GUI::GLGizmoCut3D::on_is_activable(), Slic3r::GUI::GLGizmoFlatten::on_is_activable(), Slic3r::GUI::GLGizmoMeasure::on_is_activable(), Slic3r::GUI::GLGizmoMeshBoolean::on_is_activable(), Slic3r::GUI::GLGizmoMmuSegmentation::on_is_activable(), Slic3r::GUI::GLGizmoMove3D::on_is_activable(), Slic3r::GUI::GLGizmoPainterBase::on_is_activable(), Slic3r::GUI::GLGizmoRotate3D::on_is_activable(), Slic3r::GUI::GLGizmoScale3D::on_is_activable(), Slic3r::GUI::GLGizmoSimplify::on_is_activable(), Slic3r::GUI::GLGizmoTextureDisplacement::on_is_activable(), Slic3r::GUI::GLGizmoTextureDisplacement::on_island_edited(), Slic3r::GUI::GLGizmoCut3D::on_load(), Slic3r::GUI::GLGizmoBrimEars::on_mouse(), Slic3r::GUI::GLGizmoCut3D::on_mouse(), Slic3r::GUI::GLGizmoEmboss::on_mouse(), Slic3r::GUI::GLGizmoFlatten::on_mouse(), Slic3r::GUI::GLGizmoMeasure::on_mouse(), Slic3r::GUI::GLGizmoPainterBase::on_mouse(), Slic3r::GUI::GLGizmoRotate3D::on_mouse(), Slic3r::GUI::GLGizmoScale3D::on_mouse(), Slic3r::GUI::GLGizmoSVG::on_mouse(), Slic3r::GUI::GLGizmoTextureDisplacement::on_mouse_adjust_texture(), Slic3r::GUI::GLGizmoEmboss::on_mouse_change_selection(), Slic3r::GUI::GLGizmoEmboss::on_mouse_for_rotation(), Slic3r::GUI::GLGizmoSVG::on_mouse_for_rotation(), Slic3r::GUI::GLGizmoEmboss::on_mouse_for_translate(), Slic3r::GUI::GLGizmoSVG::on_mouse_for_translate(), Slic3r::GUI::GLGizmoTextureDisplacement::on_mouse_seam(), Slic3r::GUI::GLGizmoFdmSupports::on_opening(), Slic3r::GUI::GLGizmoCut3D::on_register_raycasters_for_picking(), Slic3r::GUI::GLGizmoFlatten::on_register_raycasters_for_picking(), Slic3r::GUI::GLGizmoMove3D::on_register_raycasters_for_picking(), Slic3r::GUI::GLGizmoRotate3D::on_register_raycasters_for_picking(), Slic3r::GUI::GLGizmoScale3D::on_register_raycasters_for_picking(), Slic3r::GUI::GLGizmoBrimEars::on_render(), Slic3r::GUI::GLGizmoCut3D::on_render(), Slic3r::GUI::GLGizmoEmboss::on_render(), Slic3r::GUI::GLGizmoFlatten::on_render(), Slic3r::GUI::GLGizmoMeasure::on_render(), Slic3r::GUI::GLGizmoMeshBoolean::on_render(), Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::GLGizmoRotate::on_render(), Slic3r::GUI::GLGizmoSimplify::on_render(), Slic3r::GUI::GLGizmoSVG::on_render(), Slic3r::GUI::GLGizmoAssembly::on_render_input_window(), Slic3r::GUI::GLGizmoBrimEars::on_render_input_window(), Slic3r::GUI::GLGizmoCut3D::on_render_input_window(), Slic3r::GUI::GLGizmoEmboss::on_render_input_window(), Slic3r::GUI::GLGizmoFdmSupports::on_render_input_window(), Slic3r::GUI::GLGizmoFuzzySkin::on_render_input_window(), Slic3r::GUI::GLGizmoMeasure::on_render_input_window(), Slic3r::GUI::GLGizmoMeshBoolean::on_render_input_window(), Slic3r::GUI::GLGizmoMmuSegmentation::on_render_input_window(), Slic3r::GUI::GLGizmoSeam::on_render_input_window(), Slic3r::GUI::GLGizmoSimplify::on_render_input_window(), Slic3r::GUI::GLGizmoSVG::on_render_input_window(), Slic3r::GUI::GLGizmoTextureDisplacement::on_render_input_window(), Slic3r::GUI::GLGizmoCut3D::on_set_state(), Slic3r::GUI::GLGizmoEmboss::on_set_state(), Slic3r::GUI::GLGizmoMeasure::on_set_state(), Slic3r::GUI::GLGizmoMmuSegmentation::on_set_state(), Slic3r::GUI::GLGizmoPainterBase::on_set_state(), Slic3r::GUI::GLGizmoSimplify::on_set_state(), Slic3r::GUI::GLGizmoSVG::on_set_state(), Slic3r::GUI::GLGizmoEmboss::on_shortcut_key(), Slic3r::GUI::GLGizmoFdmSupports::on_shutdown(), Slic3r::GUI::GLGizmoFuzzySkin::on_shutdown(), Slic3r::GUI::GLGizmoMmuSegmentation::on_shutdown(), Slic3r::GUI::GLGizmoSeam::on_shutdown(), Slic3r::GUI::GLGizmoTextureDisplacement::on_shutdown(), Slic3r::GUI::GLGizmoMove3D::on_start_dragging(), Slic3r::GUI::GLGizmoRotate::on_start_dragging(), Slic3r::GUI::GLGizmoEmboss::on_stop_dragging(), Slic3r::GUI::GLGizmoMove3D::on_stop_dragging(), Slic3r::GUI::GLGizmoRotate3D::on_stop_dragging(), Slic3r::GUI::GLGizmoScale3D::on_stop_dragging(), Slic3r::GUI::GLGizmoSVG::on_stop_dragging(), Slic3r::GUI::GLGizmoBrimEars::on_unregister_raycasters_for_picking(), Slic3r::GUI::GLGizmoCut3D::on_unregister_raycasters_for_picking(), Slic3r::GUI::GLGizmoFlatten::on_unregister_raycasters_for_picking(), Slic3r::GUI::GLGizmoMove3D::on_unregister_raycasters_for_picking(), Slic3r::GUI::GLGizmoRotate3D::on_unregister_raycasters_for_picking(), Slic3r::GUI::GLGizmoScale3D::on_unregister_raycasters_for_picking(), Slic3r::GUI::GLGizmoTextureDisplacement::on_uv_command(), Slic3r::GUI::GLGizmoTextureDisplacement::panel_tooltip(), Slic3r::GUI::GLGizmoCut3D::perform_cut(), Slic3r::GUI::GLGizmoEmboss::process(), Slic3r::GUI::GLGizmoSVG::process(), Slic3r::GUI::GLGizmoCut3D::process_contours(), Slic3r::GUI::GLGizmoCut3D::process_cut_line(), Slic3r::GUI::GLGizmoTextureDisplacement::queue_prepare(), Slic3r::GUI::GLGizmoTextureDisplacement::queue_preview_job(), Slic3r::GUI::GLGizmoBrimEars::register_single_mesh_pick(), Slic3r::GUI::GLGizmoMeasure::register_single_mesh_pick(), Slic3r::GUI::GLGizmoEmboss::reinit_text_lines(), Slic3r::GUI::GLGizmoMmuSegmentation::remap_filament_assignments(), Slic3r::GUI::GLGizmoTextureDisplacement::remove_texture_layer(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoMove3D::render_align_preview(), Slic3r::GUI::GLGizmoAssembly::render_assembly_mode_combo(), render_combo(), Slic3r::GUI::GLGizmoCut3D::render_connectors_input_window(), Slic3r::GUI::GLGizmoPainterBase::render_cursor(), Slic3r::GUI::GLGizmoPainterBase::render_cursor_circle(), Slic3r::GUI::GLGizmoPainterBase::render_cursor_height_range(), Slic3r::GUI::GLGizmoCut3D::render_cut_mode_combo(), Slic3r::GUI::GLGizmoCut3D::render_cut_plane_input_window(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), Slic3r::GUI::GLGizmoMeasure::render_follows_cursor(), Slic3r::GUI::GLGizmoPainterBase::render_follows_cursor(), Slic3r::GUI::GLGizmoTextureDisplacement::render_image_adjust_window(), render_input_window(), Slic3r::GUI::GLGizmoTextureDisplacement::render_island_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::render_paint_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::render_painted_colors(), Slic3r::GUI::GLGizmoFdmSupports::render_painter_gizmo(), Slic3r::GUI::GLGizmoFuzzySkin::render_painter_gizmo(), Slic3r::GUI::GLGizmoMmuSegmentation::render_painter_gizmo(), Slic3r::GUI::GLGizmoSeam::render_painter_gizmo(), Slic3r::GUI::GLGizmoTextureDisplacement::render_painter_gizmo(), Slic3r::GUI::GLGizmoTextureDisplacement::render_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::render_seam_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::render_shaded_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::render_subdivide_preview(), Slic3r::GUI::GLGizmoTextureDisplacement::render_texture_library_popup(), Slic3r::GUI::GLGizmoTextureDisplacement::render_tip_media(), Slic3r::GUI::GLGizmoCut3D::render_tooltip_button(), Slic3r::GUI::GLGizmoFdmSupports::render_tooltip_button(), Slic3r::GUI::GLGizmoFuzzySkin::render_tooltip_button(), Slic3r::GUI::GLGizmoMmuSegmentation::render_tooltip_button(), Slic3r::GUI::GLGizmoPainterBase::render_triangles(), Slic3r::GUI::GLGizmoTextureDisplacement::render_uvcheck_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::render_wireframe_overlay(), Slic3r::GUI::GLGizmoSimplify::request_rerender(), Slic3r::GUI::GLGizmoCut3D::reset_cut_plane(), Slic3r::GUI::GLGizmoEmboss::reset_to_default_style(), Slic3r::GUI::GLGizmoTextureDisplacement::run_stage_debug(), Slic3r::GUI::GLGizmoFdmSupports::run_thread(), Slic3r::GUI::GLGizmoTextureDisplacement::run_uv_command(), Slic3r::GUI::GLGizmoTextureDisplacement::seam_edge_at(), Slic3r::GUI::GLGizmoTextureDisplacement::seam_vertex_at(), Slic3r::GUI::GLGizmoFdmSupports::select_facets_by_angle(), Slic3r::GUI::GLGizmoTextureDisplacement::select_visible_faces(), Slic3r::GUI::GLGizmoTextureDisplacement::select_whole_model(), Slic3r::GUI::GLGizmoCut3D::set_connectors_editing(), Slic3r::GUI::GLGizmoMeasure::set_distance(), Slic3r::GUI::GLGizmoTextureDisplacement::set_layer_texture(), Slic3r::GUI::GLGizmoMeasure::set_parallel_distance(), Slic3r::GUI::GLGizmoMeasure::set_to_around_center_of_faces(), Slic3r::GUI::GLGizmoMeasure::set_to_parallel(), Slic3r::GUI::GLGizmoMeasure::set_to_reverse_rotation(), Slic3r::GUI::GLGizmoEmboss::set_volume_by_selection(), Slic3r::GUI::GLGizmoSVG::set_volume_by_selection(), Slic3r::GUI::GLGizmoCut3D::set_volumes_picking_state(), Slic3r::GUI::GLGizmoTextureDisplacement::show_debug_stage(), Slic3r::GUI::GLGizmoTextureDisplacement::show_projector(), Slic3r::GUI::GLGizmoTextureDisplacement::smooth_model(), Slic3r::GUI::GLGizmoTextureDisplacement::subdivide_model(), Slic3r::GUI::GLGizmoCut3D::toggle_model_objects_visibility(), Slic3r::GUI::GLGizmoCut3D::transformed_bounding_box(), Slic3r::GUI::GLGizmoBrimEars::unproject_on_mesh(), Slic3r::GUI::GLGizmoCut3D::update_bb(), Slic3r::GUI::GLGizmoBrimEars::update_cache_radius(), Slic3r::GUI::GLGizmoCut3D::update_clipper(), Slic3r::GUI::GLGizmoPainterBase::update_contours(), Slic3r::GUI::GLGizmoScale3D::update_grabbers_data(), Slic3r::GUI::GLGizmoTextureDisplacement::update_image_adjust_preview(), Slic3r::GUI::GLGizmoBrimEars::update_model_object(), Slic3r::GUI::GLGizmoFdmSupports::update_model_object(), Slic3r::GUI::GLGizmoFuzzySkin::update_model_object(), Slic3r::GUI::GLGizmoMmuSegmentation::update_model_object(), Slic3r::GUI::GLGizmoSeam::update_model_object(), Slic3r::GUI::GLGizmoTextureDisplacement::update_model_object(), Slic3r::GUI::GLGizmoPainterBase::update_raycast_cache(), Slic3r::GUI::GLGizmoBrimEars::update_raycasters(), use_grabbers(), Slic3r::GUI::GLGizmoEmboss::volume_transformation_changed(), Slic3r::GUI::GLGizmoSVG::volume_transformation_changed(), and Slic3r::GUI::GLGizmoEmboss::volume_transformation_changing().

◆ m_radius

float Slic3r::GUI::GLGizmoRotate::m_radius { 0.0f }
private

◆ m_reference_radius

GLModel Slic3r::GUI::GLGizmoRotate::m_reference_radius
private

Referenced by render_reference_radius().

◆ m_scale

GLModel Slic3r::GUI::GLGizmoRotate::m_scale
private

Referenced by render_scale().

◆ m_shortcut

◆ m_snap_coarse_in_radius

float Slic3r::GUI::GLGizmoRotate::m_snap_coarse_in_radius { 0.0f }
private
44{ 0.0f };

Referenced by GLGizmoRotate(), init_data_from_selection(), and on_dragging().

◆ m_snap_coarse_out_radius

float Slic3r::GUI::GLGizmoRotate::m_snap_coarse_out_radius { 0.0f }
private
45{ 0.0f };

Referenced by GLGizmoRotate(), init_data_from_selection(), and on_dragging().

◆ m_snap_fine_in_radius

float Slic3r::GUI::GLGizmoRotate::m_snap_fine_in_radius { 0.0f }
private
46{ 0.0f };

Referenced by GLGizmoRotate(), init_data_from_selection(), and on_dragging().

◆ m_snap_fine_out_radius

float Slic3r::GUI::GLGizmoRotate::m_snap_fine_out_radius { 0.0f }
private

◆ m_snap_radii

GLModel Slic3r::GUI::GLGizmoRotate::m_snap_radii
private

Referenced by render_snap_radii().

◆ m_sprite_id

unsigned int Slic3r::GUI::GLGizmoBase::m_sprite_id
protectedinherited

Referenced by GLGizmoBase(), and get_sprite_id().

◆ m_state

◆ Offset

const float Slic3r::GUI::GLGizmoRotate::Offset = 5.0f
staticprivate

◆ ScaleLongEvery

const unsigned int Slic3r::GUI::GLGizmoRotate::ScaleLongEvery = 2
staticprivate

Referenced by render_scale().

◆ ScaleLongTooth

const float Slic3r::GUI::GLGizmoRotate::ScaleLongTooth = 0.1f
staticprivate

◆ ScaleStepRad

const float Slic3r::GUI::GLGizmoRotate::ScaleStepRad = 2.0f * float(PI) / GLGizmoRotate::ScaleStepsCount
staticprivate

Referenced by render_circle(), and render_scale().

◆ ScaleStepsCount

const unsigned int Slic3r::GUI::GLGizmoRotate::ScaleStepsCount = 72
staticprivate

◆ SnapRegionsCount

const unsigned int Slic3r::GUI::GLGizmoRotate::SnapRegionsCount = 8
staticprivate

Referenced by on_dragging(), and render_snap_radii().


The documentation for this class was generated from the following files: