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:
authorJoshua Leung <aligorith@gmail.com>2007-06-18 15:36:05 +0400
committerJoshua Leung <aligorith@gmail.com>2007-06-18 15:36:05 +0400
commit9a4c02c51dd297eadc30d7293fcd2a6b4706c7e8 (patch)
treeb4c21036e552c7044e68b2861178846f4fdc21b9 /release
parent25ec0533a92258b6842aa8f2829704ad149cbabd (diff)
== PyConstraints - Script Template ==
Here is a script template for the "Script Templates" menu in the Text Editor. It provides you with the necessary functions for a PyConstraint set up, and also includes descriptions on what is required in each function.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/scripttemplate_pyconstraint.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/release/scripts/scripttemplate_pyconstraint.py b/release/scripts/scripttemplate_pyconstraint.py
new file mode 100644
index 00000000000..12bd4bcb73d
--- /dev/null
+++ b/release/scripts/scripttemplate_pyconstraint.py
@@ -0,0 +1,78 @@
+#!BPY
+"""
+Name: 'Script Constraint'
+Blender: 245
+Group: 'ScriptTemplate'
+Tooltip: 'Add a new text for custom constraints'
+"""
+
+from Blender import Window
+import bpy
+
+script_data = \
+'''#BPYCONSTRAINT
+
+""" <------- Start removable description section ----------->
+PyConstraints are text buffers that start with #BPYCONSTRAINT.
+
+They must define a doConstraint function. The doConstraint
+function is called with the world-space matrix of the parent object/posebone
+as the first argument, the world-space matrix of the target object/posebone as
+the second, and an ID property that's attached to the current constraint
+instance. The function then must return a 4x4 Mathutils.Matrix() object.
+
+They must also define a getSettings function. The getSettings
+function is called with the ID property that's attached to the current constraint
+instance. It should create a pupblock using the Blender.Draw module to
+get/set the relevant values of the ID properties.
+
+When a constraint needs to have a Target Object/Bone, the USE_TARGET line
+below must be present. Also, if any special matrix creation needs to be performed
+for the target, a doTarget function must also be defined.
+
+<------- End removable description section -----------> """
+
+# Add a licence here if you wish to re-distribute, we recommend the GPL
+
+# uncomment the following line if Target access is wanted
+"""
+USE_TARGET = True
+"""
+
+import Blender
+from Blender import Draw
+from Blender import Mathutils
+from math import *
+
+# this function is called to evaluate the constraint
+# inputmatrix: (Matrix) copy of owner's worldspace matrix
+# targetmatrix: (Matrix) copy of target's worldspace matrix (where applicable)
+# idproperty: (IDProperties) wrapped data referring to this
+# constraint instance's idproperties
+def doConstraint(inputmatrix, targetmatrix, idproperty):
+ # must return a 4x4 matrix (owner's new matrix)
+ return inputmatrix;
+
+# this function draws a pupblock that lets the user set
+# the values of custom settings the constraint defines
+# idprop: (IDProperties) wrapped data referring to this
+# constraint instance's idproperties
+# You MUST use a pupblock. There are errors if you try to use the UIBlock ones.
+def getSettings(idproperty):
+ pass;
+
+
+# this optional function performs special actions that only require
+# access to the target data - calculation of special information
+"""
+def doTarget (targetobject, subtarget, targetmatix, idproperty):
+ # return a 4x4 matrix (which acts as the matrix of the target)
+ return targetmatrix;
+"""
+
+'''
+
+new_text = bpy.data.texts.new('pyconstraint_template.py')
+new_text.write(script_data)
+bpy.data.texts.active = new_text
+Window.RedrawAll() \ No newline at end of file