ring.qbk 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. [/============================================================================
  2. Boost.Geometry (aka GGL, Generic Geometry Library)
  3. Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
  4. Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
  5. Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
  6. Use, modification and distribution is subject to the Boost Software License,
  7. Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  8. http://www.boost.org/LICENSE_1_0.txt)
  9. =============================================================================/]
  10. [section:concept_ring Ring Concept]
  11. [heading Description]
  12. [concept Ring..ring]
  13. [note Also called linear ring, but we explicitly refer to a filled feature here]
  14. [heading Concept Definition]
  15. The Ring Concept is defined as following:
  16. * there must be a specialization of `traits::tag` defining `ring_tag` as type
  17. * it must behave like a Boost.Range Random Access Range
  18. * The type defined by the metafunction `range_value<...>::type` must fulfill
  19. the [link geometry.reference.concepts.concept_point Point Concept]
  20. * there might be a specialization of `traits::point_order` defining the order or orientation of its points, `clockwise` or `counterclockwise`
  21. * there might be a specialization of `traits::closure` defining the closure, `open` or `closed`
  22. [heading Rules]
  23. Besides the Concepts, which are checks on compile-time, there are
  24. rules that valid rings must fulfill. See the
  25. [link geometry.reference.concepts.concept_polygon Polygon Concept] for more information
  26. on the rules a polygon (and also a ring) must fulfill.
  27. [heading Available Models]
  28. * [link geometry.reference.models.model_ring ring]
  29. * a Boost.Polygon polygon_data (requires `#include boost/geometry/geometries/adapted/boost_polygon/ring.hpp>`)
  30. * a std::vector (requires `#include boost/geometry/geometries/adapted/std_as_ring.hpp>`)
  31. * a std::deque (requires `#include boost/geometry/geometries/adapted/std_as_ring.hpp>`)
  32. [see_boost_range_sample Ring]
  33. [endsect]