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==().
1.6.1