diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-11-13 04:04:01 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-11-13 04:04:01 +0300 |
commit | acd7225deaad3e0dcfaf14dd1328dd292bd592f0 (patch) | |
tree | 33aa31a8d29ad996c096a14086b0ae7b970cba42 /source/blender/blenkernel/intern/fcurve.c | |
parent | e12f39d116eb87c541ec27f022cc52a35e62da8d (diff) |
Driver Editing Tweaks:
* Updating dependencies for drivers now clears the disabled status of the relevant Driver FCurve too
* Changing the type of ID-block used for Driver Targets and Keying Set Paths will now clear the pointer to the ID-block if it is of the wrong type.
Diffstat (limited to 'source/blender/blenkernel/intern/fcurve.c')
-rw-r--r-- | source/blender/blenkernel/intern/fcurve.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index a1e6570608f..e8dc843dd01 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -801,8 +801,13 @@ float driver_get_target_value (ChannelDriver *driver, DriverTarget *dtar) break; } } - else if (G.f & G_DEBUG) - printf("Driver Evaluation Error: cannot resolve target for %s -> %s \n", id->name, path); + else { + if (G.f & G_DEBUG) + printf("Driver Evaluation Error: cannot resolve target for %s -> %s \n", id->name, path); + + driver->flag |= DRIVER_FLAG_INVALID; + return 0.0f; + } return value; } @@ -924,8 +929,8 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime) } /* use the final posed locations */ - mat4_to_quat( q1,pchan->pose_mat); - mat4_to_quat( q2,pchan2->pose_mat); + mat4_to_quat(q1, pchan->pose_mat); + mat4_to_quat(q2, pchan2->pose_mat); invert_qt(q1); mul_qt_qtqt(quat, q1, q2); |