Boost logo

Geometry :

Subject: Re: [geometry] How to repair self-intersections
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2014-04-29 07:31:48


Hi Yohann,

yohann.benedic wrote:
> Hi everyone,
>
> Any comments on my compilation problem below?
Thanks for a reminder.

> Thank you.
>
> Yohann Bénédic wrote
>
>> Hi Adam,
>>
>> Following your suggestion to John, I am trying the dissolve algorithm to correct my non-simple polygons (ie. remove self intersections). I am using the one from the following branch:
>>
>> Adam Wulkiewicz wrote
>>> https://github.com/boostorg/geometry/blob/develop/include/boost/geomet
>>> ry/extensions/algorithms/dissolve.hpp
>> I am using boost/geometry 1.54 except for the dissolve.hpp file which comes from the branch.
>> I am trying to compile a simple example:
>> void test ()
>> {
>> typedef boost::geometry::model::d2::point_xy<double> boostPoint;
>> typedef boost::geometry::model::polygon< boostPoint > boostPolygon;
>> typedef boostPolygon::ring_type boostRing;
>>
>> boostRing ring1,ring2;
>> boost::geometry::dissolve(ring1,ring2);
>>
>> return;
>> }
>>
>> The compiler complains that there is no apply member in boost::geometry::dispatch::dissolve. I also tried it with the rescale to interger branch with no luck.
>>
>> Is there anything I can do about it?

Yes, pass std::vector<boostRing> as a second parameter instead of boostRing.

You should also know that the recent version of dissolve() from develop
branch should not compile properly with 1.54 because of this commit:
https://github.com/boostorg/geometry/commit/75d078aaedc94bdab7430f798dd3bc7aab3539a8
from 2013-12-05 so you should probably use some older version of dissolve().

Regards,
Adam


Geometry list run by mateusz at loskot.net