Milena (Olena)
User documentation 2.0a Id
Main Page
Related Pages
Modules
Namespaces
Classes
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerator
Groups
Pages
rgb8_to_rgbn.hh
1
// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
2
//
3
// This file is part of Olena.
4
//
5
// Olena is free software: you can redistribute it and/or modify it under
6
// the terms of the GNU General Public License as published by the Free
7
// Software Foundation, version 2 of the License.
8
//
9
// Olena is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
16
//
17
// As a special exception, you may use this file as part of a free
18
// software project without restriction. Specifically, if other files
19
// instantiate templates or use macros or inline functions from this
20
// file, or you compile this file and link it with other files to produce
21
// an executable, this file does not by itself cause the resulting
22
// executable to be covered by the GNU General Public License. This
23
// exception does not however invalidate any other reasons why the
24
// executable file might be covered by the GNU General Public License.
25
26
#ifndef MLN_FUN_V2V_RGB8_TO_RGBN_HH
27
# define MLN_FUN_V2V_RGB8_TO_RGBN_HH
28
29
# include <mln/core/concept/function.hh>
30
# include <mln/value/rgb8.hh>
31
# include <mln/value/rgb.hh>
32
# include <mln/core/contract.hh>
33
37
38
39
namespace
mln
40
{
41
42
namespace
fun
43
{
44
45
namespace
v2v
46
{
47
48
54
//
55
template
<
unsigned
n>
56
struct
rgb8_to_rgbn
:
Function_v2v
< rgb8_to_rgbn<n> >
57
{
58
typedef
value::rgb8
argument
;
59
typedef
value::rgb<n>
result
;
60
67
//
68
result
operator()
(
const
argument
& c)
const
;
69
70
};
71
72
73
# ifndef MLN_INCLUDE_ONLY
74
80
//
81
template
<
unsigned
n>
82
typename
rgb8_to_rgbn<n>::result
83
rgb8_to_rgbn<n>::operator()
(
const
argument
& c)
const
84
{
85
mln_precondition(8 > n);
86
87
unsigned
size = pow(2,(8-n));
88
/*
89
std::cout << "c : " << c << std::endl;
90
std::cout << "red : " << c.red() << std::endl;
91
std::cout << "size : " << size << std::endl;
92
std::cout << "res : " << (c.red() / size) << std::endl;
93
std::cout << "max : " << (mln_max(mln::value::int_u<n>))<< std::endl;
94
*/
95
result
res(c.
red
() / size, c.green() / size, c.blue() / size);
96
97
return
res;
98
}
99
100
# endif // ! MLN_INCLUDE_ONLY
101
102
103
}
// end of namespace mln::fun::v2v
104
105
}
// end of namespace mln::fun
106
107
}
// end of namespace mln
108
109
#endif // ! MLN_FUN_V2V_RGB8_TO_RGBN_HH
mln
fun
v2v
rgb8_to_rgbn.hh
Generated on Thu Nov 8 2012 10:58:20 for Milena (Olena) by
1.8.2-20120930