mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-02-04 09:58:44 +03:00
Exclude region judgment before optimizing slice
This commit is contained in:
@@ -1511,9 +1511,22 @@ bool GLCanvas3D::check_volumes_outside_state(GLVolumeCollection& volumes, ModelI
|
||||
state = BuildVolume::ObjectState::Below;
|
||||
else {
|
||||
switch (build_volume.type()) {
|
||||
// B66
|
||||
case BuildVolume::Type::Rectangle:
|
||||
//FIXME this test does not evaluate collision of a build volume bounding box with non-convex objects.
|
||||
state = build_volume.volume_state_bbox(volume_bbox(*volume));
|
||||
if (state == BuildVolume::ObjectState::Inside) {
|
||||
for (size_t i = 0; i < m_model->objects.size(); ++i) {
|
||||
ModelObject * object = m_model->objects[i];
|
||||
ModelInstance *instance = object->instances[0];
|
||||
Polygon hull = instance->convex_hull_2d();
|
||||
|
||||
state = build_volume.check_outside(hull);
|
||||
if (state != BuildVolume::ObjectState::Inside) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BuildVolume::Type::Circle:
|
||||
case BuildVolume::Type::Convex:
|
||||
|
||||
Reference in New Issue
Block a user