id summary reporter owner description type status milestone component version severity resolution keywords cc 7844 bug with unrolling self intersecting polygon rlepere Andrii Sydorchuk " I m tring to remove loops from self intersecting polygon but the following example (a triangle A, B, C with some points nearly aligned between B and C) fails. IMHO it sould return a triangle. {{{ #include #include #include using namespace boost::polygon; using namespace std; typedef point_data< int > point; typedef vector< point > points; typedef polygon_set_data< int > polygon_set; typedef polygon_with_holes_data< int > polygon_with_holes; typedef vector< polygon_with_holes > polygons_with_holes; /* * A triangle A, B, C with some nearly aligned points between B and C. * * A * + * |\ * | \ * | \ * | \ * | \ * | \ * | \ * | \ * | /-+ C * B +--- */ polygon_with_holes MakeRawPolygon() { points ps; ps.push_back(point(-181928106,288346744)); // A ps.push_back(point(-15311797,-289428209)); // B ps.push_back(point(56093690,-270295166)); ps.push_back(point(24502047,-278760121)); ps.push_back(point(57745146,-269852659)); ps.push_back(point(56791908,-270108078)); ps.push_back(point(-14613579,-289241121)); ps.push_back(point(82923673,-263106094)); // C polygon_with_holes poly; set_points(poly, ps.begin(), ps.end()); return poly; } int main() { polygon_with_holes polygon(MakeRawPolygon()); polygon_set ps; ps.insert(polygon); // first unrool polygons_with_holes unrolled_polygons; ps.get(unrolled_polygons); if (unrolled_polygons.size() == 0u) { std::cout << ""error"" << endl; } } }}}" Bugs closed To Be Determined polygon Boost 1.52.0 Problem wontfix