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_GEOMETRIES_REGISTER_RING_HPP 16 #define BOOST_GEOMETRY_GEOMETRIES_REGISTER_RING_HPP 17 18 19 #include <boost/geometry/core/tag.hpp> 20 #include <boost/geometry/core/tags.hpp> 21 22 /*! 23 \brief \brief_macro{ring} 24 \ingroup register 25 \details \details_macro{BOOST_GEOMETRY_REGISTER_RING, ring} The 26 ring may contain template parameters, which must be specified then. 27 \param Ring \param_macro_type{ring} 28 29 \qbk{ 30 [heading Example] 31 [register_ring] 32 [register_ring_output] 33 } 34 */ 35 #define BOOST_GEOMETRY_REGISTER_RING(Ring) \ 36 namespace boost { namespace geometry { namespace traits { \ 37 template<> struct tag<Ring> { typedef ring_tag type; }; \ 38 }}} 39 40 41 /*! 42 \brief \brief_macro{templated ring} 43 \ingroup register 44 \details \details_macro{BOOST_GEOMETRY_REGISTER_RING_TEMPLATED, templated ring} 45 \details_macro_templated{ring, point} 46 \param Ring \param_macro_type{ring (without template parameters)} 47 48 \qbk{ 49 [heading Example] 50 [register_ring_templated] 51 [register_ring_templated_output] 52 } 53 */ 54 #define BOOST_GEOMETRY_REGISTER_RING_TEMPLATED(Ring) \ 55 namespace boost { namespace geometry { namespace traits { \ 56 template<typename P> struct tag< Ring<P> > { typedef ring_tag type; }; \ 57 }}} 58 59 60 #endif // BOOST_GEOMETRY_GEOMETRIES_REGISTER_RING_HPP 61