Browse Source

In metadata: added method to append new metadata to structure

Léo Terziman 9 years ago
parent
commit
6db06f117a
1 changed files with 21 additions and 0 deletions
  1. 21 0
      include/assimp/metadata.h

+ 21 - 0
include/assimp/metadata.h

@@ -192,7 +192,28 @@ struct aiMetadata
         }
     }
 
+	template<typename T>
+	inline void Add( const std::string& key, const T& value )
+	{
+		aiString* new_keys = new aiString[mNumProperties + 1];
+		aiMetadataEntry* new_values = new aiMetadataEntry[mNumProperties + 1];
 
+		for(unsigned int i = 0; i < mNumProperties; ++i)
+		{
+			new_keys[i] = mKeys[i];
+			new_values[i] = mValues[i];
+		}
+
+		delete mKeys;
+		delete mValues;
+
+		mKeys = new_keys;
+		mValues = new_values;
+
+		mNumProperties++;
+
+		Set(mNumProperties - 1, key, value);
+	}
 
     template<typename T>
     inline void Set( unsigned index, const std::string& key, const T& value )