[/============================================================================ 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]