Fix instance Z synchronization (#15465)

This commit is contained in:
Noisyfox
2026-10-13 22:26:53 +08:00
committed by GitHub
parent e821665e4b
commit a338f6ca7d
7 changed files with 57 additions and 84 deletions
+6 -11
View File
@@ -3053,10 +3053,9 @@ void GLCanvas3D::ensure_on_bed(unsigned int object_idx, bool allow_negative_z)
InstancesToZMap instances_min_z;
for (GLVolume* volume : m_volumes.volumes) {
ModelObject* mo = m_model->objects[volume->object_idx()];
ModelInstance* mi = mo->instances[volume->instance_idx()];
ModelObject* mo = m_model->objects[volume->object_idx()];
if (!mi->auto_drop) {
if (!mo->auto_drop) {
continue;
}
@@ -5604,9 +5603,8 @@ void GLCanvas3D::do_move(const std::string& snapshot_type)
// Fixes sinking/flying instances (snaps object to buildplate)
for (const std::pair<int, int>& i : done) {
ModelObject* mo = m_model->objects[i.first];
ModelInstance* mi = mo->instances[i.second];
if (!mi->auto_drop) {
if (!mo->auto_drop) {
continue;
}
@@ -5735,9 +5733,8 @@ void GLCanvas3D::do_rotate(const std::string& snapshot_type)
// Fixes sinking/flying instances (snaps object to buildplate)
for (const std::pair<int, int> &i : done) {
ModelObject *mo = m_model->objects[i.first];
ModelInstance* mi = mo->instances[i.second];
if (!mi->auto_drop) {
if (!mo->auto_drop) {
continue;
}
@@ -5838,9 +5835,8 @@ void GLCanvas3D::do_scale(const std::string& snapshot_type)
// Fixes sinking/flying instances (snaps object to buildplate)
for (const std::pair<int, int>& i : done) {
ModelObject* mo = m_model->objects[i.first];
ModelInstance* mi = mo->instances[i.second];
if (!mi->auto_drop) {
if (!mo->auto_drop) {
continue;
}
@@ -5959,9 +5955,8 @@ void GLCanvas3D::do_mirror(const std::string& snapshot_type)
// Fixes sinking/flying instances (snaps object to buildplate)
for (const std::pair<int, int>& i : done) {
ModelObject* mo = m_model->objects[i.first];
ModelInstance* mi = mo->instances[i.second];
if (!mi->auto_drop) {
if (!mo->auto_drop) {
continue;
}