Revision: 22145
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22145
Author:   aligorith
Date:     2009-08-02 14:52:02 +0200 (Sun, 02 Aug 2009)

Log Message:
-----------
2.5 - Animation/RNA Bugfixes

* Settings for Bones can now be animated properly from UI
* Settings for constraints on bones and objects can now be keyframed properly
* Added missing 'subtarget' property wrapping for StretchTo constraint.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_constraint.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_pose.c

Modified: 
branches/blender2.5/blender/source/blender/makesrna/intern/rna_constraint.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_constraint.c 
2009-08-02 12:49:53 UTC (rev 22144)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_constraint.c 
2009-08-02 12:52:02 UTC (rev 22145)
@@ -141,7 +141,21 @@
 
 static char *rna_Constraint_path(PointerRNA *ptr)
 {
-       return BLI_sprintfN("constraints[%s]", ((bConstraint*)ptr->data)->name);
+       Object *ob= ptr->id.data;
+       bConstraint *con= ptr->data;
+       bPoseChannel *pchan= get_active_posechannel(ob);
+       ListBase *actlist= get_active_constraints(ob);
+       short inList = 0;
+       
+       /* check if constraint is in the given list */
+       if (actlist)
+               inList= (BLI_findindex(actlist, con) != -1);
+       
+       /* if constraint is in the list, the list is for the active bone... */
+       if ((inList) && (actlist != &ob->constraints) && (pchan))
+               return 
BLI_sprintfN("pose.pose_channels[\"%s\"].constraints[\"%s\"]", pchan->name, 
con->name);
+       else
+               return BLI_sprintfN("constraints[\"%s\"]", con->name);
 }
 
 static void rna_Constraint_update(bContext *C, PointerRNA *ptr)
@@ -906,6 +920,11 @@
        RNA_def_property_ui_text(prop, "Target", "Target Object");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_dependency_update");
+       
+       prop= RNA_def_property(srna, "subtarget", PROP_STRING, PROP_NONE);
+       RNA_def_property_string_sdna(prop, NULL, "subtarget");
+       RNA_def_property_ui_text(prop, "Sub-Target", "");
+       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_dependency_update");
 
        prop= RNA_def_property(srna, "volume", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "volmode");

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_pose.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_pose.c       
2009-08-02 12:49:53 UTC (rev 22144)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_pose.c       
2009-08-02 12:52:02 UTC (rev 22145)
@@ -58,6 +58,12 @@
        DAG_object_flush_update(CTX_data_scene(C), ptr->id.data, 
OB_RECALC_DATA);
 }
 
+static char *rna_PoseChannel_path(PointerRNA *ptr)
+{
+       // XXX do we really need the 'pose.' bit?
+       return BLI_sprintfN("pose.pose_channels[\"%s\"]", 
((bPoseChannel*)ptr->data)->name);
+}
+
 static void rna_BoneGroup_color_set_set(PointerRNA *ptr, int value)
 {
        bActionGroup *grp= ptr->data;
@@ -297,6 +303,7 @@
        srna= RNA_def_struct(brna, "PoseChannel", NULL);
        RNA_def_struct_sdna(srna, "bPoseChannel");
        RNA_def_struct_ui_text(srna, "Pose Channel", "Channel defining pose 
data for a bone in a Pose.");
+       RNA_def_struct_path_func(srna, "rna_PoseChannel_path");
        RNA_def_struct_idproperties_func(srna, "rna_PoseChannel_idproperties");
 
        prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to