Browse Source

Fixed extras presence check in gltf2 import.

Bengt Rosenberger 3 years ago
parent
commit
233198baef
2 changed files with 3 additions and 5 deletions
  1. 2 4
      code/AssetLib/glTF2/glTF2Exporter.cpp
  2. 1 1
      code/AssetLib/glTF2/glTF2Importer.cpp

+ 2 - 4
code/AssetLib/glTF2/glTF2Exporter.cpp

@@ -486,7 +486,7 @@ inline void ExportNodeExtras(const aiMetadataEntry &metadataEntry, aiString name
 }
 
 inline void ExportNodeExtras(const aiMetadata *metadata, Extras &extras) {
-    if (metadata == nullptr) {
+    if (metadata == nullptr || metadata->mNumProperties == 0) {
         return;
     }
 
@@ -1406,9 +1406,7 @@ unsigned int glTF2Exporter::ExportNode(const aiNode *n, Ref<Node> &parent) {
     node->parent = parent;
     node->name = name;
 
-    if (n->mMetaData != nullptr && n->mMetaData->mNumProperties > 0) {
-        ExportNodeExtras(n->mMetaData, node->extras);
-    }
+    ExportNodeExtras(n->mMetaData, node->extras);
 
     if (!n->mTransformation.IsIdentity()) {
         if (mScene->mNumAnimations > 0 || (mProperties && mProperties->HasPropertyBool("GLTF2_NODE_IN_TRS"))) {

+ 1 - 1
code/AssetLib/glTF2/glTF2Importer.cpp

@@ -1081,7 +1081,7 @@ aiNode *ImportNode(aiScene *pScene, glTF2::Asset &r, std::vector<unsigned int> &
             }
         }
 
-        if (node.customExtensions || !node.extras.HasExtras()) {
+        if (node.customExtensions || node.extras.HasExtras()) {
             ainode->mMetaData = new aiMetadata;
             if (node.customExtensions) {
                 ParseExtensions(ainode->mMetaData, node.customExtensions);