2011-10-12 2 views
3

Прежде всего, большое спасибо людям за новой библиотекой boost :: geometry!boost :: geometry multi_point не может быть сконструирован, как многоугольник

Этот вопрос заменяет более раннюю версию, которую я теперь разделил на две, поскольку две отдельные проблемы стали более ясными.

Я прочитал http://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/html/geometry/design.html, объясняющую механизм черты, но не я не мудрее, почему этот код не компилируется ...

//code to calculate area of convex hull from a set of points 

#include <boost/geometry.hpp> 
#include <boost/geometry/geometries/point_xy.hpp> 
#include <boost/geometry/geometries/polygon.hpp> 
#include <boost/geometry/multi/geometries/multi_point.hpp> 

double convex_hull_area() 
{ 
    using boost::geometry::model::d2::point_xy; 
    using boost::geometry::append; 
    using boost::geometry::make; 

    //this bit works if I use a polygon instead of multi_point 
    boost::geometry::model::multi_point<point_xy<float> > all_points_in_radius; 

    append(all_points_in_radius,make<point_xy<float> >(0,0)); 
    append(all_points_in_radius,make<point_xy<float> >(3,0)); 
    append(all_points_in_radius,make<point_xy<float> >(3,3)); 
    append(all_points_in_radius,make<point_xy<float> >(2,1)); 

    boost::geometry::model::polygon<point_xy<float> > hull; 
    boost::geometry::convex_hull(all_points_in_radius,hull); 
    return boost::geometry::area(hull); 
} 

Первая ошибка

Error 1 error C2039: 'apply' : is not a member of 'boost::geometry::dispatch::for_each_range<Tag,Geometry,Actor,IsConst>' d:\boost\boost_1_47_0\boost\geometry\algorithms\detail\for_each_range.hpp 115 boost_geom_test 

Если я используйте многоугольник вместо многоточечного, код работает просто отлично, хотя, вероятно, с накладными расходами мне не нужно. Что происходит?

+0

Я сообщил об этом как об ошибке для увеличения. –

ответ

3

Это оказалось ошибкой в ​​повышении. Теперь он исправлен в редакции главы и должен развернуться в 1.49.0.

Смежные вопросы