summaryrefslogtreecommitdiff
path: root/boost/geometry/core/point_type.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/core/point_type.hpp')
-rw-r--r--boost/geometry/core/point_type.hpp36
1 files changed, 34 insertions, 2 deletions
diff --git a/boost/geometry/core/point_type.hpp b/boost/geometry/core/point_type.hpp
index e148c84a57..f70e1fedd5 100644
--- a/boost/geometry/core/point_type.hpp
+++ b/boost/geometry/core/point_type.hpp
@@ -16,7 +16,7 @@
#include <boost/mpl/assert.hpp>
-#include <boost/range.hpp>
+#include <boost/range/value_type.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/geometry/core/ring_type.hpp>
@@ -102,13 +102,45 @@ struct point_type<polygon_tag, Polygon>
};
+template <typename MultiPoint>
+struct point_type<multi_point_tag, MultiPoint>
+{
+ typedef typename boost::range_value
+ <
+ MultiPoint
+ >::type type;
+};
+
+
+template <typename MultiLinestring>
+struct point_type<multi_linestring_tag, MultiLinestring>
+{
+ typedef typename point_type
+ <
+ linestring_tag,
+ typename boost::range_value<MultiLinestring>::type
+ >::type type;
+};
+
+
+template <typename MultiPolygon>
+struct point_type<multi_polygon_tag, MultiPolygon>
+{
+ typedef typename point_type
+ <
+ polygon_tag,
+ typename boost::range_value<MultiPolygon>::type
+ >::type type;
+};
+
+
} // namespace core_dispatch
#endif // DOXYGEN_NO_DISPATCH
/*!
\brief \brief_meta{type, point_type, \meta_geometry_type}
-\tparam Geometry \tparam_geometry
+\tparam Geometry \tparam_geometry
\ingroup core
\qbk{[include reference/core/point_type.qbk]}