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/Fill/FillRectilinear2.hpp')
-rw-r--r--src/libslic3r/Fill/FillRectilinear2.hpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/libslic3r/Fill/FillRectilinear2.hpp b/src/libslic3r/Fill/FillRectilinear2.hpp
new file mode 100644
index 000000000..4459919b0
--- /dev/null
+++ b/src/libslic3r/Fill/FillRectilinear2.hpp
@@ -0,0 +1,74 @@
+#ifndef slic3r_FillRectilinear2_hpp_
+#define slic3r_FillRectilinear2_hpp_
+
+#include "../libslic3r.h"
+
+#include "FillBase.hpp"
+
+namespace Slic3r {
+
+class Surface;
+
+class FillRectilinear2 : public Fill
+{
+public:
+ virtual Fill* clone() const { return new FillRectilinear2(*this); };
+ virtual ~FillRectilinear2() {}
+ virtual Polylines fill_surface(const Surface *surface, const FillParams &params);
+
+protected:
+ bool fill_surface_by_lines(const Surface *surface, const FillParams &params, float angleBase, float pattern_shift, Polylines &polylines_out);
+};
+
+class FillGrid2 : public FillRectilinear2
+{
+public:
+ virtual Fill* clone() const { return new FillGrid2(*this); };
+ virtual ~FillGrid2() {}
+ virtual Polylines fill_surface(const Surface *surface, const FillParams &params);
+
+protected:
+ // The grid fill will keep the angle constant between the layers, see the implementation of Slic3r::Fill.
+ virtual float _layer_angle(size_t idx) const { return 0.f; }
+};
+
+class FillTriangles : public FillRectilinear2
+{
+public:
+ virtual Fill* clone() const { return new FillTriangles(*this); };
+ virtual ~FillTriangles() {}
+ virtual Polylines fill_surface(const Surface *surface, const FillParams &params);
+
+protected:
+ // The grid fill will keep the angle constant between the layers, see the implementation of Slic3r::Fill.
+ virtual float _layer_angle(size_t idx) const { return 0.f; }
+};
+
+class FillStars : public FillRectilinear2
+{
+public:
+ virtual Fill* clone() const { return new FillStars(*this); };
+ virtual ~FillStars() {}
+ virtual Polylines fill_surface(const Surface *surface, const FillParams &params);
+
+protected:
+ // The grid fill will keep the angle constant between the layers, see the implementation of Slic3r::Fill.
+ virtual float _layer_angle(size_t idx) const { return 0.f; }
+};
+
+class FillCubic : public FillRectilinear2
+{
+public:
+ virtual Fill* clone() const { return new FillCubic(*this); };
+ virtual ~FillCubic() {}
+ virtual Polylines fill_surface(const Surface *surface, const FillParams &params);
+
+protected:
+ // The grid fill will keep the angle constant between the layers, see the implementation of Slic3r::Fill.
+ virtual float _layer_angle(size_t idx) const { return 0.f; }
+};
+
+
+}; // namespace Slic3r
+
+#endif // slic3r_FillRectilinear2_hpp_