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

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

Inheritance diagram for Slic3r::GUI::View3D:
Collaboration diagram for Slic3r::GUI::View3D:

Public Member Functions

 View3D (wxWindow *parent, Bed3D &bed, Model *model, DynamicPrintConfig *config, BackgroundSlicingProcess *process)
virtual ~View3D ()
wxGLCanvas * get_wxglcanvas ()
GLCanvas3D * get_canvas3d ()
void set_as_dirty ()
void bed_shape_changed ()
void plates_count_changed ()
void select_view (const std::string &direction)
void select_curr_plate_all ()
void select_object_from_idx (std::vector< int > &object_idxs)
void remove_curr_plate_all ()
void select_all ()
void deselect_all ()
void exit_gizmo ()
void delete_selected ()
void center_selected ()
void drop_selected ()
void center_selected_plate (const int plate_idx)
void mirror_selection (Axis axis)
bool is_layers_editing_enabled () const
bool is_layers_editing_allowed () const
void enable_layers_editing (bool enable)
bool is_dragging () const
bool is_reload_delayed () const
void reload_scene (bool refresh_immediately, bool force_full_scene_refresh=false)
void render ()

Private Member Functions

bool init (wxWindow *parent, Bed3D &bed, Model *model, DynamicPrintConfig *config, BackgroundSlicingProcess *process)

Private Attributes

wxGLCanvas * m_canvas_widget
GLCanvas3D * m_canvas

Detailed Description

Constructor & Destructor Documentation

◆ View3D()

Slic3r::GUI::View3D::View3D ( wxWindow * parent,
Bed3D & bed,
Model * model,
DynamicPrintConfig * config,
BackgroundSlicingProcess * process )
64 : m_canvas_widget(nullptr)
65 , m_canvas(nullptr)
66{
67 init(parent, bed, model, config, process);
68}
bool init(wxWindow *parent, Bed3D &bed, Model *model, DynamicPrintConfig *config, BackgroundSlicingProcess *process)
Definition GUI_Preview.cpp:76
GLCanvas3D * m_canvas
Definition GUI_Preview.hpp:51
wxGLCanvas * m_canvas_widget
Definition GUI_Preview.hpp:50

References init(), m_canvas, and m_canvas_widget.

Here is the call graph for this function:

◆ ~View3D()

Slic3r::GUI::View3D::~View3D ( )
virtual
71{
72 delete m_canvas;
73 delete m_canvas_widget;
74}

References m_canvas, and m_canvas_widget.

Member Function Documentation

◆ bed_shape_changed()

void Slic3r::GUI::View3D::bed_shape_changed ( )
130{
131 if (m_canvas != nullptr)
132 m_canvas->bed_shape_changed();
133}

References m_canvas.

◆ center_selected()

void Slic3r::GUI::View3D::center_selected ( )
191{
192 if (m_canvas != nullptr)
193 m_canvas->do_center();
194}

References m_canvas.

◆ center_selected_plate()

void Slic3r::GUI::View3D::center_selected_plate ( const int plate_idx)
202 {
203 if (m_canvas != nullptr)
204 m_canvas->do_center_plate(plate_idx);
205}

References m_canvas.

◆ delete_selected()

void Slic3r::GUI::View3D::delete_selected ( )
185{
186 if (m_canvas != nullptr)
187 m_canvas->delete_selected();
188}

References m_canvas.

◆ deselect_all()

void Slic3r::GUI::View3D::deselect_all ( )
173{
174 if (m_canvas != nullptr)
175 m_canvas->deselect_all();
176}

References m_canvas.

◆ drop_selected()

void Slic3r::GUI::View3D::drop_selected ( )
197{
198 if (m_canvas != nullptr)
199 m_canvas->do_drop();
200}

References m_canvas.

◆ enable_layers_editing()

void Slic3r::GUI::View3D::enable_layers_editing ( bool enable)
224{
225 if (m_canvas != nullptr)
226 m_canvas->enable_layers_editing(enable);
227}

References m_canvas.

◆ exit_gizmo()

void Slic3r::GUI::View3D::exit_gizmo ( )
179{
180 if (m_canvas != nullptr)
181 m_canvas->exit_gizmo();
182}

References m_canvas.

◆ get_canvas3d()

GLCanvas3D * Slic3r::GUI::View3D::get_canvas3d ( )
inline
58{ return m_canvas; }

References m_canvas.

Referenced by Slic3r::GUI::Plater::priv::scale_selection_to_fit_print_volume(), Slic3r::GUI::Plater::priv::schedule_background_process(), Slic3r::GUI::Plater::priv::set_current_panel(), Slic3r::GUI::Plater::priv::undo_redo_to(), and Slic3r::GUI::Plater::priv::update_after_undo_redo().

Here is the caller graph for this function:

◆ get_wxglcanvas()

wxGLCanvas * Slic3r::GUI::View3D::get_wxglcanvas ( )
inline
57{ return m_canvas_widget; }

References m_canvas_widget.

◆ init()

bool Slic3r::GUI::View3D::init ( wxWindow * parent,
Bed3D & bed,
Model * model,
DynamicPrintConfig * config,
BackgroundSlicingProcess * process )
private
77{
78 if (!Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 /* disable wxTAB_TRAVERSAL */))
79 return false;
80
81#if ENABLE_OPENGL_AUTO_AA_SAMPLES
82 const GUI_InitParams* const init_params = wxGetApp().init_params;
83 m_canvas_widget = OpenGLManager::create_wxglcanvas(*this, (init_params != nullptr) ? init_params->opengl_aa : false);
84#else
86 if (m_canvas_widget == nullptr)
87 return false;
88
89 m_canvas = new GLCanvas3D(m_canvas_widget, bed);
90 m_canvas->set_context(wxGetApp().init_glcontext(*m_canvas_widget));
91
92 m_canvas->allow_multisample(OpenGLManager::can_multisample());
93 // XXX: If have OpenGL
94 m_canvas->enable_picking(true);
95 m_canvas->get_selection().set_mode(Selection::Instance);
96 m_canvas->enable_moving(true);
97 // XXX: more config from 3D.pm
98 m_canvas->set_model(model);
99 m_canvas->set_process(process);
101 m_canvas->set_config(config);
102 m_canvas->enable_gizmos(true);
103 m_canvas->enable_selection(true);
104 m_canvas->enable_main_toolbar(true);
105 //BBS: GUI refactor: GLToolbar
106 m_canvas->enable_select_plate_toolbar(false);
107 m_canvas->enable_assemble_view_toolbar(true);
108 m_canvas->enable_separator_toolbar(true);
109 m_canvas->enable_labels(true);
110 m_canvas->enable_slope(true);
111
112 wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL);
113 main_sizer->Add(m_canvas_widget, 1, wxALL | wxEXPAND, 0);
114
115 SetSizer(main_sizer);
116 SetMinSize(GetSize());
117 GetSizer()->SetSizeHints(this);
118
119 return true;
120}
@ CanvasView3D
Definition GLCanvas3D.hpp:626
static bool can_multisample()
Definition OpenGLManager.hpp:100
static wxGLCanvas * create_wxglcanvas(wxWindow &parent)
Definition OpenGLManager.cpp:432
@ Instance
Definition Selection.hpp:54

References Slic3r::GUI::OpenGLManager::can_multisample(), Slic3r::GUI::GLCanvas3D::CanvasView3D, Slic3r::GUI::OpenGLManager::create_wxglcanvas(), Slic3r::GUI::Selection::Instance, m_canvas, and m_canvas_widget.

Referenced by View3D().

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

◆ is_dragging()

bool Slic3r::GUI::View3D::is_dragging ( ) const
230{
231 return (m_canvas != nullptr) ? m_canvas->is_dragging() : false;
232}

References m_canvas.

◆ is_layers_editing_allowed()

bool Slic3r::GUI::View3D::is_layers_editing_allowed ( ) const
219{
220 return (m_canvas != nullptr) ? m_canvas->is_layers_editing_allowed() : false;
221}

References m_canvas.

◆ is_layers_editing_enabled()

bool Slic3r::GUI::View3D::is_layers_editing_enabled ( ) const
214{
215 return (m_canvas != nullptr) ? m_canvas->is_layers_editing_enabled() : false;
216}

References m_canvas.

Referenced by Slic3r::GUI::Plater::priv::take_snapshot(), and Slic3r::GUI::Plater::priv::undo_redo_to().

Here is the caller graph for this function:

◆ is_reload_delayed()

bool Slic3r::GUI::View3D::is_reload_delayed ( ) const
235{
236 return (m_canvas != nullptr) ? m_canvas->is_reload_delayed() : false;
237}

References m_canvas.

◆ mirror_selection()

void Slic3r::GUI::View3D::mirror_selection ( Axis axis)
208{
209 if (m_canvas != nullptr)
210 m_canvas->mirror_selection(axis);
211}

References m_canvas.

◆ plates_count_changed()

void Slic3r::GUI::View3D::plates_count_changed ( )
136{
137 if (m_canvas != nullptr)
138 m_canvas->plates_count_changed();
139}

References m_canvas.

◆ reload_scene()

void Slic3r::GUI::View3D::reload_scene ( bool refresh_immediately,
bool force_full_scene_refresh = false )
240{
241 if (m_canvas != nullptr)
242 m_canvas->reload_scene(refresh_immediately, force_full_scene_refresh);
243}

References m_canvas.

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

Here is the caller graph for this function:

◆ remove_curr_plate_all()

void Slic3r::GUI::View3D::remove_curr_plate_all ( )
161{
162 if (m_canvas != nullptr)
163 m_canvas->remove_curr_plate_all();
164}

References m_canvas.

◆ render()

void Slic3r::GUI::View3D::render ( )
246{
247 if (m_canvas != nullptr)
248 //m_canvas->render();
249 m_canvas->set_as_dirty();
250}

References m_canvas.

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

Here is the caller graph for this function:

◆ select_all()

void Slic3r::GUI::View3D::select_all ( )
167{
168 if (m_canvas != nullptr)
169 m_canvas->select_all();
170}

References m_canvas.

◆ select_curr_plate_all()

void Slic3r::GUI::View3D::select_curr_plate_all ( )
149{
150 if (m_canvas != nullptr)
151 m_canvas->select_curr_plate_all();
152}

References m_canvas.

◆ select_object_from_idx()

void Slic3r::GUI::View3D::select_object_from_idx ( std::vector< int > & object_idxs)
154 {
155 if (m_canvas != nullptr)
156 m_canvas->select_object_from_idx(object_idxs);
157}

References m_canvas.

◆ select_view()

void Slic3r::GUI::View3D::select_view ( const std::string & direction)
142{
143 if (m_canvas != nullptr)
144 m_canvas->select_view(direction);
145}

References m_canvas.

◆ set_as_dirty()

void Slic3r::GUI::View3D::set_as_dirty ( )
123{
124 if (m_canvas != nullptr) {
125 m_canvas->set_as_dirty();
126 }
127}

References m_canvas.

Member Data Documentation

◆ m_canvas

◆ m_canvas_widget

wxGLCanvas* Slic3r::GUI::View3D::m_canvas_widget
private

Referenced by View3D(), ~View3D(), get_wxglcanvas(), and init().


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