]>
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_point Point Concept] | |
14 | ||
15 | [heading Description] | |
16 | [concept Point..point] | |
17 | ||
18 | A point is ['an entity that has a location in space or on a plane, but has no extent] ([@http://en.wikipedia.org/wiki/Point_(geometry) wiki]). | |
19 | The point is the most basic geometry of Boost.Geometry, most other geometries consist of points. | |
20 | ['(Exceptions are box and segment, which might consist of two points but that is not necessarily the case.)] | |
21 | ||
22 | [heading Concept Definition] | |
23 | ||
24 | The Point Concept is defined as following: | |
25 | ||
26 | * there must be a specialization of `traits::tag`, defining `point_tag` as type | |
27 | * there must be a specialization of `traits::coordinate_type`, defining the type of its coordinates | |
28 | * there must be a specialization of `traits::coordinate_system`, defining its coordinate system | |
29 | (cartesian, spherical, etc) | |
30 | * there must be a specialization of `traits::dimension`, defining its number of dimensions (2, 3, ...) | |
31 | (hint: derive it conveniently from `boost::mpl::int_<X>` for X Dimensional) | |
32 | * there must be a specialization of `traits::access`, per dimension, with two functions: | |
33 | * `get` to get a coordinate value | |
34 | * `set` to set a coordinate value (this one is not checked for ConstPoint) | |
35 | ||
36 | [heading Available Models] | |
37 | * [link geometry.reference.models.model_point model::point] | |
38 | * [link geometry.reference.models.model_d2_point_xy model::d2::point_xy] | |
39 | * a lat long point (currently in an extension) | |
40 | * [link geometry.reference.adapted.c_array C array] | |
41 | * [link geometry.reference.adapted.boost_array Boost.Array] | |
42 | * [link geometry.reference.adapted.boost_fusion Boost.Fusion] | |
43 | * [link geometry.reference.adapted.boost_polygon Boost.Polygon] | |
44 | * [link geometry.reference.adapted.boost_tuple Boost.Tuple] | |
45 | * other point types, adapted e.g. using one of the [link geometry.reference.adapted registration macro's] | |
46 | ||
47 | [endsect] | |
48 | ||
49 |