1 [/============================================================================
2 Boost.Geometry (aka GGL, Generic Geometry Library)
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.
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 =============================================================================/]
13 [section:concept_linestring Linestring Concept]
16 [concept Linestring..linestring]
18 A linestring is ['a Curve with linear interpolation between Points].
21 [heading Concept Definition]
23 The Linestring Concept is defined as following:
25 * there must be a specialization of `traits::tag` defining `linestring_tag` as type
26 * it must behave like a Boost.Range Random Access Range
27 * The type defined by the metafunction `range_value<...>::type` must fulfill
28 the [link geometry.reference.concepts.concept_point Point Concept]
32 Besides the Concepts, which are checks on compile-time, there are rules that
33 valid linestrings must fulfill. Most algorithms work on any linestring, so either
34 self-crossing or not. However, for correct results using the overlay algorithms
35 (intersection and difference algorithms in combination with a polygon)
36 self-intersections can disturb the process and result in incorrect results.
38 [heading Available Models]
39 * [link geometry.reference.models.model_linestring model::linestring]
40 * a std::vector (requires registration)
41 * a std::deque (requires registration)
43 [see_boost_range_sample Linestring]