Blender V2.61 - r43446
|
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