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

#include <BALL/STRUCTURE/graphEdge.h>

Public Member Functions

Constructors and Destructors
 GraphEdge ()
 
 GraphEdge (const GraphEdge< Vertex, Edge, Face > &edge, bool deep=false)
 
 GraphEdge (Vertex *vertex1, Vertex *vertex2, Face *face1, Face *face2, Index index)
 
virtual ~GraphEdge ()
 
Assignment
void set (const GraphEdge< Vertex, Edge, Face > &edge, bool deep=false)
 
GraphEdge< Vertex, Edge, Face > & operator= (const GraphEdge< Vertex, Edge, Face > &edge)
 
void set (Vertex *vertex0, Vertex *vertex1, Face *face0, Face *face1, Index index)
 
Accessors
void setVertex (Position i, Vertex *vertex)
 
VertexgetVertex (Position i) const
 
void setFace (Position i, Face *face)
 
Face * getFace (Position i) const
 
void setIndex (Index index)
 
Index getIndex () const
 
Vertexother (const Vertex *vertex) const throw (Exception::GeneralException)
 
Face * other (const Face *face) const throw (Exception::GeneralException)
 
bool substitute (const Vertex *old_vertex, Vertex *new_vertex)
 
bool substitute (const Face *old_vertex, Face *new_vertex)
 
Face * remove (const Face *face)
 
void revert ()
 
Predicates
virtual bool operator== (const Edge &) const
 
virtual bool operator!= (const Edge &) const
 
virtual bool operator*= (const Edge &) const
 

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 BALL::GraphEdge< Vertex, Edge, Face >

Generic GraphEdge Class.

Definition at line 30 of file graphEdge.h.

Constructor & Destructor Documentation

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

Default constructor. This method creates a new GraphEdge object.

Definition at line 255 of file graphEdge.h.

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

Copy constructor. Create a new GraphEdge object from another.

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

Definition at line 267 of file graphEdge.h.

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

Detailled constructor. Create a new GraphEdge object from a lot of nice objects

Parameters
vertex1assigned to the first vertex
vertex2assigned to the second vertex
face1assigned to the first face
face2assigned to the second face
indexassigned to the index

Definition at line 289 of file graphEdge.h.

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

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

Definition at line 304 of file graphEdge.h.

Member Function Documentation

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

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

Definition at line 409 of file graphEdge.h.

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

Return the index of the GraphEdge.

Returns
Index the index of the GraphEdge

Definition at line 430 of file graphEdge.h.

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

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

Definition at line 381 of file graphEdge.h.

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

Inequality operator.

Returns
bool false

Reimplemented in BALL::RSEdge, BALL::SESEdge, BALL::SASEdge, and BALL::TriangleEdge.

Definition at line 562 of file graphEdge.h.

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

Similarity operator.

Returns
bool true

Reimplemented in BALL::RSEdge, BALL::SESEdge, BALL::SASEdge, and BALL::TriangleEdge.

Definition at line 569 of file graphEdge.h.

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

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

Parameters
edgethe GraphEdge object to assign from

Definition at line 336 of file graphEdge.h.

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

Equality operator.

Returns
bool, true

Reimplemented in BALL::RSEdge, BALL::SESEdge, BALL::SASEdge, and BALL::TriangleEdge.

Definition at line 555 of file graphEdge.h.

template<typename Vertex, typename Edge , typename Face >
Vertex * BALL::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
vertexone of the vertices of the GraphEdge
Returns
Vertex* the other vertex

Definition at line 437 of file graphEdge.h.

template<typename Vertex, typename Edge , typename Face>
Face * BALL::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
faceone of the faces of the GraphEdge
Returns
Face* the other face

Definition at line 459 of file graphEdge.h.

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

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
facethe face to delete
Returns
Face* a pointer to the other face

Definition at line 527 of file graphEdge.h.

template<typename Vertex , typename Edge , typename Face >
void BALL::GraphEdge< Vertex, Edge, Face >::revert ( )

Definition at line 546 of file graphEdge.h.

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

Assign from another GraphEdge.

Parameters
edgethe GraphEdge object to assign from
deepif 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.

Definition at line 311 of file graphEdge.h.

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

Assign from a lot of nice objects

Parameters
vertex0assigned to the first vertex
vertex1assigned to the second vertex
face0assigned to the first face
face1assigned to the second face
indexassigned to the index

Definition at line 352 of file graphEdge.h.

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

Set one of the two faces of the GraphEdge.

Parameters
ichange the first face, if i = 0, the second otherwise
facea pointer to the new face

Definition at line 395 of file graphEdge.h.

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

Set the index of the GraphEdge.

Parameters
indexthe new index

Definition at line 423 of file graphEdge.h.

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

Set one of the two vertices of the GraphEdge.

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

Definition at line 367 of file graphEdge.h.

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

Substitute a vertex by an other one.

Parameters
old_vertexthe vertex that has to be substituted
new_vertexthe new vertex
Returns
bool true, if the vertex can be substituted, false otherwise

Definition at line 482 of file graphEdge.h.

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

Substitute a face by an other one.

Parameters
old_vertexthe face that has to be substituted
new_vertexthe new face
Returns
bool true, if the face can be substituted, false otherwise

Definition at line 505 of file graphEdge.h.

Friends And Related Function Documentation

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

Definition at line 42 of file graphEdge.h.

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

Definition at line 43 of file graphEdge.h.

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

Definition at line 41 of file graphEdge.h.

Member Data Documentation

template<typename Vertex, typename Edge, typename Face>
Face* BALL::GraphEdge< Vertex, Edge, Face >::face_[2]
protected

Definition at line 243 of file graphEdge.h.

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

Definition at line 246 of file graphEdge.h.

template<typename Vertex, typename Edge, typename Face>
Vertex* BALL::GraphEdge< Vertex, Edge, Face >::vertex_[2]
protected

Definition at line 240 of file graphEdge.h.