Dart class for the half-edge data structure. More...
#include <ttl/halfedge/HeDart.h>
Public Member Functions | |
Dart () | |
Default constructor. | |
Dart (Edge *edge, bool dir=true) | |
Constructor. | |
Dart (const Dart &dart) | |
Copy constructor. | |
~Dart () | |
Destructor. | |
Dart & | operator= (const Dart &dart) |
Assignment operator. | |
bool | operator== (const Dart &dart) const |
Comparing dart objects. | |
bool | operator!= (const Dart &dart) const |
Comparing dart objects. | |
Dart & | alpha0 () |
Maps the dart to a different node. | |
Dart & | alpha1 () |
Maps the dart to a different edge. | |
Dart & | alpha2 () |
Maps the dart to a different triangle. Note: the dart is not changed if it is at the boundary! | |
Utilities not required by TTL | |
void | init (Edge *edge, bool dir=true) |
double | x () const |
double | y () const |
bool | isCounterClockWise () const |
Node * | getNode () const |
Node * | getOppositeNode () const |
Edge * | getEdge () const |
Private Attributes | |
Edge * | edge_ |
bool | dir_ |
Dart class for the half-edge data structure.
See Application Programming Interface to TTL (API) for a detailed description of how the member functions should be implemented.
Definition at line 47 of file HeDart.h.
hed::Dart::Dart | ( | ) | [inline] |
hed::Dart::Dart | ( | Edge * | edge, | |
bool | dir = true | |||
) | [inline] |
hed::Dart::Dart | ( | const Dart & | dart | ) | [inline] |
Dart& hed::Dart::alpha0 | ( | ) | [inline] |
Maps the dart to a different node.
Definition at line 87 of file HeDart.h.
References dir_.
Referenced by hed::TTLtraits::crossProduct2d(), and hed::TTLtraits::scalarProduct2d().
Dart& hed::Dart::alpha1 | ( | ) | [inline] |
Maps the dart to a different edge.
Definition at line 90 of file HeDart.h.
References dir_, edge_, and hed::Edge::getNextEdgeInFace().
Dart& hed::Dart::alpha2 | ( | ) | [inline] |
Maps the dart to a different triangle. Note: the dart is not changed if it is at the boundary!
Definition at line 103 of file HeDart.h.
References dir_, edge_, and hed::Edge::getTwinEdge().
Edge* hed::Dart::getEdge | ( | ) | const [inline] |
Definition at line 128 of file HeDart.h.
References edge_.
Referenced by hed::TTLtraits::removeBoundaryTriangle(), hed::TTLtraits::reverse_splitTriangle(), hed::TTLtraits::splitTriangle(), and hed::TTLtraits::swapEdge().
00128 { return edge_; }
Node* hed::Dart::getNode | ( | ) | const [inline] |
Node* hed::Dart::getOppositeNode | ( | ) | const [inline] |
Definition at line 127 of file HeDart.h.
References dir_, edge_, hed::Edge::getSourceNode(), and hed::Edge::getTargetNode().
void hed::Dart::init | ( | Edge * | edge, | |
bool | dir = true | |||
) | [inline] |
bool hed::Dart::isCounterClockWise | ( | ) | const [inline] |
bool hed::Dart::operator!= | ( | const Dart & | dart | ) | const [inline] |
bool hed::Dart::operator== | ( | const Dart & | dart | ) | const [inline] |
double hed::Dart::x | ( | ) | const [inline] |
Definition at line 121 of file HeDart.h.
References getNode(), and hed::Node::x().
Referenced by hed::TTLtraits::crossProduct2d(), hed::TTLtraits::orient2d(), and hed::TTLtraits::scalarProduct2d().
00121 { return getNode()->x(); } // x-coordinate of source node
double hed::Dart::y | ( | ) | const [inline] |
Definition at line 122 of file HeDart.h.
References getNode(), and hed::Node::y().
Referenced by hed::TTLtraits::crossProduct2d(), hed::TTLtraits::orient2d(), and hed::TTLtraits::scalarProduct2d().
00122 { return getNode()->y(); } // y-coordinate of source node
bool hed::Dart::dir_ [private] |
Definition at line 50 of file HeDart.h.
Referenced by alpha0(), alpha1(), alpha2(), Dart(), getNode(), getOppositeNode(), init(), isCounterClockWise(), operator=(), and operator==().
Edge* hed::Dart::edge_ [private] |
Definition at line 49 of file HeDart.h.
Referenced by alpha1(), alpha2(), Dart(), getEdge(), getNode(), getOppositeNode(), init(), operator=(), and operator==().