diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-03-31 11:22:18 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-03-31 11:22:18 +0400 |
commit | 2910d75f2c68f79054e47348925f13b127ada9d6 (patch) | |
tree | cbb146ee56708892fdc5ff92ceba84e4d3479c6f /source/blender/makesrna | |
parent | 7af91f6663564f1c3c85960b95f2c6e3ca213231 (diff) |
svn merge https://svn.blender.org/svnroot/bf-blender/branches/render25 -r27875:27895
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_curve.c | 63 |
1 files changed, 19 insertions, 44 deletions
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index c0ad35eb7c3..14cf36c2807 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -25,6 +25,7 @@ #include <stdlib.h> #include "RNA_define.h" +#include "RNA_types.h" #include "rna_internal.h" @@ -216,58 +217,36 @@ static void rna_Curve_update_deps(Main *bmain, Scene *scene, PointerRNA *ptr) rna_Curve_update_data(bmain, scene, ptr); } -static PointerRNA rna_Curve_bevelObject_get(PointerRNA *ptr) +static void rna_Curve_update_taper(Main *bmain, Scene *scene, PointerRNA *ptr) { Curve *cu= (Curve*)ptr->id.data; - 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; + Object *ob= cu->taperobj; if (ob) { - /* 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; + /* 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; } - } else { - cu->bevobj = NULL; } -} -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); + rna_Curve_update_deps(bmain, scene, ptr); } -static void rna_Curve_taperObject_set(PointerRNA *ptr, PointerRNA value) +static void rna_Curve_update_bevel(Main *bmain, Scene *scene, PointerRNA *ptr) { Curve *cu= (Curve*)ptr->id.data; - Object *ob= (Object*)value.data; + Object *ob= cu->bevobj; if (ob) { - /* if taper object has got the save curve, as object, for which it's */ + /* 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->taperobj = ob; + if (ob->type != OB_CURVE || ob->data == cu) { + cu->bevobj = NULL; } - } 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) @@ -1087,21 +1066,17 @@ static void rna_def_curve(BlenderRNA *brna) /* 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_deps"); - RNA_def_property_pointer_funcs(prop, "rna_Curve_bevelObject_get", "rna_Curve_bevelObject_set", NULL); - + RNA_def_property_update(prop, 0, "rna_Curve_update_bevel"); + 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_deps"); - RNA_def_property_pointer_funcs(prop, "rna_Curve_taperObject_get", "rna_Curve_taperObject_set", NULL); - + RNA_def_property_update(prop, 0, "rna_Curve_update_taper"); + /* Flags */ prop= RNA_def_property(srna, "dimensions", PROP_ENUM, PROP_NONE); /* as an enum */ |