diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-02-07 03:14:08 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-02-07 03:14:08 +0300 |
commit | 1e4b612d6a63ce781f229ddd6e3073a5d6951950 (patch) | |
tree | 4ef2bf16affe65b4ed65f38977c2c791a8431824 /source/blender/makesdna/DNA_object_fluidsim_types.h | |
parent | 66521b382b33168dc661f53b20a3cde7933eecf6 (diff) |
Cleanup: add _types.h suffix to DNA headers
Diffstat (limited to 'source/blender/makesdna/DNA_object_fluidsim_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_object_fluidsim_types.h | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_object_fluidsim_types.h b/source/blender/makesdna/DNA_object_fluidsim_types.h new file mode 100644 index 00000000000..c2816383ffb --- /dev/null +++ b/source/blender/makesdna/DNA_object_fluidsim_types.h @@ -0,0 +1,194 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2004-2005 by Blender Foundation + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file DNA_object_fluidsim_types.h + * \ingroup DNA + */ + +#ifndef __DNA_OBJECT_FLUIDSIM_H__ +#define __DNA_OBJECT_FLUIDSIM_H__ + +#include "DNA_ID.h" +#include "DNA_defs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct Mesh; +struct Ipo; + +typedef struct FluidVertexVelocity { + float vel[3]; +} FluidVertexVelocity; + +typedef struct FluidsimSettings { + struct FluidsimModifierData *fmd; /* for fast RNA access */ + /* threadcont the calculation is done with */ + int threads; + int pad1; + /* domain, fluid or obstacle */ + short type; + /* display advanced options in fluid sim tab (on=1, off=0)*/ + short show_advancedoptions; + + /* domain object settings */ + /* resolutions */ + short resolutionxyz; + short previewresxyz; + /* size of the domain in real units (meters along largest resolution x, y, z extent) */ + float realsize; + /* show original meshes, preview or final sim */ + short guiDisplayMode; + short renderDisplayMode; + + /* fluid properties */ + float viscosityValue; + short viscosityMode DNA_DEPRECATED; + short viscosityExponent; + /* gravity strength */ + float grav[3]; + /* anim start end time (in seconds) */ + float animStart, animEnd; + /* bake start end time (in blender frames) */ + int bakeStart, bakeEnd; + /* offset for baked frames */ + int frameOffset; + int pad2; + /* g star param (LBM compressibility) */ + float gstar; + /* activate refinement? */ + int maxRefine; + + /* fluid object type settings */ + /* gravity strength */ + float iniVelx, iniVely, iniVelz; + + /* store output path, and file prefix for baked fluid surface */ + /* strlens; 256= FILE_MAXFILE, 768= FILE_MAXDIR */ + char surfdataPath[1024]; + + /* store start coords of axis aligned bounding box together with size */ + /* values are inited during derived mesh display */ + float bbStart[3], bbSize[3]; + + /* animated params */ + struct Ipo *ipo; + + /* additional flags depending on the type, lower short contains flags + * to check validity, higher short additional flags */ + short typeFlags; + /* switch off velocity genration, volume init type for fluid/obstacles (volume=1, shell=2, both=3) */ + char domainNovecgen, volumeInitType; + + /* boundary "stickiness" for part slip values */ + float partSlipValue; + + /* number of tracers to generate */ + int generateTracers; + /* particle generation - on if >0, then determines amount (experimental...) */ + float generateParticles; + /* smooth fluid surface? */ + float surfaceSmoothing; + /* number of surface subdivisions*/ + int surfaceSubdivs; + int flag; /* GUI flags */ + + /* particle display - size scaling, and alpha influence */ + float particleInfSize, particleInfAlpha; + /* testing vars */ + float farFieldSize; + + /* vertex velocities of simulated fluid mesh */ + struct FluidVertexVelocity *meshVelocities; + /* number of vertices in simulated fluid mesh */ + int totvert; + + /* Fluid control settings */ + float cpsTimeStart; + float cpsTimeEnd; + float cpsQuality; + + float attractforceStrength; + float attractforceRadius; + float velocityforceStrength; + float velocityforceRadius; + + int lastgoodframe; + + /* Simulation/flow rate control (i.e. old "Fac-Time") */ + float animRate; +} FluidsimSettings; + +/* ob->fluidsimSettings defines */ +#define OB_FLUIDSIM_ENABLE 1 +#define OB_FLUIDSIM_DOMAIN 2 +#define OB_FLUIDSIM_FLUID 4 +#define OB_FLUIDSIM_OBSTACLE 8 +#define OB_FLUIDSIM_INFLOW 16 +#define OB_FLUIDSIM_OUTFLOW 32 +#define OB_FLUIDSIM_PARTICLE 64 +#define OB_FLUIDSIM_CONTROL 128 + +#define OB_TYPEFLAG_START 7 +#define OB_FSGEO_THIN (1<<(OB_TYPEFLAG_START+1)) +#define OB_FSBND_NOSLIP (1<<(OB_TYPEFLAG_START+2)) +#define OB_FSBND_PARTSLIP (1<<(OB_TYPEFLAG_START+3)) +#define OB_FSBND_FREESLIP (1<<(OB_TYPEFLAG_START+4)) +#define OB_FSINFLOW_LOCALCOORD (1<<(OB_TYPEFLAG_START+5)) + +/* surface generation flag (part of enabling chapter 6 of "Free Surface Flows with Moving and Deforming Objects for LBM") */ +#define OB_FSSG_NOOBS (1<<(OB_TYPEFLAG_START+6)) + +// guiDisplayMode particle flags +#define OB_FSDOM_GEOM 1 +#define OB_FSDOM_PREVIEW 2 +#define OB_FSDOM_FINAL 3 +#define OB_FSPART_BUBBLE (1<<1) +#define OB_FSPART_DROP (1<<2) +#define OB_FSPART_NEWPART (1<<3) +#define OB_FSPART_FLOAT (1<<4) +#define OB_FSPART_TRACER (1<<5) + +// new fluid bit flags for fss->flags +#define OB_FLUIDSIM_REVERSE (1 << 0) +#define OB_FLUIDSIM_ACTIVE (1 << 1) +#define OB_FLUIDSIM_OVERRIDE_TIME (1 << 2) + +#define OB_FLUIDSIM_SURF_DIR_DEFAULT "cache_fluid" +#define OB_FLUIDSIM_SURF_PREVIEW_OBJ_FNAME "fluidsurface_preview_####.bobj.gz" +#define OB_FLUIDSIM_SURF_FINAL_OBJ_FNAME "fluidsurface_final_####.bobj.gz" +#define OB_FLUIDSIM_SURF_FINAL_VEL_FNAME "fluidsurface_final_####.bvel.gz" +#define OB_FLUIDSIM_SURF_PARTICLES_FNAME "fluidsurface_particles_####.gz" + +#ifdef __cplusplus +} +#endif + +#endif + + |