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 00185 #ifndef __LIBGPIV_H__ 00186 #define __LIBGPIV_H__ 00187 00188 /* 00189 * Includes external library headers to be used in Libgpiv 00190 */ 00191 #include <stdlib.h> 00192 #include <stdio.h> 00193 #include <stdarg.h> 00194 00195 #include <math.h> 00196 #include <gsl/gsl_fit.h> 00197 #include <assert.h> 00198 00199 #include <time.h> 00200 #include <fftw3.h> 00201 #include <hdf5.h> 00202 #include <glib-2.0/glib.h> 00203 #include <png.h> 00204 00205 #ifdef ENABLE_CAM 00206 #include <libraw1394/raw1394.h> 00207 #include <libdc1394/dc1394_control.h> 00208 #endif /* ENABLE_CAM */ 00209 00210 #ifdef ENABLE_TRIG 00211 #include <rtai.h> 00212 #include <fcntl.h> 00213 #endif /* ENABLE_TRIG */ 00214 00215 00216 /* 00217 * General macro definitions 00218 */ 00219 00220 #define USE_FFTW3 00221 00222 #define LIBNAME "LIBGPIV" 00223 #define GPIV_SYSTEM_RSC_FILE "gpiv.conf" 00224 #define GPIV_HOME_RSC_FILE ".gpivrc" 00225 #define GPIV_NIMG_MAX 40 00226 #define GPIV_MAX_CHARS 80 00227 #define GPIV_MAX_LINES 6400 00228 #define GPIV_MAX_LINES_C 20 00229 #define GPIV_MAX_IMG_SIZE 2000 00230 #define GPIV_MAX_IMG_DEPTH 16 00231 #define GPIV_MIN_INTERR_SIZE 4 00232 #define GPIV_MAX_INTERR_SIZE 128 00233 #define GPIV_NBINS_MAX 100 00234 #define GPIV_NBINS_DEFAULT 10 00235 #define GPIV_SNR_NAN 99.0 00237 #define IA_GAUSS_WEIGHTING 00238 #define SPOF_FILTERING 00241 #ifndef SYSTEM_RSC_DIR 00242 #define SYSTEM_RSC_DIR "/etc" 00243 #endif /* SYSTEM_RSC_DIR */ 00244 00245 00246 /* 00247 * Data structure declarations 00248 */ 00249 00250 typedef struct __GpivPivData GpivPivData; 00259 struct __GpivPivData { 00260 guint nx; 00261 guint ny; 00262 guint nz; 00265 gfloat **point_x; 00266 gfloat **point_y; 00267 gfloat **point_z; 00269 gfloat **dx; 00270 gfloat **dy; 00271 gfloat **dz; 00273 gfloat **snr; 00278 gint **peak_no; 00281 gfloat **scalar; 00283 guint count; 00285 gfloat mean_dx; 00286 gfloat sdev_dx; 00287 gfloat min_dx; 00288 gfloat max_dx; 00290 gfloat mean_dy; 00291 gfloat sdev_dy; 00292 gfloat min_dy; 00293 gfloat max_dy; 00295 gfloat mean_dz; 00296 gfloat sdev_dz; 00297 gfloat min_dz; 00298 gfloat max_dz; 00301 gboolean scale; 00302 gboolean scale__set; 00304 gchar *comment; 00305 }; 00306 00307 00308 typedef struct __GpivScalarData GpivScalarData; 00313 struct __GpivScalarData { 00314 guint nx; 00315 guint ny; 00318 gfloat **point_x; 00319 gfloat **point_y; 00320 gfloat **scalar; 00322 gint **flag; 00325 gboolean scale; 00326 gboolean scale__set; 00328 gchar *comment; 00329 }; 00330 00331 00332 typedef struct __GpivBinData GpivBinData; 00333 00340 struct __GpivBinData { 00341 guint nbins; 00344 guint *count; 00345 gfloat *bound; 00346 gfloat *centre; 00347 gfloat min; 00348 gfloat max; 00351 gchar *comment; 00352 }; 00353 00354 00355 /* 00356 * Includes Libgpiv library headers 00357 */ 00358 00359 #include <gpiv/gpiv-genpar.h> 00360 00361 #ifdef ENABLE_CAM 00362 #include <gpiv/gpiv-cam.h> 00363 #endif /* ENABLE_CAM */ 00364 00365 #ifdef ENABLE_TRIG 00366 #include <gpiv/gpiv-trig.h> 00367 #endif /* ENABLE_TRIG */ 00368 00369 #include <gpiv/gpiv-img.h> 00370 #include <gpiv/gpiv-img_utils.h> 00371 #include <gpiv/gpiv-imgproc.h> 00372 #include <gpiv/gpiv-piv.h> 00373 #include <gpiv/gpiv-piv_par.h> 00374 #include <gpiv/gpiv-piv_utils.h> 00375 #include <gpiv/gpiv-valid.h> 00376 #include <gpiv/gpiv-valid_par.h> 00377 #include <gpiv/gpiv-post.h> 00378 #include <gpiv/gpiv-post_par.h> 00379 #include <gpiv/gpiv-post_utils.h> 00380 #include <gpiv/gpiv-io.h> 00381 #include <gpiv/gpiv-utils.h> 00382 #include <gpiv/gpiv-utils_alloc.h> 00383 00384 00385 #ifdef GPIV_ENABLE_DEPRECATED 00386 #include <gpiv/back_intface.h> 00387 #endif 00388 00389 00390 #endif /* __LIBGPIV_H__ */