*** ../../boost-trunk/boost/gil/extension/dynamic_image/image_view_factory.hpp 2009-03-04 21:44:31.000000000 +0100 --- image_view_factory.hpp 2009-03-04 21:50:15.000000000 +0100 *************** *** 1,6 **** /* Copyright 2005-2007 Adobe Systems Incorporated ! Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). --- 1,6 ---- /* Copyright 2005-2007 Adobe Systems Incorporated ! Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). *************** *** 14,20 **** #define GIL_DYNAMICIMAGE_IMAGE_VIEWS_HPP /*! ! /// \file /// \brief Methods for constructing any image views from other any image views /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated --- 14,20 ---- #define GIL_DYNAMICIMAGE_IMAGE_VIEWS_HPP /*! ! /// \file /// \brief Methods for constructing any image views from other any image views /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated *************** *** 70,79 **** int _n; template result_type operator()(const View& src) const { return result_type(nth_channel_view(src,_n)); } }; ! template struct color_converted_view_fn { typedef Result result_type; ! template result_type operator()(const View& src) const { return result_type(color_converted_view(src)); } }; } // namespace detail --- 70,87 ---- int _n; template result_type operator()(const View& src) const { return result_type(nth_channel_view(src,_n)); } }; ! ! template struct color_converted_view_fn { typedef Result result_type; ! color_converted_view_fn(CC cc = CC()): ! _cc(cc) {} ! ! template result_type operator()(const View& src) const { return result_type(color_converted_view(src, _cc)); } ! ! private: ! CC _cc; }; + } // namespace detail *************** *** 79,140 **** /// \ingroup ImageViewTransformationsFlipUD template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_y_step_type >::type flipped_up_down_view(const any_image_view& src) { ! return apply_operation(src,detail::flipped_up_down_view_fn >::type>()); } /// \ingroup ImageViewTransformationsFlipLR template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_x_step_type >::type flipped_left_right_view(const any_image_view& src) { ! return apply_operation(src,detail::flipped_left_right_view_fn >::type>()); } /// \ingroup ImageViewTransformationsTransposed template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_transposed_type >::type transposed_view(const any_image_view& src) { ! return apply_operation(src,detail::tranposed_view_fn >::type>()); } /// \ingroup ImageViewTransformations90CW template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_transposed_type >::type rotated90cw_view(const any_image_view& src) { ! return apply_operation(src,detail::rotated90cw_view_fn >::type>()); } /// \ingroup ImageViewTransformations90CCW template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_transposed_type >::type rotated90ccw_view(const any_image_view& src) { ! return apply_operation(src,detail::rotated90ccw_view_fn >::type>()); } /// \ingroup ImageViewTransformations180 template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_type >::type rotated180_view(const any_image_view& src) { ! return apply_operation(src,detail::rotated180_view_fn >::type>()); } /// \ingroup ImageViewTransformationsSubimage template inline // Models MPL Random Access Container of models of ImageViewConcept ! any_image_view subimage_view(const any_image_view& src, const point2& topleft, const point2& dimensions) { ! return apply_operation(src,detail::subimage_view_fn >(topleft,dimensions)); } /// \ingroup ImageViewTransformationsSubimage template inline // Models MPL Random Access Container of models of ImageViewConcept ! any_image_view subimage_view(const any_image_view& src, int xMin, int yMin, int width, int height) { ! return apply_operation(src,detail::subimage_view_fn >(point2(xMin,yMin),point2(width,height))); } /// \ingroup ImageViewTransformationsSubsampled template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_type >::type subsampled_view(const any_image_view& src, const point2& step) { ! return apply_operation(src,detail::subsampled_view_fn >::type>(step)); } /// \ingroup ImageViewTransformationsSubsampled template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_type >::type subsampled_view(const any_image_view& src, int xStep, int yStep) { ! return apply_operation(src,detail::subsampled_view_fn >::type>(point2(xStep,yStep))); } namespace detail { --- 87,148 ---- /// \ingroup ImageViewTransformationsFlipUD template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_y_step_type >::type flipped_up_down_view(const any_image_view& src) { ! return apply_operation(src,detail::flipped_up_down_view_fn >::type>()); } /// \ingroup ImageViewTransformationsFlipLR template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_x_step_type >::type flipped_left_right_view(const any_image_view& src) { ! return apply_operation(src,detail::flipped_left_right_view_fn >::type>()); } /// \ingroup ImageViewTransformationsTransposed template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_transposed_type >::type transposed_view(const any_image_view& src) { ! return apply_operation(src,detail::tranposed_view_fn >::type>()); } /// \ingroup ImageViewTransformations90CW template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_transposed_type >::type rotated90cw_view(const any_image_view& src) { ! return apply_operation(src,detail::rotated90cw_view_fn >::type>()); } /// \ingroup ImageViewTransformations90CCW template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_transposed_type >::type rotated90ccw_view(const any_image_view& src) { ! return apply_operation(src,detail::rotated90ccw_view_fn >::type>()); } /// \ingroup ImageViewTransformations180 template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_type >::type rotated180_view(const any_image_view& src) { ! return apply_operation(src,detail::rotated180_view_fn >::type>()); } /// \ingroup ImageViewTransformationsSubimage template inline // Models MPL Random Access Container of models of ImageViewConcept ! any_image_view subimage_view(const any_image_view& src, const point2& topleft, const point2& dimensions) { ! return apply_operation(src,detail::subimage_view_fn >(topleft,dimensions)); } /// \ingroup ImageViewTransformationsSubimage template inline // Models MPL Random Access Container of models of ImageViewConcept ! any_image_view subimage_view(const any_image_view& src, int xMin, int yMin, int width, int height) { ! return apply_operation(src,detail::subimage_view_fn >(point2(xMin,yMin),point2(width,height))); } /// \ingroup ImageViewTransformationsSubsampled template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_type >::type subsampled_view(const any_image_view& src, const point2& step) { ! return apply_operation(src,detail::subsampled_view_fn >::type>(step)); } /// \ingroup ImageViewTransformationsSubsampled template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename dynamic_xy_step_type >::type subsampled_view(const any_image_view& src, int xStep, int yStep) { ! return apply_operation(src,detail::subsampled_view_fn >::type>(point2(xStep,yStep))); } namespace detail { *************** *** 151,158 **** /// \ingroup ImageViewTransformationsNthChannel template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename nth_channel_view_type >::type nth_channel_view(const any_image_view& src, int n) { ! return apply_operation(src,detail::nth_channel_view_fn >::type>(n)); } namespace detail { --- 159,166 ---- /// \ingroup ImageViewTransformationsNthChannel template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename nth_channel_view_type >::type nth_channel_view(const any_image_view& src, int n) { ! return apply_operation(src,detail::nth_channel_view_fn >::type>(n)); } namespace detail { *************** *** 170,177 **** /// \ingroup ImageViewTransformationsColorConvert /// \brief overload of generic color_converted_view with user defined color-converter template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP, CC>::type color_converted_view(const any_image_view& src,CC cc) { ! return apply_operation(src,detail::color_converted_view_fn, DstP, CC>::type >()); } /// \ingroup ImageViewTransformationsColorConvert --- 178,185 ---- /// \ingroup ImageViewTransformationsColorConvert /// \brief overload of generic color_converted_view with user defined color-converter template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP, CC>::type color_converted_view(const any_image_view& src,CC cc) { ! return apply_operation(src,detail::color_converted_view_fn, DstP, CC>::type >()); } /// \ingroup ImageViewTransformationsColorConvert *************** *** 184,191 **** /// \ingroup ImageViewTransformationsColorConvert /// \brief overload of generic color_converted_view with the default color-converter template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP>::type color_converted_view(const any_image_view& src) { ! return apply_operation(src,detail::color_converted_view_fn, DstP>::type >()); } --- 192,199 ---- /// \ingroup ImageViewTransformationsColorConvert /// \brief overload of generic color_converted_view with the default color-converter template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP>::type color_converted_view(const any_image_view& src) { ! return apply_operation(src,detail::color_converted_view_fn, DstP>::type >()); } *************** *** 193,208 **** /// \brief overload of generic color_converted_view with user defined color-converter /// These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP, CC>::type any_color_converted_view(const any_image_view& src,CC cc) { ! return apply_operation(src,detail::color_converted_view_fn, DstP, CC>::type >()); } /// \ingroup ImageViewTransformationsColorConvert /// \brief overload of generic color_converted_view with the default color-converter /// These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP>::type any_color_converted_view(const any_image_view& src) { ! return apply_operation(src,detail::color_converted_view_fn, DstP>::type >()); } /// \} --- 201,216 ---- /// \brief overload of generic color_converted_view with user defined color-converter /// These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP, CC>::type any_color_converted_view(const any_image_view& src,CC cc) { ! return apply_operation(src,detail::color_converted_view_fn, DstP, CC>::type, CC>(cc)); } /// \ingroup ImageViewTransformationsColorConvert /// \brief overload of generic color_converted_view with the default color-converter /// These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) template inline // Models MPL Random Access Container of models of ImageViewConcept ! typename color_converted_view_type, DstP>::type any_color_converted_view(const any_image_view& src) { ! return apply_operation(src,detail::color_converted_view_fn, DstP>::type >()); } /// \}