- add template for defining custom driver functions.
[blender-staging.git] / release / scripts / templates / driver_functions.py
1 # This script defines functions to be used directly in drivers expressions to
2 # extend the builtin set of python functions.
3 #
4 # This can be executed on manually or set to 'Register' to
5 # initialize thefunctions on file load.
6
7
8 # two sample functions
9 def invert(f):
10     """ Simple function call:
11
12             invert(val)
13     """
14     return 1.0 - f
15
16
17 uuid_store = {}
18
19 def slow_value(value, fac, uuid):
20     """ Delay the value by a factor, use a unique string to allow
21         use in multiple drivers without conflict:
22
23             slow_value(val, 0.5, "my_value")
24     """
25     value_prev = uuid_store.get(uuid, value)
26     uuid_store[uuid] = value_new = (value_prev * fac) + (value * (1.0 - fac))
27     return value_new
28
29
30 import bpy
31
32 # Add variable defined in this script into the drivers namespace.
33 bpy.app.driver_namespace["invert"] = invert
34 bpy.app.driver_namespace["slow_value"] = slow_value