Milena (Olena)
User documentation 2.0a Id
Main Page
Related Pages
Modules
Namespaces
Classes
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerator
Groups
Pages
hsi.hh
1
// Copyright (C) 2008, 2009 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
#include <mln/value/ops.hh>
27
28
#include <mln/value/concept/vectorial.hh>
29
#include <mln/value/int_u.hh>
30
#include <mln/algebra/vec.hh>
31
32
#include <mln/value/float01_8.hh>
33
34
#ifndef MLN_VALUE_HSI_HH
35
# define MLN_VALUE_HSI_HH
36
37
38
namespace
mln
39
{
40
41
namespace
value
42
{
43
44
template
<
typename
E>
45
struct
HSI
46
{
47
};
48
49
template
<
typename
H,
typename
S,
typename
I>
50
class
hsi_ :
public
HSI< hsi_<H,S,I> >
51
{
52
public
:
53
54
typedef
H h_type;
55
typedef
S s_type;
56
typedef
I i_type;
57
59
hsi_()
60
{
61
}
62
64
hsi_(
const
H& hue,
const
S& sat,
const
I& inty)
65
: hue_(hue),
66
sat_(sat),
67
int_(inty)
68
{
69
}
70
72
const
H& hue()
const
73
{
74
return
this->hue_;
75
}
76
const
S& sat()
const
77
{
78
return
this->sat_;
79
}
80
const
I& inty()
const
81
{
82
return
this->int_;
83
}
84
86
H& hue()
87
{
88
return
this->hue_;
89
}
90
S& sat()
91
{
92
return
this->sat_;
93
}
94
I& inty()
95
{
96
return
this->int_;
97
}
98
99
private
:
100
H hue_;
101
S sat_;
102
I int_;
103
};
104
105
typedef
hsi_<float, float, float> hsi_f;
106
107
typedef
hsi_<double, double, double> hsi_d;
108
109
}
// end of namespace mln::value
110
111
}
// end of namespace mln
112
113
#endif // ! MLN_VALUE_HSI_HH
mln
value
hsi.hh
Generated on Thu Nov 8 2012 10:58:07 for Milena (Olena) by
1.8.2-20120930