[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41023] trunk/blender: - add template for defining custom driver functions.

Daniel Salazar - 3Developer.com zanqdo at gmail.com
Sat Oct 15 09:29:19 CEST 2011


woa this looks sexy!

Daniel Salazar
3Developer.com



On Sat, Oct 15, 2011 at 1:19 AM, Campbell Barton <ideasman42 at gmail.com> wrote:
> Revision: 41023
>          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41023
> Author:   campbellbarton
> Date:     2011-10-15 07:19:34 +0000 (Sat, 15 Oct 2011)
> Log Message:
> -----------
> - add template for defining custom driver functions.
> - comment unused assignments.
>
> Modified Paths:
> --------------
>    trunk/blender/GNUmakefile
>    trunk/blender/source/blender/nodes/intern/node_exec.c
>
> Added Paths:
> -----------
>    trunk/blender/release/scripts/templates/driver_functions.py
>
> Modified: trunk/blender/GNUmakefile
> ===================================================================
> --- trunk/blender/GNUmakefile   2011-10-15 05:01:47 UTC (rev 41022)
> +++ trunk/blender/GNUmakefile   2011-10-15 07:19:34 UTC (rev 41023)
> @@ -233,7 +233,7 @@
>  doc_py:
>        $(BUILD_DIR)/bin/blender --background --factory-startup --python doc/python_api/sphinx_doc_gen.py
>        cd doc/python_api ; sphinx-build -n -b html sphinx-in sphinx-out
> -       @echo "docs written into: 'doc/python_api/sphinx-out/index.html'"
> +       @echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/contents.html'"
>
>
>  clean:
>
> Added: trunk/blender/release/scripts/templates/driver_functions.py
> ===================================================================
> --- trunk/blender/release/scripts/templates/driver_functions.py                         (rev 0)
> +++ trunk/blender/release/scripts/templates/driver_functions.py 2011-10-15 07:19:34 UTC (rev 41023)
> @@ -0,0 +1,34 @@
> +# This script defines functions to be used directly in drivers expressions to
> +# extend the builtin set of python functions.
> +#
> +# This can be executed on manually or set to 'Register' to
> +# initialize thefunctions on file load.
> +
> +
> +# two sample functions
> +def invert(f):
> +    """ Simple function call:
> +
> +            invert(val)
> +    """
> +    return 1.0 - f
> +
> +
> +uuid_store = {}
> +
> +def slow_value(value, fac, uuid):
> +    """ Delay the value by a factor, use a unique string to allow
> +        use in multiple drivers without conflict:
> +
> +            slow_value(val, 0.5, "my_value")
> +    """
> +    value_prev = uuid_store.get(uuid, value)
> +    uuid_store[uuid] = value_new = (value_prev * fac) + (value * (1.0 - fac))
> +    return value_new
> +
> +
> +import bpy
> +
> +# Add variable defined in this script into the drivers namespace.
> +bpy.app.driver_namespace["invert"] = invert
> +bpy.app.driver_namespace["slow_value"] = slow_value
>
> Modified: trunk/blender/source/blender/nodes/intern/node_exec.c
> ===================================================================
> --- trunk/blender/source/blender/nodes/intern/node_exec.c       2011-10-15 05:01:47 UTC (rev 41022)
> +++ trunk/blender/source/blender/nodes/intern/node_exec.c       2011-10-15 07:19:34 UTC (rev 41023)
> @@ -180,7 +180,7 @@
>
>        /* prepare group tree inputs */
>        for (sock=ntree->inputs.first; sock; sock=sock->next) {
> -               ns = setup_stack(exec->stack, sock);
> +               /* ns = */ setup_stack(exec->stack, sock);
>        }
>        /* prepare all internal nodes for execution */
>        for(n=0, nodeexec= exec->nodeexec; n < totnodes; ++n, ++nodeexec) {
> @@ -198,7 +198,7 @@
>
>                /* tag all outputs */
>                for (sock=node->outputs.first; sock; sock=sock->next) {
> -                       ns = setup_stack(exec->stack, sock);
> +                       /* ns = */ setup_stack(exec->stack, sock);
>                }
>
>                if(node->typeinfo->initexecfunc)
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>


More information about the Bf-committers mailing list