Another set of 3DScene methods moved to c++

This commit is contained in:
Enrico Turri 2018-06-04 15:42:34 +02:00
parent 9729c71691
commit d74b85f3fe
13 changed files with 151 additions and 62 deletions

View file

@ -1903,6 +1903,16 @@ void _3DScene::render(wxGLCanvas* canvas)
s_canvas_mgr.render(canvas);
}
std::vector<double> _3DScene::get_current_print_zs(wxGLCanvas* canvas, bool active_only)
{
return s_canvas_mgr.get_current_print_zs(canvas, active_only);
}
void _3DScene::set_toolpaths_range(wxGLCanvas* canvas, double low, double high)
{
s_canvas_mgr.set_toolpaths_range(canvas, low, high);
}
void _3DScene::register_on_viewport_changed_callback(wxGLCanvas* canvas, void* callback)
{
s_canvas_mgr.register_on_viewport_changed_callback(canvas, callback);

View file

@ -587,6 +587,9 @@ public:
static void render(wxGLCanvas* canvas);
static std::vector<double> get_current_print_zs(wxGLCanvas* canvas, bool active_only);
static void set_toolpaths_range(wxGLCanvas* canvas, double low, double high);
static void register_on_viewport_changed_callback(wxGLCanvas* canvas, void* callback);
static void register_on_double_click_callback(wxGLCanvas* canvas, void* callback);
static void register_on_right_click_callback(wxGLCanvas* canvas, void* callback);

View file

@ -1317,6 +1317,17 @@ void GLCanvas3D::render_texture(unsigned int tex_id, float left, float right, fl
::glEnable(GL_LIGHTING);
}
std::vector<double> GLCanvas3D::get_current_print_zs(bool active_only) const
{
return (m_volumes != nullptr) ? m_volumes->get_current_print_zs(active_only) : std::vector<double>();
}
void GLCanvas3D::set_toolpaths_range(double low, double high)
{
if (m_volumes != nullptr)
m_volumes->set_range(low, high);
}
void GLCanvas3D::register_on_viewport_changed_callback(void* callback)
{
if (callback != nullptr)

View file

@ -376,6 +376,9 @@ public:
void render();
void render_texture(unsigned int tex_id, float left, float right, float bottom, float top) const;
std::vector<double> get_current_print_zs(bool active_only) const;
void set_toolpaths_range(double low, double high);
void register_on_viewport_changed_callback(void* callback);
void register_on_double_click_callback(void* callback);
void register_on_right_click_callback(void* callback);

View file

@ -430,6 +430,19 @@ void GLCanvas3DManager::render(wxGLCanvas* canvas) const
it->second->render();
}
std::vector<double> GLCanvas3DManager::get_current_print_zs(wxGLCanvas* canvas, bool active_only) const
{
CanvasesMap::const_iterator it = _get_canvas(canvas);
return (it != m_canvases.end()) ? it->second->get_current_print_zs(active_only) : std::vector<double>();
}
void GLCanvas3DManager::set_toolpaths_range(wxGLCanvas* canvas, double low, double high)
{
CanvasesMap::iterator it = _get_canvas(canvas);
if (it != m_canvases.end())
it->second->set_toolpaths_range(low, high);
}
void GLCanvas3DManager::register_on_viewport_changed_callback(wxGLCanvas* canvas, void* callback)
{
CanvasesMap::iterator it = _get_canvas(canvas);

View file

@ -91,6 +91,9 @@ public:
void render(wxGLCanvas* canvas) const;
std::vector<double> get_current_print_zs(wxGLCanvas* canvas, bool active_only) const;
void set_toolpaths_range(wxGLCanvas* canvas, double low, double high);
void register_on_viewport_changed_callback(wxGLCanvas* canvas, void* callback);
void register_on_double_click_callback(wxGLCanvas* canvas, void* callback);
void register_on_right_click_callback(wxGLCanvas* canvas, void* callback);