]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/doc/concept/point.qbk
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / geometry / doc / concept / point.qbk
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