MEPP2 Project
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
FEVV::DataStructures::AIF::AIFEdge Class Reference

This class represents an edge used by AIFMesh objects. An AIFEdge natively saves relations with its incident vertices (AIFVertex) and with its incident faces (AIFFace). More...

#include <AIFEdge.hpp>

Collaboration diagram for FEVV::DataStructures::AIF::AIFEdge:
Collaboration graph

Public Types

typedef AIFEdge self
 
typedef boost::shared_ptr< selfptr
 
typedef boost::shared_ptr< selfptr_edge
 
typedef AIFVertex vertex_type
 
typedef AIFFace face_type
 
typedef boost::shared_ptr< vertex_typeptr_vertex
 
typedef boost::shared_ptr< face_typeptr_face
 
typedef std::array< ptr_vertex, 2 > VertexContainerType
 
typedef std::vector< ptr_edgeEdgeContainerType
 
typedef std::vector< ptr_faceFaceContainerType
 

Public Member Functions

boost::iterator_range< VertexContainerType::const_iterator > GetIncidentVertices ()
 
boost::iterator_range< FaceContainerType::const_iterator > GetIncidentFaces () const
 
boost::iterator_range< FaceContainerType::iterator > GetIncidentFaces ()
 
unsigned int GetDegree ()
 
ptr_vertex get_first_vertex () const
 
ptr_vertex get_second_vertex () const
 
std::size_t GetIndex () const
 
void SetIndex (std::size_t idx)
 
void set_first_vertex (ptr_vertex V1)
 
void set_second_vertex (ptr_vertex V2)
 
void Print () const
 
bool operator< (const self &other) const
 
bool operator== (const self &other) const
 
bool operator!= (const self &other) const
 
bool operator<= (const self &other) const
 
bool operator>= (const self &other) const
 
bool operator> (const self &other) const
 

Static Public Member Functions

static ptr_edge New ()
 
static ptr_edge New (const self &other)
 

Private Member Functions

 AIFEdge ()
 
 AIFEdge (const self &other)
 

Private Attributes

std::size_t m_Index
 
VertexContainerType m_incident_vertices
 
FaceContainerType m_incident_PtrFaces
 

Friends

class AIFEdgeComparator
 
class AIFTopologyHelpers
 

Detailed Description

This class represents an edge used by AIFMesh objects. An AIFEdge natively saves relations with its incident vertices (AIFVertex) and with its incident faces (AIFFace).

See also
AIFVertex
AIFFace

Definition at line 48 of file AIFEdge.hpp.

Member Typedef Documentation

◆ EdgeContainerType

Definition at line 65 of file AIFEdge.hpp.

◆ face_type

Definition at line 60 of file AIFEdge.hpp.

◆ FaceContainerType

Definition at line 66 of file AIFEdge.hpp.

◆ ptr

typedef boost::shared_ptr< self > FEVV::DataStructures::AIF::AIFEdge::ptr

Definition at line 56 of file AIFEdge.hpp.

◆ ptr_edge

typedef boost::shared_ptr< self > FEVV::DataStructures::AIF::AIFEdge::ptr_edge

Definition at line 57 of file AIFEdge.hpp.

◆ ptr_face

Definition at line 62 of file AIFEdge.hpp.

◆ ptr_vertex

Definition at line 61 of file AIFEdge.hpp.

◆ self

Definition at line 55 of file AIFEdge.hpp.

◆ vertex_type

Definition at line 59 of file AIFEdge.hpp.

◆ VertexContainerType

Definition at line 64 of file AIFEdge.hpp.

Constructor & Destructor Documentation

◆ AIFEdge() [1/2]

FEVV::DataStructures::AIF::AIFEdge::AIFEdge ( )
inlineprivate

AIFEdge default constructor.

Definition at line 86 of file AIFEdge.hpp.

◆ AIFEdge() [2/2]

FEVV::DataStructures::AIF::AIFEdge::AIFEdge ( const self other)
inlineprivate
  AIFEdge copy constructor
  Be careful, it create a new AIFEdge with the same native

incidence relations.

Definition at line 93 of file AIFEdge.hpp.

Member Function Documentation

◆ get_first_vertex()

ptr_vertex FEVV::DataStructures::AIF::AIFEdge::get_first_vertex ( ) const
inline
  begin/first vertex getter
Returns
The begin/first vertex of the involved edge.

Definition at line 158 of file AIFEdge.hpp.

Here is the caller graph for this function:

◆ get_second_vertex()

ptr_vertex FEVV::DataStructures::AIF::AIFEdge::get_second_vertex ( ) const
inline
  end/second vertex getter
Returns
The end/second vertex of the involved edge.

Definition at line 164 of file AIFEdge.hpp.

Here is the caller graph for this function:

◆ GetDegree()

unsigned int FEVV::DataStructures::AIF::AIFEdge::GetDegree ( )
inline
  Degree getter
Returns
The number of incident faces of the involved edge.

Definition at line 150 of file AIFEdge.hpp.

◆ GetIncidentFaces() [1/2]

boost::iterator_range< FaceContainerType::iterator > FEVV::DataStructures::AIF::AIFEdge::GetIncidentFaces ( )
inline
  Native incidence relations getter
Returns
An iterator range on the incident faces (AIFFace pointer) of the involved edge.

Definition at line 140 of file AIFEdge.hpp.

◆ GetIncidentFaces() [2/2]

boost::iterator_range< FaceContainerType::const_iterator > FEVV::DataStructures::AIF::AIFEdge::GetIncidentFaces ( ) const
inline
  Native incidence relations getter
Returns
An iterator range on the incident faces (AIFFace pointer) of the involved edge.

Definition at line 129 of file AIFEdge.hpp.

◆ GetIncidentVertices()

boost::iterator_range< VertexContainerType::const_iterator > FEVV::DataStructures::AIF::AIFEdge::GetIncidentVertices ( )
inline
  Native incidence relations getter
Returns
An iterator range on the incident vertices (AIFVertex pointer) of the involved edge.

Definition at line 118 of file AIFEdge.hpp.

◆ GetIndex()

std::size_t FEVV::DataStructures::AIF::AIFEdge::GetIndex ( ) const
inline
  Index getter
Returns
The index of the involved edge.

Definition at line 170 of file AIFEdge.hpp.

Here is the caller graph for this function:

◆ New() [1/2]

AIFEdge::ptr_edge FEVV::DataStructures::AIF::AIFEdge::New ( )
inlinestatic
  Static constructor method
Returns
A pointer to a new instance of AIFEdge class.

Definition at line 22 of file AIFEdge.inl.

Here is the caller graph for this function:

◆ New() [2/2]

AIFEdge::ptr_edge FEVV::DataStructures::AIF::AIFEdge::New ( const self other)
inlinestatic
  Static constructor method
Parameters
otherThe edge to copy.
Returns
A pointer to a new instance of AIFEdge class.

Definition at line 30 of file AIFEdge.inl.

◆ operator!=()

bool FEVV::DataStructures::AIF::AIFEdge::operator!= ( const self other) const
inline
  difference operator
Parameters
otherThe second edge to compare with the current one.
Returns
True if the current AIFEdge is different from other one. Else return false;

Definition at line 212 of file AIFEdge.hpp.

◆ operator<()

bool FEVV::DataStructures::AIF::AIFEdge::operator< ( const self other) const
inline
  Less operator (natural ordering)
Parameters
otherThe second edge to compare with the current one.
Returns
True if the current AIFEdge is strictly less than the other one. Else return false;

Definition at line 37 of file AIFEdge.inl.

◆ operator<=()

bool FEVV::DataStructures::AIF::AIFEdge::operator<= ( const self other) const
inline
  Less or equals operator
Parameters
otherThe second edge to compare with the current one.
Returns
True if the current AIFEdge is less or equal to other one. Else return false;

Definition at line 219 of file AIFEdge.hpp.

◆ operator==()

bool FEVV::DataStructures::AIF::AIFEdge::operator== ( const self other) const
inline
  equality operator
Parameters
otherThe second edge to compare with the current one.
Returns
True if the current AIFEdge is equal to other one. Else return false;

Definition at line 46 of file AIFEdge.inl.

◆ operator>()

bool FEVV::DataStructures::AIF::AIFEdge::operator> ( const self other) const
inline
  Greater operator
Parameters
otherThe second edge to compare with the current one.
Returns
True if the current AIFEdge is strictly greater to other one. Else return false;

Definition at line 236 of file AIFEdge.hpp.

◆ operator>=()

bool FEVV::DataStructures::AIF::AIFEdge::operator>= ( const self other) const
inline
  Greater or equals operator
Parameters
otherThe second edge to compare with the current one.
Returns
True if the current AIFEdge is greater or equal to other one. Else return false;

Definition at line 229 of file AIFEdge.hpp.

◆ Print()

void FEVV::DataStructures::AIF::AIFEdge::Print ( ) const
inline
  Print the textual description of the involved edge on the

standard output.

Definition at line 53 of file AIFEdge.inl.

Here is the call graph for this function:

◆ set_first_vertex()

void FEVV::DataStructures::AIF::AIFEdge::set_first_vertex ( ptr_vertex  V1)
inline
  First vertex setter
Parameters
v1The new first vertex of the involved edge.

Definition at line 180 of file AIFEdge.hpp.

◆ set_second_vertex()

void FEVV::DataStructures::AIF::AIFEdge::set_second_vertex ( ptr_vertex  V2)
inline
  Second vertex setter
Parameters
v2The new second vertex of the involved edge.

Definition at line 185 of file AIFEdge.hpp.

◆ SetIndex()

void FEVV::DataStructures::AIF::AIFEdge::SetIndex ( std::size_t  idx)
inline
  Index setter
Parameters
Theindex of the involved edge.

Definition at line 175 of file AIFEdge.hpp.

Friends And Related Function Documentation

◆ AIFEdgeComparator

friend class AIFEdgeComparator
friend

Definition at line 51 of file AIFEdge.hpp.

◆ AIFTopologyHelpers

friend class AIFTopologyHelpers
friend

Definition at line 52 of file AIFEdge.hpp.

Member Data Documentation

◆ m_incident_PtrFaces

FaceContainerType FEVV::DataStructures::AIF::AIFEdge::m_incident_PtrFaces
private

Container on incident faces (AIFFace pointer).

Definition at line 80 of file AIFEdge.hpp.

◆ m_incident_vertices

VertexContainerType FEVV::DataStructures::AIF::AIFEdge::m_incident_vertices
private

Container on incident vertices (AIFVertices pointer).

Definition at line 76 of file AIFEdge.hpp.

◆ m_Index

std::size_t FEVV::DataStructures::AIF::AIFEdge::m_Index
private

AIFEdge unique index.

Definition at line 72 of file AIFEdge.hpp.


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