[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16945] trunk/blender/source/blender/src: * dont change handle types when adjusting the radius or tilt of a curve handel .

Campbell Barton ideasman42 at gmail.com
Mon Oct 6 11:17:49 CEST 2008


Revision: 16945
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16945
Author:   campbellbarton
Date:     2008-10-06 11:17:49 +0200 (Mon, 06 Oct 2008)

Log Message:
-----------
* dont change handle types when adjusting the radius or tilt of a curve handel.
* dont take the handles into account for the manipulator center when they are not drawn.

Modified Paths:
--------------
    trunk/blender/source/blender/src/transform_conversions.c
    trunk/blender/source/blender/src/transform_manipulator.c

Modified: trunk/blender/source/blender/src/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/src/transform_conversions.c	2008-10-06 08:29:15 UTC (rev 16944)
+++ trunk/blender/source/blender/src/transform_conversions.c	2008-10-06 09:17:49 UTC (rev 16945)
@@ -1428,7 +1428,10 @@
 			if (propmode && head != tail)
 				calc_distanceCurveVerts(head, tail-1);
 			
-			testhandlesNurb(nu); /* sets the handles based on their selection, do this after the data is copied to the TransData */
+			/* TODO - in the case of tilt and radius we can also avoid allocating the initTransDataCurveHandes
+			 * but for now just dont change handle types */
+			if (ELEM(t->mode, TFM_CURVE_SHRINKFATTEN, TFM_TILT) == 0)
+				testhandlesNurb(nu); /* sets the handles based on their selection, do this after the data is copied to the TransData */
 		}
 		else {
 			TransData *head, *tail;

Modified: trunk/blender/source/blender/src/transform_manipulator.c
===================================================================
--- trunk/blender/source/blender/src/transform_manipulator.c	2008-10-06 08:29:15 UTC (rev 16944)
+++ trunk/blender/source/blender/src/transform_manipulator.c	2008-10-06 09:17:49 UTC (rev 16945)
@@ -282,8 +282,17 @@
 					bezt= nu->bezt;
 					a= nu->pntsu;
 					while(a--) {
-						/* exception */
-						if( (bezt->f1 & SELECT) + (bezt->f2 & SELECT) + (bezt->f3 & SELECT) > SELECT ) {
+						/* exceptions
+						 * if handles are hidden then only check the center points.
+						 * If 2 or more are selected then only use the center point too.
+						 */
+						if (G.f & G_HIDDENHANDLES) {
+							if (bezt->f2 & SELECT) {
+								calc_tw_center(bezt->vec[1]);
+								totsel++;
+							}
+						}
+						else if ( (bezt->f1 & SELECT) + (bezt->f2 & SELECT) + (bezt->f3 & SELECT) > SELECT ) {
 							calc_tw_center(bezt->vec[1]);
 							totsel++;
 						}





More information about the Bf-blender-cvs mailing list