diff --git a/xs/src/libslic3r/BoundingBox.hpp b/xs/src/libslic3r/BoundingBox.hpp index 21c2e384e..7f756ebce 100644 --- a/xs/src/libslic3r/BoundingBox.hpp +++ b/xs/src/libslic3r/BoundingBox.hpp @@ -21,7 +21,8 @@ class BoundingBoxBase bool defined; BoundingBoxBase() : defined(false) {}; - BoundingBoxBase(const PointClass &pmin, const PointClass &pmax) : min(pmin), max(pmax) {} + BoundingBoxBase(const PointClass &pmin, const PointClass &pmax) : + min(pmin), max(pmax), defined(pmin.x < pmax.x && pmin.y < pmax.y) {} BoundingBoxBase(const std::vector &points); void merge(const PointClass &point); void merge(const std::vector &points); @@ -41,7 +42,9 @@ class BoundingBox3Base : public BoundingBoxBase { public: BoundingBox3Base() : BoundingBoxBase() {}; - BoundingBox3Base(const PointClass &pmin, const PointClass &pmax) : BoundingBoxBase(pmin, pmax) {} + BoundingBox3Base(const PointClass &pmin, const PointClass &pmax) : + BoundingBoxBase(pmin, pmax) + { if (pmin.z >= pmax.z) defined = false; } BoundingBox3Base(const std::vector &points); void merge(const PointClass &point); void merge(const std::vector &points); @@ -102,13 +105,13 @@ inline bool operator!=(const BoundingBoxBase &bb1, const BoundingBoxBase template inline bool empty(const BoundingBoxBase &bb) { - return ! bb.defined || bb.min.x > bb.max.x || bb.min.y > bb.max.y; + return ! bb.defined || bb.min.x >= bb.max.x || bb.min.y >= bb.max.y; } template inline bool empty(const BoundingBox3Base &bb) { - return ! bb.defined || bb.min.x > bb.max.x || bb.min.y > bb.max.y || bb.min.z > bb.max.z; + return ! bb.defined || bb.min.x >= bb.max.x || bb.min.y >= bb.max.y || bb.min.z >= bb.max.z; } } // namespace Slic3r