ENH: separate the simplifying of infill and wall

This can avoid to simplify wall twice when
the only invalid step is infill.

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Ie5a9ccc10d5331c29c716aece08cdb195352cfe3
This commit is contained in:
salt.wei 2023-05-31 14:05:59 +08:00 committed by Lane.Wei
parent e6070fc607
commit 3a1e112d49
5 changed files with 40 additions and 23 deletions

View file

@ -95,7 +95,8 @@ public:
// Is there any valid extrusion assigned to this LayerRegion?
bool has_extrusions() const { return ! this->perimeters.entities.empty() || ! this->fills.entities.empty(); }
//BBS
void simplify_extrusion_entity();
void simplify_infill_extrusion_entity() { simplify_entity_collection(&fills); }
void simplify_wall_extrusion_entity() { simplify_entity_collection(&perimeters); }
private:
void simplify_entity_collection(ExtrusionEntityCollection* entity_collection);
void simplify_path(ExtrusionPath* path);
@ -190,7 +191,8 @@ public:
virtual bool has_extrusions() const { for (auto layerm : m_regions) if (layerm->has_extrusions()) return true; return false; }
//BBS
void simplify_extrusion_path() { for (auto layerm : m_regions) layerm->simplify_extrusion_entity();}
void simplify_wall_extrusion_path() { for (auto layerm : m_regions) layerm->simplify_wall_extrusion_entity();}
void simplify_infill_extrusion_path() { for (auto layerm : m_regions) layerm->simplify_infill_extrusion_entity(); }
//BBS: this function calculate the maximum void grid area of sparse infill of this layer. Just estimated value
coordf_t get_sparse_infill_max_void_area();