[Bf-blender-cvs] [3277879085e] master: Fix T103441: make OBJ importer ignore any unrecognized trailing per-face index data.

Aras Pranckevicius noreply at git.blender.org
Sun Jan 1 18:30:13 CET 2023


Commit: 3277879085ed42a4524a7c43110c37dd0d4ebb84
Author: Aras Pranckevicius
Date:   Sun Jan 1 19:30:20 2023 +0200
Branches: master
https://developer.blender.org/rB3277879085ed42a4524a7c43110c37dd0d4ebb84

Fix T103441: make OBJ importer ignore any unrecognized trailing per-face index data.

Some files out there (e.g. in T103441) contain face definitions with
four indices, which the importer code was not expecting. The OBJ
standard spells out up to three indices per face corner; the file in
there must be using some sort of non-standard OBJ syntax extension.
Now the code simply ignores any trailing per-face-corner data.

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

M	source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc

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

diff --git a/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc b/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc
index a46b3397891..1a3a333d957 100644
--- a/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc
+++ b/source/blender/io/wavefront_obj/importer/obj_import_file_reader.cc
@@ -252,6 +252,8 @@ static void geom_add_polygon(Geometry *geom,
     geom->face_corners_.append(corner);
     curr_face.corner_count_++;
 
+    /* Some files contain extra stuff per face (e.g. 4 indices); skip any remainder (T103441). */
+    p = drop_non_whitespace(p, end);
     /* Skip whitespace to get to the next face corner. */
     p = drop_whitespace(p, end);
   }



More information about the Bf-blender-cvs mailing list