diff options
author | Sergey Sharybin <sergey@blender.org> | 2022-01-05 11:53:48 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2022-01-25 16:43:44 +0300 |
commit | 196da819ba4cf553c76468a091966f33081efb08 (patch) | |
tree | 0d289d01aa832fd7a629df02d106daffdb64a462 /source/blender/makesdna/DNA_object_types.h | |
parent | 31296f6f9d67570920c143be24b26e28f10a0ebb (diff) |
Python: Expose crazyspace correction functionality via RNA
Allows to perform correction of coordinate delta/displacement in a
similar way of how sculpt mode handles sculpting on a deformed mesh.
An example of usecase of this is allowing riggers and sciprters to
improve corrective shapekey workflow.
The usage consists of pre-processing and access. For example:
object.crazyspace_eval(depsgraph, scene)
# When we have a difference between two vertices and want to convert
# it to a space to be stored, say, in shapekey:
delta_in_orig_space = rigged_ob.crazyspace_displacement_to_original(
vertex_index=i, displacement=delta)
# The reverse of above.
delta_in_deformed_space = rigged_ob.crazyspace_displacement_to_deformed(
vertex_index=i, displacement=delta)
object.crazyspace_eval_clear()
Fuller explanation with actual usecases and studio examples are written in
the comment:
https://developer.blender.org/D13892#368898
Differential Revision: https://developer.blender.org/D13892
Diffstat (limited to 'source/blender/makesdna/DNA_object_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index f9ef4ba0000..602f968634e 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -216,6 +216,12 @@ typedef struct Object_Runtime { unsigned short local_collections_bits; short _pad2[3]; + + float (*crazyspace_deform_imats)[3][3]; + float (*crazyspace_deform_cos)[3]; + int crazyspace_num_verts; + + int _pad3[3]; } Object_Runtime; typedef struct ObjectLineArt { |