[Bf-blender-cvs] [d1cc8c47126] soc-2020-io-performance: Move vertex index Vector resize to OBJMesh.
Ankit Meel
noreply at git.blender.org
Wed Sep 16 13:05:55 CEST 2020
Commit: d1cc8c47126473f7b952c161fc6e0fe213ebba13
Author: Ankit Meel
Date: Wed Sep 16 15:17:59 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rBd1cc8c47126473f7b952c161fc6e0fe213ebba13
Move vertex index Vector resize to OBJMesh.
===================================================================
M source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
M source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
===================================================================
diff --git a/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc b/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
index 1605b62db14..90e3268447e 100644
--- a/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
+++ b/source/blender/io/wavefront_obj/intern/obj_export_file_writer.cc
@@ -317,17 +317,16 @@ void OBJWriter::write_poly_elements(const OBJMesh &obj_mesh_data)
short last_face_vertex_group = NEGATIVE_INIT;
short last_face_mat_nr = NEGATIVE_INIT;
- Vector<uint> vertex_indices;
- const int totloop = obj_mesh_data.ith_poly_totloop(i);
- vertex_indices.resize(totloop);
- obj_mesh_data.calc_poly_vertex_indices(i, vertex_indices);
func_vert_uv_normal_indices poly_element_writer = get_poly_element_writer(obj_mesh_data);
+ Vector<uint> face_vertex_indices;
Vector<uint> face_normal_indices;
/* Reset for every Object. */
per_object_tot_normals_ = 0;
const int tot_polygons = obj_mesh_data.tot_polygons();
for (uint i = 0; i < tot_polygons; i++) {
+ const int totloop = obj_mesh_data.ith_poly_totloop(i);
+ obj_mesh_data.calc_poly_vertex_indices(i, face_vertex_indices);
/* For an Object, a normal index depends on how many have been written before it.
* This is unknown because of smooth shading. So pass "per object total normals"
* and update it after each call. */
diff --git a/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc b/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
index 4452760911f..f30b0a7a3b5 100644
--- a/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
+++ b/source/blender/io/wavefront_obj/intern/obj_export_mesh.cc
@@ -304,6 +304,7 @@ void OBJMesh::calc_poly_vertex_indices(const uint poly_index,
const MPoly &mpoly = export_mesh_eval_->mpoly[poly_index];
const MLoop *mloop = &export_mesh_eval_->mloop[mpoly.loopstart];
const int totloop = mpoly.totloop;
+ r_poly_vertex_indices.resize(totloop);
for (uint loop_index = 0; loop_index < totloop; loop_index++) {
r_poly_vertex_indices[loop_index] = mloop[loop_index].v;
}
More information about the Bf-blender-cvs
mailing list