diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index 8a9f9436b7..530b994181 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -369,17 +369,12 @@ public: const BoundingBoxf3& get_bounding_box(bool extended = false) { return extended ? m_extended_bounding_box : m_bounding_box; } const BoundingBox get_bounding_box_crd(); BoundingBoxf3 get_plate_box() {return get_build_volume();} + // Orca: support non-rectangular bed BoundingBoxf3 get_build_volume() { auto eps=Slic3r::BuildVolume::SceneEpsilon; - Vec3d up_point = Vec3d(m_origin.x() + m_width + eps, m_origin.y() + m_depth + eps, m_origin.z() + m_height + eps); - Vec3d low_point = Vec3d(m_origin.x() - eps, m_origin.y() - eps, m_origin.z() - eps); - if (m_raw_shape.size() > 0) { - up_point.x() += m_raw_shape[0].x(); - up_point.y() += m_raw_shape[0].y(); - low_point.x() += m_raw_shape[0].x(); - low_point.y() += m_raw_shape[0].y(); - } + Vec3d up_point = m_bounding_box.max + Vec3d(eps, eps, m_origin.z() + m_height + eps); + Vec3d low_point = m_bounding_box.min + Vec3d(-eps, -eps, m_origin.z() - eps); BoundingBoxf3 plate_box(low_point, up_point); return plate_box; }