Main Page | Files | Data Structures | Functions | Global Variables |

gpiv.h

Go to the documentation of this file.
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__ */

Generated on Tue Nov 20 19:46:20 2007 for Libgpiv by doxygen 1.5.1