void LinePolygonsCrossings::getBasicCombingPath(CombPath& combPath) { for (PolyCrossings* crossing = getNextPolygonAlongScanline(transformed_startPoint.X) ; crossing != nullptr ; crossing = getNextPolygonAlongScanline(crossing->max.x)) { getBasicCombingPath(*crossing, combPath); } combPath.push_back(endPoint); }
void LinePolygonsCrossings::getBasicCombingPath(CombPath& combPath) { for (PolyCrossings crossing = getNextPolygonAlongScanline(transformed_startPoint.X) ; crossing.poly_idx != NO_INDEX ; crossing = getNextPolygonAlongScanline(crossing.max.x)) { getBasicCombingPath(crossing, combPath); } combPath.push_back(endPoint); }
void Comb::getBasicCombingPath(Point endPoint, std::vector<Point>& pointList) { for (unsigned int poly_idx = getNextPolygonAlongScanline(transformed_startPoint.X); poly_idx != NO_INDEX; poly_idx = getNextPolygonAlongScanline(maxX[poly_idx])) { getBasicCombingPath(poly_idx, pointList); } pointList.push_back(endPoint); }
void Comb::getBasicCombingPaths(Point endPoint, std::vector<std::vector<Point>>& combPaths) { for (unsigned int poly_idx = getNextPolygonAlongScanline(transformed_startPoint.X); poly_idx != NO_INDEX; poly_idx = getNextPolygonAlongScanline(maxX[poly_idx])) { combPaths.emplace_back(); std::vector<Point>& pointList = combPaths.back(); getBasicCombingPath(poly_idx, pointList); } if (combPaths.size() == 0) { combPaths.emplace_back(); } combPaths.back().push_back(endPoint); }