Main Page
Related Pages
Classes
Files
File List
File Members
src
gtkplotter.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 GTKPLOTTER_HPP
44
#define GTKPLOTTER_HPP 1
45
46
47
#include <cairo.h>
48
#include <string>
49
#include <list>
50
#include <gtk/gtk.h>
51
52
#include "
geometry.hpp
"
53
#include "
scalarfield.hpp
"
54
#include "
vectorfield.hpp
"
55
#include "
particledatabase.hpp
"
56
#include "
particlediagplot.hpp
"
57
#include "
fielddiagplot.hpp
"
58
59
66
class
GTKPlotter
{
67
68
static
bool
_gtk_initialized;
69
70
std::list<class GTKWindow *> _windows;
71
72
const
Geometry
*_geom;
73
const
ScalarField
*_epot;
74
const
ScalarField
*_scharge;
75
const
ScalarField
*_tdens;
76
const
VectorField
*_efield;
77
const
VectorField
*_bfield;
78
const
ParticleDataBase
*_pdb;
79
80
public
:
81
82
GTKPlotter
(
int
*argc,
char
***argv );
83
84
~GTKPlotter
();
85
86
void
run
();
87
88
const
Geometry
*
get_geometry
(
void
)
const
;
89
const
ScalarField
*
get_epot
(
void
)
const
;
90
const
VectorField
*
get_efield
(
void
)
const
;
91
const
ScalarField
*
get_scharge
(
void
)
const
;
92
const
ScalarField
*
get_trajdens
(
void
)
const
;
93
const
VectorField
*
get_bfield
(
void
)
const
;
94
const
ParticleDataBase
*
get_particledatabase
(
void
)
const
;
95
96
void
set_geometry
(
const
Geometry
*geom );
97
void
set_epot
(
const
ScalarField
*epot );
98
void
set_efield
(
const
VectorField
*efield );
99
void
set_scharge
(
const
ScalarField
*scharge );
100
void
set_trajdens
(
const
ScalarField
*tdens );
101
void
set_bfield
(
const
VectorField
*bfield );
102
void
set_particledatabase
(
const
ParticleDataBase
*pdb );
103
104
GTKWindow
*
new_geometry_plot_window
(
void
);
105
GTKWindow
*
new_particle_plot_window
(
coordinate_axis_e
axis,
double
level,
106
particle_diag_plot_type_e
type,
107
trajectory_diagnostic_e
diagx,
108
trajectory_diagnostic_e
diagy );
109
GTKWindow
*
new_field_plot_window
(
size_t
N,
const
Vec3D
&x1,
const
Vec3D
&x2,
110
const
field_diag_type_e
diag[2],
111
const
field_loc_type_e
loc[2] );
112
113
//GTKWindow *new_window( void );
114
void
delete_window
(
class
GTKWindow
*window );
115
};
116
117
118
#endif
119
Reference manual for Ion Beam Simulator 1.0.5b
Generated on by
Doxygen
1.8.1.2 on Mon Sep 24 2012 12:38:28.