From 6fde6747c4748ea049ac1ff546932b18c5d19ca4 Mon Sep 17 00:00:00 2001 From: "salt.wei" Date: Wed, 5 Jul 2023 20:41:14 +0800 Subject: [PATCH] ENH: fix some assert in debug mode Signed-off-by: salt.wei Change-Id: I2d5796269d512672a3c3be7d6ebdc41f6cc58da8 --- src/libslic3r/GCode.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 8e7c04d4c..ebfa20201 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -4256,6 +4256,7 @@ bool GCode::needs_retraction(const Polyline &travel, ExtrusionRole role, LiftTyp auto is_through_overhang = [this](const Polyline& travel) { BoundingBox travel_bbox = get_extents(travel); travel_bbox.inflated(1); + travel_bbox.defined = true; const float protect_z_scaled = scale_(0.4); std::pair z_range; @@ -4271,6 +4272,9 @@ bool GCode::needs_retraction(const Polyline &travel, ExtrusionRole role, LiftTyp for (size_t idx : idx_of_object_sorted) { for (const Point & instance_shift : objects_instances_shift[idx]) { BoundingBox instance_bbox = boundingBox_for_objects[idx]; + if (!instance_bbox.defined) //BBS: Don't need to check when bounding box of overhang area is empty(undefined) + continue; + instance_bbox.offset(scale_(EPSILON)); instance_bbox.translate(instance_shift.x(), instance_shift.y()); if (!instance_bbox.overlap(travel_bbox))