[Bf-blender-cvs] [40027f31b35] soc-2020-io-performance: Consistent var naming, function usage.

Ankit Meel noreply at git.blender.org
Sat Jul 10 15:39:08 CEST 2021


Commit: 40027f31b3508848d9c9c9a1d048344901d95906
Author: Ankit Meel
Date:   Sat Jul 10 19:08:45 2021 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rB40027f31b3508848d9c9c9a1d048344901d95906

Consistent var naming, function usage.

===================================================================

M	source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc
M	source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc
M	source/blender/io/wavefront_obj/exporter/obj_export_mesh.hh

===================================================================

diff --git a/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc b/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc
index 2895c3fb647..b1cacfb2026 100644
--- a/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc
+++ b/source/blender/io/wavefront_obj/exporter/obj_export_file_writer.cc
@@ -356,11 +356,9 @@ void OBJWriter::write_poly_elements(const OBJMesh &obj_mesh_data,
   /* Number of normals may not be equal to number of polygons due to smooth shading. */
   int per_object_tot_normals = 0;
   const int tot_polygons = obj_mesh_data.tot_polygons();
-  /* If we aren't exporting UVs, need an array for the ignored argument to poly_element_writer. */
-  Array<int> dummy_uvs(0);
-  Span<int> uvs = dummy_uvs.as_span();
   for (int i = 0; i < tot_polygons; i++) {
     Vector<int> poly_vertex_indices = obj_mesh_data.calc_poly_vertex_indices(i);
+    Span<int> poly_uv_indices = obj_mesh_data.calc_poly_uv_indices(i);
     /* For an Object, a normal index depends on how many of its normals have been written before
      * it. This is unknown because of smooth shading. So pass "per object total normals"
      * and update it after each call. */
@@ -373,10 +371,7 @@ void OBJWriter::write_poly_elements(const OBJMesh &obj_mesh_data,
     last_poly_smooth_group = write_smooth_group(obj_mesh_data, i, last_poly_smooth_group);
     last_poly_vertex_group = write_vertex_group(obj_mesh_data, i, last_poly_vertex_group);
     last_poly_mat_nr = write_poly_material(obj_mesh_data, i, last_poly_mat_nr, matname_fn);
-    if (export_params_.export_uv) {
-      uvs = obj_mesh_data.uv_indices(i);
-    }
-    (this->*poly_element_writer)(poly_vertex_indices, uvs, poly_normal_indices);
+    (this->*poly_element_writer)(poly_vertex_indices, poly_uv_indices, poly_normal_indices);
   }
   /* Unusual: Other indices are updated in #OBJWriter::update_index_offsets. */
   index_offsets_.normal_offset += per_object_tot_normals;
diff --git a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc
index d4b017bcece..7b7c5a7c4f1 100644
--- a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc
+++ b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc
@@ -154,16 +154,6 @@ int OBJMesh::tot_uv_vertices() const
   return tot_uv_vertices_;
 }
 
-/**
- * \return UV vertex indices of one polygon.
- */
-Span<int> OBJMesh::uv_indices(const int poly_index) const
-{
-  BLI_assert(poly_index < export_mesh_eval_->totpoly);
-  BLI_assert(poly_index < uv_indices_.size());
-  return uv_indices_[poly_index];
-}
-
 int OBJMesh::tot_edges() const
 {
   return export_mesh_eval_->totedge;
@@ -354,6 +344,15 @@ void OBJMesh::store_uv_coords_and_indices(Vector<std::array<float, 2>> &r_uv_coo
   BKE_mesh_uv_vert_map_free(uv_vert_map);
 }
 
+Span<int> OBJMesh::calc_poly_uv_indices(const int poly_index) const
+{
+  if (uv_indices_.size() <= 0) {
+    return {};
+  }
+  BLI_assert(poly_index < export_mesh_eval_->totpoly);
+  BLI_assert(poly_index < uv_indices_.size());
+  return uv_indices_[poly_index];
+}
 /**
  * Calculate polygon normal of a polygon at given index.
  *
diff --git a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.hh b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.hh
index f73a114659d..6e6cf6383a9 100644
--- a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.hh
+++ b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.hh
@@ -96,7 +96,6 @@ class OBJMesh : NonCopyable {
   int tot_vertices() const;
   int tot_polygons() const;
   int tot_uv_vertices() const;
-  Span<int> uv_indices(const int poly_index) const;
   int tot_edges() const;
 
   int16_t tot_materials() const;
@@ -117,6 +116,7 @@ class OBJMesh : NonCopyable {
   float3 calc_vertex_coords(const int vert_index, const float scaling_factor) const;
   Vector<int> calc_poly_vertex_indices(const int poly_index) const;
   void store_uv_coords_and_indices(Vector<std::array<float, 2>> &r_uv_coords);
+  Span<int> calc_poly_uv_indices(const int poly_index) const;
   float3 calc_poly_normal(const int poly_index) const;
   std::pair<int, Vector<int>> calc_poly_normal_indices(const int poly_index,
                                                        const int object_tot_prev_normals) const;



More information about the Bf-blender-cvs mailing list