- added option to switch off compiling elbeem to scons files (set USE_FLUIDSIM=true)
[blender-staging.git] / source / blender / makesdna / DNA_object_fluidsim.h
1 /**
2  *
3  * $Id:  
4  *
5  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version. The Blender
11  * Foundation also sells licenses for use in proprietary software under
12  * the Blender License.  See http://www.blender.org/BL/ for information
13  * about this.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software Foundation,
22  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23  *
24  * The Original Code is Copyright (C) 2004-2005 by Blender Foundation
25  * All rights reserved.
26  *
27  * The Original Code is: all of this file.
28  *
29  * Contributor(s): none yet.
30  *
31  * ***** END GPL/BL DUAL LICENSE BLOCK *****
32  */
33 #ifndef DNA_OBJECT_FLUIDSIM_H
34 #define DNA_OBJECT_FLUIDSIM_H
35
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40         
41 struct Mesh;
42         
43 typedef struct FluidsimSettings {
44         /* domain,fluid or obstacle */
45         short type;
46         /* display advanced options in fluid sim tab (on=1,off=0)*/
47         short show_advancedoptions;
48
49         /* domain object settings */
50         /* resolutions */
51         short resolutionxyz;
52         short previewresxyz;
53         /* size of the domain in real units (meters along largest resolution x,y,z extent) */
54         float realsize;
55         /* show original meshes, preview or final sim */
56         short guiDisplayMode;
57         short renderDisplayMode;
58
59         /* fluid properties */
60         float viscosityValue;
61         short viscosityMode;
62         short viscosityExponent;
63         /* gravity strength */
64         float gravx,gravy,gravz;
65         /* anim start end time */
66         float animStart, animEnd;
67         /* g star param (LBM compressibility) */
68         float gstar;
69         /* activate refinement? */
70         int maxRefine;
71         /* store output path, and file prefix for baked fluid surface */
72         /* strlens; 80= FILE_MAXFILE, 160= FILE_MAXDIR */
73         char surfdataDir[160], surfdataPrefix[80];
74         
75         /* fluid object type settings */
76         /* gravity strength */
77         float iniVelx,iniVely,iniVelz;
78
79         /* store pointer to original mesh (for replacing the current one) */
80         struct Mesh *orgMesh;
81 } FluidsimSettings;
82
83 /* ob->fluidsimSettings defines */
84 #define OB_FLUIDSIM_ENABLE                      1
85 #define OB_FLUIDSIM_DOMAIN                      2
86 #define OB_FLUIDSIM_FLUID                               4
87 #define OB_FLUIDSIM_OBSTACLE            8
88 #define OB_FLUIDSIM_INFLOW      16
89 #define OB_FLUIDSIM_OUTFLOW     32
90
91 #ifdef __cplusplus
92 }
93 #endif
94
95 #endif
96
97