[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27892] trunk/blender/source/blender/ makesrna/intern/rna_curve.c: taper/ bevel object checking moved from RNA update to RNA pointer set function.

Sergey Sharybin g.ulairi at gmail.com
Wed Mar 31 09:02:24 CEST 2010


Revision: 27892
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27892
Author:   nazgul
Date:     2010-03-31 09:02:24 +0200 (Wed, 31 Mar 2010)

Log Message:
-----------
taper/bevel object checking moved from RNA update to RNA pointer set function.

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-03-31 07:00:59 UTC (rev 27891)
+++ trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-03-31 07:02:24 UTC (rev 27892)
@@ -216,36 +216,58 @@
 	rna_Curve_update_data(bmain, scene, ptr);
 }
 
-static void rna_Curve_update_taper(Main *bmain, Scene *scene, PointerRNA *ptr)
+static PointerRNA rna_Curve_bevelObject_get(PointerRNA *ptr)
 {
 	Curve *cu= (Curve*)ptr->id.data;
-	Object *ob= cu->taperobj;
+	Object *ob= cu->bevobj;
 
+	if(ob)
+		return rna_pointer_inherit_refine(ptr, &RNA_Object, ob);
+
+	return rna_pointer_inherit_refine(ptr, NULL, NULL);
+}
+
+static void rna_Curve_bevelObject_set(PointerRNA *ptr, PointerRNA value)
+{
+	Curve *cu= (Curve*)ptr->id.data;
+	Object *ob= (Object*)value.data;
+
 	if (ob) {
-		/* if taper object has got the save curve, as object, for which it's */
-		/* set as taperobj, there could be infinity loop in displist calculation */
-		if (ob->type != OB_CURVE || ob->data == cu) {
-			cu->taperobj = NULL;
+		/* if bevel object has got the save curve, as object, for which it's */
+		/* set as bevobj, there could be infinity loop in displist calculation */
+		if (ob->type == OB_CURVE && ob->data != cu) {
+			cu->bevobj = ob;
 		}
+	} else {
+		cu->bevobj = NULL;
 	}
+}
 
-	rna_Curve_update_deps(bmain, scene, ptr);
+static PointerRNA rna_Curve_taperObject_get(PointerRNA *ptr)
+{
+	Curve *cu= (Curve*)ptr->id.data;
+	Object *ob= cu->taperobj;
+
+	if(ob)
+		return rna_pointer_inherit_refine(ptr, &RNA_Object, ob);
+
+	return rna_pointer_inherit_refine(ptr, NULL, NULL);
 }
 
-static void rna_Curve_update_bevel(Main *bmain, Scene *scene, PointerRNA *ptr)
+static void rna_Curve_taperObject_set(PointerRNA *ptr, PointerRNA value)
 {
 	Curve *cu= (Curve*)ptr->id.data;
-	Object *ob= cu->bevobj;
+	Object *ob= (Object*)value.data;
 
 	if (ob) {
-		/* if bevel object has got the save curve, as object, for which it's */
+		/* if taper object has got the save curve, as object, for which it's */
 		/* set as bevobj, there could be infinity loop in displist calculation */
-		if (ob->type != OB_CURVE || ob->data == cu) {
-			cu->bevobj = NULL;
+		if (ob->type == OB_CURVE && ob->data != cu) {
+			cu->taperobj = ob;
 		}
+	} else {
+		cu->taperobj = NULL;
 	}
-
-	rna_Curve_update_deps(bmain, scene, ptr);
 }
 
 static void rna_Curve_resolution_u_update_data(Main *bmain, Scene *scene, PointerRNA *ptr)
@@ -1065,17 +1087,21 @@
 	
 	/* pointers */
 	prop= RNA_def_property(srna, "bevel_object", PROP_POINTER, PROP_NONE);
+	RNA_def_property_struct_type(prop, "Object");
 	RNA_def_property_pointer_sdna(prop, NULL, "bevobj");
 	RNA_def_property_flag(prop, PROP_EDITABLE);
 	RNA_def_property_ui_text(prop, "Bevel Object", "Curve object name that defines the bevel shape");
-	RNA_def_property_update(prop, 0, "rna_Curve_update_bevel");
-	
+	RNA_def_property_update(prop, 0, "rna_Curve_update_deps");
+	RNA_def_property_pointer_funcs(prop, "rna_Curve_bevelObject_get", "rna_Curve_bevelObject_set", NULL);
+
 	prop= RNA_def_property(srna, "taper_object", PROP_POINTER, PROP_NONE);
+	RNA_def_property_struct_type(prop, "Object");
 	RNA_def_property_pointer_sdna(prop, NULL, "taperobj");
 	RNA_def_property_flag(prop, PROP_EDITABLE);
 	RNA_def_property_ui_text(prop, "Taper Object", "Curve object name that defines the taper (width)");
-	RNA_def_property_update(prop, 0, "rna_Curve_update_taper");
-	
+	RNA_def_property_update(prop, 0, "rna_Curve_update_deps");
+	RNA_def_property_pointer_funcs(prop, "rna_Curve_taperObject_get", "rna_Curve_taperObject_set", NULL);
+
 	/* Flags */
 
 	prop= RNA_def_property(srna, "dimensions", PROP_ENUM, PROP_NONE); /* as an enum */





More information about the Bf-blender-cvs mailing list