Hi Andrew,

2014-06-02 20:01 GMT+02:00 Andrew Hundt <athundt@gmail.com>:

On Friday, May 30, 2014, Adam Wulkiewicz <adam.wulkiewicz@gmail.com> wrote:

Hi Andrew,2014-05-31 0:45 GMT+02:00 Andrew Hundt <athundt@gmail.com>:

I was able to create a minimal example that reproduces the error, any suggestions on how to correctly register the models would be greatly appreciated!

<snip>

I just tried this with exactly the same code except declaring multi_polygon instead of polygon and it too didn't compile.Lots is asserts on not implemented for this geometry type. However the types are ring box and multipoly so I'm not sure why.

To compile it I was forced to add some missing headers. Sorry that I didn't write it in the last email. The following code compiles for me (using Boost.Geometry develop branch) on Linux GCC 4.8 and Clang 3.4:

#include <boost/geometry.hpp>

#include <boost/geometry/multi/geometries/multi_polygon.hpp>

#include <boost/geometry/geometries/register/point.hpp>

struct legacy_point

{

double x, y;

};

BOOST_GEOMETRY_REGISTER_POINT_2D(legacy_point, double, boost::geometry::cs::cartesian, x, y)

int main()

{

boost::geometry::model::box<legacy_point> box;

boost::geometry::model::ring<legacy_point> ring;

boost::geometry::model::multi_polygon< boost::geometry::model::polygon<legacy_point> > mpoly;

boost::geometry::intersection(box, ring, mpoly);

}

#include <boost/geometry.hpp>

#include <boost/geometry/multi/geometries/multi_polygon.hpp>

#include <boost/geometry/geometries/register/point.hpp>

struct legacy_point

{

double x, y;

};

BOOST_GEOMETRY_REGISTER_POINT_2D(legacy_point, double, boost::geometry::cs::cartesian, x, y)

int main()

{

boost::geometry::model::box<legacy_point> box;

boost::geometry::model::ring<legacy_point> ring;

boost::geometry::model::multi_polygon< boost::geometry::model::polygon<legacy_point> > mpoly;

boost::geometry::intersection(box, ring, mpoly);

}

If case the above doesn't help, please write which compiler do you use and which Boost version?

Regards,

Adam