diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2012-04-29 01:46:43 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2012-04-29 01:46:43 +0400 |
commit | 8bf8a128c2f1df5c85ee0005d1821316d3e88261 (patch) | |
tree | abbc6dc6eedefc185dd27c96b39a027a9ce19d38 /intern/smoke/extern | |
parent | 4465d2f419a8515df41a8fc415774eedaef0e6f6 (diff) |
Smoke: Support for moving obstacles. (Merge from Smoke2 branch)
Sponsored by the Blender Development Fund.
http://www.blender.org/blenderorg/blender-foundation/development-fund/
Remarks:
The original code was not designed to support moving obstacles so I had to introduce some velocity constraints into the code to prevent smoke from exploding. If this causes problems with "fire" emulation, please let me know.
Diffstat (limited to 'intern/smoke/extern')
-rw-r--r-- | intern/smoke/extern/smoke_API.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/intern/smoke/extern/smoke_API.h b/intern/smoke/extern/smoke_API.h index 9d5dfd98823..a0eb1bf38e0 100644 --- a/intern/smoke/extern/smoke_API.h +++ b/intern/smoke/extern/smoke_API.h @@ -41,11 +41,11 @@ struct FLUID_3D; void smoke_export(struct FLUID_3D *fluid, float *dt, float *dx, float **dens, float **densold, float **heat, float **heatold, float **vx, float **vy, float **vz, float **vxold, float **vyold, float **vzold, unsigned char **obstacles); // low res -struct FLUID_3D *smoke_init(int *res, float *p0); +struct FLUID_3D *smoke_init(int *res, float *p0, float dtdef); void smoke_free(struct FLUID_3D *fluid); void smoke_initBlenderRNA(struct FLUID_3D *fluid, float *alpha, float *beta, float *dt_factor, float *vorticity, int *border_colli); -void smoke_step(struct FLUID_3D *fluid, size_t framenr, float fps); +void smoke_step(struct FLUID_3D *fluid, float dtSubdiv); float *smoke_get_density(struct FLUID_3D *fluid); float *smoke_get_heat(struct FLUID_3D *fluid); @@ -53,6 +53,9 @@ float *smoke_get_velocity_x(struct FLUID_3D *fluid); float *smoke_get_velocity_y(struct FLUID_3D *fluid); float *smoke_get_velocity_z(struct FLUID_3D *fluid); +/* Moving obstacle velocity provided by blender */ +void smoke_get_ob_velocity(struct FLUID_3D *fluid, float **x, float **y, float **z); + float *smoke_get_force_x(struct FLUID_3D *fluid); float *smoke_get_force_y(struct FLUID_3D *fluid); float *smoke_get_force_z(struct FLUID_3D *fluid); |