diff options
author | Syoyo Fujita <syoyo@lighttransport.com> | 2016-11-03 02:58:44 +0900 |
---|---|---|
committer | Syoyo Fujita <syoyo@lighttransport.com> | 2016-11-03 02:58:44 +0900 |
commit | 0948ca0417455dd82891547699e97ba142021a7b (patch) | |
tree | bd838fb7b0160c0baa9d207f75cf7f0b951d892e /tests | |
parent | 582eb2b818ee5454aec73822d43c8c5e95cfc404 (diff) | |
download | tinyobjloader-0948ca0417455dd82891547699e97ba142021a7b.tar.gz |
Add more support for parsing texture options.
Add more unit testing for texture options.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/tester.cc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/tester.cc b/tests/tester.cc index 53955a8..b5ac70f 100644 --- a/tests/tester.cc +++ b/tests/tester.cc @@ -488,6 +488,48 @@ TEST_CASE("usemtl_at_last_line", "[Issue104]") { REQUIRE(1 == shapes.size()); } +TEST_CASE("texture_opts", "[Issue85]") { + tinyobj::attrib_t attrib; + std::vector<tinyobj::shape_t> shapes; + std::vector<tinyobj::material_t> materials; + + std::string err; + bool ret = tinyobj::LoadObj(&attrib, &shapes, &materials, &err, "../models/texture-options-issue-85.obj", gMtlBasePath); + + if (!err.empty()) { + std::cerr << err << std::endl; + } + REQUIRE(true == ret); + REQUIRE(1 == shapes.size()); + REQUIRE(3 == materials.size()); + REQUIRE(0 == materials[0].name.compare("default")); + REQUIRE(0 == materials[1].name.compare("bm2")); + REQUIRE(0 == materials[2].name.compare("bm3")); + REQUIRE(true == materials[0].ambient_texopt.clamp); + REQUIRE(0.1 == Approx(materials[0].diffuse_texopt.origin_offset[0])); + REQUIRE(0.0 == Approx(materials[0].diffuse_texopt.origin_offset[1])); + REQUIRE(0.0 == Approx(materials[0].diffuse_texopt.origin_offset[2])); + REQUIRE(0.1 == Approx(materials[0].specular_texopt.scale[0])); + REQUIRE(0.2 == Approx(materials[0].specular_texopt.scale[1])); + REQUIRE(1.0 == Approx(materials[0].specular_texopt.scale[2])); + REQUIRE(0.1 == Approx(materials[0].specular_highlight_texopt.turbulence[0])); + REQUIRE(0.2 == Approx(materials[0].specular_highlight_texopt.turbulence[1])); + REQUIRE(0.3 == Approx(materials[0].specular_highlight_texopt.turbulence[2])); + REQUIRE(3.0 == Approx(materials[0].bump_texopt.bump_multiplier)); + + REQUIRE(0.1 == Approx(materials[1].specular_highlight_texopt.brightness)); + REQUIRE(0.3 == Approx(materials[1].specular_highlight_texopt.contrast)); + REQUIRE('r' == materials[1].bump_texopt.imfchan); + + REQUIRE(tinyobj::TEXTURE_TYPE_SPHERE == materials[2].diffuse_texopt.type); + REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_TOP == materials[2].specular_texopt.type); + REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_BOTTOM == materials[2].specular_highlight_texopt.type); + REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_LEFT == materials[2].ambient_texopt.type); + REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_RIGHT == materials[2].alpha_texopt.type); + REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_FRONT == materials[2].bump_texopt.type); + REQUIRE(tinyobj::TEXTURE_TYPE_CUBE_BACK == materials[2].displacement_texopt.type); +} + #if 0 int main( |