Chris@16: /* Chris@16: Copyright 2008 Intel Corporation Chris@16: Chris@16: Use, modification and distribution are subject to the Boost Software License, Chris@16: Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt). Chris@16: */ Chris@16: #ifndef BOOST_POLYGON_RECTANGLE_TRAITS_HPP Chris@16: #define BOOST_POLYGON_RECTANGLE_TRAITS_HPP Chris@101: Chris@101: #include "isotropy.hpp" Chris@101: Chris@16: namespace boost { namespace polygon{ Chris@16: Chris@16: template Chris@16: struct rectangle_traits {}; Chris@16: template Chris@16: struct rectangle_traits {}; Chris@16: Chris@16: template Chris@16: struct rectangle_traits::type> { Chris@16: typedef typename T::coordinate_type coordinate_type; Chris@16: typedef typename T::interval_type interval_type; Chris@16: static inline interval_type get(const T& rectangle, orientation_2d orient) { Chris@16: return rectangle.get(orient); } Chris@16: }; Chris@16: Chris@16: template Chris@16: struct rectangle_mutable_traits { Chris@16: template Chris@16: static inline void set(T& rectangle, orientation_2d orient, const T2& interval) { Chris@16: rectangle.set(orient, interval); } Chris@16: template Chris@16: static inline T construct(const T2& interval_horizontal, Chris@16: const T3& interval_vertical) { Chris@16: return T(interval_horizontal, interval_vertical); } Chris@16: }; Chris@16: } Chris@16: } Chris@16: #endif