Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-12-07 22:59:04 +0300
committerCampbell Barton <ideasman42@gmail.com>2009-12-07 22:59:04 +0300
commit47416c725c9790c17abddfbcd96c080e28e76abb (patch)
treeac9b6f764dca6b80c2be1ee0a77f04f3edaf318c /source/blender/blenkernel/intern/fcurve.c
parent987e9bc1724602fe6dab35662afa54df26d07cf4 (diff)
driver type 'Sum'
Diffstat (limited to 'source/blender/blenkernel/intern/fcurve.c')
-rw-r--r--source/blender/blenkernel/intern/fcurve.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index 0623a5cbe5e..b3a6b773cf3 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -910,6 +910,7 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime)
// TODO: the flags for individual targets need to be used too for more fine-grained support...
switch (driver->type) {
case DRIVER_TYPE_AVERAGE: /* average values of driver targets */
+ case DRIVER_TYPE_SUM: /* sum values of driver targets */
{
/* check how many targets there are first (i.e. just one?) */
if (driver->targets.first == driver->targets.last) {
@@ -921,19 +922,22 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime)
/* more than one target, so average the values of the targets */
int tot = 0;
float value = 0.0f;
-
+
/* loop through targets, adding (hopefully we don't get any overflow!) */
for (dtar= driver->targets.first; dtar; dtar=dtar->next) {
- value += driver_get_target_value(driver, dtar);
+ value += driver_get_target_value(driver, dtar);
tot++;
}
-
+
/* return the average of these */
- return (value / (float)tot);
+ if(driver->type == DRIVER_TYPE_AVERAGE)
+ return (value / (float)tot);
+ else
+ return value;
+
}
}
break;
-
case DRIVER_TYPE_PYTHON: /* expression */
{
#ifndef DISABLE_PYTHON