display ruler, line/point evaluation
[gpiv.git] / src / display_interface.h
blob70522d1c30c1b11742c7efed1b792828e36a33cc
1 /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 c-style: "K&R" -*- */
3 /*----------------------------------------------------------------------
5 gpiv - Graphic program for Particle Image Velocimetry, based on gtk/gnome
6 libraries.
8 Copyright (C) 2002 Gerber van der Graaf
10 This file is part of gpiv.
12 Gpiv is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2, or (at your option)
15 any later version.
17 This program is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
22 You should have received a copy of the GNU General Public License
23 along with this program; if not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 ----------------------------------------------------------------------*/
29 * widgets prototypes of display
30 * $Log: display_interface.h,v $
31 * Revision 1.2 2003-06-27 13:47:26 gerber
32 * display ruler, line/point evaluation
34 * Revision 1.1.1.1 2003/06/17 17:10:52 gerber
35 * Imported gpiv
39 #ifndef DISPLAY_INTERFACE_H
40 #define DISPLAY_INTERFACE_H
42 #include "console_interface.h"
45 typedef struct _Image Image;
46 struct _Image {
47 GtkWidget *img_display1;
48 GtkWidget *img_display2;
49 ImagePar image_par;
50 unsigned char **img1;
51 unsigned char **img2;
54 * when image is displayed at gdk window
56 /* guchar rgbbuf_img[IMAGE_WIDTH_MAX * IMAGE_HEIGHT_MAX * 3]; */
57 guchar *graybuf_img;
58 gint rgb_img_width;
61 * when image is displayed at gnome canvas
63 /* GnomeCanvasItem *gci_img1; */
64 /* GnomeCanvasItem *gci_img2; */
65 gboolean exist_img;
69 typedef struct _Intreg Intreg;
70 struct _Intreg {
71 gint row_start_old;
72 gint row_start;
73 gint row_end;
74 gint col_start_old;
75 gint col_start;
76 gint col_end;
77 gint int_size_1;
78 gint int_size_2;
79 gint int_shift;
80 gint pre_shift_row;
81 gint pre_shift_col;
82 PivData data;
83 gboolean exist;
84 GnomeCanvasItem *gci_intreg1[MAX_DATA][MAX_DATA];
85 GnomeCanvasItem *gci_intreg2[MAX_DATA][MAX_DATA];
89 typedef struct _GpivData GpivData;
90 struct _GpivData {
91 PivEvalPar piv_eval_par;
92 PivData piv_data;
93 PivData piv_data_scaled;
94 gboolean exist_piv;
95 gboolean saved_piv;
96 gboolean scaled_piv;
97 GnomeCanvasItem *gci_vector[MAX_DATA][MAX_DATA];
100 Covariance cov[MAX_DATA][MAX_DATA];
101 gboolean exist_cov;
103 float **intreg1[MAX_DATA][MAX_DATA];
104 float **intreg2[MAX_DATA][MAX_DATA];
106 PivValidPar piv_valid_par;
107 gboolean exist_valid;
109 PivPostPar piv_post_par;
110 ScalarData vor_data;
111 ScalarData vor_data_scaled;
112 gboolean exist_vor;
113 gboolean exist_vor_scaled;
114 gboolean saved_vor;
115 GnomeCanvasItem *gci_scalar_vor[MAX_DATA][MAX_DATA];
117 ScalarData sstrain_data;
118 ScalarData sstrain_data_scaled;
119 gboolean exist_sstrain;
120 gboolean exist_sstrain_scaled;
121 gboolean saved_sstrain;
122 GnomeCanvasItem *gci_scalar_sstrain[MAX_DATA][MAX_DATA];
124 ScalarData nstrain_data;
125 ScalarData nstrain_data_scaled;
126 gboolean exist_nstrain;
127 gboolean exist_nstrain_scaled;
128 gboolean saved_nstrain;
129 GnomeCanvasItem *gci_scalar_nstrain[MAX_DATA][MAX_DATA];
133 typedef struct _Display Display;
134 struct _Display {
135 char fname_base[MAX_CHARS];
136 gint count;
138 GtkWidget *mwin; /* main window for display */
139 GtkWidget *table;
140 GtkWidget *button_origin;
141 GtkWidget *arrow_origin;
142 GtkWidget *hruler;
143 GtkWidget *vruler;
144 GtkWidget *scrolledwindow;
145 GtkObject *scrolledwindow_hadj;
146 GtkObject *scrolledwindow_vadj;
147 GtkWidget *canvas;
148 GtkWidget *view_options;
149 GtkWidget *appbar;
150 GtkWidget *nav_ebox;
152 gboolean stretch_window_tmp;
153 gint zoom_index;
154 gfloat zoom_factor_old;
155 gfloat zoom_factor;
156 gint vector_scale;
157 gchar msg_display_default[MAX_CHARS];
159 GtkWidget *display_menu;
160 GnomeCanvasItem *gci_bg;
163 Image img;
164 Intreg intreg;
165 GpivData gpd;
167 gboolean display_img1;
168 gboolean display_img2;
169 gboolean display_intregs;
170 gboolean display_piv;
171 gboolean display_vor;
172 gboolean display_sstrain;
173 gboolean display_nstrain;
175 gboolean index_old;
176 gint index_x_old;
177 gint index_y_old;
178 gint xgrab_first;
179 gint ygrab_first;
184 Display *
185 create_display (gchar *fname,
186 gint buf,
187 GpivConsole * gpiv);
190 * widget for display menu
192 GtkWidget
193 *create_display_menu (Display * disp);
197 * widgets for create_img_display
199 GtkWidget *create_img_display (gchar *fname,
200 ImagePar image_par);
201 GtkWidget *img_display_window;
202 GtkWidget *darea;
205 #endif /* DISPLAY_INTERFACE_H */