Revision: 14462
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14462
Author: genscher
Date: 2008-04-18 20:25:11 +0200 (Fri, 18 Apr 2008)
Log Message:
-----------
Fluid: got to the real problem of the issue --> wrong float epsilon resulted in
normalizing a vector to fail, reverted other change from today
Modified Paths:
--------------
trunk/blender/intern/elbeem/intern/ntl_vector3dim.h
trunk/blender/intern/elbeem/intern/solver_util.cpp
Modified: trunk/blender/intern/elbeem/intern/ntl_vector3dim.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_vector3dim.h 2008-04-18 14:25:36 UTC
(rev 14461)
+++ trunk/blender/intern/elbeem/intern/ntl_vector3dim.h 2008-04-18 18:25:11 UTC
(rev 14462)
@@ -825,7 +825,7 @@
#endif
#endif
#endif
-
+
#if GFX_PRECISION==1
typedef float gfxReal;
#define GFX_REAL_MAX __FLT_MAX__
@@ -833,7 +833,7 @@
//#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 @@
//#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 */
Modified: trunk/blender/intern/elbeem/intern/solver_util.cpp
===================================================================
--- trunk/blender/intern/elbeem/intern/solver_util.cpp 2008-04-18 14:25:36 UTC
(rev 14461)
+++ trunk/blender/intern/elbeem/intern/solver_util.cpp 2008-04-18 18:25:11 UTC
(rev 14462)
@@ -37,10 +37,10 @@
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 @@
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; }
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs