[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41494] trunk/blender/source/blender: Fix #29122: Curve Radius keyable from Outliner Datablock view but not Transform Radius field in 3D Viewport

Sergey Sharybin g.ulairi at gmail.com
Thu Nov 3 13:28:32 CET 2011


Revision: 41494
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41494
Author:   nazgul
Date:     2011-11-03 12:28:32 +0000 (Thu, 03 Nov 2011)
Log Message:
-----------
Fix #29122: Curve Radius keyable from Outliner Datablock view but not Transform Radius field in 3D Viewport

If there's only one control point selected, show radius property for this point, not for medium value.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
    trunk/blender/source/blender/makesrna/RNA_access.h

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2011-11-03 12:24:29 UTC (rev 41493)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2011-11-03 12:28:32 UTC (rev 41494)
@@ -139,6 +139,7 @@
 	float median[7], ve_median[7];
 	int tot, totw, totweight, totedge, totradius;
 	char defstr[320];
+	PointerRNA radius_ptr;
 
 	median[0]= median[1]= median[2]= median[3]= median[4]= median[5]= median[6]= 0.0;
 	tot= totw= totweight= totedge= totradius= 0;
@@ -210,6 +211,8 @@
 		BezTriple *bezt;
 		int a;
 		ListBase *nurbs= curve_editnurbs(cu);
+		StructRNA *seltype= NULL;
+		void *selp= NULL;
 
 		nu= nurbs->first;
 		while(nu) {
@@ -224,6 +227,8 @@
 						totweight++;
 						median[5]+= bezt->radius;
 						totradius++;
+						selp= bezt;
+						seltype= &RNA_BezierSplinePoint;
 					}
 					else {
 						if(bezt->f1 & SELECT) {
@@ -251,12 +256,17 @@
 						totweight++;
 						median[5]+= bp->radius;
 						totradius++;
+						selp= bp;
+						seltype= &RNA_SplinePoint;
 					}
 					bp++;
 				}
 			}
 			nu= nu->next;
 		}
+
+		if(totradius==1)
+			RNA_pointer_create(&cu->id, seltype, selp, &radius_ptr);
 	}
 	else if(ob->type==OB_LATTICE) {
 		Lattice *lt= ob->data;
@@ -319,9 +329,11 @@
 				uiBlockEndAlign(block);
 				if(totweight)
 					uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:",	0, 20, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 1, 3, "");
-				if(totradius)
-					uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:",	0, 20, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 1, 3, "Radius of curve CPs");
+				if(totradius) {
+					if(totradius==1) uiDefButR(block, NUM, 0, "Radius", 0, 20, 200, 20, &radius_ptr, "radius", 0, 0.0, 100.0, 10, 3, NULL);
+					else uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:",	0, 20, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 1, 3, "Radius of curve CPs");
 				}
+			}
 			else {
 				uiBlockBeginAlign(block);
 				uiDefButBitS(block, TOG, V3D_GLOBAL_STATS, B_REDR, "Global",		0, 65, 100, 20, &v3d->flag, 0, 0, 0, 0, "Displays global values");
@@ -329,8 +341,10 @@
 				uiBlockEndAlign(block);
 				if(totweight)
 					uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:",	0, 40, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "");
-				if(totradius)
-					uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:",	0, 40, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
+				if(totradius) {
+					if(totradius==1) uiDefButR(block, NUM, 0, "Radius", 0, 40, 200, 20, &radius_ptr, "radius", 0, 0.0, 100.0, 10, 3, NULL);
+					else uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:",	0, 40, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
+				}
 			}
 		}
 		else {

Modified: trunk/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_access.h	2011-11-03 12:24:29 UTC (rev 41493)
+++ trunk/blender/source/blender/makesrna/RNA_access.h	2011-11-03 12:28:32 UTC (rev 41494)
@@ -70,6 +70,7 @@
 extern StructRNA RNA_ArrayModifier;
 extern StructRNA RNA_BackgroundImage;
 extern StructRNA RNA_BevelModifier;
+extern StructRNA RNA_SplinePoint;
 extern StructRNA RNA_BezierSplinePoint;
 extern StructRNA RNA_BlendData;
 extern StructRNA RNA_BlendTexture;




More information about the Bf-blender-cvs mailing list