OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::ExtrusionPathContoured Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/ExtrusionEntity.hpp>

Inheritance diagram for Slic3r::ExtrusionPathContoured:
Collaboration diagram for Slic3r::ExtrusionPathContoured:

Public Member Functions

 ExtrusionPathContoured (Polyline3 &&polyline, const ExtrusionPath &rhs, std::vector< double > &&z_diffs)
virtual ExtrusionEntity * clone () const override
virtual ExtrusionEntity * clone_move () override
void simplify (double tolerance) override
virtual void simplify_by_fitting_arc (double tolerance)
void reverse () override
Point first_point () const override
const Point3 & first_point3 () const override
Point last_point () const override
const Point3 & last_point3 () const override
size_t size () const
bool empty () const
bool is_closed () const
void intersect_expolygons (const ExPolygons &collection, ExtrusionEntityCollection *retval) const
void subtract_expolygons (const ExPolygons &collection, ExtrusionEntityCollection *retval) const
void clip_end (double distance)
double length () const override
ExtrusionRole role () const override
void polygons_covered_by_width (Polygons &out, const float scaled_epsilon) const override
Polygons polygons_covered_by_width (const float scaled_epsilon=0.f) const
void polygons_covered_by_spacing (Polygons &out, const float scaled_epsilon) const override
Polygons polygons_covered_by_spacing (const float scaled_epsilon=0.f) const
double min_mm3_per_mm () const override
Polyline as_polyline () const override
void collect_polylines (Polylines &dst) const override
void collect_points (Points &dst) const override
void collect_points3 (Points3 &dst) const
double total_volume () const override
bool is_force_no_extrusion () const
void set_force_no_extrusion (bool no_extrusion)
void set_extrusion_role (ExtrusionRole extrusion_role)
void set_reverse () override
bool can_reverse () const override
virtual bool is_collection () const
virtual bool is_loop () const
virtual bool can_sort () const
virtual Polylines as_polylines () const

Static Public Member Functions

static std::string role_to_string (ExtrusionRole role)
static ExtrusionRole string_to_role (const std::string_view role)

Public Attributes

std::vector< double > z_diffs
Polyline3 polyline
double overhang_degree = 0
int curve_degree = 0
double mm3_per_mm
float width
float height
double smooth_speed = 0
bool z_contoured = false
int inset_idx = -1

Private Member Functions

void _inflate_collection (const Polylines &polylines, ExtrusionEntityCollection *collection) const

Private Attributes

bool m_can_reverse = true
ExtrusionRole m_role
bool m_no_extrusion = false

Detailed Description

Constructor & Destructor Documentation

◆ ExtrusionPathContoured()

Slic3r::ExtrusionPathContoured::ExtrusionPathContoured ( Polyline3 && polyline,
const ExtrusionPath & rhs,
std::vector< double > && z_diffs )
inline
337 : ExtrusionPath(std::move(polyline), rhs), z_diffs(std::move(z_diffs))
338 {}
std::vector< double > z_diffs
Definition ExtrusionEntity.hpp:334
Polyline3 polyline
Definition ExtrusionEntity.hpp:177
ExtrusionPath()
Definition ExtrusionEntity.hpp:189

References Slic3r::ExtrusionPath::ExtrusionPath(), Slic3r::ExtrusionPath::polyline, and z_diffs.

Referenced by clone(), and clone_move().

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

Member Function Documentation

◆ _inflate_collection()

void Slic3r::ExtrusionPath::_inflate_collection ( const Polylines & polylines,
ExtrusionEntityCollection * collection ) const
privateinherited
76{
77 for (const Polyline &polyline : polylines)
78 collection->entities.emplace_back(new ExtrusionPath(Polyline3(polyline), *this));
79}

References ExtrusionPath(), Slic3r::ExtrusionEntityCollection::entities, and polyline.

Referenced by intersect_expolygons(), and subtract_expolygons().

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

◆ as_polyline()

Polyline Slic3r::ExtrusionPath::as_polyline ( ) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

309{ return this->polyline.to_polyline(); }

References Slic3r::Polyline3::to_polyline().

Referenced by Slic3r::paths_touch().

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

◆ as_polylines()

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

References collect_polylines().

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

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

◆ can_reverse()

bool Slic3r::ExtrusionPath::can_reverse ( ) const
inlineoverridevirtualinherited

Reimplemented from Slic3r::ExtrusionEntity.

Reimplemented in Slic3r::ExtrusionPathOriented.

322{ return m_can_reverse; }
bool m_can_reverse
Definition ExtrusionEntity.hpp:326

References m_can_reverse.

Referenced by Slic3r::ExtrusionMultiPath::ExtrusionMultiPath().

Here is the caller graph for this function:

◆ can_sort()

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

Reimplemented in Slic3r::ExtrusionEntityCollection.

127{ return true; }//BBS: only used in ExtrusionEntityCollection

◆ clip_end()

void Slic3r::ExtrusionPath::clip_end ( double distance)
inherited
42{
43 this->polyline.clip_end(distance);
44}

References polyline.

◆ clone()

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

Reimplemented from Slic3r::ExtrusionPath.

746 {
747 return new ExtrusionPathContoured(*this);
748}
ExtrusionPathContoured(Polyline3 &&polyline, const ExtrusionPath &rhs, std::vector< double > &&z_diffs)
Definition ExtrusionEntity.hpp:336

References ExtrusionPathContoured().

Here is the call graph for this function:

◆ clone_move()

ExtrusionEntity * Slic3r::ExtrusionPathContoured::clone_move ( )
overridevirtual

Reimplemented from Slic3r::ExtrusionPath.

750 {
751 return new ExtrusionPathContoured(std::move(*this));
752}

References ExtrusionPathContoured().

Here is the call graph for this function:

◆ collect_points()

void Slic3r::ExtrusionPath::collect_points ( Points & dst) const
overridevirtualinherited

Implements Slic3r::ExtrusionEntity.

68{
69 dst.reserve(dst.size() + this->polyline.points.size());
70 for (const Point3 &point : this->polyline.points) {
71 dst.emplace_back(point.x(), point.y());
72 }
73}

References polyline.

◆ collect_points3()

void Slic3r::ExtrusionPath::collect_points3 ( Points3 & dst) const
inlineinherited
312{ append(dst, this->polyline.points); }
void append(std::vector< T, Alloc > &dest, const std::vector< T, Alloc2 > &src)
Definition libslic3r.h:157

References Slic3r::append(), and Slic3r::MultiPoint3::points.

Here is the call graph for this function:

◆ collect_polylines()

void Slic3r::ExtrusionPath::collect_polylines ( Polylines & dst) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

310{ if (! this->polyline.empty()) dst.emplace_back(this->polyline.to_polyline()); }

References Slic3r::MultiPoint3::empty(), and Slic3r::Polyline3::to_polyline().

Here is the call graph for this function:

◆ empty()

bool Slic3r::ExtrusionPath::empty ( ) const
inlineinherited
284{ return this->polyline.empty(); }

References Slic3r::MultiPoint3::empty().

Referenced by is_closed(), and Slic3r::thick_polyline_to_multi_path().

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

◆ first_point()

Point Slic3r::ExtrusionPath::first_point ( ) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

279{ return this->polyline.points.front().to_point(); }

References Slic3r::MultiPoint3::points.

Referenced by Slic3r::GCode::_extrude(), and Slic3r::sort_extra_perimeters().

Here is the caller graph for this function:

◆ first_point3()

const Point3 & Slic3r::ExtrusionPath::first_point3 ( ) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

280{ return this->polyline.points.front(); }

References Slic3r::MultiPoint3::points.

◆ intersect_expolygons()

void Slic3r::ExtrusionPath::intersect_expolygons ( const ExPolygons & collection,
ExtrusionEntityCollection * retval ) const
inherited
32{
33 this->_inflate_collection(intersection_pl(Polylines{ polyline.to_polyline() }, collection), retval);
34}
void _inflate_collection(const Polylines &polylines, ExtrusionEntityCollection *collection) const
Definition ExtrusionEntity.cpp:75
Slic3r::Polylines intersection_pl(const Slic3r::Polylines &subject, const Slic3r::Polygon &clip)
Definition ClipperUtils.cpp:1111

References _inflate_collection(), Slic3r::intersection_pl(), and polyline.

Here is the call graph for this function:

◆ is_closed()

bool Slic3r::ExtrusionPath::is_closed ( ) const
inlineinherited
285{ return ! this->empty() && this->polyline.points.front() == this->polyline.points.back(); }
bool empty() const
Definition ExtrusionEntity.hpp:284

References empty(), and Slic3r::MultiPoint3::points.

Referenced by Slic3r::SupportMaterialInternal::collect_bridging_perimeter_areas(), and Slic3r::SupportMaterialInternal::has_bridging_perimeters().

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

◆ is_collection()

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

◆ is_force_no_extrusion()

bool Slic3r::ExtrusionPath::is_force_no_extrusion ( ) const
inlineinherited
318{ return m_no_extrusion; }
bool m_no_extrusion
Definition ExtrusionEntity.hpp:329

References m_no_extrusion.

Referenced by Slic3r::GCode::_extrude(), Slic3r::GCode::extrude_multi_path(), and Slic3r::to_json().

Here is the caller graph for this function:

◆ is_loop()

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

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

125{ return false; }

Referenced by Slic3r::chain_extrusion_entities_impl(), Slic3r::SupportMaterialInternal::collect_bridging_perimeter_areas(), Slic3r::GCode::compute_farthest_point(), Slic3r::SupportMaterialInternal::has_bridging_perimeters(), and Slic3r::is_unsupported_loop().

Here is the caller graph for this function:

◆ last_point()

Point Slic3r::ExtrusionPath::last_point ( ) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

281{ return this->polyline.points.back().to_point(); }

References Slic3r::MultiPoint3::points.

Referenced by Slic3r::GCode::_extrude(), and Slic3r::sort_extra_perimeters().

Here is the caller graph for this function:

◆ last_point3()

const Point3 & Slic3r::ExtrusionPath::last_point3 ( ) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

282{ return this->polyline.points.back(); }

References Slic3r::MultiPoint3::points.

Referenced by Slic3r::GCode::extrude_path().

Here is the caller graph for this function:

◆ length()

double Slic3r::ExtrusionPath::length ( ) const
overridevirtualinherited

Implements Slic3r::ExtrusionEntity.

63{
64 return this->polyline.length();
65}

References polyline.

Referenced by Slic3r::ExtrusionLoop::clip_end(), Slic3r::ExtrusionLoopSloped::clip_end(), Slic3r::ExtrusionLoopSloped::clip_front(), Slic3r::GCode::extrude_multi_path(), Slic3r::GCode::extrude_support(), and total_volume().

Here is the caller graph for this function:

◆ min_mm3_per_mm()

double Slic3r::ExtrusionPath::min_mm3_per_mm ( ) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

308{ return this->mm3_per_mm; }
double mm3_per_mm
Definition ExtrusionEntity.hpp:181

◆ polygons_covered_by_spacing() [1/2]

Polygons Slic3r::ExtrusionPath::polygons_covered_by_spacing ( const float scaled_epsilon = 0.f) const
inlineinherited
306 { 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 ExtrusionEntity.cpp:86
std::vector< Polygon, PointsAllocator< Polygon > > Polygons
Definition Polygon.hpp:22

References polygons_covered_by_spacing().

Here is the call graph for this function:

◆ polygons_covered_by_spacing() [2/2]

void Slic3r::ExtrusionPath::polygons_covered_by_spacing ( Polygons & out,
const float scaled_epsilon ) const
overridevirtualinherited

Implements Slic3r::ExtrusionEntity.

87{
88 // Instantiating the Flow class to get the line spacing.
89 // Don't know the nozzle diameter, setting to zero. It shall not matter it shall be optimized out by the compiler.
90 bool bridge = is_bridge(this->role());
91 // SoftFever: TODO Mac trigger assersion errors
92// assert(! bridge || this->width == this->height);
93 auto flow = bridge ? Flow::bridging_flow(this->width, 0.f) : Flow(this->width, this->height, 0.f);
94 polygons_append(out, offset(this->polyline.to_polyline(), 0.5f * float(flow.scaled_spacing()) + scaled_epsilon));
95}
float width
Definition ExtrusionEntity.hpp:183
float height
Definition ExtrusionEntity.hpp:185
ExtrusionRole role() const override
Definition ExtrusionEntity.hpp:295
static Flow bridging_flow(float dmr, float nozzle_diameter)
Definition Flow.hpp:108
bool is_bridge(ExtrusionRole role)
Definition ExtrusionEntity.hpp:105
Slic3r::Polygons offset(const Slic3r::Polygon &polygon, const float delta, JoinType joinType, double miterLimit)
Definition ClipperUtils.cpp:582
void polygons_append(Polygons &dst, const ExPolygon &src)
Definition ExPolygon.hpp:411

References Slic3r::Flow::bridging_flow(), height, Slic3r::is_bridge(), Slic3r::offset(), Slic3r::polygons_append(), polyline, role(), and width.

Referenced by polygons_covered_by_spacing().

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

◆ polygons_covered_by_width() [1/2]

Polygons Slic3r::ExtrusionPath::polygons_covered_by_width ( const float scaled_epsilon = 0.f) const
inlineinherited
304 { 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 ExtrusionEntity.cpp:81

References polygons_covered_by_width().

Here is the call graph for this function:

◆ polygons_covered_by_width() [2/2]

void Slic3r::ExtrusionPath::polygons_covered_by_width ( Polygons & out,
const float scaled_epsilon ) const
overridevirtualinherited

Implements Slic3r::ExtrusionEntity.

82{
83 polygons_append(out, offset(this->polyline.to_polyline(), float(scale_(this->width/2)) + scaled_epsilon));
84}
#define scale_(val)
Definition libslic3r.h:106

References Slic3r::offset(), Slic3r::polygons_append(), polyline, scale_, and width.

Referenced by polygons_covered_by_width().

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

◆ reverse()

void Slic3r::ExtrusionPathContoured::reverse ( )
overridevirtual

Reimplemented from Slic3r::ExtrusionPath.

764 {
765 this->polyline.reverse();
766 std::reverse(this->z_diffs.begin(), this->z_diffs.end());
767}

References Slic3r::ExtrusionPath::polyline, and z_diffs.

◆ role()

◆ role_to_string()

std::string Slic3r::ExtrusionEntity::role_to_string ( ExtrusionRole role)
staticinherited
674{
675 switch (role) {
676 case erNone : return L("Undefined");
677 case erPerimeter : return L("Inner wall");
678 case erExternalPerimeter : return L("Outer wall");
679 case erOverhangPerimeter : return L("Overhang wall");
680 case erInternalInfill : return L("Sparse infill");
681 case erSolidInfill : return L("Internal solid infill");
682 case erTopSolidInfill : return L("Top surface");
683 case erBottomSurface : return L("Bottom surface");
684 case erIroning : return L("Ironing");
685 case erBridgeInfill : return L("Bridge");
686 case erInternalBridgeInfill : return L("Internal Bridge");
687 case erGapFill : return L("Gap infill");
688 case erSkirt : return L("Skirt");
689 case erBrim : return L("Brim");
690 case erSupportMaterial : return L("Support");
691 case erSupportMaterialInterface : return L("Support interface");
692 case erSupportTransition : return L("Support transition");
693 case erWipeTower : return L("Prime tower");
694 case erCustom : return L("Custom");
695 case erMixed : return L("Multiple");
696 default : assert(false);
697 }
698 return "";
699}
#define L(s)
Definition ExtrusionEntity.cpp:25
virtual ExtrusionRole role() const =0
@ erMixed
Definition ExtrusionEntity.hpp:47
@ erBottomSurface
Definition ExtrusionEntity.hpp:34
@ erExternalPerimeter
Definition ExtrusionEntity.hpp:29
@ erGapFill
Definition ExtrusionEntity.hpp:38
@ erCustom
Definition ExtrusionEntity.hpp:45
@ erSupportMaterialInterface
Definition ExtrusionEntity.hpp:42
@ erSupportMaterial
Definition ExtrusionEntity.hpp:41
@ erWipeTower
Definition ExtrusionEntity.hpp:44
@ erBrim
Definition ExtrusionEntity.hpp:40
@ erSolidInfill
Definition ExtrusionEntity.hpp:32
@ erBridgeInfill
Definition ExtrusionEntity.hpp:36
@ erInternalBridgeInfill
Definition ExtrusionEntity.hpp:37
@ erTopSolidInfill
Definition ExtrusionEntity.hpp:33
@ erSkirt
Definition ExtrusionEntity.hpp:39
@ erSupportTransition
Definition ExtrusionEntity.hpp:43
@ erNone
Definition ExtrusionEntity.hpp:27
@ erOverhangPerimeter
Definition ExtrusionEntity.hpp:30
@ erIroning
Definition ExtrusionEntity.hpp:35
@ erPerimeter
Definition ExtrusionEntity.hpp:28
@ erInternalInfill
Definition ExtrusionEntity.hpp:31

References Slic3r::erBottomSurface, Slic3r::erBridgeInfill, Slic3r::erBrim, Slic3r::erCustom, Slic3r::erExternalPerimeter, Slic3r::erGapFill, Slic3r::erInternalBridgeInfill, Slic3r::erInternalInfill, Slic3r::erIroning, Slic3r::erMixed, Slic3r::erNone, Slic3r::erOverhangPerimeter, Slic3r::erPerimeter, Slic3r::erSkirt, Slic3r::erSolidInfill, Slic3r::erSupportMaterial, Slic3r::erSupportMaterialInterface, Slic3r::erSupportTransition, Slic3r::erTopSolidInfill, Slic3r::erWipeTower, L, and role().

Referenced by Slic3r::WipeTowerWriter::WipeTowerWriter(), Slic3r::WipeTowerWriter2::WipeTowerWriter2(), Slic3r::GCode::_do_export(), Slic3r::GCode::_extrude(), and Slic3r::anonymous_namespace{GCodeStatistics.cpp}::features_json().

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

◆ set_extrusion_role()

void Slic3r::ExtrusionPath::set_extrusion_role ( ExtrusionRole extrusion_role)
inlineinherited
320{ m_role = extrusion_role; }

References m_role.

Referenced by Slic3r::from_json().

Here is the caller graph for this function:

◆ set_force_no_extrusion()

void Slic3r::ExtrusionPath::set_force_no_extrusion ( bool no_extrusion)
inlineinherited
319{ m_no_extrusion = no_extrusion; }

References m_no_extrusion.

Referenced by Slic3r::GCode::extrude_loop(), and Slic3r::from_json().

Here is the caller graph for this function:

◆ set_reverse()

void Slic3r::ExtrusionPath::set_reverse ( )
inlineoverridevirtualinherited

Reimplemented from Slic3r::ExtrusionEntity.

321{ m_can_reverse = false; }

References m_can_reverse.

◆ simplify()

void Slic3r::ExtrusionPathContoured::simplify ( double tolerance)
overridevirtual

Reimplemented from Slic3r::ExtrusionPath.

754 {
755 // Do not simplify contoured paths
756 return;
757}

◆ simplify_by_fitting_arc()

void Slic3r::ExtrusionPathContoured::simplify_by_fitting_arc ( double tolerance)
virtual
759 {
760 // Do not simplify contoured paths
761 return;
762}

◆ size()

size_t Slic3r::ExtrusionPath::size ( ) const
inlineinherited
283{ return this->polyline.size(); }

References Slic3r::MultiPoint3::size().

Referenced by Slic3r::SupportMaterialInternal::collect_bridging_perimeter_areas(), and Slic3r::SupportMaterialInternal::has_bridging_perimeters().

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

◆ string_to_role()

ExtrusionRole Slic3r::ExtrusionEntity::string_to_role ( const std::string_view role)
staticinherited
702{
703 if (role == L("Inner wall"))
704 return erPerimeter;
705 else if (role == L("Outer wall"))
706 return erExternalPerimeter;
707 else if (role == L("Overhang wall"))
708 return erOverhangPerimeter;
709 else if (role == L("Sparse infill"))
710 return erInternalInfill;
711 else if (role == L("Internal solid infill"))
712 return erSolidInfill;
713 else if (role == L("Top surface"))
714 return erTopSolidInfill;
715 else if (role == L("Bottom surface"))
716 return erBottomSurface;
717 else if (role == L("Ironing"))
718 return erIroning;
719 else if (role == L("Bridge"))
720 return erBridgeInfill;
721 else if (role == L("Internal Bridge"))
723 else if (role == L("Gap infill"))
724 return erGapFill;
725 else if (role == ("Skirt"))
726 return erSkirt;
727 else if (role == ("Brim"))
728 return erBrim;
729 else if (role == L("Support"))
730 return erSupportMaterial;
731 else if (role == L("Support interface"))
733 else if (role == L("Support transition"))
734 return erSupportTransition;
735 else if (role == L("Prime tower"))
736 return erWipeTower;
737 else if (role == L("Custom"))
738 return erCustom;
739 else if (role == L("Multiple"))
740 return erMixed;
741 else
742 return erNone;
743}

References Slic3r::erBottomSurface, Slic3r::erBridgeInfill, Slic3r::erBrim, Slic3r::erCustom, Slic3r::erExternalPerimeter, Slic3r::erGapFill, Slic3r::erInternalBridgeInfill, Slic3r::erInternalInfill, Slic3r::erIroning, Slic3r::erMixed, Slic3r::erNone, Slic3r::erOverhangPerimeter, Slic3r::erPerimeter, Slic3r::erSkirt, Slic3r::erSolidInfill, Slic3r::erSupportMaterial, Slic3r::erSupportMaterialInterface, Slic3r::erSupportTransition, Slic3r::erTopSolidInfill, Slic3r::erWipeTower, L, and role().

Referenced by Slic3r::FanMover::_process_gcode_line(), and Slic3r::GCodeProcessor::process_tags().

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

◆ subtract_expolygons()

void Slic3r::ExtrusionPath::subtract_expolygons ( const ExPolygons & collection,
ExtrusionEntityCollection * retval ) const
inherited
37{
38 this->_inflate_collection(diff_pl(Polylines{ this->polyline.to_polyline() }, collection), retval);
39}
Slic3r::Polylines diff_pl(const Slic3r::Polyline &subject, const Slic3r::Polygons &clip)
Definition ClipperUtils.cpp:1099

References _inflate_collection(), Slic3r::diff_pl(), and polyline.

Here is the call graph for this function:

◆ total_volume()

double Slic3r::ExtrusionPath::total_volume ( ) const
inlineoverridevirtualinherited

Implements Slic3r::ExtrusionEntity.

313{ return mm3_per_mm * unscale<double>(length()); }
double length() const override
Definition ExtrusionEntity.cpp:62
T unscale(Q v)
Definition libslic3r.h:138

References length(), mm3_per_mm, and Slic3r::unscale().

Here is the call graph for this function:

Member Data Documentation

◆ curve_degree

int Slic3r::ExtrusionPath::curve_degree = 0
inherited

◆ height

◆ inset_idx

◆ m_can_reverse

bool Slic3r::ExtrusionPath::m_can_reverse = true
privateinherited

◆ m_no_extrusion

◆ m_role

◆ mm3_per_mm

◆ overhang_degree

double Slic3r::ExtrusionPath::overhang_degree = 0
inherited

◆ polyline

Polyline3 Slic3r::ExtrusionPath::polyline
inherited

Referenced by ExtrusionPath(), ExtrusionPath(), ExtrusionPath(), ExtrusionPath(), Slic3r::ExtrusionPathContoured::ExtrusionPathContoured(), Slic3r::ExtrusionPathSloped::ExtrusionPathSloped(), Slic3r::ExtrusionPathSloped::ExtrusionPathSloped(), Slic3r::GCode::_extrude(), _inflate_collection(), Slic3r::ExtrusionLoop::clip_end(), Slic3r::ExtrusionLoopSloped::clip_end(), clip_end(), Slic3r::ExtrusionLoopSloped::clip_front(), Slic3r::SupportMaterialInternal::collect_bridging_perimeter_areas(), Slic3r::ExtrusionLoop::collect_points(), Slic3r::ExtrusionMultiPath::collect_points(), collect_points(), Slic3r::contour_extrusion_path(), libvgcode::convert_to_vertices(), libvgcode::convert_to_vertices(), libvgcode::convert_to_vertices(), Slic3r::GCode::extrude_path(), Slic3r::ExtrusionSimulator::extrude_to_accumulator(), Slic3r::extrusion_entities_append_loops(), Slic3r::extrusion_entities_append_loops_and_paths(), Slic3r::extrusion_entities_append_paths(), Slic3r::extrusion_entities_append_paths(), Slic3r::extrusionentity_extents(), Slic3r::extrusionentity_extents(), Slic3r::extrusionentity_extents(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::_3DScene::extrusionentity_to_verts(), Slic3r::from_json(), Slic3r::FakeWipeTower::getFakeExtrusionPathsFromWipeTower(), Slic3r::FakeWipeTower::getFakeExtrusionPathsFromWipeTower2(), Slic3r::FakeWipeTower::getTrueExtrusionLayersFromWipeTower(), Slic3r::SupportMaterialInternal::has_bridging_perimeters(), intersect_expolygons(), length(), Slic3r::modulate_extrusion_by_overlapping_layers(), operator=(), Slic3r::paths_touch(), polygons_covered_by_spacing(), polygons_covered_by_width(), Slic3r::ExtrusionPathContoured::reverse(), simplify(), simplify_by_fitting_arc(), Slic3r::ExtrusionLoop::split_at(), Slic3r::ExtrusionLoop::split_at_vertex(), subtract_expolygons(), Slic3r::thick_polyline_to_extrusion_paths_2(), Slic3r::thick_polyline_to_multi_path(), Slic3r::to_json(), Slic3r::traverse_extrusions(), and Slic3r::traverse_loops().

◆ smooth_speed

double Slic3r::ExtrusionPath::smooth_speed = 0
inherited

◆ width

◆ z_contoured

◆ z_diffs

std::vector<double> Slic3r::ExtrusionPathContoured::z_diffs

Referenced by ExtrusionPathContoured(), and reverse().


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