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

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xs/src/libslic3r/Model.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/xs/src/libslic3r/Model.cpp b/xs/src/libslic3r/Model.cpp
index 7b4e88c52..29a3786fd 100644
--- a/xs/src/libslic3r/Model.cpp
+++ b/xs/src/libslic3r/Model.cpp
@@ -167,13 +167,26 @@ TriangleMesh Model::mesh() const
static bool _arrange(const Pointfs &sizes, coordf_t dist, const BoundingBoxf* bb, Pointfs &out)
{
// we supply unscaled data to arrange()
- return Slic3r::Geometry::arrange(
+ bool result = Slic3r::Geometry::arrange(
sizes.size(), // number of parts
BoundingBoxf(sizes).max, // width and height of a single cell
dist, // distance between cells
bb, // bounding box of the area to fill
out // output positions
);
+
+ if (!result && bb != nullptr) {
+ // Try to arrange again ignoring bb
+ result = Slic3r::Geometry::arrange(
+ sizes.size(), // number of parts
+ BoundingBoxf(sizes).max, // width and height of a single cell
+ dist, // distance between cells
+ nullptr, // bounding box of the area to fill
+ out // output positions
+ );
+ }
+
+ return result;
}
/* arrange objects preserving their instance count