]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | [/============================================================================ |
2 | Boost.Geometry (aka GGL, Generic Geometry Library) | |
3 | ||
4 | Copyright (c) 2009-2012 Mateusz Loskot, London, UK. | |
5 | Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands. | |
6 | Copyright (c) 2009-2012 Bruno Lalande, Paris, France. | |
7 | ||
8 | Use, modification and distribution is subject to the Boost Software License, | |
9 | Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | |
10 | http://www.boost.org/LICENSE_1_0.txt) | |
11 | =============================================================================/] | |
12 | ||
13 | [section:concept_box Box Concept] | |
14 | ||
15 | [heading Description] | |
16 | [concept Box..box] | |
17 | ||
18 | A box is a geometry with (usually) two or three dimensions, having its axis aligned to the coordinate system. | |
19 | ||
20 | The box is not one of the basic types in Boost.Geometry (point, linestring, polygon) but it is a ['helper type]. | |
21 | The main reasons for the box existance are its usefulness for indexing (a spatial index, or splitting a geometry | |
22 | into monotonic sections) and it is the output of the [link geometry.reference.algorithms.envelope envelope] algorithm. | |
23 | ||
24 | Therefore, a box is axis aligned (the envelope is also called aabb, axis aligned bounding box). | |
25 | ||
26 | [heading Concept Definition] | |
27 | ||
28 | The Box Concept is defined as following: | |
29 | ||
30 | * there must be a specialization of `traits::tag`, defining `box_tag` as type | |
31 | * there must be a specialization of `traits::point_type` to define the underlying point type | |
32 | (even if it does not consist of points, it should define this type, to indicate the points it can work with) | |
33 | * there must be a specialization of `traits::indexed_access`, per index (`min_corner`, `max_corner`) and per dimension, with two functions: | |
34 | * `get` to get a coordinate value | |
35 | * `set` to set a coordinate value (this one is not checked for ConstBox) | |
36 | ||
37 | ||
38 | [heading Available Models] | |
39 | * [link geometry.reference.models.model_box model::box] | |
40 | ||
41 | [endsect] | |
42 |