void ListPolyIt::convertListPolygonsToPolygons(ListPolygons& list_polygons, Polygons& polygons) { for (unsigned int poly_idx = 0; poly_idx < polygons.size(); poly_idx++) { polygons[poly_idx].clear(); convertListPolygonToPolygon(list_polygons[poly_idx], polygons[poly_idx]); } }
void WallOverlapComputation::findOverlapPoints() { // convert to list polygons for insertion of points convertPolygonsToLists(polygons, list_polygons); // init loc_to_list_poly_idx // for (unsigned int poly_idx = 0; poly_idx < list_polygons.size(); poly_idx++) // { // for (ListPolygon::iterator it = list_polygons[poly_idx].begin(); it != list_polygons[poly_idx].end(); ++it) // { // loc_to_list_poly_idx.emplace(*it, it); // } // } for (unsigned int poly_idx = 0; poly_idx < list_polygons.size(); poly_idx++) { ListPolygon& poly = list_polygons[poly_idx]; for (unsigned int poly2_idx = 0; poly2_idx <= poly_idx; poly2_idx++) { for (ListPolygon::iterator it = poly.begin(); it != poly.end(); ++it) { ListPolyIt lpi(poly, it); if (poly_idx == poly2_idx) { findOverlapPoints(lpi, poly2_idx, it); } else { findOverlapPoints(lpi, poly2_idx); } } } } // convert list polygons back for (unsigned int poly_idx = 0; poly_idx < polygons.size(); poly_idx++) { convertListPolygonToPolygon(list_polygons[poly_idx], polygons[poly_idx]); // DEBUG_SHOW(list_polygons[poly_idx].size()); } // for (unsigned int poly_idx = 0; poly_idx < polygons.size(); poly_idx++) // { // PolygonRef poly = polygons[poly_idx]; // for (unsigned int poly2_idx = 0; poly2_idx <= poly_idx; poly2_idx++) // { // PolygonRef poly2 = polygons[poly2_idx]; // for (unsigned int point_idx = 0; point_idx < poly.size(); point_idx++) // { // Point& p = poly[point_idx]; // findOverlapPoints(p, poly2); // } // } // } }