Boost logo

Geometry :

Subject: [geometry] problem with intersection on legacy geometry
From: Lepere Renaud (lepere.renaud_at_[hidden])
Date: 2013-08-25 05:34:03


I have a legacy geometry and i want boost::geometry to use it. It works on some examples but not always. I have followed the manual but i am stuck with the following test : BOOST_AUTO_TEST_CASE(TestPolygonUnion) {     Polygon poly1(Ring({{0, 0}, {10, 0}, {10, 10}, {0, 10}}));     Polygon poly2(Ring({{5, 5}, {15, 5}, {15, 15}, {5, 15}}));        std::vector< Polygon > polygons;     intersection(poly1, poly2, polygons);  <- in this method     BOOST_REQUIRE_EQUAL(polygons.size(), 1u);     BOOST_CHECK_EQUAL(area(polygons[0]), 25.0); } It leads to a error in backtrack_check_si.hpp template <     typename Geometry1,     typename Geometry2 > class backtrack_check_self_intersections { ...   // Make bad output clean    rings.resize(size_at_start);    ring.clear();                              <- here this method does not exist My ring class does not have this clear method ; should not it use the method i defined ? template <> struct clear< Geom::Ring > {     static void apply(Geom::Ring & r) { r.points().clear(); }; }; Best regards Renaud



Geometry list run by mateusz at loskot.net