Manipulator: Python API

Initial support for Python/Manipulator integration
from 'custom-manipulators' branch.

Supports:

- Registering custom manipulators & manipulator-groups.
- Modifying RNA properties, custom values via get/set callbacks,
  or invoking an operator.
- Drawing shape presets for Python defined manipulators (arrow, circle, face-maps)

Limitations:

- Only float properties supported.
- Drawing only supported via shape presets.
  (we'll likely want a way to define custom geometry or draw directly).
- When to refresh, recalculate manipulators will likely need
  integration with notifier system.

Development will be continued in the 2.8 branch
This commit is contained in:
2017-06-26 15:57:14 +10:00
parent c9e33b36de
commit 28b2f1c305
22 changed files with 2381 additions and 16 deletions

View File

@@ -0,0 +1,29 @@
"""
Manipulator Overview
--------------------
Manipulators are created using two classes.
- :class:`bpy.types.ManipulatorGroup` - stores a list of manipulators.
The manipulator group is associated with a space and region type.
- :class:`bpy.types.Manipulator` - a single item which can be used.
Each manipulator group has a collection of manipulators which it manages.
The following example shows a manipulator group with a single,
manipulator used to control a lamp objects energy.
.. literalinclude:: __/__/__/release/scripts/templates_py/manipulator_simple.py
It's also possible to use a manipulator to run an operator.
.. literalinclude:: __/__/__/release/scripts/templates_py/manipulator_operator_target.py
This more comprehensive example shows how an operator can create a temporary manipulator group to adjust its settings.
.. literalinclude:: __/__/__/release/scripts/templates_py/manipulator_operator.py
"""