Boost.Geometry (aka Generic Geometry Library, GGL), part of collection of the Boost C++ Libraries, defines concepts, primitives and algorithms for solving geometry problems.
Boost.Geometry contains a dimension-agnostic, coordinate-system-agnostic and scalable kernel, based on concepts, meta-functions and tag dispatching. On top of that kernel, algorithms are built: area, length, perimeter, centroid, convex hull, intersection (clipping), within (point in polygon), distance, envelope (bounding box), simplify, transform, and much more. The library supports high precision arithmetic numbers, such as ttmath.
Boost.Geometry contains instantiable geometry classes, but library users can also use their own. Using registration macros or traits classes their geometries can be adapted to fulfil Boost.Geometry concepts.
Boost.Geometry might be used in all domains where geometry plays a role: mapping and GIS, game development, computer graphics and widgets, robotics, astronomy and more. The core is designed to be as generic as possible and support those domains. For now, the development has been mostly GIS-oriented.
The library follows existing conventions:
The library was first released with Boost 1.47.0 and from that point on it is officially part of the Boost C++ Libraries.
The library development upstream is available from the Boost.Geometry (develop branch).
Note that the library extensions are not distributed in the official Boost releases, but only available in the Boost.Geometry (develop branch) and that they are subject to change.
Boost.Geometry was accepted by Boost at November 28, 2009 (review report).
There is a Boost.Geometry mailing list. The mailing list and its messages are also accessible from Nabble as Boost Geometry. Also on the Boost Developers list and on the Boost Users list Boost.Geometry is discussed.