123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- [/============================================================================
- Boost.Geometry (aka GGL, Generic Geometry Library)
- Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
- Use, modification and distribution is subject to the Boost Software License,
- Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
- =============================================================================/]
- [section:concept_linestring Linestring Concept]
- [heading Description]
- [concept Linestring..linestring]
- A linestring is ['a Curve with linear interpolation between Points].
- (__ogc_sf__).
- [heading Concept Definition]
- The Linestring Concept is defined as following:
- * there must be a specialization of `traits::tag` defining `linestring_tag` as type
- * it must behave like a Boost.Range Random Access Range
- * The type defined by the metafunction `range_value<...>::type` must fulfill
- the [link geometry.reference.concepts.concept_point Point Concept]
- [heading Rules]
- Besides the Concepts, which are checks on compile-time, there are rules that
- valid linestrings must fulfill. Most algorithms work on any linestring, so either
- self-crossing or not. However, for correct results using the overlay algorithms
- (intersection and difference algorithms in combination with a polygon)
- self-intersections can disturb the process and result in incorrect results.
-
- [heading Available Models]
- * [link geometry.reference.models.model_linestring model::linestring]
- * a std::vector (requires registration)
- * a std::deque (requires registration)
- [see_boost_range_sample Linestring]
- [endsect]
|