diff options
Diffstat (limited to 'source/blender/blenkernel/intern/fluidsim.c')
-rw-r--r-- | source/blender/blenkernel/intern/fluidsim.c | 75 |
1 files changed, 41 insertions, 34 deletions
diff --git a/source/blender/blenkernel/intern/fluidsim.c b/source/blender/blenkernel/intern/fluidsim.c index 2263c5f1a05..994e00f227a 100644 --- a/source/blender/blenkernel/intern/fluidsim.c +++ b/source/blender/blenkernel/intern/fluidsim.c @@ -21,7 +21,6 @@ * \ingroup bke */ - #include "MEM_guardedalloc.h" #include "DNA_mesh_types.h" @@ -41,43 +40,51 @@ // file handling //------------------------------------------------------------------------------- -void initElbeemMesh(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, - int *numVertices, float **vertices, - int *numTriangles, int **triangles, - int useGlobalCoords, int modifierIndex) +void initElbeemMesh(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *ob, + int *numVertices, + float **vertices, + int *numTriangles, + int **triangles, + int useGlobalCoords, + int modifierIndex) { - Mesh *mesh; - const MVert *mvert; - const MLoop *mloop; - const MLoopTri *looptri, *lt; - int i, mvert_num, looptri_num; - float *verts; - int *tris; + Mesh *mesh; + const MVert *mvert; + const MLoop *mloop; + const MLoopTri *looptri, *lt; + int i, mvert_num, looptri_num; + float *verts; + int *tris; - mesh = mesh_create_eval_final_index_render(depsgraph, scene, ob, &CD_MASK_BAREMESH, modifierIndex); + mesh = mesh_create_eval_final_index_render( + depsgraph, scene, ob, &CD_MASK_BAREMESH, modifierIndex); - mvert = mesh->mvert; - mloop = mesh->mloop; - looptri = BKE_mesh_runtime_looptri_ensure(mesh); - mvert_num = mesh->totvert; - looptri_num = mesh->runtime.looptris.len; + mvert = mesh->mvert; + mloop = mesh->mloop; + looptri = BKE_mesh_runtime_looptri_ensure(mesh); + mvert_num = mesh->totvert; + looptri_num = mesh->runtime.looptris.len; - *numVertices = mvert_num; - verts = MEM_mallocN(mvert_num * sizeof(float[3]), "elbeemmesh_vertices"); - for (i = 0; i < mvert_num; i++) { - copy_v3_v3(&verts[i * 3], mvert[i].co); - if (useGlobalCoords) { mul_m4_v3(ob->obmat, &verts[i * 3]); } - } - *vertices = verts; + *numVertices = mvert_num; + verts = MEM_mallocN(mvert_num * sizeof(float[3]), "elbeemmesh_vertices"); + for (i = 0; i < mvert_num; i++) { + copy_v3_v3(&verts[i * 3], mvert[i].co); + if (useGlobalCoords) { + mul_m4_v3(ob->obmat, &verts[i * 3]); + } + } + *vertices = verts; - *numTriangles = looptri_num; - tris = MEM_mallocN(looptri_num * sizeof(int[3]), "elbeemmesh_triangles"); - for (i = 0, lt = looptri; i < looptri_num; i++, lt++) { - tris[(i * 3) + 0] = mloop[lt->tri[0]].v; - tris[(i * 3) + 1] = mloop[lt->tri[1]].v; - tris[(i * 3) + 2] = mloop[lt->tri[2]].v; - } - *triangles = tris; + *numTriangles = looptri_num; + tris = MEM_mallocN(looptri_num * sizeof(int[3]), "elbeemmesh_triangles"); + for (i = 0, lt = looptri; i < looptri_num; i++, lt++) { + tris[(i * 3) + 0] = mloop[lt->tri[0]].v; + tris[(i * 3) + 1] = mloop[lt->tri[1]].v; + tris[(i * 3) + 2] = mloop[lt->tri[2]].v; + } + *triangles = tris; - BKE_id_free(NULL, mesh); + BKE_id_free(NULL, mesh); } |