BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members
BALL::GraphVertex< Vertex, Edge, Face > Class Template Reference

#include <BALL/STRUCTURE/graphEdge.h>

Public Types

Type definitions
typedef HashSet< Edge * >::Iterator EdgeIterator
 
typedef HashSet< Edge * >
::ConstIterator 
ConstEdgeIterator
 
typedef HashSet< Face * >::Iterator FaceIterator
 
typedef HashSet< Face * >
::ConstIterator 
ConstFaceIterator
 

Public Member Functions

Constructors and Destructors
 GraphVertex ()
 
 GraphVertex (const GraphVertex< Vertex, Edge, Face > &vertex, bool deep=false)
 
virtual ~GraphVertex ()
 
Assignment
void set (const GraphVertex< Vertex, Edge, Face > &vertex, bool deep=false)
 
GraphVertex< Vertex, Edge, Face > & operator= (const GraphVertex< Vertex, Edge, Face > &vertex)
 
Accessors
void insert (Edge *edge)
 
void insert (Face *face)
 
void remove (Edge *edge)
 
void remove (Face *face)
 
Position numberOfEdges () const
 
Position numberOfFaces () const
 
void setIndex (Index index)
 
Index getIndex () const
 
bool join (const Vertex &vertex)
 
bool substitute (Vertex *vertex)
 
Predicates
virtual bool operator== (const Vertex &) const
 
virtual bool operator!= (const Vertex &) const
 
virtual bool operator*= (const Vertex &) const
 
Face * has (Face *face) const
 
Edge * has (Edge *edge) const
 
bool hasEdges () const
 
bool hasFaces () const
 

Friends

Class friends
  • class GraphEdge<Vertex,Edge,Face>;
  • class GraphFace<Vertex,Edge,Face>;
  • class GraphTriangle<Vertex,Edge,Face>;
class GraphEdge< Vertex, Edge, Face >
 
class GraphFace< Vertex, Edge, Face >
 
class GraphTriangle< Vertex, Edge, Face >
 

External Iterators

HashSet< Edge * > edges_
 
HashSet< Face * > faces_
 
Index index_
 
EdgeIterator beginEdge ()
 
ConstEdgeIterator beginEdge () const
 
EdgeIterator endEdge ()
 
ConstEdgeIterator endEdge () const
 
FaceIterator beginFace ()
 
ConstFaceIterator beginFace () const
 
FaceIterator endFace ()
 
ConstFaceIterator endFace () const
 

Detailed Description

template<typename Vertex, typename Edge, typename Face>
class BALL::GraphVertex< Vertex, Edge, Face >

Generic GraphVertex Class.

Definition at line 18 of file graphEdge.h.

Member Typedef Documentation

template<typename Vertex, typename Edge, typename Face>
typedef HashSet<Edge*>::ConstIterator BALL::GraphVertex< Vertex, Edge, Face >::ConstEdgeIterator

Definition at line 54 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
typedef HashSet<Face*>::ConstIterator BALL::GraphVertex< Vertex, Edge, Face >::ConstFaceIterator

Definition at line 56 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
typedef HashSet<Edge*>::Iterator BALL::GraphVertex< Vertex, Edge, Face >::EdgeIterator

Definition at line 53 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
typedef HashSet<Face*>::Iterator BALL::GraphVertex< Vertex, Edge, Face >::FaceIterator

Definition at line 55 of file graphVertex.h.

Constructor & Destructor Documentation

template<typename Vertex , typename Edge , typename Face >
BALL::GraphVertex< Vertex, Edge, Face >::GraphVertex ( )

Default constructor. This method creates a new GraphVertex object.

Definition at line 275 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
BALL::GraphVertex< Vertex, Edge, Face >::GraphVertex ( const GraphVertex< Vertex, Edge, Face > &  vertex,
bool  deep = false 
)

Copy constructor. Create a new GraphVertex object from another.

Parameters
vertexthe GraphVertex object to be copied
deepif deep = false, all pointers are set to NULL (default). Otherwise the new GraphVertex object is linked to the neighbours of the old GraphVertex object.

Definition at line 286 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
BALL::GraphVertex< Vertex, Edge, Face >::~GraphVertex ( )
virtual

Destructor. Destructs the GraphVertex object.

Definition at line 301 of file graphVertex.h.

Member Function Documentation

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::EdgeIterator BALL::GraphVertex< Vertex, Edge, Face >::beginEdge ( )

Definition at line 500 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::ConstEdgeIterator BALL::GraphVertex< Vertex, Edge, Face >::beginEdge ( ) const

Definition at line 509 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::FaceIterator BALL::GraphVertex< Vertex, Edge, Face >::beginFace ( )

Definition at line 536 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::ConstFaceIterator BALL::GraphVertex< Vertex, Edge, Face >::beginFace ( ) const

Definition at line 545 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::EdgeIterator BALL::GraphVertex< Vertex, Edge, Face >::endEdge ( )

Definition at line 518 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::ConstEdgeIterator BALL::GraphVertex< Vertex, Edge, Face >::endEdge ( ) const

Definition at line 527 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::FaceIterator BALL::GraphVertex< Vertex, Edge, Face >::endFace ( )

Definition at line 554 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
GraphVertex< Vertex, Edge, Face >::ConstFaceIterator BALL::GraphVertex< Vertex, Edge, Face >::endFace ( ) const

Definition at line 563 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
Index BALL::GraphVertex< Vertex, Edge, Face >::getIndex ( ) const

Return the index of the vertex.

Returns
Index the index of the vertex

Definition at line 396 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face>
Face * BALL::GraphVertex< Vertex, Edge, Face >::has ( Face *  face) const

Test whether the vertex is meber of a given face.

Parameters
facea pointer to the the face to be tested
Returns
Face* a pointer to the face if it exists, otherwise NULL

Definition at line 451 of file graphVertex.h.

template<typename Vertex , typename Edge, typename Face>
Edge * BALL::GraphVertex< Vertex, Edge, Face >::has ( Edge *  edge) const

Test whether the vertex is meber of a given edge.

Parameters
edgea pointer to the edge to be tested
Returns
Edge* a pointer to the edge if it exists, otherwise NULL

Definition at line 467 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
bool BALL::GraphVertex< Vertex, Edge, Face >::hasEdges ( ) const

Test whether the vertex has edges.

Definition at line 483 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
bool BALL::GraphVertex< Vertex, Edge, Face >::hasFaces ( ) const

Test whether the vertex has faces.

Definition at line 491 of file graphVertex.h.

template<typename Vertex , typename Edge, typename Face >
void BALL::GraphVertex< Vertex, Edge, Face >::insert ( Edge *  edge)

Insert a new edge into the HashSet of edges the GraphVertex belongs to.

Parameters
edgea pointer to the new edge

Definition at line 340 of file graphVertex.h.

template<typename Vertex , typename Edge, typename Face>
void BALL::GraphVertex< Vertex, Edge, Face >::insert ( Face *  face)

Insert a new face into the HashSet of faces the GraphVertex belongs to.

Parameters
facea pointer to the new face

Definition at line 348 of file graphVertex.h.

template<typename Vertex, typename Edge , typename Face >
bool BALL::GraphVertex< Vertex, Edge, Face >::join ( const Vertex vertex)

Join two GraphVertices if they are similar. All edges and faces of the given Vertex are inserted.

Parameters
vertexthe Vertex to join with
Returns
bool true if the vertices can be joined, false otherwise

Definition at line 426 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
Position BALL::GraphVertex< Vertex, Edge, Face >::numberOfEdges ( ) const

Return the number of edges the GraphVertex belongs to.

Returns
Position the number of edges the GraphVertex belongs to

Definition at line 372 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
Position BALL::GraphVertex< Vertex, Edge, Face >::numberOfFaces ( ) const

Return the number of faces the GraphVertex belongs to.

Returns
Position the number of faces the GraphVertex belongs to

Definition at line 380 of file graphVertex.h.

template<typename Vertex, typename Edge , typename Face >
bool BALL::GraphVertex< Vertex, Edge, Face >::operator!= ( const Vertex ) const
virtual

Inequality operator.

Returns
bool false

Reimplemented in BALL::SESVertex, BALL::TrianglePoint, BALL::RSVertex, and BALL::SASVertex.

Definition at line 579 of file graphVertex.h.

template<typename Vertex, typename Edge , typename Face >
bool BALL::GraphVertex< Vertex, Edge, Face >::operator*= ( const Vertex ) const
virtual

Similarity operator.

Returns
bool true

Reimplemented in BALL::SESVertex, BALL::TrianglePoint, BALL::RSVertex, and BALL::SASVertex.

Definition at line 587 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
GraphVertex< Vertex, Edge, Face > & BALL::GraphVertex< Vertex, Edge, Face >::operator= ( const GraphVertex< Vertex, Edge, Face > &  vertex)

Assign from another GraphVertex. The GraphVertex object is linked to the neighbours of the GraphVertex object to assign from.

Parameters
vertexthe GraphVertex object to assign from

Definition at line 326 of file graphVertex.h.

template<typename Vertex, typename Edge , typename Face >
bool BALL::GraphVertex< Vertex, Edge, Face >::operator== ( const Vertex ) const
virtual

Equality operator.

Returns
bool true

Reimplemented in BALL::SESVertex, BALL::TrianglePoint, BALL::RSVertex, and BALL::SASVertex.

Definition at line 571 of file graphVertex.h.

template<typename Vertex , typename Edge, typename Face >
void BALL::GraphVertex< Vertex, Edge, Face >::remove ( Edge *  edge)

Remove an edge from the HashSet of edges the GraphVertex belongs to.

Parameters
edgea pointer to the edge to remove

Definition at line 356 of file graphVertex.h.

template<typename Vertex , typename Edge, typename Face>
void BALL::GraphVertex< Vertex, Edge, Face >::remove ( Face *  face)

Remove a face from the HashSet of faces the GraphVertex belongs to.

Parameters
facea pointer to the face to remove

Definition at line 364 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
void BALL::GraphVertex< Vertex, Edge, Face >::set ( const GraphVertex< Vertex, Edge, Face > &  vertex,
bool  deep = false 
)

Assign from another GraphVertex.

Parameters
vertexthe GraphVertex object to assign from
deepif deep = false, all pointers are set to NULL (default). Otherwise the GraphVertex object is linked to the neighbours of the GraphVertex object to assign from.

Definition at line 309 of file graphVertex.h.

template<typename Vertex , typename Edge , typename Face >
void BALL::GraphVertex< Vertex, Edge, Face >::setIndex ( Index  index)

Set the index of the vertex.

Parameters
indexthe new index

Definition at line 388 of file graphVertex.h.

template<typename Vertex, typename Edge , typename Face >
bool BALL::GraphVertex< Vertex, Edge, Face >::substitute ( Vertex vertex)

Subsitute the GraphVertex by a similar one. The GraphVertex is substituted in all his Edges and Faces.

Parameters
vertexa pointer to the vertex to substitute
Returns
bool true if the vertex can be substituted, false otherwise

Definition at line 404 of file graphVertex.h.

Friends And Related Function Documentation

template<typename Vertex, typename Edge, typename Face>
friend class GraphEdge< Vertex, Edge, Face >
friend

Definition at line 43 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
friend class GraphFace< Vertex, Edge, Face >
friend

Definition at line 44 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
friend class GraphTriangle< Vertex, Edge, Face >
friend

Definition at line 45 of file graphVertex.h.

Member Data Documentation

template<typename Vertex, typename Edge, typename Face>
HashSet<Edge*> BALL::GraphVertex< Vertex, Edge, Face >::edges_
protected

Definition at line 260 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
HashSet<Face*> BALL::GraphVertex< Vertex, Edge, Face >::faces_
protected

Definition at line 263 of file graphVertex.h.

template<typename Vertex, typename Edge, typename Face>
Index BALL::GraphVertex< Vertex, Edge, Face >::index_
protected

Definition at line 266 of file graphVertex.h.