Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::ExtrusionEntityCollection Class Reference

#include <src/libslic3r/ExtrusionEntityCollection.hpp>

+ Inheritance diagram for Slic3r::ExtrusionEntityCollection:
+ Collaboration diagram for Slic3r::ExtrusionEntityCollection:

Public Member Functions

ExtrusionEntityclone () const override
 
ExtrusionEntityclone_move () override
 
 ExtrusionEntityCollection ()
 
 ExtrusionEntityCollection (const ExtrusionEntityCollection &other)
 
 ExtrusionEntityCollection (ExtrusionEntityCollection &&other)
 
 ExtrusionEntityCollection (const ExtrusionPaths &paths)
 
ExtrusionEntityCollectionoperator= (const ExtrusionEntityCollection &other)
 
ExtrusionEntityCollectionoperator= (ExtrusionEntityCollection &&other)
 
 ~ExtrusionEntityCollection () override
 
 operator ExtrusionPaths () const
 
ExtrusionEntitiesPtr::const_iterator cbegin () const
 
ExtrusionEntitiesPtr::const_iterator cend () const
 
ExtrusionEntitiesPtr::const_iterator begin () const
 
ExtrusionEntitiesPtr::const_iterator end () const
 
ExtrusionEntitiesPtr::iterator begin ()
 
ExtrusionEntitiesPtr::iterator end ()
 
bool is_collection () const override
 
ExtrusionRole role () const override
 
bool can_reverse () const override
 
bool empty () const
 
void clear ()
 
void swap (ExtrusionEntityCollection &c)
 
void append (const ExtrusionEntity &entity)
 
void append (ExtrusionEntity &&entity)
 
void append (const ExtrusionEntitiesPtr &entities)
 
void append (ExtrusionEntitiesPtr &&src)
 
void append (const ExtrusionPaths &paths)
 
void append (ExtrusionPaths &&paths)
 
void replace (size_t i, const ExtrusionEntity &entity)
 
void remove (size_t i)
 
ExtrusionEntityCollection chained_path_from (const Point &start_near, ExtrusionRole role=ExtrusionRole::Mixed) const
 
void reverse () override
 
const Pointfirst_point () const override
 
const Pointlast_point () const override
 
const Pointmiddle_point () const override
 
void polygons_covered_by_width (Polygons &out, const float scaled_epsilon) const override
 
void polygons_covered_by_spacing (Polygons &out, const float scaled_epsilon) const override
 
Polygons polygons_covered_by_width (const float scaled_epsilon=0.f) const
 
Polygons polygons_covered_by_spacing (const float scaled_epsilon=0.f) const
 
size_t size () const
 
size_t items_count () const
 
ExtrusionEntityCollection flatten (bool preserve_ordering=false) const
 Returns a flattened copy of this ExtrusionEntityCollection. That is, all of the items in its entities vector are not collections. You should be iterating over flatten().entities if you are interested in the underlying ExtrusionEntities (and don't care about hierarchy).
 
double min_mm3_per_mm () const override
 
double total_volume () const override
 
Polyline as_polyline () const override
 
void collect_polylines (Polylines &dst) const override
 
void collect_points (Points &dst) const override
 
double length () const override
 
virtual bool is_loop () const
 
virtual Polylines as_polylines () const
 

Static Public Member Functions

static ExtrusionEntityCollection chained_path_from (const ExtrusionEntitiesPtr &extrusion_entities, const Point &start_near, ExtrusionRole role=ExtrusionRole::Mixed)
 

Public Attributes

ExtrusionEntitiesPtr entities
 
bool no_sort
 

Detailed Description

Constructor & Destructor Documentation

◆ ExtrusionEntityCollection() [1/4]

Slic3r::ExtrusionEntityCollection::ExtrusionEntityCollection ( )
inline
34: no_sort(false) {}
bool no_sort
Definition ExtrusionEntityCollection.hpp:33

Referenced by clone(), and clone_move().

+ Here is the caller graph for this function:

◆ ExtrusionEntityCollection() [2/4]

Slic3r::ExtrusionEntityCollection::ExtrusionEntityCollection ( const ExtrusionEntityCollection other)
inline
35: no_sort(other.no_sort) { this->append(other.entities); }
void append(const ExtrusionEntity &entity)
Definition ExtrusionEntityCollection.hpp:68

References append(), and entities.

+ Here is the call graph for this function:

◆ ExtrusionEntityCollection() [3/4]

Slic3r::ExtrusionEntityCollection::ExtrusionEntityCollection ( ExtrusionEntityCollection &&  other)
inline
36: entities(std::move(other.entities)), no_sort(other.no_sort) {}
ExtrusionEntitiesPtr entities
Definition ExtrusionEntityCollection.hpp:32

◆ ExtrusionEntityCollection() [4/4]

Slic3r::ExtrusionEntityCollection::ExtrusionEntityCollection ( const ExtrusionPaths paths)
explicit
22 : no_sort(false)
23{
24 this->append(paths);
25}

References append().

+ Here is the call graph for this function:

◆ ~ExtrusionEntityCollection()

Slic3r::ExtrusionEntityCollection::~ExtrusionEntityCollection ( )
inlineoverride
45{ clear(); }
void clear()
Definition ExtrusionEntityCollection.cpp:42

References clear().

+ Here is the call graph for this function:

Member Function Documentation

◆ append() [1/6]

void Slic3r::ExtrusionEntityCollection::append ( const ExtrusionEntitiesPtr entities)
inline
70 {
71 this->entities.reserve(this->entities.size() + entities.size());
72 for (const ExtrusionEntity *ptr : entities)
73 this->entities.emplace_back(ptr->clone());
74 }
ExtrusionEntity * clone() const override
Definition ExtrusionEntityCollection.cpp:59

References entities.

◆ append() [2/6]

void Slic3r::ExtrusionEntityCollection::append ( const ExtrusionEntity entity)
inline
68{ this->entities.emplace_back(entity.clone()); }

References Slic3r::ExtrusionEntity::clone().

Referenced by ExtrusionEntityCollection(), ExtrusionEntityCollection(), Slic3r::Print::_make_skirt(), flatten(), Slic3r::PerimeterGenerator::process_arachne(), Slic3r::PerimeterGenerator::process_classic(), Slic3r::traverse_extrusions(), and Slic3r::traverse_loops_classic().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ append() [3/6]

void Slic3r::ExtrusionEntityCollection::append ( const ExtrusionPaths paths)
inline
87 {
88 this->entities.reserve(this->entities.size() + paths.size());
89 for (const ExtrusionPath &path : paths)
90 this->entities.emplace_back(path.clone());
91 }

◆ append() [4/6]

void Slic3r::ExtrusionEntityCollection::append ( ExtrusionEntitiesPtr &&  src)
inline
75 {
76 if (entities.empty())
77 entities = std::move(src);
78 else {
79 entities.insert(entities.end(),
80 std::make_move_iterator(src.begin()),
81 std::make_move_iterator(src.end()));
82 // Removing pointers to polymorphic extrusions from the donor object
83 // so that they will not be deleted twice.
84 src.clear();
85 }
86 }

References entities.

◆ append() [5/6]

void Slic3r::ExtrusionEntityCollection::append ( ExtrusionEntity &&  entity)
inline
69{ this->entities.emplace_back(entity.clone_move()); }

◆ append() [6/6]

void Slic3r::ExtrusionEntityCollection::append ( ExtrusionPaths &&  paths)
inline
92 {
93 this->entities.reserve(this->entities.size() + paths.size());
94 for (ExtrusionPath &path : paths)
95 this->entities.emplace_back(new ExtrusionPath(std::move(path)));
96 }
STL namespace.

◆ as_polyline()

Polyline Slic3r::ExtrusionEntityCollection::as_polyline ( ) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

129 {
130 throw Slic3r::RuntimeError("Calling as_polyline() on a ExtrusionEntityCollection");
131 return Polyline();
132 };

◆ as_polylines()

virtual Polylines Slic3r::ExtrusionEntity::as_polylines ( ) const
inlinevirtualinherited
53{ Polylines dst; this->collect_polylines(dst); return dst; }
virtual void collect_polylines(Polylines &dst) const =0
std::vector< Polyline > Polylines
Definition Polyline.hpp:14

References Slic3r::ExtrusionEntity::collect_polylines().

Referenced by Slic3r::FFFSupport::remove_bridges_from_contacts().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ begin() [1/2]

ExtrusionEntitiesPtr::iterator Slic3r::ExtrusionEntityCollection::begin ( )
inline
52{ return this->entities.begin(); }

◆ begin() [2/2]

ExtrusionEntitiesPtr::const_iterator Slic3r::ExtrusionEntityCollection::begin ( ) const
inline
50{ return this->entities.cbegin(); }

◆ can_reverse()

bool Slic3r::ExtrusionEntityCollection::can_reverse ( ) const
inlineoverridevirtual

Reimplemented from Slic3r::ExtrusionEntity.

64{ return !this->no_sort; }

References no_sort.

◆ cbegin()

ExtrusionEntitiesPtr::const_iterator Slic3r::ExtrusionEntityCollection::cbegin ( ) const
inline
48{ return this->entities.cbegin(); }

◆ cend()

ExtrusionEntitiesPtr::const_iterator Slic3r::ExtrusionEntityCollection::cend ( ) const
inline
49{ return this->entities.cend(); }

◆ chained_path_from() [1/2]

ExtrusionEntityCollection Slic3r::ExtrusionEntityCollection::chained_path_from ( const ExtrusionEntitiesPtr extrusion_entities,
const Point start_near,
ExtrusionRole  role = ExtrusionRole::Mixed 
)
static
87{
88 // Return a filtered copy of the collection.
90 out.entities = filter_by_extrusion_role(extrusion_entities, role);
91 // Clone the extrusion entities.
92 for (auto &ptr : out.entities)
93 ptr = ptr->clone();
94 chain_and_reorder_extrusion_entities(out.entities, &start_near);
95 return out;
96}
ExtrusionEntityCollection()
Definition ExtrusionEntityCollection.hpp:34
ExtrusionRole role() const override
Definition ExtrusionEntityCollection.hpp:56
void chain_and_reorder_extrusion_entities(std::vector< ExtrusionEntity * > &entities, const Point *start_near)
Definition ShortestPath.cpp:1039
ExtrusionEntitiesPtr filter_by_extrusion_role(const ExtrusionEntitiesPtr &extrusion_entities, ExtrusionRole role)
Definition ExtrusionEntityCollection.hpp:18

References Slic3r::chain_and_reorder_extrusion_entities(), entities, Slic3r::filter_by_extrusion_role(), and role().

Referenced by chained_path_from().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ chained_path_from() [2/2]

ExtrusionEntityCollection Slic3r::ExtrusionEntityCollection::chained_path_from ( const Point start_near,
ExtrusionRole  role = ExtrusionRole::Mixed 
) const
inline
101 { return this->no_sort ? *this : chained_path_from(this->entities, start_near, role); }
static ExtrusionEntityCollection chained_path_from(const ExtrusionEntitiesPtr &extrusion_entities, const Point &start_near, ExtrusionRole role=ExtrusionRole::Mixed)
Definition ExtrusionEntityCollection.cpp:86

References chained_path_from(), and role().

+ Here is the call graph for this function:

◆ clear()

void Slic3r::ExtrusionEntityCollection::clear ( )
43{
44 for (size_t i = 0; i < this->entities.size(); ++i)
45 delete this->entities[i];
46 this->entities.clear();
47}

References entities.

Referenced by ~ExtrusionEntityCollection(), Slic3r::LayerRegion::make_perimeters(), operator=(), and Slic3r::Print::process().

+ Here is the caller graph for this function:

◆ clone()

ExtrusionEntity * Slic3r::ExtrusionEntityCollection::clone ( ) const
overridevirtual

Implements Slic3r::ExtrusionEntity.

60{
61 return new ExtrusionEntityCollection(*this);
62}

References ExtrusionEntityCollection().

Referenced by operator=().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clone_move()

ExtrusionEntity * Slic3r::ExtrusionEntityCollection::clone_move ( )
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

30{ return new ExtrusionEntityCollection(std::move(*this)); }

References ExtrusionEntityCollection().

+ Here is the call graph for this function:

◆ collect_points()

void Slic3r::ExtrusionEntityCollection::collect_points ( Points dst) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

139 {
140 for (const ExtrusionEntity *extrusion_entity : this->entities)
141 extrusion_entity->collect_points(dst);
142 }
void collect_points(Points &dst) const override
Definition ExtrusionEntityCollection.hpp:139

References entities.

◆ collect_polylines()

void Slic3r::ExtrusionEntityCollection::collect_polylines ( Polylines dst) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

134 {
135 for (const ExtrusionEntity *extrusion_entity : this->entities)
136 extrusion_entity->collect_polylines(dst);
137 }
void collect_polylines(Polylines &dst) const override
Definition ExtrusionEntityCollection.hpp:134

References entities.

◆ empty()

bool Slic3r::ExtrusionEntityCollection::empty ( ) const
inline
65{ return this->entities.empty(); }

Referenced by Slic3r::LayerRegion::has_extrusions(), Slic3r::SupportLayer::has_extrusions(), Slic3r::Print::process(), Slic3r::PerimeterGenerator::process_arachne(), and Slic3r::PerimeterGenerator::process_classic().

+ Here is the caller graph for this function:

◆ end() [1/2]

ExtrusionEntitiesPtr::iterator Slic3r::ExtrusionEntityCollection::end ( )
inline
53{ return this->entities.end(); }

◆ end() [2/2]

ExtrusionEntitiesPtr::const_iterator Slic3r::ExtrusionEntityCollection::end ( ) const
inline
51{ return this->entities.cend(); }

◆ first_point()

const Point & Slic3r::ExtrusionEntityCollection::first_point ( ) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

103{ return this->entities.front()->first_point(); }

◆ flatten()

ExtrusionEntityCollection Slic3r::ExtrusionEntityCollection::flatten ( bool  preserve_ordering = false) const

Returns a flattened copy of this ExtrusionEntityCollection. That is, all of the items in its entities vector are not collections. You should be iterating over flatten().entities if you are interested in the underlying ExtrusionEntities (and don't care about hierarchy).

Parameters
preserve_orderingFlag to method that will flatten if and only if the underlying collection is sortable when True (default: False).
124{
125 struct Flatten {
126 Flatten(bool preserve_ordering) : preserve_ordering(preserve_ordering) {}
127 ExtrusionEntityCollection out;
128 bool preserve_ordering;
129 void recursive_do(const ExtrusionEntityCollection &collection) {
130 if (collection.no_sort && preserve_ordering) {
131 // Don't flatten whatever happens below this level.
132 out.append(collection);
133 } else {
134 for (const ExtrusionEntity *entity : collection.entities)
135 if (entity->is_collection())
136 this->recursive_do(*static_cast<const ExtrusionEntityCollection*>(entity));
137 else
138 out.append(*entity);
139 }
140 }
141 } flatten(preserve_ordering);
142
143 flatten.recursive_do(*this);
144 return flatten.out;
145}
ExtrusionEntityCollection flatten(bool preserve_ordering=false) const
Returns a flattened copy of this ExtrusionEntityCollection. That is, all of the items in its entities...
Definition ExtrusionEntityCollection.cpp:123
#define const
Definition getopt.c:38
if(!(yy_init))
Definition lexer.c:1190

References append(), entities, flatten(), and no_sort.

Referenced by flatten().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ is_collection()

bool Slic3r::ExtrusionEntityCollection::is_collection ( ) const
inlineoverridevirtual

Reimplemented from Slic3r::ExtrusionEntity.

55{ return true; }

◆ is_loop()

virtual bool Slic3r::ExtrusionEntity::is_loop ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::ExtrusionMultiPath, and Slic3r::ExtrusionLoop.

25{ return false; }

Referenced by Slic3r::chain_extrusion_entities().

+ Here is the caller graph for this function:

◆ items_count()

size_t Slic3r::ExtrusionEntityCollection::items_count ( ) const
112{
113 size_t count = 0;
114 for (const ExtrusionEntity *entity : this->entities)
115 if (entity->is_collection())
116 count += static_cast<const ExtrusionEntityCollection*>(entity)->items_count();
117 else
118 ++ count;
119 return count;
120}
bool is_collection() const override
Definition ExtrusionEntityCollection.hpp:55
size_t items_count() const
Definition ExtrusionEntityCollection.cpp:111
IGL_INLINE void count(const Eigen::SparseMatrix< XType > &X, const int dim, Eigen::SparseVector< SType > &S)
Definition count.cpp:12

References entities, and items_count().

Referenced by items_count().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ last_point()

const Point & Slic3r::ExtrusionEntityCollection::last_point ( ) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

104{ return this->entities.back()->last_point(); }

◆ length()

double Slic3r::ExtrusionEntityCollection::length ( ) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

144 {
145 throw Slic3r::RuntimeError("Calling length() on a ExtrusionEntityCollection");
146 return 0.;
147 }

◆ middle_point()

const Point & Slic3r::ExtrusionEntityCollection::middle_point ( ) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

105{ return this->entities[this->entities.size() / 2]->middle_point(); }

◆ min_mm3_per_mm()

double Slic3r::ExtrusionEntityCollection::min_mm3_per_mm ( ) const
overridevirtual

Implements Slic3r::ExtrusionEntity.

148{
149 double min_mm3_per_mm = std::numeric_limits<double>::max();
150 for (const ExtrusionEntity *entity : this->entities)
152 return min_mm3_per_mm;
153}
double min_mm3_per_mm() const override
Definition ExtrusionEntityCollection.cpp:147
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half() min(const half &a, const half &b)
Definition Half.h:507

References entities, and min_mm3_per_mm().

Referenced by Slic3r::DoExport::autospeed_volumetric_limit(), and min_mm3_per_mm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator ExtrusionPaths()

Slic3r::ExtrusionEntityCollection::operator ExtrusionPaths ( ) const
explicit
50{
51 ExtrusionPaths paths;
52 for (const ExtrusionEntity *ptr : this->entities) {
53 if (const ExtrusionPath *path = dynamic_cast<const ExtrusionPath*>(ptr))
54 paths.push_back(*path);
55 }
56 return paths;
57}
std::vector< ExtrusionPath > ExtrusionPaths
Definition ExtrusionEntity.hpp:135

◆ operator=() [1/2]

ExtrusionEntityCollection & Slic3r::ExtrusionEntityCollection::operator= ( const ExtrusionEntityCollection other)
28{
29 this->entities = other.entities;
30 for (size_t i = 0; i < this->entities.size(); ++i)
31 this->entities[i] = this->entities[i]->clone();
32 this->no_sort = other.no_sort;
33 return *this;
34}

References clone(), entities, and no_sort.

+ Here is the call graph for this function:

◆ operator=() [2/2]

ExtrusionEntityCollection & Slic3r::ExtrusionEntityCollection::operator= ( ExtrusionEntityCollection &&  other)
inline
39 {
40 this->clear();
41 this->entities = std::move(other.entities);
42 this->no_sort = other.no_sort;
43 return *this;
44 }

References clear().

+ Here is the call graph for this function:

◆ polygons_covered_by_spacing() [1/2]

Polygons Slic3r::ExtrusionEntityCollection::polygons_covered_by_spacing ( const float  scaled_epsilon = 0.f) const
inline
116 { Polygons out; this->polygons_covered_by_spacing(out, scaled_epsilon); return out; }
void polygons_covered_by_spacing(Polygons &out, const float scaled_epsilon) const override
Definition ExtrusionEntityCollection.cpp:104
std::vector< Polygon, PointsAllocator< Polygon > > Polygons
Definition Polygon.hpp:15

References polygons_covered_by_spacing().

+ Here is the call graph for this function:

◆ polygons_covered_by_spacing() [2/2]

void Slic3r::ExtrusionEntityCollection::polygons_covered_by_spacing ( Polygons out,
const float  scaled_epsilon 
) const
overridevirtual

Implements Slic3r::ExtrusionEntity.

105{
106 for (const ExtrusionEntity *entity : this->entities)
107 entity->polygons_covered_by_spacing(out, scaled_epsilon);
108}

References entities.

Referenced by polygons_covered_by_spacing().

+ Here is the caller graph for this function:

◆ polygons_covered_by_width() [1/2]

Polygons Slic3r::ExtrusionEntityCollection::polygons_covered_by_width ( const float  scaled_epsilon = 0.f) const
inline
114 { Polygons out; this->polygons_covered_by_width(out, scaled_epsilon); return out; }
void polygons_covered_by_width(Polygons &out, const float scaled_epsilon) const override
Definition ExtrusionEntityCollection.cpp:98

References polygons_covered_by_width().

+ Here is the call graph for this function:

◆ polygons_covered_by_width() [2/2]

void Slic3r::ExtrusionEntityCollection::polygons_covered_by_width ( Polygons out,
const float  scaled_epsilon 
) const
overridevirtual

Implements Slic3r::ExtrusionEntity.

99{
100 for (const ExtrusionEntity *entity : this->entities)
101 entity->polygons_covered_by_width(out, scaled_epsilon);
102}

References entities.

Referenced by Slic3r::FFFSupport::export_print_z_polygons_and_extrusions_to_svg(), polygons_covered_by_width(), and Slic3r::PerimeterGenerator::process_classic().

+ Here is the caller graph for this function:

◆ remove()

void Slic3r::ExtrusionEntityCollection::remove ( size_t  i)
81{
82 delete this->entities[i];
83 this->entities.erase(this->entities.begin() + i);
84}

References entities.

◆ replace()

void Slic3r::ExtrusionEntityCollection::replace ( size_t  i,
const ExtrusionEntity entity 
)
75{
76 delete this->entities[i];
77 this->entities[i] = entity.clone();
78}

References Slic3r::ExtrusionEntity::clone(), and entities.

+ Here is the call graph for this function:

◆ reverse()

void Slic3r::ExtrusionEntityCollection::reverse ( )
overridevirtual

Implements Slic3r::ExtrusionEntity.

65{
66 for (ExtrusionEntity *ptr : this->entities)
67 // Don't reverse it if it's a loop, as it doesn't change anything in terms of elements ordering
68 // and caller might rely on winding order
69 if (! ptr->is_loop())
70 ptr->reverse();
71 std::reverse(this->entities.begin(), this->entities.end());
72}
void reverse() override
Definition ExtrusionEntityCollection.cpp:64
virtual bool is_loop() const
Definition ExtrusionEntity.hpp:25

References entities.

Referenced by Slic3r::Print::_make_skirt(), and Slic3r::PerimeterGenerator::process_classic().

+ Here is the caller graph for this function:

◆ role()

ExtrusionRole Slic3r::ExtrusionEntityCollection::role ( ) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

56 {
57 ExtrusionRole out{ ExtrusionRole::None };
58 for (const ExtrusionEntity *ee : entities) {
59 ExtrusionRole er = ee->role();
60 out = (out == ExtrusionRole::None || out == er) ? er : ExtrusionRole::Mixed;
61 }
62 return out;
63 }
static constexpr const ExtrusionRoleModifiers None
Definition ExtrusionRole.hpp:47

References entities, Slic3r::ExtrusionRole::Mixed, and Slic3r::ExtrusionRole::None.

Referenced by chained_path_from(), chained_path_from(), Slic3r::LayerTools::extruder(), and Slic3r::is_overriddable().

+ Here is the caller graph for this function:

◆ size()

size_t Slic3r::ExtrusionEntityCollection::size ( ) const
inline
117{ return entities.size(); }

References entities.

Referenced by Slic3r::Layer::make_fills(), and Slic3r::LayerRegion::make_perimeters().

+ Here is the caller graph for this function:

◆ swap()

void Slic3r::ExtrusionEntityCollection::swap ( ExtrusionEntityCollection c)
37{
38 std::swap(this->entities, c.entities);
39 std::swap(this->no_sort, c.no_sort);
40}

References entities, and no_sort.

Referenced by Slic3r::PerimeterGenerator::process_arachne(), and Slic3r::PerimeterGenerator::process_classic().

+ Here is the caller graph for this function:

◆ total_volume()

double Slic3r::ExtrusionEntityCollection::total_volume ( ) const
inlineoverridevirtual

Implements Slic3r::ExtrusionEntity.

126{ double volume=0.; for (const auto& ent : entities) volume+=ent->total_volume(); return volume; }
double total_volume() const override
Definition ExtrusionEntityCollection.hpp:126
IGL_INLINE void volume(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedT > &T, Eigen::PlainObjectBase< Derivedvol > &vol)
Definition volume.cpp:15

References entities.

Member Data Documentation

◆ entities

ExtrusionEntitiesPtr Slic3r::ExtrusionEntityCollection::entities

Referenced by ExtrusionEntityCollection(), Slic3r::ExtrusionPath::_inflate_collection(), Slic3r::GUI::GLCanvas3D::_load_print_object_toolpaths(), append(), append(), Slic3r::SupportSpotsGenerator::build_object_part_from_slice(), chained_path_from(), Slic3r::SupportSpotsGenerator::check_stability(), clear(), Slic3r::SupportMaterialInternal::collect_bridging_perimeter_areas(), collect_points(), collect_polylines(), Slic3r::GCode::extrude_support(), Slic3r::LayerTools::extruder(), Slic3r::extrusionentity_extents(), Slic3r::_3DScene::extrusionentity_to_verts(), flatten(), Slic3r::FFFSupport::generate_support_toolpaths(), Slic3r::get_print_object_extrusions_extents(), Slic3r::getExtrusionPathsFromEntity(), Slic3r::SupportMaterialInternal::has_bridging_fills(), Slic3r::SupportMaterialInternal::has_bridging_perimeters(), Slic3r::insert_fills_into_islands(), items_count(), Slic3r::Layer::make_fills(), Slic3r::Layer::make_ironing(), Slic3r::Skirt::make_skirt_loops_per_extruder_1st_layer(), Slic3r::Skirt::make_skirt_loops_per_extruder_other_layers(), min_mm3_per_mm(), operator=(), polygons_covered_by_spacing(), polygons_covered_by_width(), Slic3r::PerimeterGenerator::process_arachne(), Slic3r::PerimeterGenerator::process_classic(), Slic3r::GCode::process_layer(), Slic3r::GCode::process_layer_single_object(), remove(), replace(), reverse(), role(), size(), Slic3r::Skirt::skirt_loops_per_extruder_all_printing(), Slic3r::Layer::sort_perimeters_into_islands(), swap(), total_volume(), and Slic3r::traverse_loops_classic().

◆ no_sort

bool Slic3r::ExtrusionEntityCollection::no_sort

The documentation for this class was generated from the following files: