[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14462] trunk/blender/intern/elbeem/intern : Fluid: got to the real problem of the issue --> wrong float epsilon resulted in normalizing a vector to fail, reverted other change from today

Daniel Genrich daniel.genrich at gmx.net
Fri Apr 18 20:25:44 CEST 2008


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; }
 				}





More information about the Bf-blender-cvs mailing list