[Bf-blender-cvs] [5299b52d7a1] soc-2020-io-performance: Removed extra vertices in the new bmesh
Ankit Meel
noreply at git.blender.org
Sun Jul 12 15:41:04 CEST 2020
Commit: 5299b52d7a160fe775eb020a2f6aec91a57ceae2
Author: Ankit Meel
Date: Sat Jul 11 02:49:41 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rB5299b52d7a160fe775eb020a2f6aec91a57ceae2
Removed extra vertices in the new bmesh
Also considering to use `BM_mesh_bm_to_me_for_eval` to avoid
time spent in `BM_mesh_bm_to_me` for mesh data not required for OBJ.
So some commented code is present.
===================================================================
M source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc
===================================================================
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc b/source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc
index 84422d41863..277bfc5bb55 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc
@@ -136,19 +136,21 @@ void OBJImporter::print_obj_data(Vector<std::unique_ptr<OBJRawObject>> &list_of_
static Mesh *mesh_from_raw_obj(Main *bmain, OBJRawObject &curr_object)
{
+ /* verts_len is 0 since BMVerts will be added later. So avoid duplication of vertices in
+ * BM_mesh_bm_from_me */
Mesh *mesh = BKE_mesh_new_nomain(
- curr_object.vertices.size(), 0, 0, curr_object.tot_loop, curr_object.face_elements.size());
+ 0, 0, 0, curr_object.tot_loop, curr_object.face_elements.size());
/* -------------------- */
struct BMeshFromMeshParams bm_convert_params = {true, 0, 0, 0};
- BMAllocTemplate bat = {static_cast<int>(curr_object.vertices.size()),
+ BMAllocTemplate bat = {0,
0,
static_cast<int>(curr_object.tot_loop),
static_cast<int>(curr_object.face_elements.size())};
BMeshCreateParams bcp = {1};
BMesh *bm_new = BM_mesh_create(&bat, &bcp);
BM_mesh_bm_from_me(bm_new, mesh, &bm_convert_params);
-
+ // BKE_mesh_free(mesh);
/* Vertex creation. */
Array<BMVert *> all_vertices(curr_object.vertices.size());
for (int i = 0; i < curr_object.vertices.size(); i++) {
@@ -173,6 +175,8 @@ static Mesh *mesh_from_raw_obj(Main *bmain, OBJRawObject &curr_object)
/* Add mesh to object. */
BMeshToMeshParams bmtmp = {0, 0, {0, 0, 0, 0, 0}};
BM_mesh_bm_to_me(bmain, bm_new, mesh, &bmtmp);
+ // Mesh *mesh1 = BKE_mesh_new_nomain(0, 0, 0, 0, 0);
+ // BM_mesh_bm_to_me_for_eval(bm_new, mesh, NULL);
BM_mesh_free(bm_new);
return mesh;
More information about the Bf-blender-cvs
mailing list