diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2019-09-29 11:00:38 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2019-09-29 17:48:56 +0300 |
commit | 6bb8ab3ad7b8131ffa9ed3261b6da8627903f3b1 (patch) | |
tree | e9df96fbef4073c43ee1a316763c632b9392a387 /rigify/utils/widgets.py | |
parent | 73784e78de99cb647870cbd93ef497f3e437a1a6 (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.py | 14 |
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 |