From d6f46bedeb73bb717cd6e8138a75a872481f0fcd Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 12 May 2022 13:23:59 +0200 Subject: [PATCH] Cut WIP: Fixed some bugs * Fixed a crash on adding of the object (ObjectDataViewModel:volume_type wasn't initialized) * Cur grabber color is changed to YELLOW * Check position of the cut plane center on moving of the cut plane --- src/slic3r/GUI/Gizmos/GLGizmoCut.cpp | 10 +++++++--- src/slic3r/GUI/ObjectDataViewModel.hpp | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index b83d4ffbb7..5e8c07dd9f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -23,7 +23,7 @@ namespace Slic3r { namespace GUI { static const double Margin = 20.0; -static const ColorRGBA GRABBER_COLOR = ColorRGBA::ORANGE(); +static const ColorRGBA GRABBER_COLOR = ColorRGBA::YELLOW(); #define use_grabber_extension 1 @@ -163,7 +163,7 @@ void GLGizmoCut3D::shift_cut_z(double delta) { Vec3d new_cut_center = m_plane_center; new_cut_center[Z] += delta; - set_center_pos(new_cut_center); + set_center(new_cut_center); } void GLGizmoCut3D::rotate_vec3d_around_center(Vec3d& vec, const Vec3d& angles, const Vec3d& center) @@ -616,7 +616,7 @@ void GLGizmoCut3D::render_cut_line() GLModel::Geometry init_data; init_data.format = { GLModel::Geometry::EPrimitiveType::Lines, GLModel::Geometry::EVertexLayout::P3 }; - init_data.color = ColorRGBA::YELLOW(); + init_data.color = GRABBER_COLOR; init_data.reserve_vertices(2); init_data.reserve_indices(2); @@ -773,6 +773,10 @@ void GLGizmoCut3D::on_stop_dragging() void GLGizmoCut3D::set_center_pos(const Vec3d& center_pos) { + const BoundingBoxf3 tbb = transformed_bounding_box(true); + if (!tbb.contains(center_pos)) + return; + m_plane_center = center_pos; // !!! ysFIXME add smart clamp calculation diff --git a/src/slic3r/GUI/ObjectDataViewModel.hpp b/src/slic3r/GUI/ObjectDataViewModel.hpp index ec1d801c97..f5c61a6d49 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.hpp +++ b/src/slic3r/GUI/ObjectDataViewModel.hpp @@ -83,7 +83,7 @@ class ObjectDataViewModelNode bool m_has_lock{false}; std::string m_action_icon_name = ""; - ModelVolumeType m_volume_type; + ModelVolumeType m_volume_type{ -1 }; InfoItemType m_info_item_type {InfoItemType::Undef}; public: