Add integration test for 3ds loader
parent
cbdd9de63f
commit
60ed8238b1
Binary file not shown.
|
@ -0,0 +1,37 @@
|
|||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
#include <catch.hpp>
|
||||
|
||||
#include <cel3ds/3dsmodel.h>
|
||||
#include <cel3ds/3dsread.h>
|
||||
|
||||
TEST_CASE("Load a 3DS file", "[3ds] [integration]")
|
||||
{
|
||||
std::unique_ptr<M3DScene> scene = Read3DSFile("huygens.3ds");
|
||||
REQUIRE(scene != nullptr);
|
||||
REQUIRE(scene->getMaterialCount() == 4);
|
||||
|
||||
REQUIRE(scene->getModelCount() == UINT32_C(8));
|
||||
|
||||
std::uint32_t meshCount = 0;
|
||||
std::uint32_t faceCount = 0;
|
||||
std::uint32_t vertexCount = 0;
|
||||
for (std::uint32_t i = 0; i < scene->getModelCount(); ++i)
|
||||
{
|
||||
const M3DModel* model = scene->getModel(i);
|
||||
REQUIRE(model != nullptr);
|
||||
meshCount += model->getTriMeshCount();
|
||||
for (std::uint32_t j = 0; j < model->getTriMeshCount(); ++j)
|
||||
{
|
||||
const M3DTriangleMesh* mesh = model->getTriMesh(j);
|
||||
REQUIRE(mesh != nullptr);
|
||||
faceCount += static_cast<std::uint32_t>(mesh->getFaceCount());
|
||||
vertexCount += static_cast<std::uint32_t>(mesh->getVertexCount());
|
||||
}
|
||||
}
|
||||
|
||||
REQUIRE(meshCount == 8);
|
||||
REQUIRE(faceCount == 6098);
|
||||
REQUIRE(vertexCount == 3263);
|
||||
}
|
|
@ -1,4 +1,7 @@
|
|||
test_case(3ds_load)
|
||||
test_case(cmod_bin_ascii_roundtrip)
|
||||
|
||||
file(COPY "${CMAKE_SOURCE_DIR}/test/data/huygens.3ds"
|
||||
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_SOURCE_DIR}/test/data/iss/models/iss.cmod"
|
||||
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
|
Loading…
Reference in New Issue