diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2018-05-17 16:26:59 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2018-05-17 16:28:51 +0300 |
commit | a2438373b317005c19288d183af4b08f54f80428 (patch) | |
tree | cb93bdacc7d33fc38ed5de253ab4853aa1aa55ae /source/blender/blenkernel | |
parent | c48a3afb166b38bbdf55c3e6d317ef85f90d18bf (diff) |
Modifiers: ported Collision DerivedMesh → Mesh
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_mesh.h | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh_runtime.c | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index 25b91be3791..f1326974f10 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -54,6 +54,7 @@ struct MLoop; struct MFace; struct MEdge; struct MVert; +struct MVertTri; struct MDeformVert; struct MDisps; struct Object; @@ -201,6 +202,11 @@ bool BKE_mesh_runtime_clear_edit_data(struct Mesh *mesh); void BKE_mesh_runtime_clear_geometry(struct Mesh *mesh); void BKE_mesh_runtime_clear_cache(struct Mesh *mesh); +void BKE_mesh_runtime_verttri_from_looptri( + struct MVertTri *r_verttri, + const struct MLoop *mloop, const struct MLoopTri *looptri, int looptri_num); + + /* *** mesh_evaluate.c *** */ void BKE_mesh_calc_normals_mapping( diff --git a/source/blender/blenkernel/intern/mesh_runtime.c b/source/blender/blenkernel/intern/mesh_runtime.c index 577b7327181..c8416811694 100644 --- a/source/blender/blenkernel/intern/mesh_runtime.c +++ b/source/blender/blenkernel/intern/mesh_runtime.c @@ -144,6 +144,19 @@ const MLoopTri *BKE_mesh_runtime_looptri_ensure(Mesh *mesh) return looptri; } +/* This is a copy of DM_verttri_from_looptri(). */ +void BKE_mesh_runtime_verttri_from_looptri(MVertTri *r_verttri, const MLoop *mloop, + const MLoopTri *looptri, int looptri_num) +{ + int i; + for (i = 0; i < looptri_num; i++) { + r_verttri[i].tri[0] = mloop[looptri[i].tri[0]].v; + r_verttri[i].tri[1] = mloop[looptri[i].tri[1]].v; + r_verttri[i].tri[2] = mloop[looptri[i].tri[2]].v; + } +} + + bool BKE_mesh_runtime_ensure_edit_data(struct Mesh *mesh) { if (mesh->runtime.edit_data != NULL) { |