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

Generic GraphVertex Class. More...

#include <graphVertex.h>

Inheritance diagram for BALL::GraphVertex< Vertex, Edge, Face >:
Inheritance graph
[legend]

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 ()
Default constructor.
GraphVertex (const GraphVertex< Vertex, Edge, Face > &vertex, bool deep=false)
Copy constructor.
virtual ~GraphVertex ()
Destructor.
Assignment
void set (const GraphVertex< Vertex, Edge, Face > &vertex, bool deep=false)
Assign from another GraphVertex.
GraphVertex< Vertex, Edge, Face > & operator= (const GraphVertex< Vertex, Edge, Face > &vertex)
Assign from another GraphVertex.
Accessors
void insert (Edge *edge)
Insert a new edge into the HashSet of edges the GraphVertex belongs to.
void insert (Face *face)
Insert a new face into the HashSet of faces the GraphVertex belongs to.
void remove (Edge *edge)
Remove an edge from the HashSet of edges the GraphVertex belongs to.
void remove (Face *face)
Remove a face from the HashSet of faces the GraphVertex belongs to.
Position numberOfEdges () const
Return the number of edges the GraphVertex belongs to.
Position numberOfFaces () const
Return the number of faces the GraphVertex belongs to.
void setIndex (Index index)
Set the index of the vertex.
Index getIndex () const
Return the index of the vertex.
bool join (const Vertex &vertex)
Join two GraphVertices if they are similar.
bool substitute (Vertex *vertex)
Subsitute the GraphVertex by a similar one.
Predicates
virtual bool operator== (const Vertex &) const
Equality operator.
virtual bool operator!= (const Vertex &) const
Inequality operator.
virtual bool operator*= (const Vertex &) const
Similarity operator.
Face * has (Face *face) const
Test whether the vertex is meber of a given face.
Edge * has (Edge *edge) const
Test whether the vertex is meber of a given edge.
bool hasEdges () const
Test whether the vertex has edges.
bool hasFaces () const
Test whether the vertex has faces.
External Iterators
EdgeIterator beginEdge ()
ConstEdgeIterator beginEdge () const
EdgeIterator endEdge ()
ConstEdgeIterator endEdge () const
FaceIterator beginFace ()
ConstFaceIterator beginFace () const
FaceIterator endFace ()
ConstFaceIterator endFace () const

Protected Attributes

External Iterators
HashSet< Edge * > edges_
HashSet< Face * > faces_
Index index_

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 >

Detailed Description

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

Generic GraphVertex Class.

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.

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:
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.

References BALL::GraphVertex< Vertex, Edge, Face >::edges_, and BALL::GraphVertex< Vertex, Edge, Face >::faces_.

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

Destructor.

Destructs the GraphVertex object.


Member Function Documentation

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

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:
edge a pointer to the edge to be tested
Returns:
Edge* a pointer to the edge if it exists, otherwise NULL

References BALL::HashSet< Key >::begin(), and BALL::HashSet< Key >::end().

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:
face a pointer to the the face to be tested
Returns:
Face* a pointer to the face if it exists, otherwise NULL

References BALL::HashSet< Key >::begin(), and BALL::HashSet< Key >::end().

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:
face a pointer to the new face

References BALL::HashSet< Key >::insert().

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:
edge a pointer to the new edge

References BALL::HashSet< Key >::insert().

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:
vertex the Vertex to join with
Returns:
bool true if the vertices can be joined, false otherwise

References BALL::HashSet< Key >::insert().

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

References BALL::HashSet< Key >::size().

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

References BALL::HashSet< Key >::size().

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::RSVertex, BALL::SASVertex, BALL::SESVertex, and BALL::TrianglePoint.

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::RSVertex, BALL::SASVertex, BALL::SESVertex, and BALL::TrianglePoint.

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:
vertex the GraphVertex object to assign from

References BALL::GraphVertex< Vertex, Edge, Face >::edges_, BALL::GraphVertex< Vertex, Edge, Face >::faces_, and BALL::GraphVertex< Vertex, Edge, Face >::index_.

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::RSVertex, BALL::SASVertex, BALL::SESVertex, and BALL::TrianglePoint.

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:
face a pointer to the face to remove

References BALL::HashSet< Key >::erase().

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:
edge a pointer to the edge to remove

References BALL::HashSet< Key >::erase().

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:
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.

References BALL::GraphVertex< Vertex, Edge, Face >::edges_, BALL::GraphVertex< Vertex, Edge, Face >::faces_, and BALL::GraphVertex< Vertex, Edge, Face >::index_.

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

Set the index of the vertex.

Parameters:
index the new index

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:
vertex a pointer to the vertex to substitute
Returns:
bool true if the vertex can be substituted, false otherwise

References BALL::HashSet< Key >::begin(), and BALL::HashSet< Key >::end().


Generated on Thu Aug 6 18:30:47 2009 for BALL by doxygen 1.5.8