Public Member Functions | |
TreeNode () | |
virtual | ~TreeNode () |
void | deleteChildren () |
void | setParent (TreeNode *parent) |
void | setChildren (TreeNode *left, TreeNode *right) |
const TreeNode * | first () const |
const TreeNode * | last () const |
bool | isLeftChild () const |
bool | isRightChild () const |
const TreeNode * | next () const |
bool | hasChildren () const |
int | numLeaves () const |
Protected Member Functions | |
TreeNode * | left () |
TreeNode * | right () |
Private Attributes | |
TreeNode * | parent_ |
TreeNode * | left_ |
TreeNode * | right_ |
Only maximal elements will be responsible for deleting their children. Therefore, the TreeNode dtor does not delete children; subtypes that need to delete children should call the deleteChildren() method.
Definition at line 21 of file SundanceRivaraTreeNode.hpp.
TreeNode::TreeNode | ( | ) |
Empty ctor
Definition at line 9 of file SundanceRivaraTreeNode.cpp.
virtual Sundance::Rivara::TreeNode::~TreeNode | ( | ) | [inline, virtual] |
Definition at line 27 of file SundanceRivaraTreeNode.hpp.
void TreeNode::deleteChildren | ( | ) |
Delete the node's children
Definition at line 13 of file SundanceRivaraTreeNode.cpp.
Referenced by Sundance::Rivara::Element::~Element().
const TreeNode * TreeNode::first | ( | ) | const |
bool Sundance::Rivara::TreeNode::hasChildren | ( | ) | const [inline] |
Indicate whether this node has children
Definition at line 57 of file SundanceRivaraTreeNode.hpp.
References left_.
Referenced by Sundance::Rivara::Edge::getUnrefinedCofacets(), Sundance::Rivara::Element::hasHangingNode(), numLeaves(), and Sundance::Rivara::Element::refine().
bool TreeNode::isLeftChild | ( | ) | const |
Indicate whether this is the leftward child of another node
Definition at line 40 of file SundanceRivaraTreeNode.cpp.
References left_, and parent_.
Referenced by next().
bool TreeNode::isRightChild | ( | ) | const |
Indicate whether this is the rightward child of another node
Definition at line 33 of file SundanceRivaraTreeNode.cpp.
References parent_, and right_.
Referenced by next().
const TreeNode * TreeNode::last | ( | ) | const |
return the rightmost leaf beneath this node
Definition at line 26 of file SundanceRivaraTreeNode.cpp.
References last(), and right_.
Referenced by last().
TreeNode* Sundance::Rivara::TreeNode::left | ( | ) | [inline, protected] |
Definition at line 64 of file SundanceRivaraTreeNode.hpp.
References left_.
Referenced by Sundance::Rivara::Element::refine().
const TreeNode * TreeNode::next | ( | ) | const |
Return the next leaf in a left-to-right walk of the tree. If this is the last leaf, return 0.
Definition at line 47 of file SundanceRivaraTreeNode.cpp.
References first(), isLeftChild(), isRightChild(), parent_, and right_.
Referenced by Sundance::Rivara::ElementIterator::getNextElement(), and Sundance::Rivara::ElementIterator::hasMoreElements().
int TreeNode::numLeaves | ( | ) | const |
Return a count of the number of leaves
Definition at line 75 of file SundanceRivaraTreeNode.cpp.
References hasChildren(), left_, numLeaves(), and right_.
Referenced by numLeaves().
TreeNode* Sundance::Rivara::TreeNode::right | ( | ) | [inline, protected] |
Definition at line 66 of file SundanceRivaraTreeNode.hpp.
References right_.
Referenced by Sundance::Rivara::Element::refine().
Set the two children of this node
Definition at line 37 of file SundanceRivaraTreeNode.hpp.
Referenced by Sundance::Rivara::Edge::bisect(), and Sundance::Rivara::Element::refine().
void Sundance::Rivara::TreeNode::setParent | ( | TreeNode * | parent | ) | [inline] |
set the parent of this node
Definition at line 34 of file SundanceRivaraTreeNode.hpp.
References parent_.
Referenced by Sundance::Rivara::Element::refine().
TreeNode* Sundance::Rivara::TreeNode::left_ [private] |
Definition at line 71 of file SundanceRivaraTreeNode.hpp.
Referenced by deleteChildren(), first(), hasChildren(), isLeftChild(), left(), numLeaves(), and setChildren().
TreeNode* Sundance::Rivara::TreeNode::parent_ [private] |
Definition at line 69 of file SundanceRivaraTreeNode.hpp.
Referenced by isLeftChild(), isRightChild(), next(), and setParent().
TreeNode* Sundance::Rivara::TreeNode::right_ [private] |
Definition at line 73 of file SundanceRivaraTreeNode.hpp.
Referenced by deleteChildren(), isRightChild(), last(), next(), numLeaves(), right(), and setChildren().