From 058aff6b31a99bf5c1230f1c811305d8a91c69e8 Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 19 Dec 2024 14:02:13 -0500 Subject: [PATCH] add flags for enabling parts of pressurecell sim --- src/main/c/includes/fluid/sim/pressurecell/solver_consts.h | 7 ++++++- src/main/c/src/fluid/sim/pressurecell/density.c | 2 +- src/main/c/src/fluid/sim/pressurecell/pressurecell.c | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/c/includes/fluid/sim/pressurecell/solver_consts.h b/src/main/c/includes/fluid/sim/pressurecell/solver_consts.h index 85b42e70..c21caf06 100644 --- a/src/main/c/includes/fluid/sim/pressurecell/solver_consts.h +++ b/src/main/c/includes/fluid/sim/pressurecell/solver_consts.h @@ -50,7 +50,7 @@ /** * Set to 1 to clamp small density values to 0 */ -#define FLUID_PRESSURECELL_CLAMP_MIN_DENSITY 0 +#define FLUID_PRESSURECELL_ENABLE_CLAMP_MIN_DENSITY 0 /** * Cutoff after which density is clamped to zero while diffusing @@ -92,5 +92,10 @@ */ #define FLUID_PRESSURECELL_BOUND_PRESSURE FLUID_PRESSURECELL_MAX_PRESSURE +/** + * Enables recapture + */ +#define FLUID_PRESSURECELL_ENABLE_RECAPTURE 1 + #endif \ No newline at end of file diff --git a/src/main/c/src/fluid/sim/pressurecell/density.c b/src/main/c/src/fluid/sim/pressurecell/density.c index d78245fe..876d84fc 100644 --- a/src/main/c/src/fluid/sim/pressurecell/density.c +++ b/src/main/c/src/fluid/sim/pressurecell/density.c @@ -130,7 +130,7 @@ LIBRARY_API void pressurecell_diffuse_density(Environment * environment, Chunk * ) ) * a ; - if(FLUID_PRESSURECELL_CLAMP_MIN_DENSITY && densityTemp[IX(x,y,z)] < FLUID_PRESSURECELL_MIN_DENSITY_CLAMP_CUTOFF){ + if(FLUID_PRESSURECELL_ENABLE_CLAMP_MIN_DENSITY && densityTemp[IX(x,y,z)] < FLUID_PRESSURECELL_MIN_DENSITY_CLAMP_CUTOFF){ densityTemp[IX(x,y,z)] = 0; } } diff --git a/src/main/c/src/fluid/sim/pressurecell/pressurecell.c b/src/main/c/src/fluid/sim/pressurecell/pressurecell.c index 696a0e8b..1fafadef 100644 --- a/src/main/c/src/fluid/sim/pressurecell/pressurecell.c +++ b/src/main/c/src/fluid/sim/pressurecell/pressurecell.c @@ -141,7 +141,9 @@ LIBRARY_API void fluid_pressurecell_simulate( //uTemp->d Chunk * currentChunk = chunks[i]; pressurecell_advect_density(environment,currentChunk); - fluid_pressurecell_recapture_density(environment,currentChunk); + if(FLUID_PRESSURECELL_ENABLE_RECAPTURE){ + fluid_pressurecell_recapture_density(environment,currentChunk); + } }