OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::ExtrusionEntity Class Referenceabstract

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

Inheritance diagram for Slic3r::ExtrusionEntity:

Public Member Functions

virtual ExtrusionRole role () const =0
virtual bool is_collection () const
virtual bool is_loop () const
virtual bool can_reverse () const
virtual bool can_sort () const
virtual void set_reverse ()
virtual ExtrusionEntity * clone () const =0
virtual ExtrusionEntity * clone_move ()=0
virtual ~ExtrusionEntity ()
virtual void reverse ()=0
virtual Point first_point () const =0
virtual Point last_point () const =0
virtual const Point3 & first_point3 () const =0
virtual const Point3 & last_point3 () const =0
virtual void polygons_covered_by_width (Polygons &out, const float scaled_epsilon) const =0
virtual void polygons_covered_by_spacing (Polygons &out, const float scaled_epsilon) const =0
Polygons polygons_covered_by_width (const float scaled_epsilon=0.f) const
Polygons polygons_covered_by_spacing (const float scaled_epsilon=0.f) const
virtual double min_mm3_per_mm () const =0
virtual Polyline as_polyline () const =0
virtual void collect_polylines (Polylines &dst) const =0
virtual void collect_points (Points &dst) const =0
virtual Polylines as_polylines () const
virtual double length () const =0
virtual double total_volume () const =0

Static Public Member Functions

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

Public Attributes

int inset_idx = -1

Detailed Description

Constructor & Destructor Documentation

◆ ~ExtrusionEntity()

virtual Slic3r::ExtrusionEntity::~ExtrusionEntity ( )
inlinevirtual
132{}

Member Function Documentation

◆ as_polyline()

virtual Polyline Slic3r::ExtrusionEntity::as_polyline ( ) const
pure virtual

Implemented in Slic3r::ExtrusionEntityCollection, Slic3r::ExtrusionLoop, Slic3r::ExtrusionMultiPath, and Slic3r::ExtrusionPath.

Referenced by Slic3r::WipeInwardSupport::append().

Here is the caller graph for this function:

◆ as_polylines()

virtual Polylines Slic3r::ExtrusionEntity::as_polylines ( ) const
inlinevirtual
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()

virtual bool Slic3r::ExtrusionEntity::can_reverse ( ) const
inlinevirtual

Reimplemented in Slic3r::ExtrusionEntityCollection, Slic3r::ExtrusionLoop, Slic3r::ExtrusionMultiPath, Slic3r::ExtrusionPath, and Slic3r::ExtrusionPathOriented.

126{ return true; }

Referenced by Slic3r::chain_extrusion_entities_impl().

Here is the caller graph for this function:

◆ can_sort()

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

Reimplemented in Slic3r::ExtrusionEntityCollection.

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

◆ clone()

virtual ExtrusionEntity * Slic3r::ExtrusionEntity::clone ( ) const
pure virtual

Implemented in Slic3r::ExtrusionEntityCollection, Slic3r::ExtrusionLoop, Slic3r::ExtrusionMultiPath, Slic3r::ExtrusionPath, Slic3r::ExtrusionPathContoured, and Slic3r::ExtrusionPathOriented.

Referenced by Slic3r::ExtrusionEntityCollection::append(), Slic3r::Layer::make_fills(), and Slic3r::ExtrusionEntityCollection::replace().

Here is the caller graph for this function:

◆ clone_move()

◆ collect_points()

virtual void Slic3r::ExtrusionEntity::collect_points ( Points & dst) const
pure virtual

Implemented in Slic3r::ExtrusionEntityCollection, Slic3r::ExtrusionLoop, Slic3r::ExtrusionMultiPath, and Slic3r::ExtrusionPath.

Referenced by Slic3r::SeamPlacerImpl::extract_perimeter_polygons().

Here is the caller graph for this function:

◆ collect_polylines()

virtual void Slic3r::ExtrusionEntity::collect_polylines ( Polylines & dst) const
pure virtual

Implemented in Slic3r::ExtrusionEntityCollection, Slic3r::ExtrusionLoop, Slic3r::ExtrusionMultiPath, and Slic3r::ExtrusionPath.

Referenced by as_polylines(), and Slic3r::defer_unsupported_loops().

Here is the caller graph for this function:

◆ first_point()

virtual Point Slic3r::ExtrusionEntity::first_point ( ) const
pure virtual

◆ first_point3()

virtual const Point3 & Slic3r::ExtrusionEntity::first_point3 ( ) const
pure virtual

◆ is_collection()

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

◆ is_loop()

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

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()

virtual Point Slic3r::ExtrusionEntity::last_point ( ) const
pure virtual

◆ last_point3()

virtual const Point3 & Slic3r::ExtrusionEntity::last_point3 ( ) const
pure virtual

◆ length()

virtual double Slic3r::ExtrusionEntity::length ( ) const
pure virtual

◆ min_mm3_per_mm()

virtual double Slic3r::ExtrusionEntity::min_mm3_per_mm ( ) const
pure virtual

◆ polygons_covered_by_spacing() [1/2]

Polygons Slic3r::ExtrusionEntity::polygons_covered_by_spacing ( const float scaled_epsilon = 0.f) const
inline
149 { Polygons out; this->polygons_covered_by_spacing(out, scaled_epsilon); return out; }
virtual void polygons_covered_by_spacing(Polygons &out, const float scaled_epsilon) const =0
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]

virtual void Slic3r::ExtrusionEntity::polygons_covered_by_spacing ( Polygons & out,
const float scaled_epsilon ) const
pure virtual

Implemented in Slic3r::ExtrusionEntityCollection, Slic3r::ExtrusionLoop, Slic3r::ExtrusionMultiPath, and Slic3r::ExtrusionPath.

Referenced by polygons_covered_by_spacing().

Here is the caller graph for this function:

◆ polygons_covered_by_width() [1/2]

Polygons Slic3r::ExtrusionEntity::polygons_covered_by_width ( const float scaled_epsilon = 0.f) const
inline
147 { Polygons out; this->polygons_covered_by_width(out, scaled_epsilon); return out; }
virtual void polygons_covered_by_width(Polygons &out, const float scaled_epsilon) const =0

References polygons_covered_by_width().

Here is the call graph for this function:

◆ polygons_covered_by_width() [2/2]

virtual void Slic3r::ExtrusionEntity::polygons_covered_by_width ( Polygons & out,
const float scaled_epsilon ) const
pure virtual

Implemented in Slic3r::ExtrusionEntityCollection, Slic3r::ExtrusionLoop, Slic3r::ExtrusionMultiPath, and Slic3r::ExtrusionPath.

Referenced by polygons_covered_by_width().

Here is the caller graph for this function:

◆ reverse()

virtual void Slic3r::ExtrusionEntity::reverse ( )
pure virtual

◆ role()

◆ role_to_string()

std::string Slic3r::ExtrusionEntity::role_to_string ( ExtrusionRole role)
static
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_reverse()

virtual void Slic3r::ExtrusionEntity::set_reverse ( )
inlinevirtual

◆ string_to_role()

ExtrusionRole Slic3r::ExtrusionEntity::string_to_role ( const std::string_view role)
static
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:

◆ total_volume()

virtual double Slic3r::ExtrusionEntity::total_volume ( ) const
pure virtual

Member Data Documentation

◆ inset_idx


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