diff --git a/code/AssetLib/FBX/FBXConverter.cpp b/code/AssetLib/FBX/FBXConverter.cpp index e2f43b885..d45919e10 100644 --- a/code/AssetLib/FBX/FBXConverter.cpp +++ b/code/AssetLib/FBX/FBXConverter.cpp @@ -1455,7 +1455,9 @@ static void copyBoneToSkeletonBone(aiMesh *mesh, aiBone *bone, aiSkeletonBone *s skeletonBone->mWeights = bone->mWeights; skeletonBone->mOffsetMatrix = bone->mOffsetMatrix; skeletonBone->mMeshId = mesh; +#ifndef ASSIMP_BUILD_NO_ARMATUREPOPULATE_PROCESS skeletonBone->mNode = bone->mNode; +#endif skeletonBone->mParent = -1; } diff --git a/code/PostProcessing/JoinVerticesProcess.cpp b/code/PostProcessing/JoinVerticesProcess.cpp index 0423ab5c2..3bf96afeb 100644 --- a/code/PostProcessing/JoinVerticesProcess.cpp +++ b/code/PostProcessing/JoinVerticesProcess.cpp @@ -264,12 +264,12 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex) { // We should care only about used vertices, not all of them // (this can happen due to original file vertices buffer being used by // multiple meshes) - std::unordered_set usedVertexIndices; - usedVertexIndices.reserve(pMesh->mNumVertices); - for( unsigned int a = 0; a < pMesh->mNumFaces; a++) { + std::vector usedVertexIndicesMask; + usedVertexIndicesMask.resize(pMesh->mNumVertices, false); + for (unsigned int a = 0; a < pMesh->mNumFaces; a++) { aiFace& face = pMesh->mFaces[a]; - for( unsigned int b = 0; b < face.mNumIndices; b++) { - usedVertexIndices.insert(face.mIndices[b]); + for (unsigned int b = 0; b < face.mNumIndices; b++) { + usedVertexIndicesMask[face.mIndices[b]] = true; } } @@ -335,7 +335,7 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex) { int newIndex = 0; for( unsigned int a = 0; a < pMesh->mNumVertices; a++) { // if the vertex is unused Do nothing - if (usedVertexIndices.find(a) == usedVertexIndices.end()) { + if (!usedVertexIndicesMask[a]) { continue; } // collect the vertex data diff --git a/include/assimp/mesh.h b/include/assimp/mesh.h index c2d78a73c..16cd4fa3c 100644 --- a/include/assimp/mesh.h +++ b/include/assimp/mesh.h @@ -995,8 +995,10 @@ struct aiSkeletonBone { #ifdef __cplusplus aiSkeletonBone() : mParent(-1), +#ifndef ASSIMP_BUILD_NO_ARMATUREPOPULATE_PROCESS mArmature(nullptr), mNode(nullptr), +#endif mNumnWeights(0), mMeshId(nullptr), mWeights(nullptr), diff --git a/port/iOS/build.sh b/port/iOS/build.sh index 335b450d1..099bd8b0f 100755 --- a/port/iOS/build.sh +++ b/port/iOS/build.sh @@ -76,7 +76,7 @@ build_arch() rm CMakeCache.txt - CMAKE_CLI_INPUT="-DCMAKE_C_COMPILER=$CMAKE_C_COMPILER -DCMAKE_CXX_COMPILER=$CMAKE_CXX_COMPILER -DCMAKE_TOOLCHAIN_FILE=./port/iOS/IPHONEOS_$(echo $1 | tr '[:lower:]' '[:upper:]')_TOOLCHAIN.cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DENABLE_BOOST_WORKAROUND=ON -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS" + CMAKE_CLI_INPUT="-DCMAKE_C_COMPILER=$CMAKE_C_COMPILER -DCMAKE_CXX_COMPILER=$CMAKE_CXX_COMPILER -DCMAKE_TOOLCHAIN_FILE=./port/iOS/IPHONEOS_$(echo $1 | tr '[:lower:]' '[:upper:]')_TOOLCHAIN.cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS" echo "[!] Running CMake with -G 'Unix Makefiles' $CMAKE_CLI_INPUT" @@ -190,12 +190,8 @@ if [[ "$DEPLOY_FAT" -eq 1 ]]; then if [[ "$BUILD_TYPE" =~ "Debug" ]]; then make_fat_static_or_shared_binary 'libassimpd' - make_fat_static_binary 'libIrrXMLd' - make_fat_static_binary 'libzlibstaticd' else make_fat_static_or_shared_binary 'libassimp' - make_fat_static_binary 'libIrrXML' - make_fat_static_binary 'libzlibstatic' fi echo "[!] Done! The fat binaries can be found at $BUILD_DIR"