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 22The 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 33Besides the Concepts, which are checks on compile-time, there are 34rules that valid rings must fulfill. See the 35[link geometry.reference.concepts.concept_polygon Polygon Concept] for more information 36on 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] 47