BALL::GraphVertex< Vertex, Edge, Face > Class Template Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/graphVertex.h>

List of all members.

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 32 of file graphVertex.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 (  )  [inline]

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 
) [inline]

Copy constructor. Create a new GraphVertex object from another.

Parameters:
vertex the GraphVertex object to be copied
deep if 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 (  )  [inline, 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 >::ConstEdgeIterator BALL::GraphVertex< Vertex, Edge, Face >::beginEdge (  )  const [inline]

Definition at line 509 of file graphVertex.h.

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

Definition at line 500 of file graphVertex.h.

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

Definition at line 545 of file graphVertex.h.

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

Definition at line 536 of file graphVertex.h.

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

Definition at line 527 of file graphVertex.h.

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

Definition at line 518 of file graphVertex.h.

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

Definition at line 563 of file graphVertex.h.

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

Definition at line 554 of file graphVertex.h.

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

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>
Edge * BALL::GraphVertex< Vertex, Edge, Face >::has ( Edge *  edge  )  const [inline]

Test whether the vertex is meber of a given edge.

Parameters:
edge a 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>
Face * BALL::GraphVertex< Vertex, Edge, Face >::has ( Face *  face  )  const [inline]

Test whether the vertex is meber of a given face.

Parameters:
face a 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 >
bool BALL::GraphVertex< Vertex, Edge, Face >::hasEdges (  )  const [inline]

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 [inline]

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 ( Face *  face  )  [inline]

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

Parameters:
face a pointer to the new face

Definition at line 348 of file graphVertex.h.

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

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

Parameters:
edge a pointer to the new edge

Definition at line 340 of file graphVertex.h.

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

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

Parameters:
vertex the 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 [inline]

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 [inline]

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 [inline, virtual]

Inequality operator.

Returns:
bool false

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

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 [inline, virtual]

Similarity operator.

Returns:
bool true

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

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  )  [inline]

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

Parameters:
vertex the 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 [inline, virtual]

Equality operator.

Returns:
bool true

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

Definition at line 571 of file graphVertex.h.

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

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

Parameters:
face a 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 >::remove ( Edge *  edge  )  [inline]

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

Parameters:
edge a 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 >::set ( const GraphVertex< Vertex, Edge, Face > &  vertex,
bool  deep = false 
) [inline]

Assign from another GraphVertex.

Parameters:
vertex the GraphVertex object to assign from
deep if 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  )  [inline]

Set the index of the vertex.

Parameters:
index the 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  )  [inline]

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

Parameters:
vertex a 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.

Generated by  doxygen 1.6.3