diff options
author | Nils Thuerey <nils@thuerey.de> | 2006-07-20 19:27:55 +0400 |
---|---|---|
committer | Nils Thuerey <nils@thuerey.de> | 2006-07-20 19:27:55 +0400 |
commit | 12a1fc374e7b47cca9b2e10c0804cb5f2d563194 (patch) | |
tree | 9534aca46fda3c502b7eb7040544f0a182b35494 /source/blender/src/fluidsim.c | |
parent | 873d46aeac608163b1a12523b6cf648e24157acf (diff) |
- fixed manual viscosity bug (#4733)
- added some more free/copy checks for bug 4094, but
still not enough
Diffstat (limited to 'source/blender/src/fluidsim.c')
-rw-r--r-- | source/blender/src/fluidsim.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/source/blender/src/fluidsim.c b/source/blender/src/fluidsim.c index 8f028d9670f..f88a6615143 100644 --- a/source/blender/src/fluidsim.c +++ b/source/blender/src/fluidsim.c @@ -163,7 +163,7 @@ FluidsimSettings *fluidsimSettingsNew(struct Object *srcob) fss->renderDisplayMode = 3; // render fss->viscosityMode = 2; // default to water - fss->viscosityValue = 0.1; + fss->viscosityValue = 1.0; fss->viscosityExponent = 6; fss->gravx = 0.0; fss->gravy = 0.0; @@ -244,21 +244,23 @@ void fluidsimSettingsFree(FluidsimSettings *fss) { Mesh *freeFsMesh = fss->meshSurface; if(freeFsMesh) { - if(freeFsMesh->mvert) MEM_freeN(freeFsMesh->mvert); - if(freeFsMesh->medge) MEM_freeN(freeFsMesh->medge); - if(freeFsMesh->mface) MEM_freeN(freeFsMesh->mface); + if(freeFsMesh->mvert){ MEM_freeN(freeFsMesh->mvert); freeFsMesh->mvert=NULL; } + if(freeFsMesh->medge){ MEM_freeN(freeFsMesh->medge); freeFsMesh->medge=NULL; } + if(freeFsMesh->mface){ MEM_freeN(freeFsMesh->mface); freeFsMesh->mface=NULL; } MEM_freeN(freeFsMesh); + fss->meshSurface = NULL; } freeFsMesh = fss->meshBB; if(freeFsMesh) { // same as before... - if(freeFsMesh->mvert) MEM_freeN(freeFsMesh->mvert); - if(freeFsMesh->medge) MEM_freeN(freeFsMesh->medge); - if(freeFsMesh->mface) MEM_freeN(freeFsMesh->mface); + if(freeFsMesh->mvert){ MEM_freeN(freeFsMesh->mvert); freeFsMesh->mvert=NULL; } + if(freeFsMesh->medge){ MEM_freeN(freeFsMesh->medge); freeFsMesh->medge=NULL; } + if(freeFsMesh->mface){ MEM_freeN(freeFsMesh->mface); freeFsMesh->mface=NULL; } MEM_freeN(freeFsMesh); + fss->meshBB = NULL; } - if(fss->meshSurfNormals) MEM_freeN(fss->meshSurfNormals); + if(fss->meshSurfNormals){ MEM_freeN(fss->meshSurfNormals); fss->meshSurfNormals=NULL; } MEM_freeN(fss); } @@ -688,8 +690,8 @@ void fluidsimBake(struct Object *ob) // blender specific - scale according to map old/new settings in anim panel: aniFrlen = G.scene->r.framelen; if(domainSettings->viscosityMode==1) { - /* manual mode */ - calcViscosity = (1.0/(domainSettings->viscosityExponent*10)) * domainSettings->viscosityValue; + /* manual mode, visc=value/(10^-vexp) */ + calcViscosity = (1.0/pow(10.0,domainSettings->viscosityExponent)) * domainSettings->viscosityValue; } else { calcViscosity = fluidsimViscosityPreset[ domainSettings->viscosityMode ]; } |