[Bf-blender-cvs] [d5e02294160] soc-2019-adaptive-cloth: Cloth: adding vertices into Cloth is faster now
ishbosamiya
noreply at git.blender.org
Thu Jun 20 08:25:24 CEST 2019
Commit: d5e022941609b3f824ae0a244e966ba320455343
Author: ishbosamiya
Date: Thu Jun 20 11:36:44 2019 +0530
Branches: soc-2019-adaptive-cloth
https://developer.blender.org/rBd5e022941609b3f824ae0a244e966ba320455343
Cloth: adding vertices into Cloth is faster now
Instead of increasing the size of cloth->verts by one each time, it is much faster and better to do so before itself, number of vertices that will be added is already known.
===================================================================
M source/blender/blenkernel/intern/cloth.c
===================================================================
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index 9d8d0406384..fff43461bb7 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -1090,22 +1090,25 @@ static bool cloth_remeshing_split_edges(ClothModifierData *clmd, LinkNodePair *s
if (num_bad_edges == 0) {
return false;
}
+ Cloth *cloth = clmd->clothObject;
+ cloth->verts = MEM_reallocN(cloth->verts,
+ (cloth->mvert_num + num_bad_edges) * sizeof(ClothVertex));
BMEdge *e;
for (int i = 0; i < num_bad_edges; i++) {
e = bad_edges[i];
BMEdge old_edge = *e;
BMVert *new_vert = cloth_remeshing_split_edge_keep_triangles(bm, e, e->v1, 0.5);
BM_elem_flag_enable(new_vert, BM_ELEM_SELECT);
- Cloth *cloth = clmd->clothObject;
- cloth->verts = MEM_reallocN(cloth->verts, (cloth->mvert_num + 1) * sizeof(ClothVertex));
BLI_assert(cloth->verts != NULL);
ClothVertex *v1, *v2;
v1 = cloth_remeshing_find_cloth_vertex(old_edge.v1, cloth->verts, cloth->mvert_num);
v2 = cloth_remeshing_find_cloth_vertex(old_edge.v2, cloth->verts, cloth->mvert_num);
+#if 0
printf("v: %f %f %f\n", old_edge.v1->co[0], old_edge.v1->co[1], old_edge.v1->co[2]);
cloth_remeshing_print_all_verts(cloth->verts, cloth->mvert_num);
printf("v: %f %f %f\n", old_edge.v2->co[0], old_edge.v2->co[1], old_edge.v2->co[2]);
cloth_remeshing_print_all_verts(cloth->verts, cloth->mvert_num);
+#endif
BLI_assert(v1 != NULL);
BLI_assert(v2 != NULL);
cloth->mvert_num += 1;
More information about the Bf-blender-cvs
mailing list