~ubuntu-branches/debian/sid/boost1.49/sid

« back to all changes in this revision

Viewing changes to boost/geometry/multi/geometries/concepts/multi_point_concept.hpp

  • Committer: Package Import Robot
  • Author(s): Steve M. Robbins
  • Date: 2012-02-26 00:31:44 UTC
  • Revision ID: package-import@ubuntu.com-20120226003144-eaytp12cbf6ubpms
Tags: upstream-1.49.0
ImportĀ upstreamĀ versionĀ 1.49.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Boost.Geometry (aka GGL, Generic Geometry Library)
 
2
 
 
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.
 
6
 
 
7
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 
8
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
 
9
 
 
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)
 
13
 
 
14
 
 
15
#ifndef BOOST_GEOMETRY_MULTI_GEOMETRIES_CONCEPTS_MULTI_POINT_CONCEPT_HPP
 
16
#define BOOST_GEOMETRY_MULTI_GEOMETRIES_CONCEPTS_MULTI_POINT_CONCEPT_HPP
 
17
 
 
18
 
 
19
#include <boost/concept_check.hpp>
 
20
#include <boost/range/concepts.hpp>
 
21
#include <boost/range/metafunctions.hpp>
 
22
 
 
23
 
 
24
#include <boost/geometry/geometries/concepts/point_concept.hpp>
 
25
 
 
26
 
 
27
namespace boost { namespace geometry { namespace concept
 
28
{
 
29
 
 
30
 
 
31
/*!
 
32
\brief MultiPoint concept
 
33
\ingroup concepts
 
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
 
39
 
 
40
*/
 
41
template <typename Geometry>
 
42
class MultiPoint
 
43
{
 
44
#ifndef DOXYGEN_NO_CONCEPT_MEMBERS
 
45
    typedef typename boost::range_value<Geometry>::type point_type;
 
46
 
 
47
    BOOST_CONCEPT_ASSERT( (concept::Point<point_type>) );
 
48
    BOOST_CONCEPT_ASSERT( (boost::RandomAccessRangeConcept<Geometry>) );
 
49
 
 
50
 
 
51
public :
 
52
 
 
53
    BOOST_CONCEPT_USAGE(MultiPoint)
 
54
    {
 
55
    }
 
56
#endif
 
57
};
 
58
 
 
59
 
 
60
/*!
 
61
\brief concept for multi-point (const version)
 
62
\ingroup const_concepts
 
63
*/
 
64
template <typename Geometry>
 
65
class ConstMultiPoint
 
66
{
 
67
#ifndef DOXYGEN_NO_CONCEPT_MEMBERS
 
68
    typedef typename boost::range_value<Geometry>::type point_type;
 
69
 
 
70
    BOOST_CONCEPT_ASSERT( (concept::ConstPoint<point_type>) );
 
71
    BOOST_CONCEPT_ASSERT( (boost::RandomAccessRangeConcept<Geometry>) );
 
72
 
 
73
 
 
74
public :
 
75
 
 
76
    BOOST_CONCEPT_USAGE(ConstMultiPoint)
 
77
    {
 
78
    }
 
79
#endif
 
80
};
 
81
 
 
82
}}} // namespace boost::geometry::concept
 
83
 
 
84
 
 
85
#endif // BOOST_GEOMETRY_MULTI_GEOMETRIES_CONCEPTS_MULTI_POINT_CONCEPT_HPP