[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32300] trunk/blender/source/blender/ makesrna/intern/rna_curve.c: Recalc knots when toggling nurb cyclic flags

Sergey Sharybin g.ulairi at gmail.com
Mon Oct 4 12:06:19 CEST 2010


Revision: 32300
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32300
Author:   nazgul
Date:     2010-10-04 12:06:18 +0200 (Mon, 04 Oct 2010)

Log Message:
-----------
Recalc knots when toggling nurb cyclic flags

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_curve.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_curve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-10-04 08:48:50 UTC (rev 32299)
+++ trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-10-04 10:06:18 UTC (rev 32300)
@@ -399,16 +399,28 @@
 	BLI_strncpy(cu->str, value, len+1);
 }
 
-static void rna_Nurb_update_handle_data(Main *bmain, Scene *scene, PointerRNA *ptr)
+static void rna_Nurb_update_cyclic_u(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
 	Nurb *nu= (Nurb*)ptr->data;
 
-	if(nu->type == CU_BEZIER)
+	if(nu->type == CU_BEZIER) {
 		calchandlesNurb(nu);
+	} else {
+		nurbs_knot_calc_u(nu);
+	}
 
 	rna_Curve_update_data(bmain, scene, ptr);
 }
 
+static void rna_Nurb_update_cyclic_v(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+	Nurb *nu= (Nurb*)ptr->data;
+
+	nurbs_knot_calc_v(nu);
+
+	rna_Curve_update_data(bmain, scene, ptr);
+}
+
 static void rna_Nurb_update_knot_u(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
 	Nurb *nu= (Nurb*)ptr->data;
@@ -1356,12 +1368,12 @@
 	prop= RNA_def_property(srna, "use_cyclic_u", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flagu", CU_NURB_CYCLIC);
 	RNA_def_property_ui_text(prop, "Cyclic U", "Make this curve or surface a closed loop in the U direction");
-	RNA_def_property_update(prop, 0, "rna_Nurb_update_handle_data"); /* only needed for cyclic_u because cyclic_v cant do bezier */
+	RNA_def_property_update(prop, 0, "rna_Nurb_update_cyclic_u");
 
 	prop= RNA_def_property(srna, "use_cyclic_v", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flagv", CU_NURB_CYCLIC);
 	RNA_def_property_ui_text(prop, "Cyclic V", "Make this surface a closed loop in the V direction");
-	RNA_def_property_update(prop, 0, "rna_Curve_update_data");
+	RNA_def_property_update(prop, 0, "rna_Nurb_update_cyclic_u");
 
 
 	/* Note, endpoint and bezier flags should never be on at the same time! */





More information about the Bf-blender-cvs mailing list