Tech ENABLE_PRINT_BED_MODELS set as default

This commit is contained in:
Enrico Turri 2019-02-19 10:07:37 +01:00
parent 644794233f
commit e861f5a243
5 changed files with 0 additions and 91 deletions

View file

@ -29,15 +29,6 @@
#define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING (0 && ENABLE_1_42_0_ALPHA1) #define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING (0 && ENABLE_1_42_0_ALPHA1)
//====================
// 1.42.0.alpha2 techs
//====================
#define ENABLE_1_42_0_ALPHA2 1
// Adds print bed models to 3D scene
#define ENABLE_PRINT_BED_MODELS (1 && ENABLE_1_42_0_ALPHA2)
//==================== //====================
// 1.42.0.alpha4 techs // 1.42.0.alpha4 techs
//==================== //====================

View file

@ -11,9 +11,7 @@
#include "libslic3r/Slicing.hpp" #include "libslic3r/Slicing.hpp"
#include "libslic3r/GCode/Analyzer.hpp" #include "libslic3r/GCode/Analyzer.hpp"
#include "slic3r/GUI/PresetBundle.hpp" #include "slic3r/GUI/PresetBundle.hpp"
#if ENABLE_PRINT_BED_MODELS
#include "libslic3r/Format/STL.hpp" #include "libslic3r/Format/STL.hpp"
#endif // ENABLE_PRINT_BED_MODELS
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -23,10 +21,8 @@
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#if ENABLE_PRINT_BED_MODELS
#include <boost/filesystem/operations.hpp> #include <boost/filesystem/operations.hpp>
#include <boost/algorithm/string.hpp> #include <boost/algorithm/string.hpp>
#endif // ENABLE_PRINT_BED_MODELS
#include <tbb/parallel_for.h> #include <tbb/parallel_for.h>
#include <tbb/spin_mutex.h> #include <tbb/spin_mutex.h>
@ -1671,27 +1667,19 @@ GUI::GLCanvas3DManager _3DScene::s_canvas_mgr;
GLModel::GLModel() GLModel::GLModel()
: m_useVBOs(false) : m_useVBOs(false)
#if ENABLE_PRINT_BED_MODELS
, m_filename("") , m_filename("")
#endif // ENABLE_PRINT_BED_MODELS
{ {
m_volume.shader_outside_printer_detection_enabled = false; m_volume.shader_outside_printer_detection_enabled = false;
} }
GLModel::~GLModel() GLModel::~GLModel()
{ {
#if ENABLE_PRINT_BED_MODELS
reset(); reset();
#else
m_volume.release_geometry();
#endif // ENABLE_PRINT_BED_MODELS
} }
void GLModel::set_color(const float* color, unsigned int size) void GLModel::set_color(const float* color, unsigned int size)
{ {
#if ENABLE_PRINT_BED_MODELS
::memcpy((void*)m_volume.color, (const void*)color, (size_t)(std::min((unsigned int)4, size) * sizeof(float))); ::memcpy((void*)m_volume.color, (const void*)color, (size_t)(std::min((unsigned int)4, size) * sizeof(float)));
#endif // ENABLE_PRINT_BED_MODELS
m_volume.set_render_color(color, size); m_volume.set_render_color(color, size);
} }
@ -1725,13 +1713,11 @@ void GLModel::set_scale(const Vec3d& scale)
m_volume.set_volume_scaling_factor(scale); m_volume.set_volume_scaling_factor(scale);
} }
#if ENABLE_PRINT_BED_MODELS
void GLModel::reset() void GLModel::reset()
{ {
m_volume.release_geometry(); m_volume.release_geometry();
m_filename = ""; m_filename = "";
} }
#endif // ENABLE_PRINT_BED_MODELS
void GLModel::render() const void GLModel::render() const
{ {
@ -1968,7 +1954,6 @@ bool GLCurvedArrow::on_init(bool useVBOs)
return true; return true;
} }
#if ENABLE_PRINT_BED_MODELS
bool GLBed::on_init_from_file(const std::string& filename, bool useVBOs) bool GLBed::on_init_from_file(const std::string& filename, bool useVBOs)
{ {
reset(); reset();
@ -2011,7 +1996,6 @@ bool GLBed::on_init_from_file(const std::string& filename, bool useVBOs)
return true; return true;
} }
#endif // ENABLE_PRINT_BED_MODELS
std::string _3DScene::get_gl_info(bool format_as_html, bool extensions) std::string _3DScene::get_gl_info(bool format_as_html, bool extensions)
{ {

View file

@ -498,20 +498,16 @@ class GLModel
protected: protected:
GLVolume m_volume; GLVolume m_volume;
bool m_useVBOs; bool m_useVBOs;
#if ENABLE_PRINT_BED_MODELS
std::string m_filename; std::string m_filename;
#endif // ENABLE_PRINT_BED_MODELS
public: public:
GLModel(); GLModel();
virtual ~GLModel(); virtual ~GLModel();
bool init(bool useVBOs) { return on_init(useVBOs); } bool init(bool useVBOs) { return on_init(useVBOs); }
#if ENABLE_PRINT_BED_MODELS
bool init_from_file(const std::string& filename, bool useVBOs) { return on_init_from_file(filename, useVBOs); } bool init_from_file(const std::string& filename, bool useVBOs) { return on_init_from_file(filename, useVBOs); }
void center_around(const Vec3d& center) { m_volume.set_volume_offset(center - m_volume.bounding_box.center()); } void center_around(const Vec3d& center) { m_volume.set_volume_offset(center - m_volume.bounding_box.center()); }
#endif // ENABLE_PRINT_BED_MODELS
void set_color(const float* color, unsigned int size); void set_color(const float* color, unsigned int size);
const Vec3d& get_offset() const; const Vec3d& get_offset() const;
@ -521,22 +517,16 @@ public:
const Vec3d& get_scale() const; const Vec3d& get_scale() const;
void set_scale(const Vec3d& scale); void set_scale(const Vec3d& scale);
#if ENABLE_PRINT_BED_MODELS
const std::string& get_filename() const { return m_filename; } const std::string& get_filename() const { return m_filename; }
const BoundingBoxf3& get_bounding_box() const { return m_volume.bounding_box; } const BoundingBoxf3& get_bounding_box() const { return m_volume.bounding_box; }
void reset(); void reset();
#endif // ENABLE_PRINT_BED_MODELS
void render() const; void render() const;
protected: protected:
#if ENABLE_PRINT_BED_MODELS
virtual bool on_init(bool useVBOs) { return false; } virtual bool on_init(bool useVBOs) { return false; }
virtual bool on_init_from_file(const std::string& filename, bool useVBOs) { return false; } virtual bool on_init_from_file(const std::string& filename, bool useVBOs) { return false; }
#else
virtual bool on_init(bool useVBOs) = 0;
#endif // ENABLE_PRINT_BED_MODELS
private: private:
void render_VBOs() const; void render_VBOs() const;
@ -560,13 +550,11 @@ protected:
virtual bool on_init(bool useVBOs); virtual bool on_init(bool useVBOs);
}; };
#if ENABLE_PRINT_BED_MODELS
class GLBed : public GLModel class GLBed : public GLModel
{ {
protected: protected:
virtual bool on_init_from_file(const std::string& filename, bool useVBOs); virtual bool on_init_from_file(const std::string& filename, bool useVBOs);
}; };
#endif // ENABLE_PRINT_BED_MODELS
class _3DScene class _3DScene
{ {

View file

@ -412,7 +412,6 @@ Point GLCanvas3D::Bed::point_projection(const Point& point) const
return m_polygon.point_projection(point); return m_polygon.point_projection(point);
} }
#if ENABLE_PRINT_BED_MODELS
void GLCanvas3D::Bed::render(float theta, bool useVBOs, float scale_factor) const void GLCanvas3D::Bed::render(float theta, bool useVBOs, float scale_factor) const
{ {
m_scale_factor = scale_factor; m_scale_factor = scale_factor;
@ -442,37 +441,6 @@ void GLCanvas3D::Bed::render(float theta, bool useVBOs, float scale_factor) cons
} }
} }
} }
#else
void GLCanvas3D::Bed::render(float theta, float scale_factor) const
{
m_scale_factor = scale_factor;
switch (m_type)
{
case MK2:
{
_render_prusa("mk2", theta);
break;
}
case MK3:
{
_render_prusa("mk3", theta);
break;
}
case SL1:
{
_render_prusa("sl1", theta);
break;
}
default:
case Custom:
{
_render_custom();
break;
}
}
}
#endif // ENABLE_PRINT_BED_MODELS
void GLCanvas3D::Bed::_calc_bounding_box() void GLCanvas3D::Bed::_calc_bounding_box()
{ {
@ -588,11 +556,7 @@ GLCanvas3D::Bed::EType GLCanvas3D::Bed::_detect_type() const
return type; return type;
} }
#if ENABLE_PRINT_BED_MODELS
void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta, bool useVBOs) const void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta, bool useVBOs) const
#else
void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
#endif // ENABLE_PRINT_BED_MODELS
{ {
std::string tex_path = resources_dir() + "/icons/bed/" + key; std::string tex_path = resources_dir() + "/icons/bed/" + key;
@ -608,9 +572,7 @@ void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
else if (max_tex_size >= 4096) else if (max_tex_size >= 4096)
tex_path += "_4096"; tex_path += "_4096";
#if ENABLE_PRINT_BED_MODELS
std::string model_path = resources_dir() + "/models/" + key; std::string model_path = resources_dir() + "/models/" + key;
#endif // ENABLE_PRINT_BED_MODELS
#if ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES #if ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
// use anisotropic filter if graphic card allows // use anisotropic filter if graphic card allows
@ -655,7 +617,6 @@ void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
#endif // ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES #endif // ENABLE_ANISOTROPIC_FILTER_ON_BED_TEXTURES
} }
#if ENABLE_PRINT_BED_MODELS
if (theta <= 90.0f) if (theta <= 90.0f)
{ {
filename = model_path + "_bed.stl"; filename = model_path + "_bed.stl";
@ -681,7 +642,6 @@ void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
::glDisable(GL_LIGHTING); ::glDisable(GL_LIGHTING);
} }
} }
#endif // ENABLE_PRINT_BED_MODELS
unsigned int triangles_vcount = m_triangles.get_vertices_count(); unsigned int triangles_vcount = m_triangles.get_vertices_count();
if (triangles_vcount > 0) if (triangles_vcount > 0)
@ -6533,11 +6493,7 @@ void GLCanvas3D::_render_bed(float theta) const
scale_factor = m_retina_helper->get_scale_factor(); scale_factor = m_retina_helper->get_scale_factor();
#endif #endif
#if ENABLE_PRINT_BED_MODELS
m_bed.render(theta, m_use_VBOs, scale_factor); m_bed.render(theta, m_use_VBOs, scale_factor);
#else
m_bed.render(theta, scale_factor);
#endif // ENABLE_PRINT_BED_MODELS
} }
void GLCanvas3D::_render_axes() const void GLCanvas3D::_render_axes() const

View file

@ -217,9 +217,7 @@ class GLCanvas3D
GeometryBuffer m_gridlines; GeometryBuffer m_gridlines;
mutable GLTexture m_top_texture; mutable GLTexture m_top_texture;
mutable GLTexture m_bottom_texture; mutable GLTexture m_bottom_texture;
#if ENABLE_PRINT_BED_MODELS
mutable GLBed m_model; mutable GLBed m_model;
#endif // ENABLE_PRINT_BED_MODELS
mutable float m_scale_factor; mutable float m_scale_factor;
@ -241,11 +239,7 @@ class GLCanvas3D
bool contains(const Point& point) const; bool contains(const Point& point) const;
Point point_projection(const Point& point) const; Point point_projection(const Point& point) const;
#if ENABLE_PRINT_BED_MODELS
void render(float theta, bool useVBOs, float scale_factor) const; void render(float theta, bool useVBOs, float scale_factor) const;
#else
void render(float theta, float scale_factor) const;
#endif // ENABLE_PRINT_BED_MODELS
private: private:
void _calc_bounding_box(); void _calc_bounding_box();
@ -256,11 +250,7 @@ class GLCanvas3D
#else #else
EType _detect_type() const; EType _detect_type() const;
#endif // ENABLE_REWORKED_BED_SHAPE_CHANGE #endif // ENABLE_REWORKED_BED_SHAPE_CHANGE
#if ENABLE_PRINT_BED_MODELS
void _render_prusa(const std::string &key, float theta, bool useVBOs) const; void _render_prusa(const std::string &key, float theta, bool useVBOs) const;
#else
void _render_prusa(const std::string &key, float theta) const;
#endif // ENABLE_PRINT_BED_MODELS
void _render_custom() const; void _render_custom() const;
#if !ENABLE_REWORKED_BED_SHAPE_CHANGE #if !ENABLE_REWORKED_BED_SHAPE_CHANGE
static bool _are_equal(const Pointfs& bed_1, const Pointfs& bed_2); static bool _are_equal(const Pointfs& bed_1, const Pointfs& bed_2);