In file tetrahedrisation/TetraVertex3D.h:

class TetraVertex3D : public ListElement<TetraVertex3D>

Vertex class of a 3D Tetrahedrisation

Inheritance:


Public Classes

class TetrahedronVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of neighboring tetrahedra to a vertex
std::set <TetraTetrahedron3D *> ::iterator tetrahedronIterator
iterator on the set of adjacent tetrahedra
TetraVertex3D* vertex
the vertex around which we iterate
constructor
TetrahedronVertexIteratorBasic (TetraVertex3D *v)
constructor builds a tetrahedron iterator around a vertex
destructor
~TetrahedronVertexIteratorBasic ()
delete tetrahedron iterator : if the vertex is real then erase the tetrahedron list otherwise do nothing
void first ()
set iterator on the first tetrahedron item
bool isAtEnd () const
returns true if the iterator is at the end of the list
template class TetrahedronVertexIterator : public TetrahedronVertexIteratorBasic
iterator on tetrahedra adjacent to a vertex
constructor
TetrahedronVertexIterator (TetraVertex3D *v)
constructor builds a tetrahedron iterator around a vertex
destructor
~TetrahedronVertexIterator ()
delete tetrahedron iterator : if the vertex is real then erase the tetrahedron list otherwise do nothing
T* operator* ()
returns current tetrahedron
void operator++ (void)
set iterator on next tetrahedron
T* operator++ (int)
returns current tetrahedron then set iterator on next one
void operator-- (void)
set iterator on previous tetrahedron
T* operator-- (int)
returns current tetrahedron then set iterator on previous one
class TriangleVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of triangles opposite to a vertex
std::set <TetraTetrahedron3D *> ::iterator tetrahedronIterator
iterator on the set of adjacent tetrahedra
TetraVertex3D* vertex
the vertex around which we iterate
constructor
TriangleVertexIteratorBasic (TetraVertex3D *v)
constructor builds a triangle iterator around a vertex
destructor
~TriangleVertexIteratorBasic ()
delete triangle iterator
void first ()
set iterator on the first triangle item
bool isAtEnd () const
returns true if the iterator is at the end of the list
template class TriangleVertexIterator : public TriangleVertexIteratorBasic
iterator on triangles opposite to a vertex (in the vertex shell )
T* getTriangle (const TetraTetrahedron3D *t)
returns the triangle opposite to vertex in tetrahedron t
constructor
TriangleVertexIterator (TetraVertex3D *v)
constructor builds a triangle iterator around a vertex
destructor
~TriangleVertexIterator ()
delete triangle iterator
T* operator* ()
returns current triangle
void operator++ (void)
set iterator on next triangle
T* operator++ (int)
returns current triangle then set iterator on next one
void operator-- (void)
set iterator on previous triangle
T* operator-- (int)
returns current triangle then set iterator on previous one
class EdgeVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of edges adjacent to a vertex
std::set <TetraEdge3D *> ::iterator edgeIterator
iterator on the set of adjacent edges
TetraVertex3D* vertex
the vertex aroud which we iterate
constructor
EdgeVertexIteratorBasic (TetraVertex3D *v)
constructor builds an edge iterator around a vertex
destructor
~EdgeVertexIteratorBasic ()
delete edge iterator
void first ()
set iterator on the first edge item
bool isAtEnd () const
returns true if the iterator is at the end of the list
template class EdgeVertexIterator : public EdgeVertexIteratorBasic
iterator on edges adjacent to a vertex
constructor
EdgeVertexIterator (TetraVertex3D *v)
constructor builds an edge iterator around a vertex
destructor
~EdgeVertexIterator ()
delete edge iterator
T* operator* ()
returns current edge
void operator++ (void)
set iterator on next edge
T* operator++ (int)
returns current edge then set iterator on next one
void operator-- (void)
set iterator on previous edge
T* operator-- (int)
returns current edge then set iterator on previous one
class OppositeEdgeVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of edges adjacent to a vertex
std::set <TetraEdge3D *> ::iterator edgeIterator
iterator on the set of opposite edges
TetraVertex3D* vertex
the vertex around which we iterate
constructor
OppositeEdgeVertexIteratorBasic (TetraVertex3D *v)
constructor builds an edge iterator around a vertex
destructor
~OppositeEdgeVertexIteratorBasic ()
delete edge iterator
void first ()
set iterator on the first edge item
bool isAtEnd () const
returns true if the iterator is at the end of the list
template class OppositeEdgeVertexIterator : public OppositeEdgeVertexIteratorBasic
iterator on edges opposite to a vertex (in the vertex shell)
constructor
OppositeEdgeVertexIterator (TetraVertex3D *v)
constructor builds an edge iterator around a vertex
destructor
~OppositeEdgeVertexIterator ()
delete edge iterator
T* operator* ()
returns current edge
void operator++ (void)
set iterator on next edge
T* operator++ (int)
returns current edge then set iterator on next one
void operator-- (void)
set iterator on previous edge
T* operator-- (int)
returns current edge then set iterator on previous one
template class VertexVertexIterator : public EdgeVertexIteratorBasic
iterator on Vertices adjacent to a given vertex
T* getVertex (const TetraEdge3D *e)
returns the vertex opposite to vertex in edge e
constructor
VertexVertexIterator (TetraVertex3D *v)
constructor builds an iterator on vertices adjacent around a vertex
destructor
~VertexVertexIterator ()
delete vertex iterator
T* operator* ()
returns current vertex
void operator++ (void)
set iterator on next vertex
T* operator++ (int)
returns current vertex then set iterator on next one
void operator-- (void)
set iterator on previous vertex
T* operator-- (int)
returns current vertex then set iterator on previous one

Public Methods

void resetTopology ()
reset the list of edges, tetrahedra adjacent to this vertex : called when the topology around that vertex is changed
void setEdgeSize (const double _size)
set the average edge size
void multiplyEdgeSize (const double ratio)
set the average edge size
inline double getEdgeSize () const
set the average edge size
inline Tetra3D* getTetrahedrisation () const
get the mesh containing the vertex
bool removeSurroundingTetrahedra ()
remove the edge connecting the vertex with a closest vertex
inline TetraTetrahedron3D* getTetrahedron () const
returns an adjacent tetrahedron
inline unsigned int getTetrahedronIndex () const
returns the index of that vertex in an adjacent tetrahedron
inline bool isReal () const
whether the vertex is real or virtual
void setVirtual ()
set the vertex as a virtual vertex
TetraEdge3D* getAdjacentVirtualEdge ()
getAdjacentVirtualEdge (if any)
TetraVertex3D* getAdjacentVirtualVertex ()
getAdjacentVirtualVertex (if any)
inline unsigned int getRef () const
returns the vertex unique reference
inline Vec3 getPosition () const
returns the vertex position
void setPosition (Vec3 np)
set the vertex position
void computeNormalOnAdjacentVertices ()
compute a normal vector at each vertices adjacent to a given vertex
void setRef (unsigned int r)
set the vertex unique reference
inline Vec3 getNormal () const
returns the vertex normal
void setNormal (Vec3 * n)
set the vertex normal

Public

constructor
TetraVertex3D (Tetra3D *mesh, const Vec3 &p=Vec3(), bool empty=false)
3D Vertex constructor
destructor
virtual ~TetraVertex3D ()
delete vertex

Protected Fields

Tetra3D* tetrahedrisation
the mesh containing the vertex
Vec3 position
vertex position
Vec3 * normal
vertex normal
TetraTetrahedron3D* tetrahedron
one tetrahedron adjacent to that vertex
unsigned int tetrahedronIndex
the index of that vertex in the adjacent tetrahedron i
double edgeSize
the average edge size of the tetrahedra surrounding a vertex
bool empty
if the vertex is real or virtual
std::set <TetraTetrahedron3D *> tetrahedronList
set of adjacent tetrahedra to the vertex
std::set <TetraEdge3D *> edgeList
set of adjacent edges used by edge iterators
std::set <TetraEdge3D *> oppositeEdgeList
set of opposite edges used by edge iterators
bool isDivided
unsigned int ref
unique reference of the vertex

Protected Methods

std::list <TetraVertex3D*> divideVirtualVertex (std::set<TetraTetrahedron3D*>)
divide the vertex acording to its connexe components
void replaceWithVirtualVertex (TetraVertex3D*)
replace this vertex vertex with the given virtualvertex in all adjacent triangles and edges if the vertices are not virtual, do nothing
void refineVertex ()
remesh the neighborhood of the vertex by creating a shell around the vertex
void setTetrahedron (TetraTetrahedron3D *t, int i=-1)
set the adjacent tetrahedron
void addTetrahedronInList (TetraTetrahedron3D *t, unsigned int index)
recursively add tetrahedra in the list of neighboring tetrahedra
void buildAdjacentTetrahedronSet ()
updates the set of adjacent tetrahedron
void buildAdjacentEdgeSet ()
updates the set of adjacent tetrahedron
void buildOppositeEdgeSet ()
updates the set of opposite tetrahedron
virtual void setProperties (TetraVertex3D* v0, double c0=1, TetraVertex3D* v1=NULL, double c1=0, TetraVertex3D* v2=NULL, double c2=0, TetraVertex3D* v3=NULL, double c3=0)
set all vertex's properties that can be transmited when refining

Documentation

Vertex class of a 3D Tetrahedrisation
Tetra3D* tetrahedrisation
the mesh containing the vertex

Vec3 position
vertex position

Vec3 * normal
vertex normal

TetraTetrahedron3D* tetrahedron
one tetrahedron adjacent to that vertex

unsigned int tetrahedronIndex
the index of that vertex in the adjacent tetrahedron i.e. tetrahedron[tetrahedronIndex]=this

double edgeSize
the average edge size of the tetrahedra surrounding a vertex

bool empty
if the vertex is real or virtual

std::set <TetraTetrahedron3D *> tetrahedronList
set of adjacent tetrahedra to the vertex

std::set <TetraEdge3D *> edgeList
set of adjacent edges used by edge iterators

std::set <TetraEdge3D *> oppositeEdgeList
set of opposite edges used by edge iterators

bool isDivided

unsigned int ref
unique reference of the vertex

std::list <TetraVertex3D*> divideVirtualVertex(std::set<TetraTetrahedron3D*>)
divide the vertex acording to its connexe components
Returns:
a list of pointers to the vertices created by the division
Parameters:
a - set of pointers to tetrahedra containing at least ONE tetrahedra of each of its adjacent connexe components.

void replaceWithVirtualVertex(TetraVertex3D*)
replace this vertex vertex with the given virtualvertex in all adjacent triangles and edges if the vertices are not virtual, do nothing
Parameters:
the - virtual vertex

void refineVertex()
remesh the neighborhood of the vertex by creating a shell around the vertex

void setTetrahedron(TetraTetrahedron3D *t, int i=-1)
set the adjacent tetrahedron

void addTetrahedronInList(TetraTetrahedron3D *t, unsigned int index)
recursively add tetrahedra in the list of neighboring tetrahedra

void buildAdjacentTetrahedronSet()
updates the set of adjacent tetrahedron

void buildAdjacentEdgeSet()
updates the set of adjacent tetrahedron

void buildOppositeEdgeSet()
updates the set of opposite tetrahedron

virtual void setProperties(TetraVertex3D* v0, double c0=1, TetraVertex3D* v1=NULL, double c1=0, TetraVertex3D* v2=NULL, double c2=0, TetraVertex3D* v3=NULL, double c3=0)
set all vertex's properties that can be transmited when refining
Parameters:
v0 - , v1, v2, v3 vertices
corresponding - barycentriacal coeff

constructor

TetraVertex3D(Tetra3D *mesh, const Vec3 &p=Vec3(), bool empty=false)
3D Vertex constructor
Parameters:
mesh - tetrahedrisation containing the vertex
p - vertex position
empty - if the vertex is real or virtual

destructor

virtual ~TetraVertex3D()
delete vertex

void resetTopology()
reset the list of edges, tetrahedra adjacent to this vertex : called when the topology around that vertex is changed

void setEdgeSize(const double _size)
set the average edge size

void multiplyEdgeSize(const double ratio)
set the average edge size

inline double getEdgeSize() const
set the average edge size

inline Tetra3D* getTetrahedrisation() const
get the mesh containing the vertex

bool removeSurroundingTetrahedra()
remove the edge connecting the vertex with a closest vertex

inline TetraTetrahedron3D* getTetrahedron() const
returns an adjacent tetrahedron

inline unsigned int getTetrahedronIndex() const
returns the index of that vertex in an adjacent tetrahedron

inline bool isReal() const
whether the vertex is real or virtual

void setVirtual()
set the vertex as a virtual vertex

TetraEdge3D* getAdjacentVirtualEdge()
getAdjacentVirtualEdge (if any)

TetraVertex3D* getAdjacentVirtualVertex()
getAdjacentVirtualVertex (if any)

inline unsigned int getRef() const
returns the vertex unique reference

inline Vec3 getPosition() const
returns the vertex position

void setPosition(Vec3 np)
set the vertex position

void computeNormalOnAdjacentVertices()
compute a normal vector at each vertices adjacent to a given vertex

void setRef(unsigned int r)
set the vertex unique reference

inline Vec3 getNormal() const
returns the vertex normal

void setNormal(Vec3 * n)
set the vertex normal

class TetrahedronVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of neighboring tetrahedra to a vertex

std::set <TetraTetrahedron3D *> ::iterator tetrahedronIterator
iterator on the set of adjacent tetrahedra

TetraVertex3D* vertex
the vertex around which we iterate

constructor

TetrahedronVertexIteratorBasic(TetraVertex3D *v)
constructor builds a tetrahedron iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~TetrahedronVertexIteratorBasic()
delete tetrahedron iterator : if the vertex is real then erase the tetrahedron list otherwise do nothing

void first()
set iterator on the first tetrahedron item

bool isAtEnd() const
returns true if the iterator is at the end of the list

template class TetrahedronVertexIterator: public TetrahedronVertexIteratorBasic
iterator on tetrahedra adjacent to a vertex

constructor

TetrahedronVertexIterator(TetraVertex3D *v)
constructor builds a tetrahedron iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~TetrahedronVertexIterator()
delete tetrahedron iterator : if the vertex is real then erase the tetrahedron list otherwise do nothing

T* operator*()
returns current tetrahedron

void operator++(void)
set iterator on next tetrahedron

T* operator++(int)
returns current tetrahedron then set iterator on next one

void operator--(void)
set iterator on previous tetrahedron

T* operator--(int)
returns current tetrahedron then set iterator on previous one

class TriangleVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of triangles opposite to a vertex

std::set <TetraTetrahedron3D *> ::iterator tetrahedronIterator
iterator on the set of adjacent tetrahedra

TetraVertex3D* vertex
the vertex around which we iterate

constructor

TriangleVertexIteratorBasic(TetraVertex3D *v)
constructor builds a triangle iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~TriangleVertexIteratorBasic()
delete triangle iterator

void first()
set iterator on the first triangle item

bool isAtEnd() const
returns true if the iterator is at the end of the list

template class TriangleVertexIterator: public TriangleVertexIteratorBasic
iterator on triangles opposite to a vertex (in the vertex shell )

T* getTriangle(const TetraTetrahedron3D *t)
returns the triangle opposite to vertex in tetrahedron t

constructor

TriangleVertexIterator(TetraVertex3D *v)
constructor builds a triangle iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~TriangleVertexIterator()
delete triangle iterator

T* operator*()
returns current triangle

void operator++(void)
set iterator on next triangle

T* operator++(int)
returns current triangle then set iterator on next one

void operator--(void)
set iterator on previous triangle

T* operator--(int)
returns current triangle then set iterator on previous one

class EdgeVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of edges adjacent to a vertex

std::set <TetraEdge3D *> ::iterator edgeIterator
iterator on the set of adjacent edges

TetraVertex3D* vertex
the vertex aroud which we iterate

constructor

EdgeVertexIteratorBasic(TetraVertex3D *v)
constructor builds an edge iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~EdgeVertexIteratorBasic()
delete edge iterator

void first()
set iterator on the first edge item

bool isAtEnd() const
returns true if the iterator is at the end of the list

template class EdgeVertexIterator: public EdgeVertexIteratorBasic
iterator on edges adjacent to a vertex

constructor

EdgeVertexIterator(TetraVertex3D *v)
constructor builds an edge iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~EdgeVertexIterator()
delete edge iterator

T* operator*()
returns current edge

void operator++(void)
set iterator on next edge

T* operator++(int)
returns current edge then set iterator on next one

void operator--(void)
set iterator on previous edge

T* operator--(int)
returns current edge then set iterator on previous one

class OppositeEdgeVertexIteratorBasic
a class that is a friend of TetraVertex3D that manages the list of edges adjacent to a vertex

std::set <TetraEdge3D *> ::iterator edgeIterator
iterator on the set of opposite edges

TetraVertex3D* vertex
the vertex around which we iterate

constructor

OppositeEdgeVertexIteratorBasic(TetraVertex3D *v)
constructor builds an edge iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~OppositeEdgeVertexIteratorBasic()
delete edge iterator

void first()
set iterator on the first edge item

bool isAtEnd() const
returns true if the iterator is at the end of the list

template class OppositeEdgeVertexIterator: public OppositeEdgeVertexIteratorBasic
iterator on edges opposite to a vertex (in the vertex shell)

constructor

OppositeEdgeVertexIterator(TetraVertex3D *v)
constructor builds an edge iterator around a vertex
Parameters:
v - the vertex to iterate around

destructor

~OppositeEdgeVertexIterator()
delete edge iterator

T* operator*()
returns current edge

void operator++(void)
set iterator on next edge

T* operator++(int)
returns current edge then set iterator on next one

void operator--(void)
set iterator on previous edge

T* operator--(int)
returns current edge then set iterator on previous one

template class VertexVertexIterator: public EdgeVertexIteratorBasic
iterator on Vertices adjacent to a given vertex

T* getVertex(const TetraEdge3D *e)
returns the vertex opposite to vertex in edge e

constructor

VertexVertexIterator(TetraVertex3D *v)
constructor builds an iterator on vertices adjacent around a vertex
Parameters:
v - the vertex to iterate around

destructor

~VertexVertexIterator()
delete vertex iterator

T* operator*()
returns current vertex

void operator++(void)
set iterator on next vertex

T* operator++(int)
returns current vertex then set iterator on next one

void operator--(void)
set iterator on previous vertex

T* operator--(int)
returns current vertex then set iterator on previous one


Direct child classes:
ActiveTetraVertex3D

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de