diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index acc83272b..52ef67475 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -228,6 +228,7 @@ void make_fill(LayerRegion &layerm, ExtrusionEntityCollection &out) && surface.maxNbSolidLayersOnTop > 0) { density = 42; is_denser = true; + is_bridge = true; fill_pattern = ipRectiWithPerimeter; } if (density <= 0) @@ -243,7 +244,7 @@ void make_fill(LayerRegion &layerm, ExtrusionEntityCollection &out) Flow flow = layerm.region()->flow( role, h, - is_bridge || f->use_bridge_flow(), // bridge flow? + is_bridge, // bridge flow? layerm.layer()->id() == 0, // first layer? -1, // auto width *layerm.layer()->object() @@ -312,7 +313,7 @@ void make_fill(LayerRegion &layerm, ExtrusionEntityCollection &out) // so we can safely ignore the slight variation that might have // been applied to $f->flow_spacing } else { - flow = Flow::new_from_spacing(f->spacing, flow.nozzle_diameter, (float)h, is_bridge || f->use_bridge_flow()); + flow = Flow::new_from_spacing(f->spacing, flow.nozzle_diameter, (float)h, is_bridge); } //adjust flow (to over-extrude when needed) diff --git a/src/libslic3r/Fill/Fill3DHoneycomb.hpp b/src/libslic3r/Fill/Fill3DHoneycomb.hpp index 52b792251..0ea1ba8e5 100644 --- a/src/libslic3r/Fill/Fill3DHoneycomb.hpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.hpp @@ -15,9 +15,6 @@ public: virtual Fill* clone() const { return new Fill3DHoneycomb(*this); }; virtual ~Fill3DHoneycomb() {} - // require bridge flow since most of this pattern hangs in air - virtual bool use_bridge_flow() const { return true; } - protected: virtual void _fill_surface_single( const FillParams ¶ms, diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index f1afb4be5..379310bd9 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -55,24 +55,6 @@ Fill* Fill::new_from_type(const std::string &type) return (it == enum_keys_map.end()) ? nullptr : new_from_type(InfillPattern(it->second)); } -// Force initialization of the Fill::use_bridge_flow() internal static map in a thread safe fashion even on compilers -// not supporting thread safe non-static data member initializers. -static bool use_bridge_flow_initializer = Fill::use_bridge_flow(ipGrid); - -bool Fill::use_bridge_flow(const InfillPattern type) -{ - static std::vector cached; - if (cached.empty()) { - cached.assign(size_t(ipCount), 0); - for (size_t i = 0; i < cached.size(); ++ i) { - auto *fill = Fill::new_from_type((InfillPattern)i); - cached[i] = fill->use_bridge_flow(); - delete fill; - } - } - return cached[type] != 0; -} - Polylines Fill::fill_surface(const Surface *surface, const FillParams ¶ms) { // Perform offset. diff --git a/src/libslic3r/Fill/FillBase.hpp b/src/libslic3r/Fill/FillBase.hpp index 987473717..d1cce1838 100644 --- a/src/libslic3r/Fill/FillBase.hpp +++ b/src/libslic3r/Fill/FillBase.hpp @@ -94,13 +94,9 @@ public: static Fill* new_from_type(const InfillPattern type); static Fill* new_from_type(const std::string &type); - static bool use_bridge_flow(const InfillPattern type); void set_bounding_box(const Slic3r::BoundingBox &bbox) { bounding_box = bbox; } - // Use bridge flow for the fill? - virtual bool use_bridge_flow() const { return false; } - // Do not sort the fill lines to optimize the print head path? virtual bool no_sort() const { return false; } diff --git a/src/libslic3r/Fill/FillGyroid.hpp b/src/libslic3r/Fill/FillGyroid.hpp index 37babb25e..72af52c56 100644 --- a/src/libslic3r/Fill/FillGyroid.hpp +++ b/src/libslic3r/Fill/FillGyroid.hpp @@ -13,9 +13,6 @@ public: FillGyroid() {} virtual Fill* clone() const { return new FillGyroid(*this); } - // require bridge flow since most of this pattern hangs in air - virtual bool use_bridge_flow() const { return false; } - // Correction applied to regular infill angle to maximize printing // speed in default configuration (degrees) static constexpr float CorrectionAngle = -45.; diff --git a/src/libslic3r/Fill/FillRectilinear2.hpp b/src/libslic3r/Fill/FillRectilinear2.hpp index 7300d965e..642e1e51c 100644 --- a/src/libslic3r/Fill/FillRectilinear2.hpp +++ b/src/libslic3r/Fill/FillRectilinear2.hpp @@ -76,8 +76,6 @@ protected: class FillRectilinear2Peri : public FillRectilinear2 { public: - // require bridge flow since it's a pre-bridge over very sparse infill - virtual bool use_bridge_flow() const { return true; } virtual Fill* clone() const { return new FillRectilinear2Peri(*this); }; virtual ~FillRectilinear2Peri() {} @@ -102,8 +100,6 @@ protected: class FillRectilinearSawtooth : public FillRectilinear2 { public: - // require bridge flow since it's a pre-bridge over very sparse infill - virtual bool use_bridge_flow() const { return true; } virtual Fill* clone() const { return new FillRectilinearSawtooth(*this); }; virtual ~FillRectilinearSawtooth() {}