From 1065d7cfb26e11f84eb20b283991f8549e0a412b Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Tue, 12 Sep 2017 02:18:27 +0900 Subject: [PATCH] Change to add a shape when shape.mesh.indices.size() > 0 once `g` tag appears. Fixes #138. --- tests/tester.cc | 20 ++++++++++++++++++++ tiny_obj_loader.h | 5 ++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/tester.cc b/tests/tester.cc index a76359a..d4070c9 100644 --- a/tests/tester.cc +++ b/tests/tester.cc @@ -605,6 +605,26 @@ TEST_CASE("map_Bump", "[bump]") { REQUIRE(materials[0].bump_texname.compare("bump.jpg") == 0); } +TEST_CASE("g_ignored", "[Issue138]") { + tinyobj::attrib_t attrib; + std::vector shapes; + std::vector materials; + + std::string err; + bool ret = tinyobj::LoadObj(&attrib, &shapes, &materials, &err, "../models/issue-138.obj", gMtlBasePath); + + if (!err.empty()) { + std::cerr << err << std::endl; + } + + PrintInfo(attrib, shapes, materials); + + REQUIRE(true == ret); + REQUIRE(2 == shapes.size()); + REQUIRE(2 == materials.size()); + +} + #if 0 int main( diff --git a/tiny_obj_loader.h b/tiny_obj_loader.h index 34cd85e..4e2f6b5 100644 --- a/tiny_obj_loader.h +++ b/tiny_obj_loader.h @@ -23,6 +23,7 @@ THE SOFTWARE. */ // +// version 1.0.8 : Fix parsing `g` tag just after `usemtl`(#138) // version 1.0.7 : Support multiple tex options(#126) // version 1.0.6 : Add TINYOBJLOADER_USE_DOUBLE option(#124) // version 1.0.5 : Ignore `Tr` when `d` exists in MTL(#43) @@ -1621,7 +1622,9 @@ bool LoadObj(attrib_t *attrib, std::vector *shapes, // flush previous face group. bool ret = exportFaceGroupToShape(&shape, faceGroup, tags, material, name, triangulate); - if (ret) { + (void)ret; // return value not used. + + if (shape.mesh.indices.size() > 0) { shapes->push_back(shape); }