| 572 | {} |
| 573 | |
| 574 | void TriContourGenerator::clear_visited_flags(bool include_boundaries) |
| 575 | { |
| 576 | // Clear _interiorVisited. |
| 577 | std::fill(_interior_visited.begin(), _interior_visited.end(), false); |
| 578 | |
| 579 | if (include_boundaries) { |
| 580 | if (_boundaries_visited.empty()) { |
| 581 | const Boundaries& boundaries = get_boundaries(); |
| 582 | |
| 583 | // Initialise _boundaries_visited. |
| 584 | _boundaries_visited.reserve(boundaries.size()); |
| 585 | for (Boundaries::const_iterator it = boundaries.begin(); |
| 586 | it != boundaries.end(); ++it) |
| 587 | _boundaries_visited.push_back(BoundaryVisited(it->size())); |
| 588 | |
| 589 | // Initialise _boundaries_used. |
| 590 | _boundaries_used = BoundariesUsed(boundaries.size()); |
| 591 | } |
| 592 | |
| 593 | // Clear _boundaries_visited. |
| 594 | for (BoundariesVisited::iterator it = _boundaries_visited.begin(); |
| 595 | it != _boundaries_visited.end(); ++it) |
| 596 | std::fill(it->begin(), it->end(), false); |
| 597 | |
| 598 | // Clear _boundaries_used. |
| 599 | std::fill(_boundaries_used.begin(), _boundaries_used.end(), false); |
| 600 | } |
| 601 | } |
| 602 | |
| 603 | PyObject* TriContourGenerator::contour_to_segs(const Contour& contour) |
| 604 | { |