218 if (node == sibling) sibling = nodeParent->
getLeftChild();
321 std::cout <<
"****** Tree has one branch but not the other! *******" << std::endl;
378 double lastBreakPointY = -std::numeric_limits<double>::max();
397 if (breakPoint + tolerance < lastBreakPointY)
399 std::cout <<
" #####>> Beach line check gets bad breakpoint, last: " << lastBreakPointY <<
", new: " << breakPoint <<
", roots: " << roots.first <<
"/" << roots.second << std::endl;
414 lastBreakPointY = breakPoint;
415 lastBreakPoint = node;
457 if (nBadCompares > 0)
std::cout <<
"=======>> Beach line check resulted in " << nBadCompares <<
" bad compares of " << nBreakPoints <<
" break points checked, with " << nLeaves <<
" leaves" << std::endl;
void checkBeachLine(double) const
BSTNode * rotateWithLeftChild(BSTNode *)
EventUtilities m_utilities
void setRightChild(BSTNode *node)
void setSuccessor(BSTNode *node)
BSTNode class definiton specifically for use in constructing Voronoi diagrams. We are trying to follo...
bool newSiteToLeft(const IEvent *, const IEvent *, const IEvent *) const
virtual void setInvalid() const =0
Interface for configuring the particular algorithm tool.
void rebalance(BSTNode *)
Tree balancing functions.
virtual bool isValid() const =0
BSTNode * getParent() const
int getTreeDepth(const BSTNode *) const
This recovers the depth of longest branch in the tree below input node.
Represents the beachline implemented as a self balancing binary search tree.
BSTNode * findBestLeaf(const IEvent *event) const
BSTNode * getAssociated() const
BSTNode * insertNewLeaf(IEvent *)
void setLeftChild(BSTNode *node)
void setParent(BSTNode *node)
Allow setting of the points.
BSTNode * getRightChild() const
virtual void setBSTNode(BSTNode *)=0
int traverseBeachLeft(BSTNode *) const
BSTNode * removeLeaf(BSTNode *)
void setAssociated(BSTNode *node)
virtual double yPos() const =0
int traverseBeachRight(BSTNode *) const
int getDepth() const
recover the data members
int traverseBeach() const
virtual double xPos() const =0
double computeBreak(const double, const IEvent *, const IEvent *, RootsPair &) const
BSTNode * getPredecessor() const
BSTNode * rotateWithRightChild(BSTNode *)
std::pair< double, double > RootsPair
void setFace(dcel2d::Face *face)
void setPredecessor(BSTNode *node)
IEvent * getEvent() const
BEGIN_PROLOG could also be cout
BSTNode * getSuccessor() const
BSTNode * getLeftChild() const
void setHalfEdge(dcel2d::HalfEdge *half)