]>
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_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] |