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

#include <src/libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp>

+ Collaboration diagram for Slic3r::Arachne::SkeletalTrapezoidationEdge:

Classes

struct  TransitionEnd
 
struct  TransitionMiddle
 

Public Types

enum class  EdgeType { NORMAL = 0 , EXTRA_VD = 1 , TRANSITION_END = 2 }
 

Public Member Functions

 SkeletalTrapezoidationEdge ()
 
 SkeletalTrapezoidationEdge (const EdgeType &type)
 
bool isCentral () const
 
void setIsCentral (bool b)
 
bool centralIsSet () const
 
bool hasTransitions (bool ignore_empty=false) const
 
void setTransitions (std::shared_ptr< std::list< TransitionMiddle > > storage)
 
std::shared_ptr< std::list< TransitionMiddle > > getTransitions ()
 
bool hasTransitionEnds (bool ignore_empty=false) const
 
void setTransitionEnds (std::shared_ptr< std::list< TransitionEnd > > storage)
 
std::shared_ptr< std::list< TransitionEnd > > getTransitionEnds ()
 
bool hasExtrusionJunctions (bool ignore_empty=false) const
 
void setExtrusionJunctions (std::shared_ptr< LineJunctions > storage)
 
std::shared_ptr< LineJunctionsgetExtrusionJunctions ()
 

Public Attributes

EdgeType type
 

Private Types

enum class  Central { UNKNOWN = -1 , NO , YES }
 

Private Attributes

Central is_central
 
std::weak_ptr< std::list< TransitionMiddle > > transitions
 whether the edge is significant; whether the source segments have a sharp angle; -1 is unknown
 
std::weak_ptr< std::list< TransitionEnd > > transition_ends
 
std::weak_ptr< LineJunctionsextrusion_junctions
 

Detailed Description

Member Enumeration Documentation

◆ Central

◆ EdgeType

Enumerator
NORMAL 
EXTRA_VD 
TRANSITION_END 
50 {
51 NORMAL = 0, // from voronoi diagram
52 EXTRA_VD = 1, // introduced to voronoi diagram in order to make the gMAT
53 TRANSITION_END = 2 // introduced to voronoi diagram in order to make the gMAT
54 };

Constructor & Destructor Documentation

◆ SkeletalTrapezoidationEdge() [1/2]

Slic3r::Arachne::SkeletalTrapezoidationEdge::SkeletalTrapezoidationEdge ( )
inline
SkeletalTrapezoidationEdge()
Definition SkeletalTrapezoidationEdge.hpp:57

◆ SkeletalTrapezoidationEdge() [2/2]

Slic3r::Arachne::SkeletalTrapezoidationEdge::SkeletalTrapezoidationEdge ( const EdgeType type)
inline
EdgeType type
Definition SkeletalTrapezoidationEdge.hpp:55
Central is_central
Definition SkeletalTrapezoidationEdge.hpp:114

Member Function Documentation

◆ centralIsSet()

bool Slic3r::Arachne::SkeletalTrapezoidationEdge::centralIsSet ( ) const
inline
70 {
72 }

References is_central, and UNKNOWN.

◆ getExtrusionJunctions()

std::shared_ptr< LineJunctions > Slic3r::Arachne::SkeletalTrapezoidationEdge::getExtrusionJunctions ( )
inline
109 {
110 return extrusion_junctions.lock();
111 }
std::weak_ptr< LineJunctions > extrusion_junctions
Definition SkeletalTrapezoidationEdge.hpp:118

References extrusion_junctions.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::connectJunctions().

+ Here is the caller graph for this function:

◆ getTransitionEnds()

std::shared_ptr< std::list< TransitionEnd > > Slic3r::Arachne::SkeletalTrapezoidationEdge::getTransitionEnds ( )
inline
96 {
97 return transition_ends.lock();
98 }
std::weak_ptr< std::list< TransitionEnd > > transition_ends
Definition SkeletalTrapezoidationEdge.hpp:117

References transition_ends.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::generateTransitionEnd().

+ Here is the caller graph for this function:

◆ getTransitions()

std::shared_ptr< std::list< TransitionMiddle > > Slic3r::Arachne::SkeletalTrapezoidationEdge::getTransitions ( )
inline
83 {
84 return transitions.lock();
85 }
std::weak_ptr< std::list< TransitionMiddle > > transitions
whether the edge is significant; whether the source segments have a sharp angle; -1 is unknown
Definition SkeletalTrapezoidationEdge.hpp:116

References transitions.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::dissolveNearbyTransitions(), and Slic3r::Arachne::SkeletalTrapezoidation::isGoingDown().

+ Here is the caller graph for this function:

◆ hasExtrusionJunctions()

bool Slic3r::Arachne::SkeletalTrapezoidationEdge::hasExtrusionJunctions ( bool  ignore_empty = false) const
inline
101 {
102 return extrusion_junctions.use_count() > 0 && (ignore_empty || ! extrusion_junctions.lock()->empty());
103 }

References extrusion_junctions.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::connectJunctions().

+ Here is the caller graph for this function:

◆ hasTransitionEnds()

bool Slic3r::Arachne::SkeletalTrapezoidationEdge::hasTransitionEnds ( bool  ignore_empty = false) const
inline
88 {
89 return transition_ends.use_count() > 0 && (ignore_empty || ! transition_ends.lock()->empty());
90 }

References transition_ends.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::generateTransitionEnd().

+ Here is the caller graph for this function:

◆ hasTransitions()

bool Slic3r::Arachne::SkeletalTrapezoidationEdge::hasTransitions ( bool  ignore_empty = false) const
inline
75 {
76 return transitions.use_count() > 0 && (ignore_empty || ! transitions.lock()->empty());
77 }

References transitions.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::dissolveNearbyTransitions(), and Slic3r::Arachne::SkeletalTrapezoidation::isGoingDown().

+ Here is the caller graph for this function:

◆ isCentral()

bool Slic3r::Arachne::SkeletalTrapezoidationEdge::isCentral ( ) const
inline

◆ setExtrusionJunctions()

void Slic3r::Arachne::SkeletalTrapezoidationEdge::setExtrusionJunctions ( std::shared_ptr< LineJunctions storage)
inline
105 {
106 extrusion_junctions = storage;
107 }

References extrusion_junctions.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::connectJunctions().

+ Here is the caller graph for this function:

◆ setIsCentral()

void Slic3r::Arachne::SkeletalTrapezoidationEdge::setIsCentral ( bool  b)
inline

References is_central, NO, and YES.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::filterCentral(), Slic3r::Arachne::SkeletalTrapezoidation::filterNoncentralRegions(), and Slic3r::Arachne::SkeletalTrapezoidationGraph::insertRib().

+ Here is the caller graph for this function:

◆ setTransitionEnds()

void Slic3r::Arachne::SkeletalTrapezoidationEdge::setTransitionEnds ( std::shared_ptr< std::list< TransitionEnd > >  storage)
inline
92 {
93 transition_ends = storage;
94 }

References transition_ends.

Referenced by Slic3r::Arachne::SkeletalTrapezoidation::generateTransitionEnd().

+ Here is the caller graph for this function:

◆ setTransitions()

void Slic3r::Arachne::SkeletalTrapezoidationEdge::setTransitions ( std::shared_ptr< std::list< TransitionMiddle > >  storage)
inline
79 {
80 transitions = storage;
81 }

References transitions.

Member Data Documentation

◆ extrusion_junctions

std::weak_ptr<LineJunctions> Slic3r::Arachne::SkeletalTrapezoidationEdge::extrusion_junctions
private

◆ is_central

Central Slic3r::Arachne::SkeletalTrapezoidationEdge::is_central
private

◆ transition_ends

std::weak_ptr<std::list<TransitionEnd> > Slic3r::Arachne::SkeletalTrapezoidationEdge::transition_ends
private

◆ transitions

std::weak_ptr<std::list<TransitionMiddle> > Slic3r::Arachne::SkeletalTrapezoidationEdge::transitions
private

whether the edge is significant; whether the source segments have a sharp angle; -1 is unknown

Referenced by getTransitions(), hasTransitions(), and setTransitions().

◆ type


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