Merge branch 'master' into kimkulling/skeleton_update_doc
commit
65b0553b8d
|
@ -84,10 +84,6 @@ OPTION( ASSIMP_NO_EXPORT
|
||||||
"Disable Assimp's export functionality."
|
"Disable Assimp's export functionality."
|
||||||
OFF
|
OFF
|
||||||
)
|
)
|
||||||
OPTION( ASSIMP_BUILD_ZLIB
|
|
||||||
"Build your own zlib"
|
|
||||||
OFF
|
|
||||||
)
|
|
||||||
OPTION( ASSIMP_BUILD_ASSIMP_TOOLS
|
OPTION( ASSIMP_BUILD_ASSIMP_TOOLS
|
||||||
"If the supplementary tools for Assimp are built in addition to the library."
|
"If the supplementary tools for Assimp are built in addition to the library."
|
||||||
OFF
|
OFF
|
||||||
|
@ -134,6 +130,18 @@ OPTION ( ASSIMP_IGNORE_GIT_HASH
|
||||||
OFF
|
OFF
|
||||||
)
|
)
|
||||||
|
|
||||||
|
IF (WIN32)
|
||||||
|
OPTION( ASSIMP_BUILD_ZLIB
|
||||||
|
"Build your own zlib"
|
||||||
|
ON
|
||||||
|
)
|
||||||
|
ELSE()
|
||||||
|
OPTION( ASSIMP_BUILD_ZLIB
|
||||||
|
"Build your own zlib"
|
||||||
|
OFF
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF (WIN32)
|
IF (WIN32)
|
||||||
# Use subset of Windows.h
|
# Use subset of Windows.h
|
||||||
ADD_DEFINITIONS( -DWIN32_LEAN_AND_MEAN )
|
ADD_DEFINITIONS( -DWIN32_LEAN_AND_MEAN )
|
||||||
|
|
|
@ -975,7 +975,7 @@ void MDLImporter::CalcAbsBoneMatrices_3DGS_MDL7(MDL::IntBone_MDL7 **apcOutBones)
|
||||||
}
|
}
|
||||||
|
|
||||||
// store the name of the bone
|
// store the name of the bone
|
||||||
pcOutBone->mName.length = (size_t)iMaxLen;
|
pcOutBone->mName.length = static_cast<ai_uint32>(iMaxLen);
|
||||||
::memcpy(pcOutBone->mName.data, pcBone->name, pcOutBone->mName.length);
|
::memcpy(pcOutBone->mName.data, pcBone->name, pcOutBone->mName.length);
|
||||||
pcOutBone->mName.data[pcOutBone->mName.length] = '\0';
|
pcOutBone->mName.data[pcOutBone->mName.length] = '\0';
|
||||||
}
|
}
|
||||||
|
|
|
@ -590,7 +590,7 @@ void SMDImporter::CreateOutputMaterials() {
|
||||||
pScene->mMaterials[iMat] = pcMat;
|
pScene->mMaterials[iMat] = pcMat;
|
||||||
|
|
||||||
aiString szName;
|
aiString szName;
|
||||||
szName.length = (size_t)ai_snprintf(szName.data,MAXLEN,"Texture_%u",iMat);
|
szName.length = static_cast<ai_uint32>(ai_snprintf(szName.data,MAXLEN,"Texture_%u",iMat));
|
||||||
pcMat->AddProperty(&szName,AI_MATKEY_NAME);
|
pcMat->AddProperty(&szName,AI_MATKEY_NAME);
|
||||||
|
|
||||||
if (aszTextures[iMat].length())
|
if (aszTextures[iMat].length())
|
||||||
|
|
|
@ -836,7 +836,7 @@ namespace glTF2 {
|
||||||
throw DeadlyExportError("Failed to write scene data!");
|
throw DeadlyExportError("Failed to write scene data!");
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t jsonChunkLength = (docBuffer.GetSize() + 3) & ~3; // Round up to next multiple of 4
|
uint32_t jsonChunkLength = static_cast<uint32_t>((docBuffer.GetSize() + 3) & ~3); // Round up to next multiple of 4
|
||||||
auto paddingLength = jsonChunkLength - docBuffer.GetSize();
|
auto paddingLength = jsonChunkLength - docBuffer.GetSize();
|
||||||
|
|
||||||
GLB_Chunk jsonChunk;
|
GLB_Chunk jsonChunk;
|
||||||
|
@ -862,7 +862,7 @@ namespace glTF2 {
|
||||||
int GLB_Chunk_count = 1;
|
int GLB_Chunk_count = 1;
|
||||||
uint32_t binaryChunkLength = 0;
|
uint32_t binaryChunkLength = 0;
|
||||||
if (bodyBuffer->byteLength > 0) {
|
if (bodyBuffer->byteLength > 0) {
|
||||||
binaryChunkLength = (bodyBuffer->byteLength + 3) & ~3; // Round up to next multiple of 4
|
binaryChunkLength = static_cast<uint32_t>((bodyBuffer->byteLength + 3) & ~3); // Round up to next multiple of 4
|
||||||
|
|
||||||
auto curPaddingLength = binaryChunkLength - bodyBuffer->byteLength;
|
auto curPaddingLength = binaryChunkLength - bodyBuffer->byteLength;
|
||||||
++GLB_Chunk_count;
|
++GLB_Chunk_count;
|
||||||
|
|
|
@ -6092,8 +6092,8 @@ mz_zip_writer_compute_padding_needed_for_file_alignment(mz_zip_archive *pZip) {
|
||||||
if (!pZip->m_file_offset_alignment)
|
if (!pZip->m_file_offset_alignment)
|
||||||
return 0;
|
return 0;
|
||||||
n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1));
|
n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1));
|
||||||
return (pZip->m_file_offset_alignment - n) &
|
return (mz_uint)((pZip->m_file_offset_alignment - n) &
|
||||||
(pZip->m_file_offset_alignment - 1);
|
(pZip->m_file_offset_alignment - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip,
|
static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip,
|
||||||
|
|
|
@ -56,6 +56,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <assimp/quaternion.h>
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* Enum used to distinguish data types
|
* Enum used to distinguish data types
|
||||||
|
@ -70,7 +72,9 @@ typedef enum aiMetadataType {
|
||||||
AI_AISTRING = 5,
|
AI_AISTRING = 5,
|
||||||
AI_AIVECTOR3D = 6,
|
AI_AIVECTOR3D = 6,
|
||||||
AI_AIMETADATA = 7,
|
AI_AIMETADATA = 7,
|
||||||
AI_META_MAX = 8,
|
AI_INT64 = 8,
|
||||||
|
AI_UINT32 = 9,
|
||||||
|
AI_META_MAX = 10,
|
||||||
|
|
||||||
#ifndef SWIG
|
#ifndef SWIG
|
||||||
FORCE_32BIT = INT_MAX
|
FORCE_32BIT = INT_MAX
|
||||||
|
@ -133,6 +137,12 @@ inline aiMetadataType GetAiType(const aiVector3D &) {
|
||||||
inline aiMetadataType GetAiType(const aiMetadata &) {
|
inline aiMetadataType GetAiType(const aiMetadata &) {
|
||||||
return AI_AIMETADATA;
|
return AI_AIMETADATA;
|
||||||
}
|
}
|
||||||
|
inline aiMetadataType GetAiType(int64_t) {
|
||||||
|
return AI_INT64;
|
||||||
|
}
|
||||||
|
inline aiMetadataType GetAiType(uint32_t) {
|
||||||
|
return AI_UINT32;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // __cplusplus
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
@ -215,6 +225,16 @@ struct aiMetadata {
|
||||||
rhs.Get<aiMetadata>(static_cast<unsigned int>(i), v);
|
rhs.Get<aiMetadata>(static_cast<unsigned int>(i), v);
|
||||||
mValues[i].mData = new aiMetadata(v);
|
mValues[i].mData = new aiMetadata(v);
|
||||||
} break;
|
} break;
|
||||||
|
case AI_INT64: {
|
||||||
|
int64_t v;
|
||||||
|
::memcpy(&v, rhs.mValues[i].mData, sizeof(int64_t));
|
||||||
|
mValues[i].mData = new int64_t(v);
|
||||||
|
} break;
|
||||||
|
case AI_UINT32: {
|
||||||
|
uint32_t v;
|
||||||
|
::memcpy(&v, rhs.mValues[i].mData, sizeof(uint32_t));
|
||||||
|
mValues[i].mData = new uint32_t(v);
|
||||||
|
} break;
|
||||||
#ifndef SWIG
|
#ifndef SWIG
|
||||||
case FORCE_32BIT:
|
case FORCE_32BIT:
|
||||||
#endif
|
#endif
|
||||||
|
@ -267,6 +287,12 @@ struct aiMetadata {
|
||||||
case AI_AIMETADATA:
|
case AI_AIMETADATA:
|
||||||
delete static_cast<aiMetadata *>(data);
|
delete static_cast<aiMetadata *>(data);
|
||||||
break;
|
break;
|
||||||
|
case AI_INT64:
|
||||||
|
delete static_cast<int64_t *>(data);
|
||||||
|
break;
|
||||||
|
case AI_UINT32:
|
||||||
|
delete static_cast<uint32_t *>(data);
|
||||||
|
break;
|
||||||
#ifndef SWIG
|
#ifndef SWIG
|
||||||
case FORCE_32BIT:
|
case FORCE_32BIT:
|
||||||
#endif
|
#endif
|
||||||
|
@ -510,6 +536,16 @@ struct aiMetadata {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
case AI_INT64: {
|
||||||
|
if (*static_cast<int64_t *>(lhs.mValues[i].mData) != *static_cast<int64_t *>(rhs.mValues[i].mData)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
case AI_UINT32: {
|
||||||
|
if (*static_cast<uint32_t *>(lhs.mValues[i].mData) != *static_cast<uint32_t *>(rhs.mValues[i].mData)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} break;
|
||||||
#ifndef SWIG
|
#ifndef SWIG
|
||||||
case FORCE_32BIT:
|
case FORCE_32BIT:
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -76,7 +76,7 @@ $ python setup.py install
|
||||||
```
|
```
|
||||||
|
|
||||||
PyAssimp requires a assimp dynamic library (`DLL` on windows,
|
PyAssimp requires a assimp dynamic library (`DLL` on windows,
|
||||||
`.so` on linux, `.dynlib` on macOS) in order to work. The default search directories are:
|
`.so` on linux, `.dylib` on macOS) in order to work. The default search directories are:
|
||||||
- the current directory
|
- the current directory
|
||||||
- on linux additionally: `/usr/lib`, `/usr/local/lib`,
|
- on linux additionally: `/usr/lib`, `/usr/local/lib`,
|
||||||
`/usr/lib/x86_64-linux-gnu`
|
`/usr/lib/x86_64-linux-gnu`
|
||||||
|
|
|
@ -81,7 +81,7 @@ Install ``pyassimp`` by running:
|
||||||
$ python setup.py install
|
$ python setup.py install
|
||||||
|
|
||||||
PyAssimp requires a assimp dynamic library (``DLL`` on windows, ``.so``
|
PyAssimp requires a assimp dynamic library (``DLL`` on windows, ``.so``
|
||||||
on linux, ``.dynlib`` on macOS) in order to work. The default search
|
on linux, ``.dylib`` on macOS) in order to work. The default search
|
||||||
directories are:
|
directories are:
|
||||||
|
|
||||||
- the current directory
|
- the current directory
|
||||||
|
|
|
@ -5,8 +5,6 @@ Open Asset Import Library (assimp)
|
||||||
|
|
||||||
Copyright (c) 2006-2022, assimp team
|
Copyright (c) 2006-2022, assimp team
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use of this software in source and binary forms,
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
@ -84,7 +82,7 @@ TEST_F( utMetadata, allocTest ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F( utMetadata, get_set_pod_Test ) {
|
TEST_F( utMetadata, get_set_pod_Test ) {
|
||||||
m_data = aiMetadata::Alloc( 5 );
|
m_data = aiMetadata::Alloc( 7 );
|
||||||
|
|
||||||
// int, 32 bit
|
// int, 32 bit
|
||||||
unsigned int index( 0 );
|
unsigned int index( 0 );
|
||||||
|
@ -137,6 +135,28 @@ TEST_F( utMetadata, get_set_pod_Test ) {
|
||||||
EXPECT_TRUE( success );
|
EXPECT_TRUE( success );
|
||||||
EXPECT_DOUBLE_EQ( 3.0, result_double );
|
EXPECT_DOUBLE_EQ( 3.0, result_double );
|
||||||
|
|
||||||
|
// int64_t
|
||||||
|
index++;
|
||||||
|
const std::string key_int64 = "test_int64";
|
||||||
|
int64_t val_int64 = 64;
|
||||||
|
success = m_data->Set(index, key_int64, val_int64);
|
||||||
|
EXPECT_TRUE(success);
|
||||||
|
int64_t result_int64(0);
|
||||||
|
success = m_data->Get(key_int64, result_int64);
|
||||||
|
EXPECT_TRUE(success);
|
||||||
|
EXPECT_EQ(result_int64, val_int64);
|
||||||
|
|
||||||
|
// uint32
|
||||||
|
index++;
|
||||||
|
const std::string key_uint32 = "test_uint32";
|
||||||
|
int64_t val_uint32 = 32;
|
||||||
|
success = m_data->Set(index, key_uint32, val_uint32);
|
||||||
|
EXPECT_TRUE(success);
|
||||||
|
int64_t result_uint32(0);
|
||||||
|
success = m_data->Get(key_uint32, result_uint32);
|
||||||
|
EXPECT_TRUE(success);
|
||||||
|
EXPECT_EQ(result_uint32, val_uint32);
|
||||||
|
|
||||||
// error
|
// error
|
||||||
int result;
|
int result;
|
||||||
success = m_data->Get( "bla", result );
|
success = m_data->Get( "bla", result );
|
||||||
|
@ -181,6 +201,7 @@ TEST_F( utMetadata, get_set_aiVector3D_Test ) {
|
||||||
EXPECT_TRUE( success );
|
EXPECT_TRUE( success );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST_F( utMetadata, copy_test ) {
|
TEST_F( utMetadata, copy_test ) {
|
||||||
m_data = aiMetadata::Alloc( AI_META_MAX );
|
m_data = aiMetadata::Alloc( AI_META_MAX );
|
||||||
bool bv = true;
|
bool bv = true;
|
||||||
|
@ -199,9 +220,12 @@ TEST_F( utMetadata, copy_test ) {
|
||||||
m_data->Set( 6, "aiVector3D", vecVal );
|
m_data->Set( 6, "aiVector3D", vecVal );
|
||||||
aiMetadata metaVal;
|
aiMetadata metaVal;
|
||||||
m_data->Set( 7, "aiMetadata", metaVal );
|
m_data->Set( 7, "aiMetadata", metaVal );
|
||||||
|
int64_t i64 = 64;
|
||||||
aiMetadata copy( *m_data );
|
m_data->Set(8, "int64_t", i64);
|
||||||
EXPECT_EQ( 8u, copy.mNumProperties );
|
uint32_t ui32 = 32;
|
||||||
|
m_data->Set(9, "uint32_t", ui32);
|
||||||
|
aiMetadata copy(*m_data);
|
||||||
|
EXPECT_EQ( 10u, copy.mNumProperties );
|
||||||
|
|
||||||
// bool test
|
// bool test
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue