linestring.qbk 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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_linestring Linestring Concept]
  11. [heading Description]
  12. [concept Linestring..linestring]
  13. A linestring is ['a Curve with linear interpolation between Points].
  14. (__ogc_sf__).
  15. [heading Concept Definition]
  16. The Linestring Concept is defined as following:
  17. * there must be a specialization of `traits::tag` defining `linestring_tag` as type
  18. * it must behave like a Boost.Range Random Access Range
  19. * The type defined by the metafunction `range_value<...>::type` must fulfill
  20. the [link geometry.reference.concepts.concept_point Point Concept]
  21. [heading Rules]
  22. Besides the Concepts, which are checks on compile-time, there are rules that
  23. valid linestrings must fulfill. Most algorithms work on any linestring, so either
  24. self-crossing or not. However, for correct results using the overlay algorithms
  25. (intersection and difference algorithms in combination with a polygon)
  26. self-intersections can disturb the process and result in incorrect results.
  27. [heading Available Models]
  28. * [link geometry.reference.models.model_linestring model::linestring]
  29. * a std::vector (requires registration)
  30. * a std::deque (requires registration)
  31. [see_boost_range_sample Linestring]
  32. [endsect]