#include "SpatialSort.h"
#include "ProcessHelper.h"
#include "Vertex.h"
+#include <assimp/ai_assert.h>
#include <stdio.h>
using namespace Assimp;
// ------------------------------------------------------------------------------------------------
class CatmullClarkSubdivider : public Subdivider
{
-
public:
-
void Subdivide (aiMesh* mesh, aiMesh*& out, unsigned int num, bool discard_input);
void Subdivide (aiMesh** smesh, size_t nmesh,
aiMesh** out, unsigned int num, bool discard_input);
unsigned int ref;
};
-
-
typedef std::vector<unsigned int> UIntVector;
typedef std::map<uint64_t,Edge> EdgeMap;
unsigned int eh_tmp0__, eh_tmp1__;
private:
-
void InternSubdivide (const aiMesh* const * smesh,
size_t nmesh,aiMesh** out, unsigned int num);
};
bool discard_input
)
{
- assert(mesh != out);
+ ai_assert(mesh != out);
+
Subdivide(&mesh,1,&out,num,discard_input);
}
bool discard_input
)
{
- ai_assert(NULL != smesh && NULL != out);
+ ai_assert( NULL != smesh );
+ ai_assert( NULL != out );
// course, both regions may not overlap
- assert(smesh<out || smesh+nmesh>out+nmesh);
+ ai_assert(smesh<out || smesh+nmesh>out+nmesh);
if (!num) {
-
// No subdivision at all. Need to copy all the meshes .. argh.
if (discard_input) {
for (size_t s = 0; s < nmesh; ++s) {
#ifndef AI_METADATA_H_INC
#define AI_METADATA_H_INC
-#include <assert.h>
-
#if defined(_MSC_VER) && (_MSC_VER <= 1500)
#include "Compiler/pstdint.h"
#else
#include <stdint.h>
#endif
-
-
// -------------------------------------------------------------------------------
/**
* Enum used to distinguish data types
#endif
} aiMetadataType;
-
-
// -------------------------------------------------------------------------------
/**
* Metadata entry
case FORCE_32BIT:
#endif
default:
- assert(false);
break;
}
}
}
}
-
-
template<typename T>
- inline void Set( unsigned index, const std::string& key, const T& value )
+ inline bool Set( unsigned index, const std::string& key, const T& value )
{
// In range assertion
- assert(index < mNumProperties);
+ if ( index >= mNumProperties ) {
+ return false;
+ }
// Set metadata key
mKeys[index] = key;
mValues[index].mType = GetAiType(value);
// Copy the given value to the dynamic storage
mValues[index].mData = new T(value);
+
+ return true;
}
template<typename T>
inline bool Get( unsigned index, T& value )
{
// In range assertion
- assert(index < mNumProperties);
+ if ( index >= mNumProperties ) {
+ return false;
+ }
// Return false if the output data type does
// not match the found value's data type
}
template<typename T>
- inline bool Get( const aiString& key, T& value )
+ inline
+ bool Get( const aiString& key, T& value )
{
// Search for the given key
for (unsigned i=0; i<mNumProperties; ++i)
unit/utMaterialSystem.cpp
unit/utMatrix3x3.cpp
unit/utMatrix4x4.cpp
+ unit/utMetadata.cpp
unit/SceneDiffer.h
unit/SceneDiffer.cpp
unit/utObjImportExport.cpp
using namespace Assimp;
-class utMatrix4x4Test : public ::testing::Test {
+class utMatrix4x4 : public ::testing::Test {
};
-TEST_F( utMatrix4x4Test, badIndexOperatorTest ) {
+TEST_F( utMatrix4x4, badIndexOperatorTest ) {
aiMatrix4x4 m;
ai_real *a0 = m[ 4 ];
EXPECT_EQ( NULL, a0 );
}
-TEST_F( utMatrix4x4Test, indexOperatorTest ) {
+TEST_F( utMatrix4x4, indexOperatorTest ) {
aiMatrix4x4 m;
ai_real *a0 = m[ 0 ];
EXPECT_FLOAT_EQ( 1.0, *a0 );
--- /dev/null
+/*
+---------------------------------------------------------------------------
+Open Asset Import Library (assimp)
+---------------------------------------------------------------------------
+
+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
+conditions are met:
+
+* Redistributions of source code must retain the above
+copyright notice, this list of conditions and the
+following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the
+following disclaimer in the documentation and/or other
+materials provided with the distribution.
+
+* Neither the name of the assimp team, nor the names of its
+contributors may be used to endorse or promote products
+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
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+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
+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
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---------------------------------------------------------------------------
+*/
+
+#include "UnitTestPCH.h"
+
+#include <assimp/metadata.h>
+
+using namespace ::Assimp;
+
+class utMetadata: public ::testing::Test {
+protected:
+ aiMetadata *m_data;
+
+ virtual void SetUp() {
+ m_data = new aiMetadata();
+ }
+
+ virtual void TearDown() {
+ delete m_data;
+ }
+
+};
+
+TEST_F( utMetadata, creationTest ) {
+ bool ok( true );
+ try {
+ aiMetadata data;
+ } catch ( ... ) {
+ ok = false;
+ }
+ EXPECT_TRUE( ok );
+}
+
+TEST_F( utMetadata, get_set_Test ) {
+ m_data->mNumProperties = 1;
+ m_data->mKeys = new aiString[ m_data->mNumProperties ]();
+ m_data->mValues = new aiMetadataEntry[ m_data->mNumProperties ]();
+ unsigned int index( 0 );
+ bool success( false );
+ const std::string key = "test";
+ success = m_data->Set( index, key, aiString( std::string( "test" ) ) );
+ EXPECT_TRUE( success );
+
+ aiString result;
+ success = m_data->Get( key, result );
+ EXPECT_TRUE( success );
+
+ success = m_data->Get( "bla", result );
+ EXPECT_FALSE( success );
+}