Boost logo

Geometry :

Subject: Re: [geometry] backward compatibility breakage in boost::geometry::partition apply function
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2017-05-11 11:46:55


Hi,

Vish Via Geometry wrote:
> A change in boost 1_64_0 has broken backward compatibility of the apply()
> function in boost::geometry::partition. I have used this apply() function in
> multiple versions of boost geometry for 6 years up through version 1_62_0.
> The sample code is provided below. It's a minor modification of a sample
> Barend gave in a post on labeling intersections in polygons. The codepad
> links in that post don't work anymore.

Yes, partition was modified recently in order to support strategies.

<snip>

> boost::geometry::partition
> <
> boost::geometry::model::box<Point2D>, do_expand, has_overlap
> >::apply(owners, mineral_rights, visitor, 1);

Now instead of passing do_expand and has_overlap as class template
parameters you have to pass them as apply function attributes like that:

boost::geometry::partition
     <
         boost::geometry::model::box<Point2D>
>::apply(owners, mineral_rights, visitor, do_expand(),
has_overlap(), do_expand(), has_overlap(), 1);

This allows to pass non-static strategies inside do_expand and has_overlap.

Adam



Geometry list run by mateusz at loskot.net