hed::Triangulation Class Reference

Triangulation class for the half-edge data structure with adaption to TTL. More...

#include <ttl/halfedge/HeTriang.h>

List of all members.

Public Member Functions

 Triangulation ()
 Default constructor.
 Triangulation (const Triangulation &tr)
 Copy constructor.
 ~Triangulation ()
 Destructor.
void createDelaunay (vector< Node * >::iterator first, vector< Node * >::iterator last)
 Creates a Delaunay triangulation from a set of points.
Edge * initTwoEnclosingTriangles (vector< Node * >::iterator first, vector< Node * >::iterator last)
 Creates an initial Delaunay triangulation from two enclosing triangles.
void swapEdge (Edge &diagonal)
 Swaps the edge associated with diagonal.
Edge * splitTriangle (Edge &edge, Node &point)
 Splits the triangle associated with edge into three new triangles joining at point.
void removeTriangle (Edge &edge)
 Removes the boundary triangle associated with edge.
void reverse_splitTriangle (Edge &edge)
 The reverse operation of removeTriangle.
Dart createDart ()
 Creates an arbitrary CCW dart.
const list< Edge * > & getLeadingEdges () const
 Returns a list of "triangles" (one leading half-edge for each triangle).
int noTriangles () const
 Returns the number of triangles.
list< Edge * > * getEdges (bool skip_boundary_edges=false) const
 Returns a list of half-edges (one half-edge for each arc).
void flagNodes (bool flag) const
 Sets flag in all the nodes.
list< Node * > * getNodes () const
 Returns a list of nodes. This function requires TTL_USE_NODE_FLAG to be defined.
void optimizeDelaunay ()
 Swaps edges until the triangulation is Delaunay (constrained edges are not swapped).
bool checkDelaunay () const
 Checks if the triangulation is Delaunay.
Edge * getInteriorNode () const
 Returns an arbitrary interior node (as the source node of the returned edge).
Edge * getBoundaryEdge () const
 Returns an arbitrary boundary edge.
void printEdges (ofstream &os) const
 Print edges for plotting with, e.g., gnuplot.

Protected Member Functions

void addLeadingEdge (Edge *edge)
bool removeLeadingEdgeFromList (Edge *leadingEdge)
void cleanAll ()

Protected Attributes

list< Edge * > leadingEdges_

Detailed Description

Triangulation class for the half-edge data structure with adaption to TTL.

Definition at line 206 of file HeTriang.h.


Constructor & Destructor Documentation

hed::Triangulation::Triangulation (  )  [inline]

Default constructor.

Definition at line 216 of file HeTriang.h.

00216 {}

hed::Triangulation::Triangulation ( const Triangulation &  tr  )  [inline]

Copy constructor.

Definition at line 219 of file HeTriang.h.

00219                                            { 
00220       cout << "Triangulation: Copy constructor not present - EXIT."; 
00221       exit(-1);
00222     }

hed::Triangulation::~Triangulation (  )  [inline]

Destructor.

Definition at line 225 of file HeTriang.h.

References cleanAll().

00225 { cleanAll(); }


Member Function Documentation

void hed::Triangulation::addLeadingEdge ( Edge *  edge  )  [inline, protected]

Definition at line 210 of file HeTriang.h.

References leadingEdges_, and hed::Edge::setAsLeadingEdge().

00210 { edge->setAsLeadingEdge(); leadingEdges_.push_front(edge); }

bool hed::Triangulation::checkDelaunay (  )  const

Checks if the triangulation is Delaunay.

void hed::Triangulation::cleanAll (  )  [protected]

Referenced by ~Triangulation().

Dart hed::Triangulation::createDart (  ) 

Creates an arbitrary CCW dart.

void hed::Triangulation::createDelaunay ( vector< Node * >::iterator  first,
vector< Node * >::iterator  last 
)

Creates a Delaunay triangulation from a set of points.

void hed::Triangulation::flagNodes ( bool  flag  )  const

Sets flag in all the nodes.

Edge* hed::Triangulation::getBoundaryEdge (  )  const

Returns an arbitrary boundary edge.

list<Edge*>* hed::Triangulation::getEdges ( bool  skip_boundary_edges = false  )  const

Returns a list of half-edges (one half-edge for each arc).

Edge* hed::Triangulation::getInteriorNode (  )  const

Returns an arbitrary interior node (as the source node of the returned edge).

const list<Edge*>& hed::Triangulation::getLeadingEdges (  )  const [inline]

Returns a list of "triangles" (one leading half-edge for each triangle).

Definition at line 260 of file HeTriang.h.

References leadingEdges_.

00260 { return leadingEdges_; }

list<Node*>* hed::Triangulation::getNodes (  )  const

Returns a list of nodes. This function requires TTL_USE_NODE_FLAG to be defined.

See also:
Node.
Edge* hed::Triangulation::initTwoEnclosingTriangles ( vector< Node * >::iterator  first,
vector< Node * >::iterator  last 
)

Creates an initial Delaunay triangulation from two enclosing triangles.

int hed::Triangulation::noTriangles (  )  const [inline]

Returns the number of triangles.

Definition at line 263 of file HeTriang.h.

References leadingEdges_.

00263 { return leadingEdges_.size(); }

void hed::Triangulation::optimizeDelaunay (  ) 

Swaps edges until the triangulation is Delaunay (constrained edges are not swapped).

void hed::Triangulation::printEdges ( ofstream &  os  )  const

Print edges for plotting with, e.g., gnuplot.

bool hed::Triangulation::removeLeadingEdgeFromList ( Edge *  leadingEdge  )  [protected]
void hed::Triangulation::removeTriangle ( Edge &  edge  ) 

Removes the boundary triangle associated with edge.

Referenced by hed::TTLtraits::removeBoundaryTriangle().

void hed::Triangulation::reverse_splitTriangle ( Edge &  edge  ) 

The reverse operation of removeTriangle.

Referenced by hed::TTLtraits::reverse_splitTriangle().

Edge* hed::Triangulation::splitTriangle ( Edge &  edge,
Node &  point 
)

Splits the triangle associated with edge into three new triangles joining at point.

Referenced by hed::TTLtraits::splitTriangle().

void hed::Triangulation::swapEdge ( Edge &  diagonal  ) 

Swaps the edge associated with diagonal.

Referenced by hed::TTLtraits::swapEdge().


Member Data Documentation

Definition at line 209 of file HeTriang.h.

Referenced by addLeadingEdge(), getLeadingEdges(), and noTriangles().


The documentation for this class was generated from the following file:

Generated on Wed Nov 17 17:44:28 2010 for TTL by  doxygen 1.6.1