| Home | Libraries | People | FAQ | More

#### MultiPolygon Concept

###### Description

The MultiPolygon Concept describes the requirements for a multi polygon type. All algorithms in Boost.Geometry will check any geometry arguments against the concept requirements.

###### 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 Polygon Concept

###### Rules

Besides the Concepts, which are checks on compile-time, there are rules that valid MultiPolygons must fulfill. See the 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.

###### Available Models

- model::multi_polygon