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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2019-09-29 11:00:38 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2019-09-29 17:48:56 +0300
commit6bb8ab3ad7b8131ffa9ed3261b6da8627903f3b1 (patch)
treee9df96fbef4073c43ee1a316763c632b9392a387 /rigify/utils/widgets.py
parent73784e78de99cb647870cbd93ef497f3e437a1a6 (diff)
Rigify: various additions to bone, mechanism and widget utilities.
Support easier setting of bone orientation via matrix, inherit_scale, invert_x/y/z constraint properties, computing a matrix from two axis vectors, adjusting widget positions, and add a pivot widget.
Diffstat (limited to 'rigify/utils/widgets.py')
-rw-r--r--rigify/utils/widgets.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/rigify/utils/widgets.py b/rigify/utils/widgets.py
index 6d83264a..037d4118 100644
--- a/rigify/utils/widgets.py
+++ b/rigify/utils/widgets.py
@@ -160,6 +160,14 @@ def adjust_widget_axis(obj, axis='y', offset=0.0):
vert.co = matrix @ vert.co
+def adjust_widget_transform(obj, matrix):
+ """Adjust the generated widget by applying a world space correction matrix to the mesh."""
+ if obj:
+ obmat = obj.matrix_basis
+ matrix = obmat.inverted() @ matrix @ obmat
+ obj.data.transform(matrix)
+
+
def write_widget(obj):
""" Write a mesh object as a python script for widget use.
"""
@@ -170,9 +178,9 @@ def write_widget(obj):
# Vertices
script += " verts = ["
- for v in obj.data.vertices:
- script += "(" + str(v.co[0]) + "*size, " + str(v.co[1]) + "*size, " + str(v.co[2]) + "*size),"
- script += "\n "
+ for i, v in enumerate(obj.data.vertices):
+ script += "({:g}*size, {:g}*size, {:g}*size),".format(v.co[0], v.co[1], v.co[2])
+ script += "\n " if i % 2 == 1 else " "
script += "]\n"
# Edges