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 
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__ */

Generated on Wed Oct 15 20:40:17 2008 for Libgpiv by doxygen 1.5.6