mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-25 07:34:03 -06:00
FIX:cut reset failed after setted rotation Y=90
Jira: STUDIO-4814 Change-Id: I9f8c89744ddf0f48245c45af35f3193ff2cf929b
This commit is contained in:
parent
d6357d12b5
commit
6021d12110
2 changed files with 10 additions and 2 deletions
|
@ -374,6 +374,7 @@ void GLGizmoAdvancedCut::reset_cut_plane()
|
||||||
m_transformed_bounding_box = transformed_bounding_box(m_bb_center);
|
m_transformed_bounding_box = transformed_bounding_box(m_bb_center);
|
||||||
set_center(m_bb_center);
|
set_center(m_bb_center);
|
||||||
m_start_dragging_m = m_rotate_matrix = Transform3d::Identity();
|
m_start_dragging_m = m_rotate_matrix = Transform3d::Identity();
|
||||||
|
update_plane_normal();
|
||||||
m_ar_plane_center = m_plane_center;
|
m_ar_plane_center = m_plane_center;
|
||||||
|
|
||||||
reset_cut_by_contours();
|
reset_cut_by_contours();
|
||||||
|
@ -1008,18 +1009,24 @@ void GLGizmoAdvancedCut::put_connectors_on_cut_plane(const Vec3d &cp_normal, dou
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLGizmoAdvancedCut::update_clipper()
|
void GLGizmoAdvancedCut::update_plane_normal()
|
||||||
{
|
{
|
||||||
// update cut_normal
|
// update cut_normal
|
||||||
Vec3d normal = m_rotate_matrix * Vec3d::UnitZ();
|
Vec3d normal = m_rotate_matrix * Vec3d::UnitZ();
|
||||||
m_plane_normal = normal; // core
|
m_plane_normal = normal; // core
|
||||||
m_plane_x_direction = m_rotate_matrix * Vec3d::UnitX(); // core
|
m_plane_x_direction = m_rotate_matrix * Vec3d::UnitX(); // core
|
||||||
|
m_clp_normal = normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLGizmoAdvancedCut::update_clipper()
|
||||||
|
{
|
||||||
|
update_plane_normal();
|
||||||
|
auto normal = m_plane_normal;
|
||||||
// calculate normal and offset for clipping plane
|
// calculate normal and offset for clipping plane
|
||||||
Vec3d beg = m_bb_center;
|
Vec3d beg = m_bb_center;
|
||||||
beg[Z] -= m_radius;
|
beg[Z] -= m_radius;
|
||||||
rotate_vec3d_around_plane_center(beg, m_rotate_matrix, m_plane_center);
|
rotate_vec3d_around_plane_center(beg, m_rotate_matrix, m_plane_center);
|
||||||
|
|
||||||
m_clp_normal = normal;
|
|
||||||
double offset = normal.dot(m_plane_center);
|
double offset = normal.dot(m_plane_center);
|
||||||
double dist = normal.dot(beg);
|
double dist = normal.dot(beg);
|
||||||
|
|
||||||
|
|
|
@ -278,6 +278,7 @@ private:
|
||||||
|
|
||||||
// update the connectors position so that the connectors are on the cut plane
|
// update the connectors position so that the connectors are on the cut plane
|
||||||
void put_connectors_on_cut_plane(const Vec3d &cp_normal, double cp_offset);
|
void put_connectors_on_cut_plane(const Vec3d &cp_normal, double cp_offset);
|
||||||
|
void update_plane_normal();
|
||||||
void update_clipper();
|
void update_clipper();
|
||||||
// on render
|
// on render
|
||||||
void render_cut_plane_and_grabbers();
|
void render_cut_plane_and_grabbers();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue