[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50831] trunk/blender/source/blender/ blenkernel/intern/particle_system.c: Fix #32625 Zero area-sized faces caused jittered part.

Konrad Kleine konrad at konradwilhelm.de
Sun Sep 23 19:50:51 CEST 2012


Revision: 50831
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50831
Author:   kwk
Date:     2012-09-23 17:50:51 +0000 (Sun, 23 Sep 2012)
Log Message:
-----------
Fix #32625 Zero area-sized faces caused jittered part. distrib. to crash

When appling a particle system to a face whose area size is zero,
the jitter distribution failed. fmod() produces a NaN value in this
case. This commit simply checks if the jitter offset (I guess that is
"jitoff" means) and only call psys_uv_to_w() if it's a real floating
point number.

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

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2012-09-23 15:05:29 UTC (rev 50830)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2012-09-23 17:50:51 UTC (rev 50831)
@@ -797,8 +797,10 @@
 			}
 			else {
 				ctx->jitoff[i] = fmod(ctx->jitoff[i],(float)ctx->jitlevel);
-				psys_uv_to_w(ctx->jit[2*(int)ctx->jitoff[i]], ctx->jit[2*(int)ctx->jitoff[i]+1], mface->v4, pa->fuv);
-				ctx->jitoff[i]++;
+				if (!isnan(ctx->jitoff[i])) {
+					psys_uv_to_w(ctx->jit[2*(int)ctx->jitoff[i]], ctx->jit[2*(int)ctx->jitoff[i]+1], mface->v4, pa->fuv);
+					ctx->jitoff[i]++;
+				}
 			}
 			break;
 		case PART_DISTR_RAND:




More information about the Bf-blender-cvs mailing list