root/gilx/trunk/include/i3dea/gil/palette_image.hpp

Revision 6, 2.6 KB (checked in by anonymous, 13 months ago)
  • Property svn:mime-type set to text/plain
Line 
1/*
2 *   Boost Software License - Version 1.0 - August 17th, 2003
3 *
4 *  Permission is hereby granted, free of charge, to any person or organization
5 *  obtaining a copy of the software and accompanying documentation covered by
6 *  this license (the "Software") to use, reproduce, display, distribute,
7 *  execute, and transmit the Software, and to prepare derivative works of the
8 *  Software, and to permit third-parties to whom the Software is furnished to
9 *  do so, all subject to the following:
10 *
11 *  The copyright notices in the Software and this entire statement, including
12 *  the above license grant, this restriction and the following disclaimer,
13 *  must be included in all copies of the Software, in whole or in part, and
14 *  all derivative works of the Software, unless such copies or derivative
15 *  works are solely in the form of machine-executable object code generated by
16 *  a source language processor.
17 *
18 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 *  FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
21 *  SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
22 *  FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
23 *  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 *  DEALINGS IN THE SOFTWARE.
25 */
26
27///@file palette_image.hpp
28///@since Aug 13, 2008
29///@author yoyohead
30///
31
32#pragma once
33#ifndef PALETTE_IMAGE_HPP_INCLUDED
34#define PALETTE_IMAGE_HPP_INCLUDED
35
36#include <i3dea/gil/palette_function.hpp>
37
38#include <i3dea/gil/transform_view.hpp>
39
40#include <boost/mpl/assert.hpp>
41
42namespace i3dea{
43
44namespace result_of {
45
46    template<class View, class RanIt>
47    struct make_palette_view
48    {
49    private:
50        typedef i3dea::result_of::transform_view<
51            i3dea::palette_function<RanIt>,
52            View> _impl;
53    public:
54        //You may get an error 'no class template named add_deref..'
55        //if you pass an *image* instead of a view. Make sure you
56        //pass a view.
57        typedef typename _impl::type type;
58
59        static type make(View const & view, RanIt it) {
60            return _impl::make(i3dea::make_palette(it), view);
61        }
62    };
63}
64
65
66template<class View, class RanIt>
67typename result_of::make_palette_view<View, RanIt>::type
68make_palette_view(View const& v, RanIt p){
69    return result_of::make_palette_view<View, RanIt>::make(v,p);
70}
71
72} //::i3dea
73
74#endif //PALETTE_IMAGE_HPP_INCLUDED
75
76
Note: See TracBrowser for help on using the browser.