Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
BOOST_GEOMETRY_REGISTER_BOX

Macro to register a box.

Description

The macro BOOST_GEOMETRY_REGISTER_BOX registers a box such that it is recognized by Boost.Geometry and that Boost.Geometry functionality can be used with the specified type. The box may contain template parameters, which must be specified then.

Synopsis

#define BOOST_GEOMETRY_REGISTER_BOX(Box, Point, MinCorner,
                             MaxCorner)

Parameters

Name

Description

Box

Box type to be registered

Point

Point type on which box is based. Might be two or three-dimensional

MinCorner

minimum corner (should be public member or method)

MaxCorner

maximum corner (should be public member or method)

Header

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

Example

Show the use of the macro BOOST_GEOMETRY_REGISTER_BOX

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

struct my_point
{
    double x, y;
};

struct my_box
{
    my_point ll, ur;
};

// Register the point type
BOOST_GEOMETRY_REGISTER_POINT_2D(my_point, double, cs::cartesian, x, y)

// Register the box type, also notifying that it is based on "my_point"
BOOST_GEOMETRY_REGISTER_BOX(my_box, my_point, ll, ur)

int main()
{
    my_box b = boost::geometry::make<my_box>(0, 0, 2, 2);
    std::cout << "Area: "  << boost::geometry::area(b) << std::endl;
    return 0;
}

Output:

Area: 4

PrevUpHomeNext