diff --git a/code/FBXMeshGeometry.cpp b/code/FBXMeshGeometry.cpp index cc1a5a83e..8bfd60570 100644 --- a/code/FBXMeshGeometry.cpp +++ b/code/FBXMeshGeometry.cpp @@ -437,6 +437,9 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, // deal with this more elegantly and with less redundancy, but right // now it seems unavoidable. if (MappingInformationType == "ByVertice" && isDirect) { + if (!HasElement(source, indexDataElementName)) { + return; + } std::vector tempData; ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); diff --git a/test/unit/utFBXImporterExporter.cpp b/test/unit/utFBXImporterExporter.cpp index d2576cfa1..1d6cdf883 100644 --- a/test/unit/utFBXImporterExporter.cpp +++ b/test/unit/utFBXImporterExporter.cpp @@ -70,6 +70,10 @@ TEST_F( utFBXImporterExporter, importBareBoxWithoutColorsAndTextureCoords ) { Assimp::Importer importer; const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/FBX/box.fbx", aiProcess_ValidateDataStructure ); EXPECT_NE( nullptr, scene ); + EXPECT_EQ(scene->mNumMeshes, 1); + aiMesh* mesh = scene->mMeshes[0]; + EXPECT_EQ(mesh->mNumFaces, 12); + EXPECT_EQ(mesh->mNumVertices, 36); } TEST_F( utFBXImporterExporter, importPhongMaterial ) {