This version now includes the fluid control sources, however the Blender
[blender-staging.git] / intern / elbeem / intern / elbeem_control.h
1 /******************************************************************************
2  *
3  * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
4  * All code distributed as part of El'Beem is covered by the version 2 of the 
5  * GNU General Public License. See the file COPYING for details.
6  * Copyright 2003-2006 Nils Thuerey
7  *
8  * Control API header
9  */
10 #ifndef ELBEEMCONTROL_API_H
11 #define ELBEEMCONTROL_API_H
12
13 // a single control particle set
14 typedef struct elbeemControl {
15         /* influence forces */
16         float influenceAttraction;
17         float *channelInfluenceAttraction;
18         float channelSizeInfluenceAttraction;
19
20         float influenceVelocity;
21         float *channelInfluenceVelocity;
22         float channelSizeInfluenceVelocity;
23
24         float influenceMaxdist;
25         float *channelInfluenceMaxdist;
26         float channelSizeInfluenceMaxdist;
27
28         /* influence force radii */
29         float radiusAttraction;
30         float *channelRadiusAttraction;
31         float channelSizeRadiusAttraction;
32
33         float radiusVelocity;
34         float *channelRadiusVelocity;
35         float channelSizeRadiusVelocity;
36
37         float radiusMindist;
38         float *channelRadiusMindist;
39         float channelSizeRadiusMindist;
40         float radiusMaxdist;
41         float *channelRadiusMaxdist;
42         float channelSizeRadiusMaxdist;
43
44         /* control particle positions/scale */
45         float offset[3];
46         float *channelOffset;
47         float channelSizeOffset;
48         
49         float scale[3];
50         float *channelScale;
51         float channelSizeScale;
52         
53 } elbeemControl;
54
55
56 // add mesh as fluidsim object
57 int elbeemControlAddSet(struct elbeemControl*);
58
59 // sample & track mesh control particles, TODO add return type...
60 int elbeemControlComputeMesh(struct elbeemMesh);
61
62 #endif // ELBEEMCONTROL_API_H