[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30119] branches/soc-2010-jwilkins/source/ blender/blenkernel/intern/brush.c: * changed brush_jitter_pos to find random positions within a circle instead of a square .

Jason Wilkins Jason.A.Wilkins at gmail.com
Thu Jul 8 18:08:56 CEST 2010


Revision: 30119
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30119
Author:   jwilkins
Date:     2010-07-08 18:08:56 +0200 (Thu, 08 Jul 2010)

Log Message:
-----------
* changed brush_jitter_pos to find random positions within a circle instead of a square.  

Modified Paths:
--------------
    branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c

Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c	2010-07-08 15:35:27 UTC (rev 30118)
+++ branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c	2010-07-08 16:08:56 UTC (rev 30119)
@@ -764,8 +764,16 @@
 static void brush_jitter_pos(Brush *brush, float *pos, float *jitterpos)
 {
 	if(brush->jitter){
-		jitterpos[0] = pos[0] + ((BLI_frand()-0.5f) * brush->size * brush->jitter * 2);
-		jitterpos[1] = pos[1] + ((BLI_frand()-0.5f) * brush->size * brush->jitter * 2);
+		float rand_pos[2];
+
+		// find random position within a unit circle
+		do {
+			rand_pos[0] = BLI_frand()-0.5f;
+			rand_pos[1] = BLI_frand()-0.5f;
+		} while (len_v2(rand_pos) > 0.5f);
+
+		jitterpos[0] = pos[0] + 2*rand_pos[0]*brush->size*brush->jitter;
+		jitterpos[1] = pos[1] + 2*rand_pos[1]*brush->size*brush->jitter;
 	}
 	else {
 		VECCOPY2D(jitterpos, pos);





More information about the Bf-blender-cvs mailing list