• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_linestring Linestring Concept]
14
15[heading Description]
16[concept Linestring..linestring]
17
18A linestring is ['a Curve with linear interpolation between Points].
19(__ogc_sf__).
20
21[heading Concept Definition]
22
23The Linestring Concept is defined as following:
24
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]
29
30[heading Rules]
31
32Besides the Concepts, which are checks on compile-time, there are rules that
33valid linestrings must fulfill. Most algorithms work on any linestring, so either
34self-crossing or not. However, for correct results using the overlay algorithms
35(intersection and difference algorithms in combination with a polygon)
36self-intersections can disturb the process and result in incorrect results.
37
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)
42
43[see_boost_range_sample Linestring]
44
45[endsect]
46