Preparation for new infill

This commit is contained in:
Lukáš Hejl 2020-08-26 16:51:34 +02:00
parent e010d287c5
commit 0d26df3cf6
9 changed files with 95 additions and 1 deletions

View file

@ -30,6 +30,10 @@ enum class SlicingMode : uint32_t;
class Layer;
class SupportLayer;
namespace FillAdaptive_Internal {
struct Octree;
};
// Print step IDs for keeping track of the print state.
enum PrintStep {
psSkirt,
@ -194,6 +198,7 @@ public:
// Helpers to project custom facets on slices
void project_and_append_custom_facets(bool seam, EnforcerBlockerType type, std::vector<ExPolygons>& expolys) const;
FillAdaptive_Internal::Octree* adaptiveInfillOctree() { return m_adapt_fill_octree; }
private:
// to be called from Print only.
friend class Print;
@ -235,6 +240,7 @@ private:
void discover_horizontal_shells();
void combine_infill();
void _generate_support_material();
void prepare_adaptive_infill_data();
// XYZ in scaled coordinates
Vec3crd m_size;
@ -255,6 +261,8 @@ private:
// so that next call to make_perimeters() performs a union() before computing loops
bool m_typed_slices = false;
FillAdaptive_Internal::Octree* m_adapt_fill_octree = nullptr;
std::vector<ExPolygons> slice_region(size_t region_id, const std::vector<float> &z, SlicingMode mode) const;
std::vector<ExPolygons> slice_modifiers(size_t region_id, const std::vector<float> &z) const;
std::vector<ExPolygons> slice_volumes(const std::vector<float> &z, SlicingMode mode, const std::vector<const ModelVolume*> &volumes) const;