summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/assimp/include/assimp/metadata.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/assimp/include/assimp/metadata.h')
-rw-r--r--src/3rdparty/assimp/include/assimp/metadata.h230
1 files changed, 117 insertions, 113 deletions
diff --git a/src/3rdparty/assimp/include/assimp/metadata.h b/src/3rdparty/assimp/include/assimp/metadata.h
index 16809a511..579ccd446 100644
--- a/src/3rdparty/assimp/include/assimp/metadata.h
+++ b/src/3rdparty/assimp/include/assimp/metadata.h
@@ -3,12 +3,12 @@
Open Asset Import Library (assimp)
---------------------------------------------------------------------------
-Copyright (c) 2006-2012, assimp team
+Copyright (c) 2006-2016, assimp team
All rights reserved.
-Redistribution and use of this software in source and binary forms,
-with or without modification, are permitted provided that the following
+Redistribution and use of this software in source and binary forms,
+with or without modification, are permitted provided that the following
conditions are met:
* Redistributions of source code must retain the above
@@ -25,16 +25,16 @@ conditions are met:
derived from this software without specific prior
written permission of the assimp team.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------
*/
@@ -50,6 +50,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#if defined(_MSC_VER) && (_MSC_VER <= 1500)
#include "Compiler/pstdint.h"
#else
+#include <limits.h>
#include <stdint.h>
#endif
@@ -62,15 +63,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// -------------------------------------------------------------------------------
typedef enum aiMetadataType
{
- AI_BOOL = 0,
- AI_INT = 1,
- AI_UINT64 = 2,
- AI_FLOAT = 3,
- AI_AISTRING = 4,
- AI_AIVECTOR3D = 5,
+ AI_BOOL = 0,
+ AI_INT = 1,
+ AI_UINT64 = 2,
+ AI_FLOAT = 3,
+ AI_AISTRING = 4,
+ AI_AIVECTOR3D = 5,
#ifndef SWIG
- FORCE_32BIT = INT_MAX
+ FORCE_32BIT = INT_MAX
#endif
} aiMetadataType;
@@ -85,8 +86,8 @@ typedef enum aiMetadataType
// -------------------------------------------------------------------------------
struct aiMetadataEntry
{
- aiMetadataType mType;
- void* mData;
+ aiMetadataType mType;
+ void* mData;
};
@@ -106,8 +107,8 @@ inline aiMetadataType GetAiType( bool ) { return AI_BOOL; }
inline aiMetadataType GetAiType( int ) { return AI_INT; }
inline aiMetadataType GetAiType( uint64_t ) { return AI_UINT64; }
inline aiMetadataType GetAiType( float ) { return AI_FLOAT; }
-inline aiMetadataType GetAiType( aiString ) { return AI_AISTRING; }
-inline aiMetadataType GetAiType( aiVector3D ) { return AI_AIVECTOR3D; }
+inline aiMetadataType GetAiType( const aiString & ) { return AI_AISTRING; }
+inline aiMetadataType GetAiType( const aiVector3D & ) { return AI_AIVECTOR3D; }
@@ -122,120 +123,123 @@ inline aiMetadataType GetAiType( aiVector3D ) { return AI_AIVECTOR3D; }
* Metadata is a key-value store using string keys and values.
*/
// -------------------------------------------------------------------------------
-struct aiMetadata
+struct aiMetadata
{
- /** Length of the mKeys and mValues arrays, respectively */
- unsigned int mNumProperties;
+ /** Length of the mKeys and mValues arrays, respectively */
+ unsigned int mNumProperties;
- /** Arrays of keys, may not be NULL. Entries in this array may not be NULL as well. */
- C_STRUCT aiString* mKeys;
+ /** Arrays of keys, may not be NULL. Entries in this array may not be NULL as well. */
+ C_STRUCT aiString* mKeys;
- /** Arrays of values, may not be NULL. Entries in this array may be NULL if the
- * corresponding property key has no assigned value. */
- C_STRUCT aiMetadataEntry* mValues;
+ /** Arrays of values, may not be NULL. Entries in this array may be NULL if the
+ * corresponding property key has no assigned value. */
+ C_STRUCT aiMetadataEntry* mValues;
#ifdef __cplusplus
- /** Constructor */
- aiMetadata()
- // set all members to zero by default
- : mNumProperties(0)
- , mKeys(NULL)
- , mValues(NULL)
- {}
+ /** Constructor */
+ aiMetadata()
+ // set all members to zero by default
+ : mNumProperties(0)
+ , mKeys(NULL)
+ , mValues(NULL)
+ {}
- /** Destructor */
- ~aiMetadata()
- {
+ /** Destructor */
+ ~aiMetadata()
+ {
delete[] mKeys;
mKeys = NULL;
- if (mValues)
- {
- // Delete each metadata entry
- for (unsigned i=0; i<mNumProperties; ++i)
- {
- void* data = mValues[i].mData;
- switch (mValues[i].mType)
- {
- case AI_BOOL:
- delete static_cast<bool*>(data);
- break;
- case AI_INT:
- delete static_cast<int*>(data);
- break;
- case AI_UINT64:
- delete static_cast<uint64_t*>(data);
- break;
- case AI_FLOAT:
- delete static_cast<float*>(data);
- break;
- case AI_AISTRING:
- delete static_cast<aiString*>(data);
- break;
- case AI_AIVECTOR3D:
- delete static_cast<aiVector3D*>(data);
- break;
- default:
- assert(false);
- break;
- }
- }
-
- // Delete the metadata array
- delete [] mValues;
+ if (mValues)
+ {
+ // Delete each metadata entry
+ for (unsigned i=0; i<mNumProperties; ++i)
+ {
+ void* data = mValues[i].mData;
+ switch (mValues[i].mType)
+ {
+ case AI_BOOL:
+ delete static_cast<bool*>(data);
+ break;
+ case AI_INT:
+ delete static_cast<int*>(data);
+ break;
+ case AI_UINT64:
+ delete static_cast<uint64_t*>(data);
+ break;
+ case AI_FLOAT:
+ delete static_cast<float*>(data);
+ break;
+ case AI_AISTRING:
+ delete static_cast<aiString*>(data);
+ break;
+ case AI_AIVECTOR3D:
+ delete static_cast<aiVector3D*>(data);
+ break;
+#ifndef SWIG
+ case FORCE_32BIT:
+#endif
+ default:
+ assert(false);
+ break;
+ }
+ }
+
+ // Delete the metadata array
+ delete [] mValues;
mValues = NULL;
- }
- }
+ }
+ }
- template<typename T>
- inline void Set( unsigned index, const std::string& key, const T& value )
- {
- // In range assertion
- assert(index < mNumProperties);
+ template<typename T>
+ inline void Set( unsigned index, const std::string& key, const T& value )
+ {
+ // In range assertion
+ assert(index < mNumProperties);
- // Set metadata key
- mKeys[index] = key;
+ // Set metadata key
+ mKeys[index] = key;
- // Set metadata type
- mValues[index].mType = GetAiType(value);
- // Copy the given value to the dynamic storage
- mValues[index].mData = new T(value);
- }
+ // Set metadata type
+ mValues[index].mType = GetAiType(value);
+ // Copy the given value to the dynamic storage
+ mValues[index].mData = new T(value);
+ }
- template<typename T>
- inline bool Get( unsigned index, T& value )
- {
- // In range assertion
- assert(index < mNumProperties);
+ template<typename T>
+ inline bool Get( unsigned index, T& value )
+ {
+ // In range assertion
+ assert(index < mNumProperties);
- // Return false if the output data type does
- // not match the found value's data type
+ // Return false if the output data type does
+ // not match the found value's data type
if ( GetAiType( value ) != mValues[ index ].mType ) {
return false;
}
- // Otherwise, output the found value and
- // return true
- value = *static_cast<T*>(mValues[index].mData);
- return true;
- }
-
- template<typename T>
- inline bool Get( const aiString& key, T& value )
- {
- // Search for the given key
- for (unsigned i=0; i<mNumProperties; ++i)
- if (mKeys[i]==key)
- return Get(i, value);
- return false;
- }
-
- template<typename T>
- inline bool Get( const std::string& key, T& value ) {
- return Get(aiString(key), value);
+ // Otherwise, output the found value and
+ // return true
+ value = *static_cast<T*>(mValues[index].mData);
+ return true;
+ }
+
+ template<typename T>
+ inline bool Get( const aiString& key, T& value )
+ {
+ // Search for the given key
+ for (unsigned i=0; i<mNumProperties; ++i)
+ if (mKeys[i]==key)
+ return Get(i, value);
+ return false;
+ }
+
+ template<typename T>
+ inline bool Get( const std::string& key, T& value ) {
+ return Get(aiString(key), value);
}
#endif // __cplusplus