diff options
Diffstat (limited to 'src/libslic3r/Fill/FillRectilinear2.hpp')
-rw-r--r-- | src/libslic3r/Fill/FillRectilinear2.hpp | 74 |
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 ¶ms); + +protected: + bool fill_surface_by_lines(const Surface *surface, const FillParams ¶ms, 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 ¶ms); + +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 ¶ms); + +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 ¶ms); + +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 ¶ms); + +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_ |