[Bf-blender-cvs] [69f70829d2c] soc-2020-io-performance: Fix usemtl line not being written.
Ankit Meel
noreply at git.blender.org
Thu Aug 13 22:26:58 CEST 2020
Commit: 69f70829d2c150f5162b12cc949eb132127ab4de
Author: Ankit Meel
Date: Fri Aug 14 01:56:54 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rB69f70829d2c150f5162b12cc949eb132127ab4de
Fix usemtl line not being written.
`==` → `!=` : the bug.
`totface` → `totpoly`: it was a mistake.
Rest is cleanup.
===================================================================
M source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.cc
M source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.hh
M source/blender/io/wavefront_obj/intern/wavefront_obj_ex_mesh.cc
===================================================================
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.cc b/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.cc
index c9fda3f6f81..869278dca43 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.cc
@@ -211,8 +211,8 @@ void OBJWriter::write_poly_normals(OBJMesh &obj_mesh_data) const
* so. If the polygon is not shaded smooth, write "off".
*/
void OBJWriter::write_smooth_group(const OBJMesh &obj_mesh_data,
- int &r_last_face_smooth_group,
- uint poly_index) const
+ const uint poly_index,
+ int &r_last_face_smooth_group) const
{
if (!export_params_.export_smooth_groups || !obj_mesh_data.tot_smooth_groups()) {
return;
@@ -252,9 +252,9 @@ void OBJWriter::write_poly_material(const OBJMesh &obj_mesh_data,
}
const MPoly &mpoly = obj_mesh_data.get_ith_poly(poly_index);
short mat_nr = mpoly.mat_nr;
- /* Whenever a face with a new material is encountered, write its material and group, otherwise
+ /* Whenever a face with a new material is encountered, write its material and/or group, otherwise
* pass. */
- if (r_last_face_mat_nr == mat_nr) {
+ if (r_last_face_mat_nr != mat_nr) {
const char *mat_name = obj_mesh_data.get_object_material_name(mat_nr + 1);
if (export_params_.export_material_groups) {
const char *object_name = obj_mesh_data.get_object_name();
@@ -271,8 +271,8 @@ void OBJWriter::write_poly_material(const OBJMesh &obj_mesh_data,
* written.
*/
void OBJWriter::write_vertex_group(const OBJMesh &obj_mesh_data,
- short &last_face_vertex_group,
- uint poly_index) const
+ const uint poly_index,
+ short &last_face_vertex_group) const
{
if (!export_params_.export_vertex_groups) {
return;
@@ -337,8 +337,8 @@ void OBJWriter::write_poly_elements(const OBJMesh &obj_mesh_data,
obj_mesh_data.calc_poly_normal_indices(i, normal_indices);
const MPoly &poly_to_write = obj_mesh_data.get_ith_poly(i);
- write_smooth_group(obj_mesh_data, last_face_smooth_group, i);
- write_vertex_group(obj_mesh_data, last_face_vertex_group, i);
+ write_smooth_group(obj_mesh_data, i, last_face_smooth_group);
+ write_vertex_group(obj_mesh_data, i, last_face_vertex_group);
write_poly_material(obj_mesh_data, i, last_face_mat_nr);
(this->*func_vert_uv_normal_indices)(
vertex_indices, uv_indices[i], normal_indices, poly_to_write);
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.hh b/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.hh
index 0e64c5d9c22..628497071a8 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.hh
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_file_writer.hh
@@ -66,14 +66,14 @@ class OBJWriter {
void write_uv_coords(OBJMesh &obj_mesh_data, Vector<Vector<uint>> &uv_indices) const;
void write_poly_normals(OBJMesh &obj_mesh_data) const;
void write_smooth_group(const OBJMesh &obj_mesh_data,
- int &r_last_face_smooth_group,
- uint poly_index) const;
+ uint poly_index,
+ int &r_last_face_smooth_group) const;
void write_poly_material(const OBJMesh &obj_mesh_data,
const uint poly_index,
short &r_last_face_mat_nr) const;
void write_vertex_group(const OBJMesh &obj_mesh_data,
- short &r_last_face_vertex_group,
- uint poly_index) const;
+ const uint poly_index,
+ short &r_last_face_vertex_group) const;
void write_poly_elements(const OBJMesh &obj_mesh_data, Span<Vector<uint>> uv_indices) const;
void write_loose_edges(const OBJMesh &obj_mesh_data) const;
void write_nurbs_curve(const OBJNurbs &obj_nurbs_data) const;
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_mesh.cc b/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_mesh.cc
index 858d5cbf317..3e70ea07f16 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_mesh.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_ex_mesh.cc
@@ -152,7 +152,7 @@ uint OBJMesh::tot_vertices() const
uint OBJMesh::tot_polygons() const
{
- return export_mesh_eval_->totface;
+ return export_mesh_eval_->totpoly;
}
uint OBJMesh::tot_uv_vertices() const
More information about the Bf-blender-cvs
mailing list