Revision: 21848
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21848
Author:   ben2610
Date:     2009-07-24 14:20:39 +0200 (Fri, 24 Jul 2009)

Log Message:
-----------
iTaSC: correct action when updating some IK parameters: clear cache/clear data.

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

Modified: branches/itasc/source/blender/makesrna/intern/rna_constraint.c
===================================================================
--- branches/itasc/source/blender/makesrna/intern/rna_constraint.c      
2009-07-24 11:56:26 UTC (rev 21847)
+++ branches/itasc/source/blender/makesrna/intern/rna_constraint.c      
2009-07-24 12:20:39 UTC (rev 21848)
@@ -427,22 +427,22 @@
        prop= RNA_def_property(srna, "tail", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", CONSTRAINT_IK_TIP);
        RNA_def_property_ui_text(prop, "Use Tail", "Include bone's tail as last 
element in chain.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_dependency_update");
 
        prop= RNA_def_property(srna, "rotation", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", CONSTRAINT_IK_ROT);
        RNA_def_property_ui_text(prop, "Rotation", "Chain follows rotation of 
target.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_dependency_update");
 
        prop= RNA_def_property(srna, "targetless", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", CONSTRAINT_IK_AUTO);
        RNA_def_property_ui_text(prop, "Targetless", "Use targetless IK.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_dependency_update");
 
        prop= RNA_def_property(srna, "stretch", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", 
CONSTRAINT_IK_STRETCH);
        RNA_def_property_ui_text(prop, "Stretch", "Enable IK Stretching.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, 
"rna_Constraint_dependency_update");
 }
 
 static void rna_def_constraint_track_to(BlenderRNA *brna)

Modified: branches/itasc/source/blender/makesrna/intern/rna_pose.c
===================================================================
--- branches/itasc/source/blender/makesrna/intern/rna_pose.c    2009-07-24 
11:56:26 UTC (rev 21847)
+++ branches/itasc/source/blender/makesrna/intern/rna_pose.c    2009-07-24 
12:20:39 UTC (rev 21848)
@@ -60,6 +60,15 @@
        DAG_object_flush_update(CTX_data_scene(C), ptr->id.data, 
OB_RECALC_DATA);
 }
 
+static void rna_Pose_IK_update(bContext *C, PointerRNA *ptr)
+{
+       // XXX when to use this? ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK);
+       Object *ob= ptr->id.data;
+
+       DAG_object_flush_update(CTX_data_scene(C), ob, OB_RECALC_DATA);
+       BIK_clear_data(ob->pose);
+}
+
 static void rna_BoneGroup_color_set_set(PointerRNA *ptr, int value)
 {
        bActionGroup *grp= ptr->data;
@@ -398,37 +407,37 @@
        RNA_def_property_boolean_funcs(prop,  "rna_PoseChannel_has_ik_get", 
NULL);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        RNA_def_property_ui_text(prop, "Has IK", "Is part of an IK chain.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_dof_x", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "ikflag", 
BONE_IK_NO_XDOF);
        RNA_def_property_ui_text(prop, "IK X DoF", "Allow movement around the X 
axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_dof_y", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "ikflag", 
BONE_IK_NO_YDOF);
        RNA_def_property_ui_text(prop, "IK Y DoF", "Allow movement around the Y 
axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_dof_z", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "ikflag", 
BONE_IK_NO_ZDOF);
        RNA_def_property_ui_text(prop, "IK Z DoF", "Allow movement around the Z 
axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_limit_x", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ikflag", BONE_IK_XLIMIT);
        RNA_def_property_ui_text(prop, "IK X Limit", "Limit movement around the 
X axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_limit_y", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ikflag", BONE_IK_YLIMIT);
        RNA_def_property_ui_text(prop, "IK Y Limit", "Limit movement around the 
Y axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_limit_z", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ikflag", BONE_IK_ZLIMIT);
        RNA_def_property_ui_text(prop, "IK Z Limit", "Limit movement around the 
Z axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
        
        prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "selectflag", BONE_SELECTED);
@@ -521,61 +530,61 @@
        RNA_def_property_float_sdna(prop, NULL, "limitmin[0]");
        RNA_def_property_range(prop, -180.0f, 0.0f);
        RNA_def_property_ui_text(prop, "IK X Minimum", "Minimum angles for IK 
Limit");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_max_x", PROP_FLOAT, PROP_ROTATION);
        RNA_def_property_float_sdna(prop, NULL, "limitmax[0]");
        RNA_def_property_range(prop, 0.0f, 180.0f);
        RNA_def_property_ui_text(prop, "IK X Maximum", "Maximum angles for IK 
Limit");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_min_y", PROP_FLOAT, PROP_ROTATION);
        RNA_def_property_float_sdna(prop, NULL, "limitmin[1]");
        RNA_def_property_range(prop, -180.0f, 0.0f);
        RNA_def_property_ui_text(prop, "IK Y Minimum", "Minimum angles for IK 
Limit");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_max_y", PROP_FLOAT, PROP_ROTATION);
        RNA_def_property_float_sdna(prop, NULL, "limitmax[1]");
        RNA_def_property_range(prop, 0.0f, 180.0f);
        RNA_def_property_ui_text(prop, "IK Y Maximum", "Maximum angles for IK 
Limit");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_min_z", PROP_FLOAT, PROP_ROTATION);
        RNA_def_property_float_sdna(prop, NULL, "limitmin[2]");
        RNA_def_property_range(prop, -180.0f, 0.0f);
        RNA_def_property_ui_text(prop, "IK Z Minimum", "Minimum angles for IK 
Limit");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_max_z", PROP_FLOAT, PROP_ROTATION);
        RNA_def_property_float_sdna(prop, NULL, "limitmax[2]");
        RNA_def_property_range(prop, 0.0f, 180.0f);
        RNA_def_property_ui_text(prop, "IK Z Maximum", "Maximum angles for IK 
Limit");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_stiffness_x", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "stiffness[0]");
        RNA_def_property_range(prop, 0.0f, 0.99f);
        RNA_def_property_ui_text(prop, "IK X Stiffness", "IK stiffness around 
the X axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_stiffness_y", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "stiffness[1]");
        RNA_def_property_range(prop, 0.0f, 0.99f);
        RNA_def_property_ui_text(prop, "IK Y Stiffness", "IK stiffness around 
the Y axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_stiffness_z", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "stiffness[2]");
        RNA_def_property_range(prop, 0.0f, 0.99f);
        RNA_def_property_ui_text(prop, "IK Z Stiffness", "IK stiffness around 
the Z axis.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "ik_stretch", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "ikstretch");
        RNA_def_property_range(prop, 0.0f,1.0f);
        RNA_def_property_ui_text(prop, "IK Stretch", "Allow scaling of the bone 
for IK.");
-       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_update");
+       RNA_def_property_update(prop, NC_OBJECT|ND_POSE|ND_TRANSFORM, 
"rna_Pose_IK_update");
 
        prop= RNA_def_property(srna, "custom", PROP_POINTER, PROP_NONE);
        RNA_def_property_ui_text(prop, "Custom Object", "Object that defines 
custom draw type for this bone.");


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to