Adaptive layer height profile -> Added Adaptive button to imgui dialog
This commit is contained in:
parent
9d5da8b18c
commit
b77ba32bb2
@ -1522,11 +1522,8 @@ bool PrintObject::update_layer_height_profile(const ModelObject &model_object, c
|
|||||||
layer_height_profile.clear();
|
layer_height_profile.clear();
|
||||||
|
|
||||||
if (layer_height_profile.empty()) {
|
if (layer_height_profile.empty()) {
|
||||||
//#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
//layer_height_profile = layer_height_profile_adaptive(slicing_parameters, model_object.layer_config_ranges, model_object.volumes);
|
||||||
// layer_height_profile = layer_height_profile_adaptive(slicing_parameters, model_object.layer_config_ranges, model_object.volumes);
|
|
||||||
//#else
|
|
||||||
layer_height_profile = layer_height_profile_from_ranges(slicing_parameters, model_object.layer_config_ranges);
|
layer_height_profile = layer_height_profile_from_ranges(slicing_parameters, model_object.layer_config_ranges);
|
||||||
//#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
return updated;
|
return updated;
|
||||||
|
@ -609,7 +609,11 @@ int generate_layer_height_texture(
|
|||||||
const Vec3crd &color1 = palette_raw[idx1];
|
const Vec3crd &color1 = palette_raw[idx1];
|
||||||
const Vec3crd &color2 = palette_raw[idx2];
|
const Vec3crd &color2 = palette_raw[idx2];
|
||||||
coordf_t z = cell_to_z * coordf_t(cell);
|
coordf_t z = cell_to_z * coordf_t(cell);
|
||||||
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
assert((lo - EPSILON <= z) && (z <= hi + EPSILON));
|
||||||
|
#else
|
||||||
assert(z >= lo && z <= hi);
|
assert(z >= lo && z <= hi);
|
||||||
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
// Intensity profile to visualize the layers.
|
// Intensity profile to visualize the layers.
|
||||||
coordf_t intensity = cos(M_PI * 0.7 * (mid - z) / h);
|
coordf_t intensity = cos(M_PI * 0.7 * (mid - z) / h);
|
||||||
// Color mapping from layer height to RGB.
|
// Color mapping from layer height to RGB.
|
||||||
|
@ -269,6 +269,10 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const
|
|||||||
if (imgui.button(_(L("Reset"))))
|
if (imgui.button(_(L("Reset"))))
|
||||||
wxPostEvent((wxEvtHandler*)canvas.get_wxglcanvas(), SimpleEvent(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE));
|
wxPostEvent((wxEvtHandler*)canvas.get_wxglcanvas(), SimpleEvent(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE));
|
||||||
|
|
||||||
|
ImGui::SameLine();
|
||||||
|
if (imgui.button(_(L("Adaptive"))))
|
||||||
|
wxPostEvent((wxEvtHandler*)canvas.get_wxglcanvas(), SimpleEvent(EVT_GLCANVAS_ADAPTIVE_LAYER_HEIGHT_PROFILE));
|
||||||
|
|
||||||
imgui.end();
|
imgui.end();
|
||||||
|
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
@ -570,6 +574,16 @@ void GLCanvas3D::LayersEditing::reset_layer_height_profile(GLCanvas3D& canvas)
|
|||||||
canvas.post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS));
|
canvas.post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
void GLCanvas3D::LayersEditing::adaptive_layer_height_profile(GLCanvas3D& canvas)
|
||||||
|
{
|
||||||
|
const_cast<ModelObject*>(m_model_object)->layer_height_profile.clear();
|
||||||
|
m_layer_height_profile = layer_height_profile_adaptive(*m_slicing_parameters, m_model_object->layer_config_ranges, m_model_object->volumes);
|
||||||
|
m_layers_texture.valid = false;
|
||||||
|
canvas.post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS));
|
||||||
|
}
|
||||||
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
|
||||||
void GLCanvas3D::LayersEditing::generate_layer_height_texture()
|
void GLCanvas3D::LayersEditing::generate_layer_height_texture()
|
||||||
{
|
{
|
||||||
this->update_slicing_parameters();
|
this->update_slicing_parameters();
|
||||||
@ -1196,6 +1210,7 @@ wxDEFINE_EVENT(EVT_GLCANVAS_UNDO, SimpleEvent);
|
|||||||
wxDEFINE_EVENT(EVT_GLCANVAS_REDO, SimpleEvent);
|
wxDEFINE_EVENT(EVT_GLCANVAS_REDO, SimpleEvent);
|
||||||
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
wxDEFINE_EVENT(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, SimpleEvent);
|
wxDEFINE_EVENT(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, SimpleEvent);
|
||||||
|
wxDEFINE_EVENT(EVT_GLCANVAS_ADAPTIVE_LAYER_HEIGHT_PROFILE, SimpleEvent);
|
||||||
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
|
||||||
#if ENABLE_THUMBNAIL_GENERATOR
|
#if ENABLE_THUMBNAIL_GENERATOR
|
||||||
@ -1506,6 +1521,13 @@ void GLCanvas3D::reset_layer_height_profile()
|
|||||||
m_layers_editing.state = LayersEditing::Completed;
|
m_layers_editing.state = LayersEditing::Completed;
|
||||||
m_dirty = true;
|
m_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GLCanvas3D::adaptive_layer_height_profile()
|
||||||
|
{
|
||||||
|
m_layers_editing.adaptive_layer_height_profile(*this);
|
||||||
|
m_layers_editing.state = LayersEditing::Completed;
|
||||||
|
m_dirty = true;
|
||||||
|
}
|
||||||
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
|
||||||
bool GLCanvas3D::is_reload_delayed() const
|
bool GLCanvas3D::is_reload_delayed() const
|
||||||
|
@ -106,6 +106,7 @@ wxDECLARE_EVENT(EVT_GLCANVAS_UNDO, SimpleEvent);
|
|||||||
wxDECLARE_EVENT(EVT_GLCANVAS_REDO, SimpleEvent);
|
wxDECLARE_EVENT(EVT_GLCANVAS_REDO, SimpleEvent);
|
||||||
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
wxDECLARE_EVENT(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, SimpleEvent);
|
wxDECLARE_EVENT(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, SimpleEvent);
|
||||||
|
wxDECLARE_EVENT(EVT_GLCANVAS_ADAPTIVE_LAYER_HEIGHT_PROFILE, SimpleEvent);
|
||||||
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
|
||||||
class GLCanvas3D
|
class GLCanvas3D
|
||||||
@ -224,6 +225,9 @@ private:
|
|||||||
void adjust_layer_height_profile();
|
void adjust_layer_height_profile();
|
||||||
void accept_changes(GLCanvas3D& canvas);
|
void accept_changes(GLCanvas3D& canvas);
|
||||||
void reset_layer_height_profile(GLCanvas3D& canvas);
|
void reset_layer_height_profile(GLCanvas3D& canvas);
|
||||||
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
void adaptive_layer_height_profile(GLCanvas3D& canvas);
|
||||||
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
|
||||||
static float get_cursor_z_relative(const GLCanvas3D& canvas);
|
static float get_cursor_z_relative(const GLCanvas3D& canvas);
|
||||||
static bool bar_rect_contains(const GLCanvas3D& canvas, float x, float y);
|
static bool bar_rect_contains(const GLCanvas3D& canvas, float x, float y);
|
||||||
@ -519,6 +523,7 @@ public:
|
|||||||
|
|
||||||
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
void reset_layer_height_profile();
|
void reset_layer_height_profile();
|
||||||
|
void adaptive_layer_height_profile();
|
||||||
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
|
||||||
bool is_reload_delayed() const;
|
bool is_reload_delayed() const;
|
||||||
|
@ -2091,6 +2091,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||||||
view3D_canvas->Bind(EVT_GLCANVAS_REDO, [this](SimpleEvent&) { this->redo(); });
|
view3D_canvas->Bind(EVT_GLCANVAS_REDO, [this](SimpleEvent&) { this->redo(); });
|
||||||
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
view3D_canvas->Bind(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, [this](SimpleEvent&) { this->view3D->get_canvas3d()->reset_layer_height_profile(); });
|
view3D_canvas->Bind(EVT_GLCANVAS_RESET_LAYER_HEIGHT_PROFILE, [this](SimpleEvent&) { this->view3D->get_canvas3d()->reset_layer_height_profile(); });
|
||||||
|
view3D_canvas->Bind(EVT_GLCANVAS_ADAPTIVE_LAYER_HEIGHT_PROFILE, [this](SimpleEvent&) { this->view3D->get_canvas3d()->adaptive_layer_height_profile(); });
|
||||||
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
|
||||||
// 3DScene/Toolbar:
|
// 3DScene/Toolbar:
|
||||||
|
Loading…
Reference in New Issue
Block a user