00001 /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 c-style: "K&R" -*- */ 00002 00003 /*----------------------------------------------------------------------------- 00004 00005 libgpiv - library for Particle Image Velocimetry 00006 00007 Copyright (C) 2002, 2003, 2004 Gerber van der Graaf 00008 00009 This file is part of libgpiv. 00010 00011 Libgpiv is free software; you can redistribute it and/or modify 00012 it under the terms of the GNU General Public License as published by 00013 the Free Software Foundation; either version 2, or (at your option) 00014 any later version. 00015 00016 This program is distributed in the hope that it will be useful, 00017 but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 GNU General Public License for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with this program; if not, write to the Free Software Foundation, 00023 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00024 00025 -----------------------------------------------------------------------------*/ 00026 00175 #ifndef __LIBGPIV_H__ 00176 #define __LIBGPIV_H__ 00177 00178 /* 00179 * Includes external library headers to be used in Libgpiv 00180 */ 00181 #include <stdlib.h> 00182 #include <stdio.h> 00183 #include <stdarg.h> 00184 00185 #include <math.h> 00186 #include <gsl/gsl_fit.h> 00187 #include <assert.h> 00188 00189 #include <time.h> 00190 #include <fftw3.h> 00191 #include <hdf5.h> 00192 #include <glib-2.0/glib.h> 00193 #include <png.h> 00194 00195 #ifdef ENABLE_CAM 00196 #include <libraw1394/raw1394.h> 00197 #include <libdc1394/dc1394_control.h> 00198 #endif /* ENABLE_CAM */ 00199 00200 #ifdef ENABLE_TRIG 00201 #include <rtai.h> 00202 #include <fcntl.h> 00203 #endif /* ENABLE_TRIG */ 00204 00205 00206 /* 00207 * General macro definitions 00208 */ 00209 00210 #define USE_FFTW3 00211 00212 #define LIBNAME "LIBGPIV" 00213 #define GPIV_SYSTEM_RSC_FILE "gpiv.conf" 00214 #define GPIV_HOME_RSC_FILE ".gpivrc" 00215 #define GPIV_NIMG_MAX 40 00216 #define GPIV_MAX_CHARS 80 00217 #define GPIV_MAX_LINES 6400 00218 #define GPIV_MAX_LINES_C 20 00219 #define GPIV_MAX_IMG_SIZE 2000 00220 #define GPIV_MAX_IMG_DEPTH 16 00221 #define GPIV_MIN_INTERR_SIZE 4 00222 #define GPIV_MAX_INTERR_SIZE 128 00223 #define GPIV_NBINS_MAX 100 00224 #define GPIV_NBINS_DEFAULT 10 00225 #define GPIV_SNR_NAN 99.0 00227 #define IA_GAUSS_WEIGHTING 00228 #define SPOF_FILTERING 00231 #ifndef SYSTEM_RSC_DIR 00232 #define SYSTEM_RSC_DIR "/etc" 00233 #endif /* SYSTEM_RSC_DIR */ 00234 00235 00236 /* 00237 * Data structure declarations 00238 */ 00239 00240 typedef struct __GpivPivData GpivPivData; 00249 struct __GpivPivData { 00250 guint nx; 00251 guint ny; 00252 guint nz; 00255 gfloat **point_x; 00256 gfloat **point_y; 00257 gfloat **point_z; 00259 gfloat **dx; 00260 gfloat **dy; 00261 gfloat **dz; 00263 gfloat **snr; 00268 gint **peak_no; 00271 gfloat **scalar; 00273 guint count; 00275 gfloat mean_dx; 00276 gfloat sdev_dx; 00277 gfloat min_dx; 00278 gfloat max_dx; 00280 gfloat mean_dy; 00281 gfloat sdev_dy; 00282 gfloat min_dy; 00283 gfloat max_dy; 00285 gfloat mean_dz; 00286 gfloat sdev_dz; 00287 gfloat min_dz; 00288 gfloat max_dz; 00291 gboolean scale; 00292 gboolean scale__set; 00294 gchar *comment; 00295 }; 00296 00297 00298 typedef struct __GpivScalarData GpivScalarData; 00303 struct __GpivScalarData { 00304 guint nx; 00305 guint ny; 00308 gfloat **point_x; 00309 gfloat **point_y; 00310 gfloat **scalar; 00312 gint **flag; 00315 gboolean scale; 00316 gboolean scale__set; 00318 gchar *comment; 00319 }; 00320 00321 00322 typedef struct __GpivBinData GpivBinData; 00323 00330 struct __GpivBinData { 00331 guint nbins; 00334 guint *count; 00335 gfloat *bound; 00336 gfloat *centre; 00337 gfloat min; 00338 gfloat max; 00341 gchar *comment; 00342 }; 00343 00344 00345 /* 00346 * Includes Libgpiv library headers 00347 */ 00348 00349 #ifdef ENABLE_CAM 00350 #include <gpiv/gpiv-cam.h> 00351 #endif /* ENABLE_CAM */ 00352 00353 #ifdef ENABLE_TRIG 00354 #include <gpiv/gpiv-trig.h> 00355 #endif /* ENABLE_TRIG */ 00356 00357 #include <gpiv/gpiv-img.h> 00358 #include <gpiv/gpiv-img_utils.h> 00359 #include <gpiv/gpiv-imgproc.h> 00360 #include <gpiv/gpiv-piv.h> 00361 #include <gpiv/gpiv-piv_par.h> 00362 #include <gpiv/gpiv-piv_utils.h> 00363 #include <gpiv/gpiv-valid.h> 00364 #include <gpiv/gpiv-valid_par.h> 00365 #include <gpiv/gpiv-post.h> 00366 #include <gpiv/gpiv-post_par.h> 00367 #include <gpiv/gpiv-post_utils.h> 00368 #include <gpiv/gpiv-io.h> 00369 #include <gpiv/gpiv-utils.h> 00370 #include <gpiv/gpiv-utils_alloc.h> 00371 00372 00373 #ifdef GPIV_ENABLE_DEPRECATED 00374 #include <gpiv/back_intface.h> 00375 #endif 00376 00377 00378 #endif /* __LIBGPIV_H__ */