Main Page
Related Pages
Classes
Files
File List
File Members
src
colormap.hpp
Go to the documentation of this file.
1
5
/* Copyright (c) 2005-2011 Taneli Kalvas. All rights reserved.
6
*
7
* You can redistribute this software and/or modify it under the terms
8
* of the GNU General Public License as published by the Free Software
9
* Foundation; either version 2 of the License, or (at your option)
10
* any later version.
11
*
12
* This library is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this library (file "COPYING" included in the package);
19
* if not, write to the Free Software Foundation, Inc., 51 Franklin
20
* Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*
22
* If you have questions about your rights to use or distribute this
23
* software, please contact Berkeley Lab's Technology Transfer
24
* Department at TTD@lbl.gov. Other questions, comments and bug
25
* reports should be sent directly to the author via email at
26
* taneli.kalvas@jyu.fi.
27
*
28
* NOTICE. This software was developed under partial funding from the
29
* U.S. Department of Energy. As such, the U.S. Government has been
30
* granted for itself and others acting on its behalf a paid-up,
31
* nonexclusive, irrevocable, worldwide license in the Software to
32
* reproduce, prepare derivative works, and perform publicly and
33
* display publicly. Beginning five (5) years after the date
34
* permission to assert copyright is obtained from the U.S. Department
35
* of Energy, and subject to any subsequent five (5) year renewals,
36
* the U.S. Government is granted for itself and others acting on its
37
* behalf a paid-up, nonexclusive, irrevocable, worldwide license in
38
* the Software to reproduce, prepare derivative works, distribute
39
* copies to the public, perform publicly and display publicly, and to
40
* permit others to do so.
41
*/
42
43
#ifndef COLORMAP_HPP
44
#define COLORMAP_HPP 1
45
46
47
#include <cairo.h>
48
#include <vector>
49
#include "
palette.hpp
"
50
#include "
graph.hpp
"
51
#include "
coordmapper.hpp
"
52
#include "
interpolation.hpp
"
53
54
55
56
enum
interpolation_e
{
57
INTERPOLATION_CLOSEST
= 0,
58
INTERPOLATION_BILINEAR
,
59
INTERPOLATION_BICUBIC
60
};
61
62
63
enum
zscale_e
{
64
ZSCALE_LINEAR
= 0,
65
ZSCALE_LOG
,
66
ZSCALE_RELLOG
67
};
68
69
74
class
Colormap
:
public
Graph
{
75
76
Palette
_palette;
78
interpolation_e
_interpolation;
79
zscale_e
_zscale;
81
double
_zmin;
82
double
_zmax;
84
double
_datarange[4];
85
size_t
_n;
86
size_t
_m;
88
std::vector<double> _f;
90
Interpolation2D
*_intrp;
92
void
make_data_interpolation(
void
);
93
94
void
plot_to_image_surface( cairo_surface_t *surface,
const
Coordmapper
*cm,
int
plim[4] );
95
96
public
:
97
100
Colormap
();
101
104
Colormap
(
const
Colormap
&colormap );
105
113
Colormap
(
const
double
datarange[4],
size_t
n,
size_t
m,
114
const
std::vector<double> &data );
115
118
virtual
~Colormap
();
119
129
void
set_data
(
const
double
datarange[4],
size_t
n,
size_t
m,
130
const
std::vector<double> &data );
131
137
void
set_interpolation
(
interpolation_e
interpolation );
138
153
void
set_zscale
(
zscale_e
zscale );
154
164
virtual
void
plot
( cairo_t *cairo,
const
Coordmapper
*cm,
const
double
range[4] );
165
170
virtual
void
plot_sample
( cairo_t *cairo,
double
x,
double
y,
double
width,
double
height );
171
177
virtual
void
get_bbox
(
double
bbox[4] );
178
181
void
set_palette
(
const
Palette
&
palette
);
182
185
Palette
&
palette
(
void
) {
return
( _palette ); }
186
189
void
get_zrange
(
double
&min,
double
&max )
const
;
190
196
void
set_zrange
(
double
min,
double
max );
197
200
double
get_value
(
double
x,
double
y )
const
;
201
};
202
203
204
#endif
Reference manual for Ion Beam Simulator 1.0.5b
Generated on by
Doxygen
1.8.2 on Fri Sep 21 2012 16:46:41.