[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28581] trunk/blender/source/blender/ blenkernel/intern/particle.c: make a dummy billboard if its velocity or vector are nan/inf

Campbell Barton ideasman42 at gmail.com
Tue May 4 23:43:43 CEST 2010


Revision: 28581
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28581
Author:   campbellbarton
Date:     2010-05-04 23:43:43 +0200 (Tue, 04 May 2010)

Log Message:
-----------
make a dummy billboard if its velocity or vector are nan/inf
was causing crashes in the raytracer.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/particle.c

Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c	2010-05-04 21:31:46 UTC (rev 28580)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c	2010-05-04 21:43:43 UTC (rev 28581)
@@ -4292,6 +4292,23 @@
 	xvec[0] = 1.0f; xvec[1] = 0.0f; xvec[2] = 0.0f;
 	yvec[0] = 0.0f; yvec[1] = 1.0f; yvec[2] = 0.0f;
 
+    /* can happen with bad pointcache or physics calculation
+     * since this becomes geometry, nan's and inf's crash raytrace code.
+     * better not allow this. */
+    if( !finite(bb->vec[0]) || !finite(bb->vec[1]) || !finite(bb->vec[2]) ||
+        !finite(bb->vel[0]) || !finite(bb->vel[1]) || !finite(bb->vel[2]) )
+    {
+        zero_v3(bb->vec);
+        zero_v3(bb->vel);
+        
+        zero_v3(xvec);
+        zero_v3(yvec);
+        zero_v3(zvec);
+        zero_v3(center);
+
+        return;
+    }
+
 	if(bb->align < PART_BB_VIEW)
 		onevec[bb->align]=1.0f;
 





More information about the Bf-blender-cvs mailing list