Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

GraphEdge< Vertex, Edge, Face > Class Template Reference
[Molecular Surface Computation]

Generic GraphEdge Class. More...

#include <graphEdge.h>

List of all members.

Public Member Functions

Constructors and Destructors
 GraphEdge () throw ()
 Default constructor.
 GraphEdge (const GraphEdge< Vertex, Edge, Face > &edge, bool deep=false) throw ()
 Copy constructor.
 GraphEdge (Vertex *vertex1, Vertex *vertex2, Face *face1, Face *face2, Index index) throw ()
 Detailled constructor.
virtual ~GraphEdge () throw ()
 Destructor.
Assignment
void set (const GraphEdge< Vertex, Edge, Face > &edge, bool deep=false) throw ()
 Assign from another GraphEdge.
GraphEdge< Vertex, Edge, Face > & operator= (const GraphEdge< Vertex, Edge, Face > &edge) throw ()
 Assign from another GraphEdge.
void set (Vertex *vertex0, Vertex *vertex1, Face *face0, Face *face1, Index index) throw ()
 Assign from a lot of nice objects.
Accessors
void setVertex (Position i, Vertex *vertex) throw ()
 Set one of the two vertices of the GraphEdge.
VertexgetVertex (Position i) const throw ()
 Return one of the two vertices of the GraphEdge.
void setFace (Position i, Face *face) throw ()
 Set one of the two faces of the GraphEdge.
Face * getFace (Position i) const throw ()
 Return one of the two faces of the GraphEdge.
void setIndex (Index index) throw ()
 Set the index of the GraphEdge.
Index getIndex () const throw ()
 Return the index of the GraphEdge.
Vertexother (const Vertex *vertex) const throw (Exception::GeneralException)
 Return a pointer to the other vertex of the GraphEdge.
Face * other (const Face *face) const throw (Exception::GeneralException)
 Return a pointer to the other face of the GraphEdge.
bool substitute (const Vertex *old_vertex, Vertex *new_vertex) throw ()
 Substitute a vertex by an other one.
bool substitute (const Face *old_vertex, Face *new_vertex) throw ()
 Substitute a face by an other one.
Face * remove (const Face *face) throw ()
 Delete a face of the GraphEdge.
void revert () throw ()
Predicates
virtual bool operator== (const Edge &) const throw ()
 Equality operator.
virtual bool operator!= (const Edge &) const throw ()
 Inequality operator.
virtual bool operator *= (const Edge &) const throw ()
 Similarity operator.

Protected Attributes

Vertexvertex_ [2]
Face * face_ [2]
Index index_

Friends

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


class GraphVertex<Vertex,Edge,Face>
class GraphFace<Vertex,Edge,Face>
class GraphTriangle<Vertex,Edge,Face>


Detailed Description

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

Generic GraphEdge Class.


Constructor & Destructor Documentation

template<typename Vertex, typename Edge, typename Face>
GraphEdge< Vertex, Edge, Face >::GraphEdge  )  throw ()
 

Default constructor.

This method creates a new GraphEdge object.

template<typename Vertex, typename Edge, typename Face>
GraphEdge< Vertex, Edge, Face >::GraphEdge const GraphEdge< Vertex, Edge, Face > &  edge,
bool  deep = false
throw ()
 

Copy constructor.

Create a new GraphEdge object from another.

Parameters:
edge the GraphEdge object to be copied
deep if deep = false, all pointers are set to NULL (default). Otherwise the new GraphEdge object is linked to the neighbours of the old GraphEdge object.

template<typename Vertex, typename Edge, typename Face>
GraphEdge< Vertex, Edge, Face >::GraphEdge Vertex vertex1,
Vertex vertex2,
Face *  face1,
Face *  face2,
Index  index
throw ()
 

Detailled constructor.

Create a new GraphEdge object from a lot of nice objects

Parameters:
vertex1 assigned to the first vertex
vertex2 assigned to the second vertex
face1 assigned to the first face
face2 assigned to the second face
index assigned to the index

template<typename Vertex, typename Edge, typename Face>
GraphEdge< Vertex, Edge, Face >::~GraphEdge  )  throw () [virtual]
 

Destructor.

Destructs the GraphEdge object. The neighboured faces and vertices are {/bf not} destructed.


Member Function Documentation

template<typename Vertex, typename Edge, typename Face>
Face * GraphEdge< Vertex, Edge, Face >::getFace Position  i  )  const throw ()
 

Return one of the two faces of the GraphEdge.

Parameters:
i 
Returns:
Face* a pointer to the first face if i = 0, a pointer to the second face otherwise

template<typename Vertex, typename Edge, typename Face>
Index GraphEdge< Vertex, Edge, Face >::getIndex  )  const throw ()
 

Return the index of the GraphEdge.

Returns:
Index the index of the GraphEdge

template<typename Vertex, typename Edge, typename Face>
Vertex * GraphEdge< Vertex, Edge, Face >::getVertex Position  i  )  const throw ()
 

Return one of the two vertices of the GraphEdge.

Parameters:
i 
Returns:
Vertex* a pointer to the first vertex if i = 0, a pointer to the second vertex otherwise

template<typename Vertex, typename Edge, typename Face>
bool GraphEdge< Vertex, Edge, Face >::operator *= const Edge &   )  const throw () [virtual]
 

Similarity operator.

Returns:
bool true

Reimplemented in RSEdge, SASEdge, SESEdge, and TriangleEdge.

template<typename Vertex, typename Edge, typename Face>
bool GraphEdge< Vertex, Edge, Face >::operator!= const Edge &   )  const throw () [virtual]
 

Inequality operator.

Returns:
bool false

Reimplemented in RSEdge, SASEdge, SESEdge, and TriangleEdge.

template<typename Vertex, typename Edge, typename Face>
GraphEdge< Vertex, Edge, Face > & GraphEdge< Vertex, Edge, Face >::operator= const GraphEdge< Vertex, Edge, Face > &  edge  )  throw ()
 

Assign from another GraphEdge.

The GraphEdge object is linked to the neighbours of the GraphEdge object to assign from.

Parameters:
edge the GraphEdge object to assign from

template<typename Vertex, typename Edge, typename Face>
bool GraphEdge< Vertex, Edge, Face >::operator== const Edge &   )  const throw () [virtual]
 

Equality operator.

Returns:
bool, true

Reimplemented in RSEdge, SASEdge, SESEdge, and TriangleEdge.

template<typename Vertex, typename Edge, typename Face>
Face * GraphEdge< Vertex, Edge, Face >::other const Face *  face  )  const throw (Exception::GeneralException)
 

Return a pointer to the other face of the GraphEdge.

If the given face is not neighboured to the GraphEdge, an exception is thrown.

Parameters:
face one of the faces of the GraphEdge
Returns:
Face* the other face

template<typename Vertex, typename Edge, typename Face>
Vertex * GraphEdge< Vertex, Edge, Face >::other const Vertex vertex  )  const throw (Exception::GeneralException)
 

Return a pointer to the other vertex of the GraphEdge.

If the given vertex is not incident to the GraphEdge, an exception is thrown.

Parameters:
vertex one of the vertices of the GraphEdge
Returns:
Vertex* the other vertex

template<typename Vertex, typename Edge, typename Face>
Face * GraphEdge< Vertex, Edge, Face >::remove const Face *  face  )  throw ()
 

Delete a face of the GraphEdge.

If the second face of the GraphEdge should be deleted, it is set to NULL. If the first one should be deleted, the second one is copied to first position and then set to NULL.

Parameters:
face the face to delete
Returns:
Face* a pointer to the other face

template<typename Vertex, typename Edge, typename Face>
void GraphEdge< Vertex, Edge, Face >::set Vertex vertex0,
Vertex vertex1,
Face *  face0,
Face *  face1,
Index  index
throw ()
 

Assign from a lot of nice objects.

Parameters:
vertex0 assigned to the first vertex
vertex1 assigned to the second vertex
face0 assigned to the first face
face1 assigned to the second face
index assigned to the index

template<typename Vertex, typename Edge, typename Face>
void GraphEdge< Vertex, Edge, Face >::set const GraphEdge< Vertex, Edge, Face > &  edge,
bool  deep = false
throw ()
 

Assign from another GraphEdge.

Parameters:
edge the GraphEdge object to assign from
deep if deep = false, all pointers are set to NULL (default). Otherwise the GraphEdge object is linked to the neighbours of the GraphEdge object to assign from.

template<typename Vertex, typename Edge, typename Face>
void GraphEdge< Vertex, Edge, Face >::setFace Position  i,
Face *  face
throw ()
 

Set one of the two faces of the GraphEdge.

Parameters:
i change the first face, if i = 0, the second otherwise
face a pointer to the new face

template<typename Vertex, typename Edge, typename Face>
void GraphEdge< Vertex, Edge, Face >::setIndex Index  index  )  throw ()
 

Set the index of the GraphEdge.

Parameters:
index the new index

template<typename Vertex, typename Edge, typename Face>
void GraphEdge< Vertex, Edge, Face >::setVertex Position  i,
Vertex vertex
throw ()
 

Set one of the two vertices of the GraphEdge.

Parameters:
i the first vertex is changed if i = 0, the second otherwise
vertex a pointer to the new vertex

template<typename Vertex, typename Edge, typename Face>
bool GraphEdge< Vertex, Edge, Face >::substitute const Face *  old_vertex,
Face *  new_vertex
throw ()
 

Substitute a face by an other one.

Parameters:
old_vertex the face that has to be substituted
new_vertex the new face
Returns:
bool true, if the face can be substituted, false otherwise

template<typename Vertex, typename Edge, typename Face>
bool GraphEdge< Vertex, Edge, Face >::substitute const Vertex old_vertex,
Vertex new_vertex
throw ()
 

Substitute a vertex by an other one.

Parameters:
old_vertex the vertex that has to be substituted
new_vertex the new vertex
Returns:
bool true, if the vertex can be substituted, false otherwise