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

This class represents a vertex used by AIFMesh objects. An AIFVertex natively saves relations with its incident edges (AIFEdge). More...

#include <AIFVertex.hpp>

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

Public Types

typedef AIFVertex self
 
typedef boost::shared_ptr< selfptr
 
typedef boost::shared_ptr< selfptr_vertex
 
typedef AIFEdge edge_type
 
typedef AIFFace face_type
 
typedef boost::shared_ptr< edge_typeptr_edge
 
typedef boost::shared_ptr< face_typeptr_face
 
typedef std::vector< ptr_vertexVertexContainerType
 
typedef std::vector< ptr_edgeEdgeContainerType
 
typedef std::vector< ptr_faceFaceContainerType
 
typedef double CoordinateType
 
typedef face_type::NormalCoordinateType NormalCoordinateType
 

Public Member Functions

std::size_t GetIndex () const
 
void SetIndex (std::size_t idx)
 
boost::iterator_range< EdgeContainerType::const_iterator > GetIncidentEdges ()
 
unsigned int GetDegree ()
 
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_vertex New ()
 
static ptr_vertex New (const self &other)
 

Private Member Functions

 AIFVertex ()
 
 AIFVertex (const self &other)
 

Private Attributes

std::size_t m_Index
 
EdgeContainerType m_Incident_PtrEdges
 
FaceContainerType m_Incident_PtrFaces
 
bool m_Incident_PtrFaces_Computed
 
VertexContainerType m_One_Ring_Vertices
 
bool m_Is_One_Ring_Vertices_Computed
 

Static Private Attributes

static const unsigned int m_d = 3
 

Friends

class AIFTopologyHelpers
 

Detailed Description

This class represents a vertex used by AIFMesh objects. An AIFVertex natively saves relations with its incident edges (AIFEdge).

See also
AIFEdge
AIFFace

Definition at line 40 of file AIFVertex.hpp.

Member Typedef Documentation

◆ CoordinateType

Definition at line 59 of file AIFVertex.hpp.

◆ edge_type

Definition at line 50 of file AIFVertex.hpp.

◆ EdgeContainerType

Definition at line 56 of file AIFVertex.hpp.

◆ face_type

Definition at line 51 of file AIFVertex.hpp.

◆ FaceContainerType

Definition at line 57 of file AIFVertex.hpp.

◆ NormalCoordinateType

Definition at line 60 of file AIFVertex.hpp.

◆ ptr

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

Definition at line 47 of file AIFVertex.hpp.

◆ ptr_edge

Definition at line 52 of file AIFVertex.hpp.

◆ ptr_face

Definition at line 53 of file AIFVertex.hpp.

◆ ptr_vertex

Definition at line 48 of file AIFVertex.hpp.

◆ self

Definition at line 46 of file AIFVertex.hpp.

◆ VertexContainerType

Definition at line 55 of file AIFVertex.hpp.

Constructor & Destructor Documentation

◆ AIFVertex() [1/2]

FEVV::DataStructures::AIF::AIFVertex::AIFVertex ( )
inlineprivate

AIFVertex default constructor.

Definition at line 102 of file AIFVertex.hpp.

◆ AIFVertex() [2/2]

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

incidence relations AND with the same index.

Definition at line 114 of file AIFVertex.hpp.

Member Function Documentation

◆ GetDegree()

unsigned int FEVV::DataStructures::AIF::AIFVertex::GetDegree ( )
inline
  Degree getter
Returns
The number of incident edges of the involved vertex.

Definition at line 163 of file AIFVertex.hpp.

◆ GetIncidentEdges()

boost::iterator_range< EdgeContainerType::const_iterator > FEVV::DataStructures::AIF::AIFVertex::GetIncidentEdges ( )
inline
  Native incidence relations getter
Returns
An iterator range on the incident edges (AIFEdge pointer) of the involved vertex.

Definition at line 153 of file AIFVertex.hpp.

◆ GetIndex()

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

Definition at line 142 of file AIFVertex.hpp.

Here is the caller graph for this function:

◆ New() [1/2]

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

Definition at line 17 of file AIFVertex.inl.

Here is the caller graph for this function:

◆ New() [2/2]

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

Definition at line 25 of file AIFVertex.inl.

◆ operator!=()

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

Definition at line 194 of file AIFVertex.hpp.

◆ operator<()

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

Definition at line 180 of file AIFVertex.hpp.

◆ operator<=()

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

Definition at line 201 of file AIFVertex.hpp.

◆ operator==()

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

Definition at line 187 of file AIFVertex.hpp.

◆ operator>()

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

Definition at line 218 of file AIFVertex.hpp.

◆ operator>=()

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

Definition at line 211 of file AIFVertex.hpp.

◆ Print()

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

standard output.

Definition at line 33 of file AIFVertex.inl.

Here is the call graph for this function:

◆ SetIndex()

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

Definition at line 147 of file AIFVertex.hpp.

Friends And Related Function Documentation

◆ AIFTopologyHelpers

friend class AIFTopologyHelpers
friend

Definition at line 43 of file AIFVertex.hpp.

Member Data Documentation

◆ m_d

const unsigned int FEVV::DataStructures::AIF::AIFVertex::m_d = 3
staticprivate

Definition at line 72 of file AIFVertex.hpp.

◆ m_Incident_PtrEdges

EdgeContainerType FEVV::DataStructures::AIF::AIFVertex::m_Incident_PtrEdges
private

Container on incident edges (AIFEdge pointer).

Definition at line 70 of file AIFVertex.hpp.

◆ m_Incident_PtrFaces

FaceContainerType FEVV::DataStructures::AIF::AIFVertex::m_Incident_PtrFaces
private
  Container on incident faces (AIFFace pointer).
  This container is filled only on demand and is modify if

necessary.

Definition at line 80 of file AIFVertex.hpp.

◆ m_Incident_PtrFaces_Computed

bool FEVV::DataStructures::AIF::AIFVertex::m_Incident_PtrFaces_Computed
private

Incident_PtrFaces cache state indicator. True if the cache is valid.

Definition at line 85 of file AIFVertex.hpp.

◆ m_Index

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

AIFVertex unique index.

Definition at line 66 of file AIFVertex.hpp.

◆ m_Is_One_Ring_Vertices_Computed

bool FEVV::DataStructures::AIF::AIFVertex::m_Is_One_Ring_Vertices_Computed
private

One-ring vertices cache state indicator. True if the cache is valid.

Definition at line 96 of file AIFVertex.hpp.

◆ m_One_Ring_Vertices

VertexContainerType FEVV::DataStructures::AIF::AIFVertex::m_One_Ring_Vertices
private
  Container of one-ring vertices (AIFVertex pointer).
  This container is fill only on demand and is modified if

necessary. Handled with a cache system.

Definition at line 91 of file AIFVertex.hpp.


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