Milena (Olena)
User documentation 2.0a Id
Main Page
Related Pages
Modules
Namespaces
Classes
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerator
Groups
Pages
is_pixel.hh
1
// Copyright (C) 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
#ifndef MLN_WORLD_INTER_PIXEL_IS_PIXEL_HH
27
# define MLN_WORLD_INTER_PIXEL_IS_PIXEL_HH
28
32
33
# include <mln/core/concept/function.hh>
34
# include <mln/core/image/dmorph/image_if.hh>
35
# include <mln/core/point.hh>
36
37
38
namespace
mln
39
{
40
41
namespace
world
42
{
43
44
namespace
inter_pixel
45
{
46
47
struct
is_pixel :
public
Function_v2b< is_pixel >
48
{
49
typedef
bool
result;
50
51
template
<
typename
P>
52
bool
operator()(
const
Gpoint<P>& p)
const
;
53
54
template
<
typename
P>
55
bool
operator()(
const
Site_Proxy<P>& p)
const
;
56
};
57
58
59
# ifndef MLN_INCLUDE_ONLY
60
61
template
<
typename
P>
62
inline
63
bool
64
is_pixel::operator()(
const
Gpoint<P>& p_)
const
65
{
66
const
P& p = exact(p_);
67
const
unsigned
n = P::dim;
68
for
(
unsigned
i = 0; i < n; ++i)
69
if
(p[i] % 2 == 1)
70
return
false
;
71
return
true
;
72
}
73
74
template
<
typename
P>
75
inline
76
bool
77
is_pixel::operator()(
const
Site_Proxy<P>& p)
const
78
{
79
mlc_is_a(mln_site(P), Gpoint)::check();
80
return
this->operator()(exact(p).to_site());
81
}
82
83
# endif // ! MLN_INCLUDE_ONLY
84
85
}
// end of namespace mln::world::inter_pixel
86
87
}
// end of namespace mln::world
88
89
}
// end of namespace mln
90
91
#endif // ! MLN_WORLD_INTER_PIXEL_IS_PIXEL_HH
mln
world
inter_pixel
is_pixel.hh
Generated on Thu Nov 8 2012 10:58:08 for Milena (Olena) by
1.8.2-20120930