1
// Boost.Geometry (aka GGL, Generic Geometry Library)
3
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
4
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
5
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
7
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
8
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
10
// Use, modification and distribution is subject to the Boost Software License,
11
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
12
// http://www.boost.org/LICENSE_1_0.txt)
15
#ifndef BOOST_GEOMETRY_MULTI_GEOMETRIES_CONCEPTS_MULTI_POINT_CONCEPT_HPP
16
#define BOOST_GEOMETRY_MULTI_GEOMETRIES_CONCEPTS_MULTI_POINT_CONCEPT_HPP
19
#include <boost/concept_check.hpp>
20
#include <boost/range/concepts.hpp>
21
#include <boost/range/metafunctions.hpp>
24
#include <boost/geometry/geometries/concepts/point_concept.hpp>
27
namespace boost { namespace geometry { namespace concept
32
\brief MultiPoint concept
34
\par Formal definition:
35
The multi point concept is defined as following:
36
- there must be a specialization of traits::tag defining multi_point_tag as type
37
- it must behave like a Boost.Range
38
- its range value must fulfil the Point concept
41
template <typename Geometry>
44
#ifndef DOXYGEN_NO_CONCEPT_MEMBERS
45
typedef typename boost::range_value<Geometry>::type point_type;
47
BOOST_CONCEPT_ASSERT( (concept::Point<point_type>) );
48
BOOST_CONCEPT_ASSERT( (boost::RandomAccessRangeConcept<Geometry>) );
53
BOOST_CONCEPT_USAGE(MultiPoint)
61
\brief concept for multi-point (const version)
62
\ingroup const_concepts
64
template <typename Geometry>
67
#ifndef DOXYGEN_NO_CONCEPT_MEMBERS
68
typedef typename boost::range_value<Geometry>::type point_type;
70
BOOST_CONCEPT_ASSERT( (concept::ConstPoint<point_type>) );
71
BOOST_CONCEPT_ASSERT( (boost::RandomAccessRangeConcept<Geometry>) );
76
BOOST_CONCEPT_USAGE(ConstMultiPoint)
82
}}} // namespace boost::geometry::concept
85
#endif // BOOST_GEOMETRY_MULTI_GEOMETRIES_CONCEPTS_MULTI_POINT_CONCEPT_HPP