Blender  V2.59
elbeem_control.h
Go to the documentation of this file.
00001 
00004 /******************************************************************************
00005  *
00006  * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
00007  * All code distributed as part of El'Beem is covered by the version 2 of the 
00008  * GNU General Public License. See the file COPYING for details.
00009  * Copyright 2003-2006 Nils Thuerey
00010  *
00011  * Control API header
00012  */
00013 #ifndef ELBEEMCONTROL_API_H
00014 #define ELBEEMCONTROL_API_H
00015 
00016 // a single control particle set
00017 typedef struct elbeemControl {
00018         /* influence forces */
00019         float influenceAttraction;
00020         float *channelInfluenceAttraction;
00021         float channelSizeInfluenceAttraction;
00022 
00023         float influenceVelocity;
00024         float *channelInfluenceVelocity;
00025         float channelSizeInfluenceVelocity;
00026 
00027         float influenceMaxdist;
00028         float *channelInfluenceMaxdist;
00029         float channelSizeInfluenceMaxdist;
00030 
00031         /* influence force radii */
00032         float radiusAttraction;
00033         float *channelRadiusAttraction;
00034         float channelSizeRadiusAttraction;
00035 
00036         float radiusVelocity;
00037         float *channelRadiusVelocity;
00038         float channelSizeRadiusVelocity;
00039 
00040         float radiusMindist;
00041         float *channelRadiusMindist;
00042         float channelSizeRadiusMindist;
00043         float radiusMaxdist;
00044         float *channelRadiusMaxdist;
00045         float channelSizeRadiusMaxdist;
00046 
00047         /* control particle positions/scale */
00048         float offset[3];
00049         float *channelOffset;
00050         float channelSizeOffset;
00051         
00052         float scale[3];
00053         float *channelScale;
00054         float channelSizeScale;
00055         
00056 } elbeemControl;
00057 
00058 
00059 // add mesh as fluidsim object
00060 int elbeemControlAddSet(struct elbeemControl*);
00061 
00062 // sample & track mesh control particles, TODO add return type...
00063 int elbeemControlComputeMesh(struct elbeemMesh*);
00064 
00065 #endif // ELBEEMCONTROL_API_H