...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Macro to register a multi_polygon.
The macro BOOST_GEOMETRY_REGISTER_MULTI_POLYGON registers a multi_polygon such that it is recognized by Boost.Geometry and that Boost.Geometry functionality can used with the specified type. The multi_polygon may contain template parameters, which must be specified then.
#define BOOST_GEOMETRY_REGISTER_MULTI_POLYGON(MultiPolygon)
Name |
Description |
---|---|
MultiPolygon |
multi_polygon type to be registered |
#include <boost/geometry/geometries/register/multi_polygon.hpp>
Show the use of the macro BOOST_GEOMETRY_REGISTER_MULTI_POLYGON
#include <iostream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/polygon.hpp> #include <boost/geometry/geometries/adapted/boost_tuple.hpp> #include <boost/geometry/geometries/register/multi_polygon.hpp> typedef boost::geometry::model::polygon < boost::tuple<float, float> > polygon_type; BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian) BOOST_GEOMETRY_REGISTER_MULTI_POLYGON(std::vector<polygon_type>) int main() { // Normal usage of std:: std::vector<polygon_type> polygons(2); boost::geometry::read_wkt("POLYGON((0 0,0 1,1 1,1 0,0 0))", polygons[0]); boost::geometry::read_wkt("POLYGON((3 0,3 1,4 1,4 0,3 0))", polygons[1]); // Usage of Boost.Geometry std::cout << "AREA: " << boost::geometry::area(polygons) << std::endl; return 0; }
Output:
AREA: 2