Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEnrico Turri <enricoturri@seznam.cz>2019-11-12 11:14:42 +0300
committerEnrico Turri <enricoturri@seznam.cz>2019-11-12 11:14:42 +0300
commit316832b23d6ac8347613896d7be73c77ebd35910 (patch)
tree74da91f77063bf7bed95a5622734f0eb6448ca0c /src/slic3r/GUI/3DScene.cpp
parent621b8426d3855a9b7c9c998a3d32a1adcb9fd284 (diff)
Fixed out of printbed detection for non-printable objects leading to inconsistent volumes' color
Diffstat (limited to 'src/slic3r/GUI/3DScene.cpp')
-rw-r--r--src/slic3r/GUI/3DScene.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp
index 086ba7a74..bbfcabd36 100644
--- a/src/slic3r/GUI/3DScene.cpp
+++ b/src/slic3r/GUI/3DScene.cpp
@@ -707,24 +707,24 @@ bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, M
print_volume.min(2) = -1e10;
ModelInstance::EPrintVolumeState state = ModelInstance::PVS_Inside;
- bool all_contained = true;
bool contained_min_one = false;
for (GLVolume* volume : this->volumes)
{
- if ((volume == nullptr) || !volume->printable || volume->is_modifier || (volume->is_wipe_tower && !volume->shader_outside_printer_detection_enabled) || ((volume->composite_id.volume_id < 0) && !volume->shader_outside_printer_detection_enabled))
+ if ((volume == nullptr) || volume->is_modifier || (volume->is_wipe_tower && !volume->shader_outside_printer_detection_enabled) || ((volume->composite_id.volume_id < 0) && !volume->shader_outside_printer_detection_enabled))
continue;
const BoundingBoxf3& bb = volume->transformed_convex_hull_bounding_box();
bool contained = print_volume.contains(bb);
- all_contained &= contained;
+
+ volume->is_outside = !contained;
+ if (!volume->printable)
+ continue;
if (contained)
contained_min_one = true;
- volume->is_outside = !contained;
-
if ((state == ModelInstance::PVS_Inside) && volume->is_outside)
state = ModelInstance::PVS_Fully_Outside;
@@ -735,7 +735,7 @@ bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, M
if (out_state != nullptr)
*out_state = state;
- return /*all_contained*/ contained_min_one; // #ys_FIXME_delete_after_testing
+ return contained_min_one;
}
void GLVolumeCollection::reset_outside_state()