SPE-1259 - Fix for sinking objects not placed on top of bed after rotation with Place on face Gizmo
This commit is contained in:
parent
5922966eb0
commit
8fbc0b8633
@ -3896,12 +3896,13 @@ void GLCanvas3D::do_rotate(const std::string& snapshot_type)
|
|||||||
for (int i = 0; i < static_cast<int>(m_model->objects.size()); ++i) {
|
for (int i = 0; i < static_cast<int>(m_model->objects.size()); ++i) {
|
||||||
const ModelObject* obj = m_model->objects[i];
|
const ModelObject* obj = m_model->objects[i];
|
||||||
for (int j = 0; j < static_cast<int>(obj->instances.size()); ++j) {
|
for (int j = 0; j < static_cast<int>(obj->instances.size()); ++j) {
|
||||||
if (snapshot_type.empty() && m_selection.get_object_idx() == i) {
|
if (snapshot_type == L("Gizmo-Place on Face") && m_selection.get_object_idx() == i) {
|
||||||
// This means we are flattening this object. In that case pretend
|
// This means we are flattening this object. In that case pretend
|
||||||
// that it is not sinking (even if it is), so it is placed on bed
|
// that it is not sinking (even if it is), so it is placed on bed
|
||||||
// later on (whatever is sinking will be left sinking).
|
// later on (whatever is sinking will be left sinking).
|
||||||
min_zs[{ i, j }] = SINKING_Z_THRESHOLD;
|
min_zs[{ i, j }] = SINKING_Z_THRESHOLD;
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
min_zs[{ i, j }] = obj->instance_bounding_box(j).min.z();
|
min_zs[{ i, j }] = obj->instance_bounding_box(j).min.z();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -43,25 +43,18 @@ bool GLGizmoFlatten::on_mouse(const wxMouseEvent &mouse_event)
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// fix: prevent restart gizmo when reselect object
|
else if (mouse_event.LeftUp()) {
|
||||||
// take responsibility for left up
|
|
||||||
if (m_parent.get_first_hover_volume_idx() >= 0) m_mouse_left_down = true;
|
|
||||||
|
|
||||||
} else if (mouse_event.LeftUp()) {
|
|
||||||
if (m_mouse_left_down) {
|
if (m_mouse_left_down) {
|
||||||
if (m_hover_id == -1)
|
|
||||||
// no plane hovered
|
|
||||||
return false;
|
|
||||||
else {
|
|
||||||
// responsible for mouse left up after selecting plane
|
// responsible for mouse left up after selecting plane
|
||||||
m_mouse_left_down = false;
|
m_mouse_left_down = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if (mouse_event.Leaving()) {
|
else if (mouse_event.Leaving())
|
||||||
m_mouse_left_down = false;
|
m_mouse_left_down = false;
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user