Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2008-04-18 22:25:11 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2008-04-18 22:25:11 +0400
commit4147a5a33d57178914227a45ddd1afb1746cdc49 (patch)
tree5bd65777a1e4475cda6649df4dcb6c07e36013a0 /intern/elbeem
parent23016d59d475b0331c2d2b47830a81ede4857f03 (diff)
Fluid: got to the real problem of the issue --> wrong float epsilon resulted in normalizing a vector to fail, reverted other change from today
Diffstat (limited to 'intern/elbeem')
-rw-r--r--intern/elbeem/intern/ntl_vector3dim.h6
-rw-r--r--intern/elbeem/intern/solver_util.cpp6
2 files changed, 6 insertions, 6 deletions
diff --git a/intern/elbeem/intern/ntl_vector3dim.h b/intern/elbeem/intern/ntl_vector3dim.h
index 27c3be0d71f..35a3ad59ec9 100644
--- a/intern/elbeem/intern/ntl_vector3dim.h
+++ b/intern/elbeem/intern/ntl_vector3dim.h
@@ -825,7 +825,7 @@ template<class T> inline ntlColor vec2Col(T v) { return ntlColor(v[0],v[1],v[2])
#endif
#endif
#endif
-
+
#if GFX_PRECISION==1
typedef float gfxReal;
#define GFX_REAL_MAX __FLT_MAX__
@@ -833,7 +833,7 @@ typedef float gfxReal;
//#define vecGfx2F(x) (x)
//#define vecD2Gfx(x) vecD2F(x)
//#define vecGfx2D(x) vecF2D(x)
-#define VECTOR_EPSILON (1e-5f)
+#define VECTOR_EPSILON (1.192092896e-07F)
#else
typedef double gfxReal;
#define GFX_REAL_MAX __DBL_MAX__
@@ -841,7 +841,7 @@ typedef double gfxReal;
//#define vecGfx2F(x) vecF2D(x)
//#define vecD2Gfx(x) (x)
//#define vecGfx2D(x) (x)
-#define VECTOR_EPSILON (1e-10)
+#define VECTOR_EPSILON (2.2204460492503131e-016)
#endif
/* fixed double prec. type, for epxlicitly double values */
diff --git a/intern/elbeem/intern/solver_util.cpp b/intern/elbeem/intern/solver_util.cpp
index ef98b7f21d0..e74875a0dbf 100644
--- a/intern/elbeem/intern/solver_util.cpp
+++ b/intern/elbeem/intern/solver_util.cpp
@@ -37,10 +37,10 @@ void LbmFsgrSolver::prepareVisualization( void ) {
int lev = mMaxRefine;
int workSet = mLevel[lev].setCurr;
- int mainGravDir=0;
+ int mainGravDir=6; // if normalizing fails, we asume z-direction gravity
LbmFloat mainGravLen = 0.;
FORDF1{
- LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), getNormalized(mLevel[mMaxRefine].gravity) );
+ LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), getNormalized(mLevel[mMaxRefine].gravity) );
if(thisGravLen>mainGravLen) {
mainGravLen = thisGravLen;
mainGravDir = l;
@@ -113,7 +113,7 @@ void LbmFsgrSolver::prepareVisualization( void ) {
if(nbflag&CFInter){ intercnt++; }
// check all directions otherwise we get bugs with splashes on obstacles
- // if(l!=mainGravDir) continue; // only check bnd along main grav. dir
+ if(l!=mainGravDir) continue; // only check bnd along main grav. dir
//if((nbflag&CFBnd)&&(nbflag&CFBndNoslip)){ noslipbnd=1; }
if((nbflag&CFBnd)){ noslipbnd=1; }
}