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:
Diffstat (limited to 'src/libslic3r/SLA/SLASupportTree.hpp')
-rw-r--r--src/libslic3r/SLA/SLASupportTree.hpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/libslic3r/SLA/SLASupportTree.hpp b/src/libslic3r/SLA/SLASupportTree.hpp
index 66677e4d7..8602d8a46 100644
--- a/src/libslic3r/SLA/SLASupportTree.hpp
+++ b/src/libslic3r/SLA/SLASupportTree.hpp
@@ -24,10 +24,11 @@ class TriangleMesh;
class Model;
class ModelInstance;
class ModelObject;
+class Polygon;
class ExPolygon;
-using SliceLayer = std::vector<ExPolygon>;
-using SlicedSupports = std::vector<SliceLayer>;
+using Polygons = std::vector<Polygon>;
+using ExPolygons = std::vector<ExPolygon>;
namespace sla {
@@ -80,6 +81,10 @@ struct SupportConfig {
// The elevation in Z direction upwards. This is the space between the pad
// and the model object's bounding box bottom.
double object_elevation_mm = 10;
+
+ // The shortest distance between a pillar base perimeter from the model
+ // body. This is only useful when elevation is set to zero.
+ double pillar_base_safety_distance_mm = 0.5;
// /////////////////////////////////////////////////////////////////////////
// Compile time configuration values (candidates for runtime)
@@ -160,7 +165,7 @@ class SLASupportTree {
public:
- SLASupportTree();
+ SLASupportTree(double ground_level = 0.0);
SLASupportTree(const std::vector<SupportPoint>& pts,
const EigenMesh3D& em,
@@ -179,12 +184,17 @@ public:
void merged_mesh_with_pad(TriangleMesh&) const;
/// Get the sliced 2d layers of the support geometry.
- SlicedSupports slice(float layerh, float init_layerh = -1.0) const;
+ std::vector<ExPolygons> slice(float layerh, float init_layerh = -1.0) const;
- SlicedSupports slice(const std::vector<float>&, float closing_radius) const;
+ std::vector<ExPolygons> slice(const std::vector<float> &,
+ float closing_radius) const;
/// Adding the "pad" (base pool) under the supports
- const TriangleMesh& add_pad(const SliceLayer& baseplate,
+ /// modelbase will be used according to the embed_object flag in PoolConfig.
+ /// If set, the plate will interpreted as the model's intrinsic pad.
+ /// Otherwise, the modelbase will be unified with the base plate calculated
+ /// from the supports.
+ const TriangleMesh& add_pad(const ExPolygons& modelbase,
const PoolConfig& pcfg) const;
/// Get the pad geometry