void Sweep::FillAdvancingFront(SweepContext& tcx, Node& n) { // Fill right holes Node* node = n.next; while (node->next) { // if HoleAngle exceeds 90 degrees then break. if (LargeHole_DontFill(node)) break; Fill(tcx, *node); node = node->next; } // Fill left holes node = n.prev; while (node->prev) { // if HoleAngle exceeds 90 degrees then break. if (LargeHole_DontFill(node)) break; Fill(tcx, *node); node = node->prev; } // Fill right basins if (n.next && n.next->next) { double angle = BasinAngle(n); if (angle < PI_3div4) { FillBasin(tcx, n); } } }
void Sweep::FillAdvancingFront(SweepContext& tcx, Node& n) { // Fill right holes Node* node = n.next; while (node->next) { double angle = HoleAngle(*node); if (angle > M_PI_2 || angle < -M_PI_2) break; Fill(tcx, *node); node = node->next; } // Fill left holes node = n.prev; while (node->prev) { double angle = HoleAngle(*node); if (angle > M_PI_2 || angle < -M_PI_2) break; Fill(tcx, *node); node = node->prev; } // Fill right basins if (n.next && n.next->next) { double angle = BasinAngle(n); if (angle < PI_3div4) { FillBasin(tcx, n); } } }