[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18434] branches/etch-a-ton/source/blender /src/editarmature_sketch.c: Last version of overdraw didn' t work great with polylines.

Martin Poirier theeth at yahoo.com
Fri Jan 9 20:25:13 CET 2009


Revision: 18434
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18434
Author:   theeth
Date:     2009-01-09 20:25:10 +0100 (Fri, 09 Jan 2009)

Log Message:
-----------
Last version of overdraw didn't work great with polylines. Fix this and misc wrong initial values.

Modified Paths:
--------------
    branches/etch-a-ton/source/blender/src/editarmature_sketch.c

Modified: branches/etch-a-ton/source/blender/src/editarmature_sketch.c
===================================================================
--- branches/etch-a-ton/source/blender/src/editarmature_sketch.c	2009-01-09 18:32:33 UTC (rev 18433)
+++ branches/etch-a-ton/source/blender/src/editarmature_sketch.c	2009-01-09 19:25:10 UTC (rev 18434)
@@ -92,6 +92,8 @@
 	int selected;
 } SK_Stroke;
 
+#define SK_ADJUST_LIMIT	5
+
 typedef struct SK_Adjustment
 {
 	SK_Stroke *target;
@@ -1360,14 +1362,14 @@
 void sk_resetAdjust(SK_Sketch *sketch)
 {
 	sketch->adj.target = NULL;
-	sketch->adj.start = 0;
-	sketch->adj.end = 0;
+	sketch->adj.start = -1;
+	sketch->adj.end = -1;
 	sketch->adj.count = 0;
 }
 
 int sk_hasAdjust(SK_Sketch *sketch, SK_Stroke *stk)
 {
-	return sketch->adj.target && sketch->adj.count >= 3 && (sketch->adj.target == stk || stk == NULL);
+	return sketch->adj.target && sketch->adj.count >= SK_ADJUST_LIMIT && (sketch->adj.target == stk || stk == NULL);
 }
 
 void sk_updateAdjust(SK_Sketch *sketch, SK_Stroke *stk, SK_DrawData *dd)
@@ -1398,7 +1400,14 @@
 		{
 			if (closest_index > -1)
 			{
-				sketch->adj.count++;
+				if (sk_lastStrokePoint(stk)->type == PT_EXACT)
+				{
+					sketch->adj.count = SK_ADJUST_LIMIT;
+				}
+				else
+				{
+					sketch->adj.count++;
+				}
 			}
 
 			if (stk->nb_points == 1)
@@ -1421,7 +1430,15 @@
 		
 		if (closest_pt != NULL)
 		{
-			sketch->adj.count++;
+			if (sk_lastStrokePoint(stk)->type == PT_EXACT)
+			{
+				sketch->adj.count = SK_ADJUST_LIMIT;
+			}
+			else
+			{
+				sketch->adj.count++;
+			}
+			
 			sketch->adj.end = index;
 		}
 		else





More information about the Bf-blender-cvs mailing list