[Bf-blender-cvs] [aa9e4b23e5a] soc-2020-io-performance: Cleanup single use variable, comments, formatting
Ankit Meel
noreply at git.blender.org
Wed Jul 15 11:09:33 CEST 2020
Commit: aa9e4b23e5abc5f4af6f3bda8a555a9ace11a2e1
Author: Ankit Meel
Date: Wed Jul 15 14:39:29 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rBaa9e4b23e5abc5f4af6f3bda8a555a9ace11a2e1
Cleanup single use variable, comments, formatting
Also, vert_texture.size() was wrongly compared to 1. It's changed to 2.
===================================================================
M source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.cc
M source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.hh
M source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.cc
M source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh
M source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc
===================================================================
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.cc b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.cc
index bc708678559..b9774545d0f 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.cc
@@ -73,8 +73,8 @@ void OBJImporter::parse_and_store(Vector<std::unique_ptr<OBJRawObject>> &list_of
string line;
/* Non owning raw pointer to the unique_ptr to a raw object.
* Needed to update object data in the same while loop.
- * TODO ankitm Try to move the rest of the data parsing code in a conditional depending on a
- * valid "o" object. */
+ * TODO ankitm Try to move the rest of the data parsing code in a conditional
+ * depending on a valid "o" object. */
std::unique_ptr<OBJRawObject> *curr_ob;
while (std::getline(infile_, line)) {
string line_key = first_word_of_string(line);
@@ -109,26 +109,31 @@ void OBJImporter::parse_and_store(Vector<std::unique_ptr<OBJRawObject>> &list_of
}
else if (line_key == "f") {
OBJFaceElem curr_face;
- string str_corners_line = s_line.str();
Vector<string> str_corners_split;
- split_by_char(str_corners_line, ' ', str_corners_split);
+ split_by_char(s_line.str(), ' ', str_corners_split);
for (auto str_corner : str_corners_split) {
OBJFaceCorner corner;
size_t n_slash = std::count(str_corner.begin(), str_corner.end(), '/');
if (n_slash == 0) {
+ /* Case: f v1 v2 v3 . */
corner.vert_index = std::stoi(str_corner);
}
else if (n_slash == 1) {
+ /* Case: f v1/vt1 v2/vt2 v3/vt3 . */
Vector<std::string> vert_texture;
split_by_char(str_corner, '/', vert_texture);
corner.vert_index = std::stoi(vert_texture[0]);
- corner.tex_vert_index = vert_texture.size() >= 1 ? -1 : std::stoi(vert_texture[1]);
+ corner.tex_vert_index = vert_texture.size() >= 2 ? -1 : std::stoi(vert_texture[1]);
}
else if (n_slash == 2) {
- Vector<std::string> vert_normal;
- split_by_char(str_corner, '/', vert_normal);
- corner.vert_index = std::stoi(vert_normal[0]);
- /* Discard normals. They'll be calculated on the basis of smooth shading flag. */
+ /* Case: f v1//vn1 v2//vn2 v3//vn3 . */
+ /* Case: f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 . */
+ Vector<std::string> vert_tex_normal;
+ split_by_char(str_corner, '/', vert_tex_normal);
+ corner.vert_index = std::stoi(vert_tex_normal[0]);
+ corner.tex_vert_index = vert_tex_normal.size() >= 2 ? -1 : std::stoi(vert_tex_normal[1]);
+ /* Discard normals. They'll be calculated on the basis of smooth
+ * shading flag. */
}
corner.vert_index -= index_offsets[VERTEX_OFF] + 1;
corner.tex_vert_index -= index_offsets[UV_VERTEX_OFF] + 1;
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.hh b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.hh
index 8fe4e076818..7fb7f7d6006 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.hh
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_file_reader.hh
@@ -27,22 +27,22 @@
#include "IO_wavefront_obj.h"
#include "wavefront_obj_im_objects.hh"
-namespace blender::io::obj{
+namespace blender::io::obj {
class OBJImporter {
-private:
+ private:
const OBJImportParams &import_params_;
std::ifstream infile_;
uint index_offsets[2] = {0, 0};
-public:
+ public:
OBJImporter(const OBJImportParams &import_params);
void parse_and_store(Vector<std::unique_ptr<OBJRawObject>> &list_of_objects);
void print_obj_data(Vector<std::unique_ptr<OBJRawObject>> &list_of_objects);
void raw_to_blender_objects(Main *bmain,
- Scene *scene,
- Vector<std::unique_ptr<OBJRawObject>> &list_of_objects);
+ Scene *scene,
+ Vector<std::unique_ptr<OBJRawObject>> &list_of_objects);
};
-}
+} // namespace blender::io::obj
#endif
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.cc b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.cc
index 56ebfcfcbd0..582f4e8b4d9 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.cc
@@ -21,8 +21,8 @@
* \ingroup obj
*/
-#include "BKE_context.h"
#include "BKE_collection.h"
+#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
diff --git a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh
index d432aca2f51..fd4e13e69d0 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_im_objects.hh
@@ -27,8 +27,8 @@
#include "BLI_string_ref.hh"
#include "BLI_vector.hh"
-#include "DNA_meshdata_types.h"
#include "DNA_collection_types.h"
+#include "DNA_meshdata_types.h"
#include "wavefront_obj_im_mesh.hh"
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 c563d3bb21f..3db1679332c 100644
--- a/source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc
+++ b/source/blender/io/wavefront_obj/intern/wavefront_obj_importer.cc
@@ -64,8 +64,8 @@ void OBJImporter::print_obj_data(Vector<std::unique_ptr<OBJRawObject>> &list_of_
}
void OBJImporter::raw_to_blender_objects(Main *bmain,
- Scene *scene,
- Vector<std::unique_ptr<OBJRawObject>> &list_of_objects)
+ Scene *scene,
+ Vector<std::unique_ptr<OBJRawObject>> &list_of_objects)
{
OBJParentCollection parent{bmain, scene};
for (std::unique_ptr<OBJRawObject> &curr_object : list_of_objects) {
More information about the Bf-blender-cvs
mailing list