Skip to content
Snippets Groups Projects
Verified Commit 4369e27c authored by Sankhesh Jhaveri's avatar Sankhesh Jhaveri :speech_balloon:
Browse files

Add testing for GLTF import from streams

parent 3179646c
No related branches found
No related tags found
No related merge requests found
......@@ -98,32 +98,41 @@ vtk_add_test_cxx(vtkIOImportCxxTests tests
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
TestGLTFImporter,TestGLTFImporter.cxx DATA{../Data/glTF/Avocado/Avocado.glb} -1 1 0 0
TestGLTFImporter,TestGLTFImporter.cxx DATA{../Data/glTF/Avocado/Avocado.glb} 0 -1 1 0 0
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
TestGLTFImporterStream,TestGLTFImporter.cxx DATA{../Data/glTF/Avocado/Avocado.glb} 1 -1 1 0 0
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
LOOSE_VALID
TestGLTFImporterPBR,TestGLTFImporter.cxx DATA{../Data/glTF/WaterBottle/WaterBottle.glb} 0 -1 1 0 0
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
LOOSE_VALID
TestGLTFImporterPBR,TestGLTFImporter.cxx DATA{../Data/glTF/WaterBottle/WaterBottle.glb} -1 1 0 0
TestGLTFImporterPBRStream,TestGLTFImporter.cxx DATA{../Data/glTF/WaterBottle/WaterBottle.glb} 1 -1 1 0 0
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
TestGLTFImporterKHRLightsPunctual,TestGLTFImporter.cxx DATA{../Data/glTF/Lights/lights.gltf} 0 1 5 1
TestGLTFImporterKHRLightsPunctual,TestGLTFImporter.cxx DATA{../Data/glTF/Lights/lights.gltf} 0 0 1 5 1
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
TestGLTFImporterCamera,TestGLTFImporter.cxx DATA{../Data/glTF/Cameras/Cameras.gltf} 1 1 0 2
TestGLTFImporterCamera,TestGLTFImporter.cxx DATA{../Data/glTF/Cameras/Cameras.gltf} 0 1 1 0 2
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
TestGLTFImporterUnlit,TestGLTFImporter.cxx DATA{../Data/glTF/UnlitTest/UnlitTest.glb} -1 2 0 0
TestGLTFImporterUnlit,TestGLTFImporter.cxx DATA{../Data/glTF/UnlitTest/UnlitTest.glb} 0 -1 2 0 0
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
TestGLTFImporterArmature,TestGLTFImporter.cxx DATA{../Data/glTF/Armature.gltf} -1 1 0 0
TestGLTFImporterArmature,TestGLTFImporter.cxx DATA{../Data/glTF/Armature.gltf} 0 -1 1 0 0
)
vtk_add_test_cxx(vtkIOImportCxxTests tests
TestGLTFImporterURITexture,TestGLTFImporter.cxx DATA{../Data/glTF/Lantern/Lantern.gltf} -1 3 0 0
TestGLTFImporterURITexture,TestGLTFImporter.cxx DATA{../Data/glTF/Lantern/Lantern.gltf} 0 -1 3 0 0
DATA{../Data/glTF/Lantern/Lantern.bin}
DATA{../Data/glTF/Lantern/Lantern_baseColor.png}
DATA{../Data/glTF/Lantern/Lantern_emissive.png}
......
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
#include <vtkFileResourceStream.h>
#include <vtkGLTFImporter.h>
#include <vtkLightCollection.h>
#include <vtkRegressionTestImage.h>
......@@ -11,19 +12,42 @@
int TestGLTFImporter(int argc, char* argv[])
{
if (argc < 6)
if (argc < 7)
{
std::cout << "Usage: " << argv[0]
<< " <gltf file> <camera index> <expected nb of actors> <expected nb of lights> "
"<expected nb of cameras>"
<< std::endl;
std::cout
<< "Usage: " << argv[0]
<< " <gltf file> <use_stream> <camera index> <expected nb of actors> <expected nb of lights> "
"<expected nb of cameras>"
<< std::endl;
return EXIT_FAILURE;
}
vtkIdType cameraIndex = atoi(argv[2]);
vtkIdType cameraIndex = atoi(argv[3]);
vtkNew<vtkGLTFImporter> importer;
importer->SetFileName(argv[1]);
if (atoi(argv[2]) > 0)
{
bool is_binary = false;
std::string extension = vtksys::SystemTools::GetFilenameLastExtension(argv[1]);
if (extension == ".glb")
{
is_binary = true;
}
vtkNew<vtkFileResourceStream> file;
file->Open(argv[1]);
if (file->EndOfStream())
{
std::cerr << "Can not open test file " << argv[1] << std::endl;
return EXIT_FAILURE;
}
importer->SetStream(file);
importer->SetStreamIsBinary(is_binary);
}
else
{
importer->SetFileName(argv[1]);
}
importer->ImportArmatureOn();
vtkNew<vtkRenderWindow> renderWindow;
......@@ -43,19 +67,19 @@ int TestGLTFImporter(int argc, char* argv[])
return EXIT_FAILURE;
}
if (importer->GetImportedActors()->GetNumberOfItems() != atoi(argv[3]))
if (importer->GetImportedActors()->GetNumberOfItems() != atoi(argv[4]))
{
std::cerr << "ERROR: Unexpected number of imported actors: "
<< importer->GetImportedActors()->GetNumberOfItems() << "\n";
return EXIT_FAILURE;
}
if (importer->GetImportedLights()->GetNumberOfItems() != atoi(argv[4]))
if (importer->GetImportedLights()->GetNumberOfItems() != atoi(argv[5]))
{
std::cerr << "ERROR: Unexpected number of imported lights: "
<< importer->GetImportedActors()->GetNumberOfItems() << "\n";
return EXIT_FAILURE;
}
if (importer->GetImportedCameras()->GetNumberOfItems() != atoi(argv[5]))
if (importer->GetImportedCameras()->GetNumberOfItems() != atoi(argv[6]))
{
std::cerr << "ERROR: Unexpected number of imported cameras: "
<< importer->GetImportedActors()->GetNumberOfItems() << "\n";
......
c59b73eff93b98942a8bd18743d71ca6d0d4de001c0c0765a7684b0bc4ca1d3b8b46805854b1f77616407fbdc8fcded7ea777cff4ea511a585a6864970ae5d71
a40ba06e652140ed031e7cda5597b2cfa84b42ab2ae05ca068c015432e5302f00c72bea03b2bb9e6532181fb0a33ec4abc7f178ad2292d57cb82d6bc9ee97bf7
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment