]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/doc/concept/ring.qbk
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / geometry / doc / concept / ring.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_ring Ring Concept]
14
15 [heading Description]
16 [concept Ring..ring]
17
18 [note Also called linear ring, but we explicitly refer to a filled feature here]
19
20 [heading Concept Definition]
21
22 The Ring Concept is defined as following:
23
24 * there must be a specialization of `traits::tag` defining `ring_tag` as type
25 * it must behave like a Boost.Range Random Access Range
26 * The type defined by the metafunction `range_value<...>::type` must fulfill
27 the [link geometry.reference.concepts.concept_point Point Concept]
28 * there might be a specialization of `traits::point_order` defining the order or orientation of its points, `clockwise` or `counterclockwise`
29 * there might be a specialization of `traits::closure` defining the closure, `open` or `closed`
30
31 [heading Rules]
32
33 Besides the Concepts, which are checks on compile-time, there are
34 rules that valid rings must fulfill. See the
35 [link geometry.reference.concepts.concept_polygon Polygon Concept] for more information
36 on the rules a polygon (and also a ring) must fulfill.
37
38 [heading Available Models]
39 * [link geometry.reference.models.model_ring ring]
40 * a Boost.Polygon polygon_data (requires `#include boost/geometry/geometries/adapted/boost_polygon/ring.hpp>`)
41 * a std::vector (requires `#include boost/geometry/geometries/adapted/std_as_ring.hpp>`)
42 * a std::deque (requires `#include boost/geometry/geometries/adapted/std_as_ring.hpp>`)
43
44 [see_boost_range_sample Ring]
45
46 [endsect]