updated copyright statement
[gpiv.git] / src / piveval_interface.h
blob989b4c52f8c6519a40c9149deef97ac479ec76da
1 /*----------------------------------------------------------------------
3 gpiv - Graphic program for Particle Image Velocimetry, based on gtk/gnome
4 libraries.
6 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
7 Gerber van der Graaf <gerber_graaf@users.sourceforge.net>
9 This file is part of gpiv.
11 Gpiv is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2, or (at your option)
14 any later version.
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software Foundation,
23 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 ----------------------------------------------------------------------*/
28 * PIV evaluation
29 * $Log: piveval_interface.h,v $
30 * Revision 1.12 2008-04-28 12:00:57 gerber
31 * hdf-formatted files are now with .hdf extension (previously: .gpi)
33 * Revision 1.11 2007-11-23 16:24:08 gerber
34 * release 0.5.0: Kafka
36 * Revision 1.10 2007-06-06 17:00:48 gerber
37 * Retreives images/data from URI using Gnome Virtual File System.
39 * Revision 1.9 2007-02-16 17:09:49 gerber
40 * added Gauss weighting on I.A. and SPOF filtering (on correlation function)
42 * Revision 1.8 2007-01-29 11:27:44 gerber
43 * added image formats png, gif, tif png, bmp, improved buffer display
45 * Revision 1.7 2006/01/31 14:28:12 gerber
46 * version 0.3.0
48 * Revision 1.5 2005/01/19 15:53:42 gerber
49 * Initiation of Data Acquisition (DAC); trigerring of lasers and camera
50 * by using RTAI and Realtime Linux, recording images from IEEE1394
51 * (Firewire) IIDC compliant camera's
53 * Revision 1.4 2004/10/15 19:24:05 gerber
54 * GPIV_ and Gpiv prefix to defines and structure names of libgpiv
56 * Revision 1.3 2004/06/14 21:19:23 gerber
57 * Image depth up to 16 bits.
58 * Improvement "single int" and "drag int" in Eval tab.
59 * Viewer's pop-up menu.
60 * Adaption for gpiv_matrix_* and gpiv_vector_*.
61 * Resizing console.
62 * See Changelog for further info.
64 * Revision 1.2 2003/09/01 11:17:15 gerber
65 * improved monitoring of interrogation process
67 * Revision 1.1.1.1 2003/06/17 17:10:52 gerber
68 * Imported gpiv
72 #ifndef GPIV_PIVEVAL_INTERFACE_H
73 #define GPIV_PIVEVAL_INTERFACE_H
75 typedef struct _Monitor Monitor;
76 struct _Monitor {
77 gint int_size_old;
78 gint rgb_int_width;
80 guchar *rgbbuf_int1;
81 GnomeCanvasItem *gci_int1;
82 GnomeCanvasItem *gci_int1_background;
84 guchar *rgbbuf_int2;
85 GnomeCanvasItem *gci_int2;
86 GnomeCanvasItem *gci_int2_background;
88 gint cov_size_old;
89 gint rgb_cov_width;
90 guchar *rgbbuf_cov;
91 GnomeCanvasItem *gci_cov;
92 GnomeCanvasItem *gci_background_cov;
94 GpivPivData *pi_da;
95 GnomeCanvasItem *gci_vec_background;
96 GnomeCanvasItem *gci_vec;
98 gint vector_scale;
99 gfloat zoom_factor;
100 /* const */double affine[6];
101 /* const */double affine_vl[6];
106 typedef struct _PivEval PivEval;
107 struct _PivEval {
108 GtkWidget *vbox_label;
109 GtkWidget *label_title;
111 GtkWidget *vbox_scroll;
112 GtkWidget *scrolledwindow;
113 GtkWidget *viewport;
115 GtkWidget *vbox_viewport1;
116 GtkWidget *table;
117 GtkWidget *table_aoi;
118 GtkWidget *label_colstart;
119 GtkWidget *label_colend;
120 GtkWidget *label_preshiftcol;
121 GtkWidget *label_rowstart;
122 GtkWidget *label_rowend;
123 GtkWidget *label_preshiftrow;
124 GtkObject *spinbutton_adj_colstart;
125 GtkWidget *spinbutton_colstart;
126 GtkObject *spinbutton_adj_colend;
127 GtkWidget *spinbutton_colend;
128 GtkObject *spinbutton_adj_preshiftcol;
129 GtkWidget *spinbutton_preshiftcol;
130 GtkObject *spinbutton_adj_rowstart;
131 GtkWidget *spinbutton_rowstart;
132 GtkObject *spinbutton_adj_rowend;
133 GtkWidget *spinbutton_rowend;
134 GtkObject *spinbutton_adj_preshiftrow;
135 GtkWidget *spinbutton_preshiftrow;
137 GtkWidget *hbox_intreg;
138 GtkWidget *frame_2;
139 GtkWidget *vbox_intsize_f;
140 GSList *int_size_f_group;
141 GtkObject *spinbutton_adj_intsize_f;
142 GtkWidget *spinbutton_intsize_f;
143 /* GtkWidget *radiobutton_intsize_f_1; */
144 GtkWidget *radiobutton_intsize_f_2;
145 GtkWidget *radiobutton_intsize_f_3;
146 GtkWidget *radiobutton_intsize_f_4;
147 GtkWidget *radiobutton_intsize_f_5;
149 GtkWidget *frame_3;
150 GtkWidget *vbox_intsize_i;
151 GSList *int_size_i_group/* = NULL */;
152 GtkObject *spinbutton_adj_intsize_i;
153 GtkWidget *spinbutton_intsize_i;
154 /* GtkWidget *radiobutton_intsize_i_1; */
155 GtkWidget *radiobutton_intsize_i_2;
156 GtkWidget *radiobutton_intsize_i_3;
157 GtkWidget *radiobutton_intsize_i_4;
158 GtkWidget *radiobutton_intsize_i_5;
160 GtkWidget *frame_4;
161 GtkWidget *vbox_shift;
162 GSList *int_shift_group;
163 GtkObject *spinbutton_adj_intshift;
164 GtkWidget *spinbutton_intshift;
165 GtkWidget *radiobutton_intshift_1;
166 GtkWidget *radiobutton_intshift_2;
167 GtkWidget *radiobutton_intshift_3;
168 GtkWidget *radiobutton_intshift_4;
169 GtkWidget *radiobutton_intshift_5;
171 GtkWidget *frame_1;
172 GtkWidget *vbox_mouseselect;
174 * GSList *mouse_sel_group; moved to console
176 GtkWidget *radiobutton_mouse_0;
177 GtkWidget *radiobutton_mouse_1;
178 GtkWidget *radiobutton_mouse_2;
179 GtkWidget *radiobutton_mouse_3;
180 GtkWidget *radiobutton_mouse_4;
181 GtkWidget *radiobutton_mouse_5;
182 GtkWidget *radiobutton_mouse_6;
184 /*----------------------------------------------------------------
185 * Monitor
187 Monitor *monitor;
188 GtkWidget *frame_monitor;
189 GtkWidget *table_monitor;
191 GtkWidget *frame_monitor_int1;
192 GtkWidget *canvas_monitor_int1;
194 GtkWidget *frame_monitor_int2;
195 GtkWidget *canvas_monitor_int2;
197 GtkWidget *frame_monitor_cov;
198 GtkWidget *canvas_monitor_cov;
200 GtkWidget *frame_monitor_vec;
201 GtkWidget *canvas_monitor_vec;
204 GtkWidget *hbox_monitor;
205 GtkWidget *checkbutton_monitor;
206 GtkWidget *label_monitor_zoom;
207 GtkObject *spinbutton_adj_monitor_zoom;
208 GtkWidget *spinbutton_monitor_zoom;
209 GtkWidget *label_monitor_vectorscale;
210 GtkObject *spinbutton_adj_monitor_vectorscale;
211 GtkWidget *spinbutton_monitor_vectorscale;
213 /*----------------------------------------------------------------*/
215 GtkWidget *frame_5;
216 GtkWidget *vbox10;
217 GSList *vbox10_group;
218 GtkWidget *radiobutton_fit_none;
219 GtkWidget *radiobutton_fit_gauss;
220 GtkWidget *radiobutton_fit_power;
221 GtkWidget *radiobutton_fit_gravity;
222 GtkWidget *frame_6;
223 GtkWidget *vbox11;
224 GSList *vbox11_group;
225 GtkWidget *radiobutton_peak_1;
226 GtkWidget *radiobutton_peak_2;
227 GtkWidget *radiobutton_peak_3;
228 GtkWidget *frame_7;
229 GtkWidget *vbox12;
230 GSList *vbox12_group;
231 GtkWidget *radiobutton_imgdeform;
232 GtkWidget *radiobutton_centraldiff;
233 GtkWidget *radiobutton_zerooff;
234 GtkWidget *radiobutton_weightkernel;
235 GtkWidget *frame_8;
236 GtkWidget *vbox13;
237 GSList *vbox13_group;
238 GtkWidget *radiobutton_cross_1;
239 GtkWidget *radiobutton_cross_2;
240 GtkWidget *checkbutton_weight_ia;
241 GtkWidget *checkbutton_spof;
242 GtkWidget *button;
246 PivEval *
247 create_piveval (GnomeApp *main_window,
248 GtkWidget *container);
251 #endif /* GPIV_PIVEVAL_INTERFACE_H */