Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
igl::geodesic::Face Class Reference
+ Inheritance diagram for igl::geodesic::Face:
+ Collaboration diagram for igl::geodesic::Face:

Public Types

typedef SimpleVector< vertex_pointervertex_pointer_vector
 
typedef SimpleVector< edge_pointeredge_pointer_vector
 
typedef SimpleVector< face_pointerface_pointer_vector
 

Public Member Functions

 Face ()
 
 ~Face ()
 
edge_pointer opposite_edge (vertex_pointer v)
 
vertex_pointer opposite_vertex (edge_pointer e)
 
edge_pointer next_edge (edge_pointer e, vertex_pointer v)
 
double vertex_angle (vertex_pointer v)
 
double * corner_angles ()
 
vertex_pointer_vectoradjacent_vertices ()
 
edge_pointer_vectoradjacent_edges ()
 
face_pointer_vectoradjacent_faces ()
 
unsigned & id ()
 
PointType type ()
 

Protected Attributes

vertex_pointer_vector m_adjacent_vertices
 
edge_pointer_vector m_adjacent_edges
 
face_pointer_vector m_adjacent_faces
 
unsigned m_id
 
PointType m_type
 

Private Attributes

double m_corner_angles [3]
 

Detailed Description

Member Typedef Documentation

◆ edge_pointer_vector

◆ face_pointer_vector

◆ vertex_pointer_vector

Constructor & Destructor Documentation

◆ Face()

igl::geodesic::Face::Face ( )
inline
445 {
446 m_type = FACE;
447 };
PointType m_type
Definition exact_geodesic.cpp:359
@ FACE
Definition exact_geodesic.cpp:330

References igl::geodesic::FACE, and igl::geodesic::MeshElementBase::m_type.

◆ ~Face()

igl::geodesic::Face::~Face ( )
inline
449{};

Member Function Documentation

◆ adjacent_edges()

◆ adjacent_faces()

face_pointer_vector & igl::geodesic::MeshElementBase::adjacent_faces ( )
inlineinherited

◆ adjacent_vertices()

vertex_pointer_vector & igl::geodesic::MeshElementBase::adjacent_vertices ( )
inlineinherited

◆ corner_angles()

double * igl::geodesic::Face::corner_angles ( )
inline
468{return m_corner_angles;};
double m_corner_angles[3]
Definition exact_geodesic.cpp:471

References m_corner_angles.

Referenced by igl::geodesic::Mesh::build_adjacencies(), and igl::geodesic::Mesh::verify().

+ Here is the caller graph for this function:

◆ id()

◆ next_edge()

edge_pointer igl::geodesic::Face::next_edge ( edge_pointer  e,
vertex_pointer  v 
)
inline
637{
638 assert(e->belongs(v));
639
640 for(unsigned i=0; i<3; ++i)
641 {
642 edge_pointer next = adjacent_edges()[i];
643 if(e->id() != next->id() && next->belongs(v))
644 {
645 return next;
646 }
647 }
648 assert(0);
649 return NULL;
650}
edge_pointer_vector & adjacent_edges()
Definition exact_geodesic.cpp:347
Edge * edge_pointer
Definition exact_geodesic.cpp:281

References igl::geodesic::MeshElementBase::adjacent_edges(), igl::geodesic::Edge::belongs(), and igl::geodesic::MeshElementBase::id().

Referenced by igl::geodesic::GeodesicAlgorithmExact::possible_traceback_edges(), and igl::geodesic::GeodesicAlgorithmExact::propagate().

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

◆ opposite_edge()

edge_pointer igl::geodesic::Face::opposite_edge ( vertex_pointer  v)
inline
609{
610 for(unsigned i=0; i<3; ++i)
611 {
613 if(!e->belongs(v))
614 {
615 return e;
616 }
617 }
618 assert(0);
619 return NULL;
620}

References igl::geodesic::MeshElementBase::adjacent_edges(), and igl::geodesic::Edge::belongs().

Referenced by igl::geodesic::Mesh::build_adjacencies(), and igl::geodesic::GeodesicAlgorithmExact::possible_traceback_edges().

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

◆ opposite_vertex()

vertex_pointer igl::geodesic::Face::opposite_vertex ( edge_pointer  e)
inline
623{
624 for(unsigned i=0; i<3; ++i)
625 {
627 if(!e->belongs(v))
628 {
629 return v;
630 }
631 }
632 assert(0);
633 return NULL;
634}
vertex_pointer_vector & adjacent_vertices()
Definition exact_geodesic.cpp:346
Vertex * vertex_pointer
Definition exact_geodesic.cpp:280

References igl::geodesic::MeshElementBase::adjacent_vertices(), and igl::geodesic::Edge::belongs().

Referenced by igl::geodesic::Mesh::closest_vertices().

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

◆ type()

PointType igl::geodesic::MeshElementBase::type ( )
inlineinherited
351{return m_type;};

References igl::geodesic::MeshElementBase::m_type.

Referenced by igl::geodesic::Interval::initialize(), igl::geodesic::GeodesicAlgorithmExact::list_edges_visible_from_source(), and igl::geodesic::SurfacePoint::type().

+ Here is the caller graph for this function:

◆ vertex_angle()

double igl::geodesic::Face::vertex_angle ( vertex_pointer  v)
inline
456 {
457 for(unsigned i=0; i<3; ++i)
458 {
459 if(adjacent_vertices()[i]->id() == v->id())
460 {
461 return m_corner_angles[i];
462 }
463 }
464 assert(0);
465 return 0;
466 }

References igl::geodesic::MeshElementBase::adjacent_vertices(), igl::geodesic::MeshElementBase::id(), and m_corner_angles.

Referenced by igl::geodesic::GeodesicAlgorithmExact::propagate().

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

Member Data Documentation

◆ m_adjacent_edges

edge_pointer_vector igl::geodesic::MeshElementBase::m_adjacent_edges
protectedinherited

◆ m_adjacent_faces

face_pointer_vector igl::geodesic::MeshElementBase::m_adjacent_faces
protectedinherited

◆ m_adjacent_vertices

vertex_pointer_vector igl::geodesic::MeshElementBase::m_adjacent_vertices
protectedinherited

◆ m_corner_angles

double igl::geodesic::Face::m_corner_angles[3]
private

Referenced by corner_angles(), and vertex_angle().

◆ m_id

unsigned igl::geodesic::MeshElementBase::m_id
protectedinherited

◆ m_type

PointType igl::geodesic::MeshElementBase::m_type
protectedinherited

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