| [/============================================================================ |
| 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_multi_polygon MultiPolygon Concept] |
| |
| [heading Description] |
| [concept MultiPolygon..multi polygon] |
| |
| [heading Concept Definition] |
| |
| The MultiPolygon Concept is defined as following: |
| |
| * There must be a specialization of the metafunction `traits::tag`, defining `multi_polygon_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_polygon Polygon Concept] |
| |
| [heading Rules] |
| |
| Besides the Concepts, which are checks on compile-time, there are |
| rules that valid MultiPolygons must fulfill. See the |
| [link geometry.reference.concepts.concept_polygon Polygon Concept] for more information |
| on the rules a polygon (and also a multi polygon) must fulfill. |
| |
| Additionally: |
| |
| * Individual polygons making up a multi-polygon may not intersect each other, |
| but tangencies are allowed. |
| * One polygon might be located within the interior ring of another polygon. |
| |
| [heading Available Models] |
| * [link geometry.reference.models.model_multi_polygon model::multi_polygon] |
| |
| |
| [endsect] |