Loading...
Searching...
No Matches
BALL::GraphTriangle< Vertex, Edge, Face > Class Template Reference
Molecular Modeling » Molecular Structure » Molecular Surface Computation

`#include <BALL/STRUCTURE/graphFace.h>`

## Public Member Functions

Constructors and Destructors
| GraphTriangle ()
| GraphTriangle (const GraphTriangle< Vertex, Edge, Face > &face, bool deep=false)
| GraphTriangle (Vertex *vertex1, Vertex *vertex2, Vertex *vertex3, Edge *edge1, Edge *edge2, Edge *edge3, Index index)
virtual | ~GraphTriangle ()
Assignment
void | set (const GraphTriangle< Vertex, Edge, Face > &face, bool deep=false)
GraphTriangle< Vertex, Edge, Face > & | operator= (const GraphTriangle< Vertex, Edge, Face > &face)
void | set (Vertex *vertex1, Vertex *vertex2, Vertex *vertex3, Edge *edge1, Edge *edge2, Edge *edge3, Index index)
Accessors
void | setVertex (Position i, Vertex *vertex)
Vertex * | getVertex (Position i) const
void | setEdge (Position i, Edge *edge)
Edge * | getEdge (Position i) const
void | setIndex (Index index)
Index | getIndex () const
bool | getEdges (const Vertex *vertex, Edge *&edge1, Edge *&edge2) const
bool | getEdge (const Vertex *vertex1, const Vertex *vertex2, Edge *&edge) const
Index | getSimilarEdge (const Edge *edge, Edge *&similar_edge) const
Index | getRelativeIndex (const Vertex *vertex) const
Index | getRelativeIndex (const Edge *edge) const
Vertex * | third (const Vertex *v1, const Vertex *v2) const
Edge * | third (const Edge *e1, const Edge *e2) const
Edge * | getOppositeEdge (const Vertex *vertex) const
Vertex * | getOppositeVertex (const Edge *edge) const
bool | substitute (const Vertex *old_vertex, Vertex *new_vertex)
bool | substitute (const Edge *old_edge, Edge *new_edge)

## Friends

Class friends

- class GraphVertex<Vertex,Edge,Face>;
- class GraphEdge<Vertex,Edge,Face>;

class | GraphVertex< Vertex, Edge, Face >
class | GraphEdge< Vertex, Edge, Face >

## Predicates

Vertex * | vertex_ [3]
Edge * | edge_ [3]
Index | index_
virtual bool | operator== (const Face &) const
virtual bool | operator!= (const Face &) const
virtual bool | operator*= (const Face &) const
Vertex * | has (Vertex *vertex) const
Edge * | has (Edge *edge) const

## Detailed Description

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

Generic GraphTriangle Class.

Definition at line 624 of file graphFace.h.

## Constructor & Destructor Documentation

## GraphTriangle() [1/3]

template<typename Vertex, typename Edge, typename Face>

BALL::GraphTriangle< Vertex, Edge, Face >::GraphTriangle | ( |  | ) |

Default constructor. This method creates a new GraphTriangle object.

Definition at line 901 of file graphFace.h.

## GraphTriangle() [2/3]

template<typename Vertex, typename Edge, typename Face>

BALL::GraphTriangle< Vertex, Edge, Face >::GraphTriangle | ( | const GraphTriangle< Vertex, Edge, Face > & | face,
|  | bool | deep = false )

Copy constructor. Create a new GraphTriangle object from another.

Parameters

  face | the GraphTriangle object to be copied
  deep | if deep = false, all pointers are set to NULL (default). Otherwise the new GraphTriangle object is linked to the neighbours of the old GraphTriangle object.

Definition at line 914 of file graphFace.h.

## GraphTriangle() [3/3]

template<typename Vertex, typename Edge, typename Face>

BALL::GraphTriangle< Vertex, Edge, Face >::GraphTriangle | ( | Vertex * | vertex1,
|  | Vertex * | vertex2,
|  | Vertex * | vertex3,
|  | Edge * | edge1,
|  | Edge * | edge2,
|  | Edge * | edge3,
|  | Index | index )

Detailled constructor. Create a new GraphTriangle object from some nice objects

Parameters

  vertex1 | assigned to the first vertex
  vertex2 | assigned to the second vertex
  vertex3 | assigned to the third vertex
  edge1 | assigned to the first edge
  edge2 | assigned to the second edge
  edge3 | assigned to the third edge
  index | assigned to the index

Definition at line 940 of file graphFace.h.

## ~GraphTriangle()

template<typename Vertex, typename Edge, typename Face>

BALL::GraphTriangle< Vertex, Edge, Face >::~GraphTriangle | ( |  | ) |

virtual

Destructor. Destructs the GraphTriangle object.

Definition at line 956 of file graphFace.h.

## Member Function Documentation

## getEdge() [1/2]

template<typename Vertex, typename Edge, typename Face>

bool BALL::GraphTriangle< Vertex, Edge, Face >::getEdge | ( | const Vertex * | vertex1,
|  | const Vertex * | vertex2,
|  | Edge *& | edge ) const

Find the edge of the GraphTriangle that belongs to the two given vertices.

Parameters

  vertex1 | a pointer to the first given vertex
  vertex2 | a pointer to the second given vertex
  edge | a pointer to the found edge

Returns
  bool true if the edge can be found, false otherwise

Definition at line 1137 of file graphFace.h.

## getEdge() [2/2]

template<typename Vertex, typename Edge, typename Face>

Edge * BALL::GraphTriangle< Vertex, Edge, Face >::getEdge | ( | Position | i | ) | const

Return one of the edges of the GraphTriangle.

Parameters

  i | the relative index of the edge which should be given back. If i is greater than three, an exception is thrown.

Returns
  Edge* a pointer to the asked vertex

Exceptions

  BALL::Exception::IndexOverflow |

Definition at line 1067 of file graphFace.h.

## getEdges()

template<typename Vertex, typename Edge, typename Face>

bool BALL::GraphTriangle< Vertex, Edge, Face >::getEdges | ( | const Vertex * | vertex,
|  | Edge *& | edge1,
|  | Edge *& | edge2 ) const

Find the two edges of the GraphTriangle that belong to the given vertex.

Parameters

  vertex | a pointer to the given vertex
  edge1 | a pointer to the first found edge
  edge2 | a pointer to the second found edge

Returns
  bool true if the edges can be found, false otherwise

Definition at line 1095 of file graphFace.h.

## getIndex()

template<typename Vertex, typename Edge, typename Face>

Index BALL::GraphTriangle< Vertex, Edge, Face >::getIndex | ( |  | ) | const

Return the index of the GraphTriangle.

Returns
  Index the index of the GraphTriangle

Definition at line 1088 of file graphFace.h.

## getOppositeEdge()

template<typename Vertex, typename Edge, typename Face>

Edge * BALL::GraphTriangle< Vertex, Edge, Face >::getOppositeEdge | ( | const Vertex * | vertex | ) | const

Get the edge of the GraphFace which lies on the opposite side of the given vertex.

Parameters

  vertex | a pointer to a vertex of the GraphTriangle

Returns
  Edge* a pointer to the opposite Edge

Definition at line 1262 of file graphFace.h.

## getOppositeVertex()

template<typename Vertex, typename Edge, typename Face>

Vertex * BALL::GraphTriangle< Vertex, Edge, Face >::getOppositeVertex | ( | const Edge * | edge | ) | const

Get the vertex of the GraphFace which lies on the opposite side of the given edge.

Parameters

  edge | a pointer to an edge of the GraphTriangle

Returns
  Vertex* a pointer to the opposite vertex

Definition at line 1278 of file graphFace.h.

## getRelativeIndex() [1/2]

template<typename Vertex, typename Edge, typename Face>

Index BALL::GraphTriangle< Vertex, Edge, Face >::getRelativeIndex | ( | const Edge * | edge | ) | const

Return the relative index of an edge in the GraphTriangle.

Returns
  Index the relative index of the edge

Definition at line 1203 of file graphFace.h.

## getRelativeIndex() [2/2]

template<typename Vertex, typename Edge, typename Face>

Index BALL::GraphTriangle< Vertex, Edge, Face >::getRelativeIndex | ( | const Vertex * | vertex | ) | const

Return the relative index of a vertex in the GraphTriangle.

Returns
  Index the relative index of the vertex

Definition at line 1188 of file graphFace.h.

## getSimilarEdge()

template<typename Vertex, typename Edge, typename Face>

Index BALL::GraphTriangle< Vertex, Edge, Face >::getSimilarEdge | ( | const Edge * | edge,
|  | Edge *& | similar_edge ) const

Find the edge of the GraphFace that is similar to the given edge.

Parameters

  edge | a pointer to the given edge
  similar_edge | a pointer to the similar edge of te GraphFace if it can be found, otherwise NULL

Returns
  Index the relative index of the similar edge if it can be found, otherwise -1

Definition at line 1164 of file graphFace.h.

## getVertex()

template<typename Vertex, typename Edge, typename Face>

Vertex * BALL::GraphTriangle< Vertex, Edge, Face >::getVertex | ( | Position | i | ) | const

Return one of the vertices of the GraphTriangle.

Parameters

  i | the relative index of the vertex which should be given back. If i is greater than three, an exception is thrown.

Returns
  Vertex* a pointer to the asked vertex

Exceptions

  BALL::Exception::IndexOverflow |

Definition at line 1039 of file graphFace.h.

## has() [1/2]

template<typename Vertex, typename Edge, typename Face>

Edge * BALL::GraphTriangle< Vertex, Edge, Face >::has | ( | Edge * | edge | ) | const

Test whether an edge is meber of the face.

Parameters

  edge | a pointer to the edge to test

Returns
  Edge* a pointer to the edge if it exists, otherwise NULL

Definition at line 1366 of file graphFace.h.

## has() [2/2]

template<typename Vertex, typename Edge, typename Face>

Vertex * BALL::GraphTriangle< Vertex, Edge, Face >::has | ( | Vertex * | vertex | ) | const

Test whether a vertex is meber of the face.

Parameters

  vertex | a pointer to the the vertex to test

Returns
  Vertex* a pointer to the vertex if it exists, otherwise NULL

Definition at line 1347 of file graphFace.h.

## operator!=()

template<typename Vertex, typename Edge, typename Face>

bool BALL::GraphTriangle< Vertex, Edge, Face >::operator!= | ( | const Face & |  | ) | const

virtual

Inequality operator.

Returns
  bool false

Reimplemented in BALL::RSFace, and BALL::Triangle.

Definition at line 1333 of file graphFace.h.

## operator*=()

template<typename Vertex, typename Edge, typename Face>

bool BALL::GraphTriangle< Vertex, Edge, Face >::operator*= | ( | const Face & |  | ) | const

virtual

Similarity operator.

Returns
  bool true

Reimplemented in BALL::RSFace, and BALL::Triangle.

Definition at line 1340 of file graphFace.h.

## operator=()

template<typename Vertex, typename Edge, typename Face>

GraphTriangle< Vertex, Edge, Face > & BALL::GraphTriangle< Vertex, Edge, Face >::operator= | ( | const GraphTriangle< Vertex, Edge, Face > & | face | ) |

Assign from another GraphTriangle. The GraphTriangle object is linked to the neighbours of the GraphTriangle object to assifgn from.

Parameters

  face | the GraphTriangle object to assign from

Definition at line 991 of file graphFace.h.

## operator==()

template<typename Vertex, typename Edge, typename Face>

bool BALL::GraphTriangle< Vertex, Edge, Face >::operator== | ( | const Face & |  | ) | const

virtual

Equality operator.

Returns
  bool true

Reimplemented in BALL::RSFace, and BALL::Triangle.

Definition at line 1326 of file graphFace.h.

## set() [1/2]

template<typename Vertex, typename Edge, typename Face>

void BALL::GraphTriangle< Vertex, Edge, Face >::set | ( | const GraphTriangle< Vertex, Edge, Face > & | face,
|  | bool | deep = false )

Assign from another GraphTriangle.

Parameters

  face | the GraphTriangle object to assign from
  deep | if deep = false, all pointers are set to NULL (default). Otherwise the GraphTriangle object is linked to the neighbours of the GraphTriangle object to assign from.

Definition at line 962 of file graphFace.h.

## set() [2/2]

template<typename Vertex, typename Edge, typename Face>

void BALL::GraphTriangle< Vertex, Edge, Face >::set | ( | Vertex * | vertex1,
|  | Vertex * | vertex2,
|  | Vertex * | vertex3,
|  | Edge * | edge1,
|  | Edge * | edge2,
|  | Edge * | edge3,
|  | Index | index )

Assign to a lot of nice objects

Parameters

  vertex1 | assigned to the first vertex
  vertex2 | assigned to the second vertex
  vertex3 | assigned to the third vertex
  edge1 | assigned to the first edge
  edge2 | assigned to the second edge
  edge3 | assigned to the third edge
  index | assigned to the index

Definition at line 1009 of file graphFace.h.

## setEdge()

template<typename Vertex, typename Edge, typename Face>

void BALL::GraphTriangle< Vertex, Edge, Face >::setEdge | ( | Position | i,
|  | Edge * | edge )

Set one of the edges of the GraphTriangle.

Parameters

  i | the relative index of the edge which should be set. If i is greater than three, an exception is thrown.
  edge | a pointer to the new edge

Exceptions

  BALL::Exception::IndexOverflow |

Definition at line 1053 of file graphFace.h.

## setIndex()

template<typename Vertex, typename Edge, typename Face>

void BALL::GraphTriangle< Vertex, Edge, Face >::setIndex | ( | Index | index | ) |

Set the index of the GraphTriangle.

Parameters

  index | the new index

Definition at line 1081 of file graphFace.h.

## setVertex()

template<typename Vertex, typename Edge, typename Face>

void BALL::GraphTriangle< Vertex, Edge, Face >::setVertex | ( | Position | i,
|  | Vertex * | vertex )

Set one of the vertices of the GraphTriangle.

Parameters

  i | the relative index of the vertex which should be set. If i is greater three, an exception is thrown.
  vertex | a pointer to the new vertex

Exceptions

  BALL::Exception::IndexOverflow |

Definition at line 1025 of file graphFace.h.

## substitute() [1/2]

template<typename Vertex, typename Edge, typename Face>

bool BALL::GraphTriangle< Vertex, Edge, Face >::substitute | ( | const Edge * | old_edge,
|  | Edge * | new_edge )

Substitute an edge by an other one.

Parameters

  old_edge | the edge that has to be substituted
  new_edge | the new edge

Returns
  bool true, if the edge can be substituted, false otherwise

Definition at line 1310 of file graphFace.h.

## substitute() [2/2]

template<typename Vertex, typename Edge, typename Face>

bool BALL::GraphTriangle< Vertex, Edge, Face >::substitute | ( | const Vertex * | old_vertex,
|  | Vertex * | new_vertex )

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

Definition at line 1294 of file graphFace.h.

## third() [1/2]

template<typename Vertex, typename Edge, typename Face>

Edge * BALL::GraphTriangle< Vertex, Edge, Face >::third | ( | const Edge * | e1,
|  | const Edge * | e2 ) const

Return a pointer to the third edge of the GraphTriangle.

Parameters

  e1 | a pointer to the first edge
  e2 | a pointer to the second edge

Returns
  Edge* a pointer to the third edge

Definition at line 1240 of file graphFace.h.

## third() [2/2]

template<typename Vertex, typename Edge, typename Face>

Vertex * BALL::GraphTriangle< Vertex, Edge, Face >::third | ( | const Vertex * | v1,
|  | const Vertex * | v2 ) const

Return a pointer to the third vertex of the GraphTriangle.

Parameters

  v1 | a pointer to the first vertex
  v2 | a pointer to the second vertex

Returns
  Vertex* a pointer to the third vertex

Definition at line 1218 of file graphFace.h.

## Friends And Related Symbol Documentation

## GraphEdge< Vertex, Edge, Face >

template<typename Vertex, typename Edge, typename Face>

friend class GraphEdge< Vertex, Edge, Face >

friend

Definition at line 250 of file graphFace.h.

## GraphVertex< Vertex, Edge, Face >

template<typename Vertex, typename Edge, typename Face>

friend class GraphVertex< Vertex, Edge, Face >

friend

Definition at line 250 of file graphFace.h.

## Member Data Documentation

## edge_

template<typename Vertex, typename Edge, typename Face>

Edge* BALL::GraphTriangle< Vertex, Edge, Face >::edge_[3]

protected

Definition at line 891 of file graphFace.h.

## index_

template<typename Vertex, typename Edge, typename Face>

Index BALL::GraphTriangle< Vertex, Edge, Face >::index_

protected

Definition at line 894 of file graphFace.h.

## vertex_

template<typename Vertex, typename Edge, typename Face>

Vertex* BALL::GraphTriangle< Vertex, Edge, Face >::vertex_[3]

protected

Definition at line 888 of file graphFace.h.