mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-10 07:34:03 +00:00
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
/*!
|
|
\defgroup concepts geometry concepts: defines and checks concepts for geometries
|
|
|
|
All GGL algorithms use concepts for their geometries. This means that all
|
|
algorithms work on the GGL-provided geometries (point, linestring, etc) but
|
|
also on custom geometries.
|
|
|
|
By declaring registration macro's or by specializating traits classes it is
|
|
possible to adapt custom or legacy geometries to fulfil the GGL geometry
|
|
concepts.
|
|
|
|
GGL algorithms check the concepts of the input geometries.
|
|
Concept checking is done using BCCL (Boost Concept Check Library).
|
|
|
|
This means that geometries provided by library users, or legacy geometries, or
|
|
plain arrays, or boost tuples, all can be handled by the Generic Geometry
|
|
Library. Also std::vector of points, or tuples can be handled either as a
|
|
linestring or as a linear ring (polygon without holes).
|
|
|
|
There are concepts for
|
|
- points
|
|
- segment
|
|
- box
|
|
- linestring
|
|
- (linear) ring
|
|
- polygon
|
|
- multi point
|
|
- multi linestring
|
|
- multi polygon
|
|
|
|
The Generic Geometry Library uses the Boost Range Library to iterate through
|
|
standard containers, boost arrays, c-arrays.
|
|
So:
|
|
- linestring
|
|
- (linear) ring
|
|
|
|
are all just ranges. So a std::vector, std::deque, boost::array,
|
|
iterator pair or c-array will be accepted as such.
|
|
|
|
Also the multi geometries:
|
|
- multi point
|
|
- multi linestring
|
|
- multi polygon
|
|
are considered as ranges of respectively points, linestrings and polygons.
|
|
|
|
*/
|