[/============================================================================
  Boost.Geometry (aka GGL, Generic Geometry Library)

  Copyright (c) 2007-2013 Barend Gehrels, Amsterdam, the Netherlands.
  Copyright (c) 2008-2013 Bruno Lalande, Paris, France.
  Copyright (c) 2009-2013 Mateusz Loskot, London, UK.

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


[/ Generated by doxygen_xml2qbk 1.1.1, don't change, will be overwritten automatically]
[/ Generated from doxy/doxygen_output/xml/classboost_1_1geometry_1_1model_1_1ring.xml]
[section:model_ring model::ring]

'''<indexterm><primary>model</primary></indexterm><indexterm><primary>ring</primary></indexterm>'''
A ring (aka linear ring) is a closed line which should not be selfintersecting. 

[heading Model of]
[link geometry.reference.concepts.concept_ring Ring Concept]

[heading Synopsis]
``template<typename Point, bool ClockWise, bool Closed, template< typename, typename > class Container,
         template< typename > class Allocator>
class model::ring
      : public std::vector< Point, std::allocator< Point > >
{
  // ...
};
``

[heading Template parameter(s)]
[table
[[Parameter] [Default] [Description]]
[[typename Point] [] [point type ]]
[[bool ClockWise] [true] [true for clockwise direction, false for CounterClockWise direction ]]
[[bool Closed] [true] [true for closed polygons (last point == first point), false open points ]]
[[template< typename, typename > class Container] [std::vector] [container type, for example std::vector, std::deque ]]
[[template< typename > class Allocator] [std::allocator] [container-allocator-type]]
]

[heading Constructor(s)]
[table
[[Function] [Description] [Parameters] ]
[[``ring()``

] [Default constructor, creating an empty ring. ] [

]]
[[``template<typename Iterator>
ring(Iterator begin, Iterator end)``

] [Constructor with begin and end, filling the ring. ] [[* Iterator]: ['begin]:  

[* Iterator]: ['end]:  



]]
[[``ring(std::initializer_list< Point > l)``

] [Constructor taking std::initializer_list, filling the ring. ] [[* std::initializer_list< Point >]: ['l]:  



]]
]

[heading Header]
Either

`#include <boost/geometry/geometries/geometries.hpp>`


Or

`#include <boost/geometry/geometries/ring.hpp>`

[include reference/geometries/ring.qbk]

[endsect]

