diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-08-22 06:45:31 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-08-24 00:34:43 +0300 |
commit | acdb14d264c8b4eced645673f8ae8af1a96b1a90 (patch) | |
tree | 0be0b3490fe79105892e309be48f608e6ed19fc5 /source/blender/blenkernel/intern/mesh.c | |
parent | 71c43e92257c671065125330f93ed4d03b2b8250 (diff) |
Transform: option to transform origins in object mode
Currently supports mesh, armature, lattice, curve & metaballs.
Access from pivot popover.
Diffstat (limited to 'source/blender/blenkernel/intern/mesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/mesh.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 9c5ae9b8ca6..38e4527fd17 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -1675,6 +1675,19 @@ void BKE_mesh_vert_coords_apply(Mesh *mesh, const float (*vert_coords)[3]) mesh->runtime.cd_dirty_vert |= CD_MASK_NORMAL; } +void BKE_mesh_vert_coords_apply_with_mat4(Mesh *mesh, + const float (*vert_coords)[3], + const float mat[4][4]) +{ + /* This will just return the pointer if it wasn't a referenced layer. */ + MVert *mv = CustomData_duplicate_referenced_layer(&mesh->vdata, CD_MVERT, mesh->totvert); + mesh->mvert = mv; + for (int i = 0; i < mesh->totvert; i++, mv++) { + mul_v3_m4v3(mv->co, mat, vert_coords[i]); + } + mesh->runtime.cd_dirty_vert |= CD_MASK_NORMAL; +} + void BKE_mesh_vert_normals_apply(Mesh *mesh, const short (*vert_normals)[3]) { /* This will just return the pointer if it wasn't a referenced layer. */ |