diff --git a/src/fbx/Fbx2Raw.cpp b/src/fbx/Fbx2Raw.cpp index f53b2f5..a2678b9 100644 --- a/src/fbx/Fbx2Raw.cpp +++ b/src/fbx/Fbx2Raw.cpp @@ -57,10 +57,10 @@ GetMaterialType(const RawModel &raw, const int textures[RAW_TEXTURE_USAGE_MAX], : (skinned ? RAW_MATERIAL_TYPE_SKINNED_TRANSPARENT : RAW_MATERIAL_TYPE_TRANSPARENT); } - // else if there is any vertex transparency, treat whole mesh as transparent - if (vertexTransparency) { - return skinned ? RAW_MATERIAL_TYPE_SKINNED_TRANSPARENT : RAW_MATERIAL_TYPE_TRANSPARENT; - } + // else if there is any vertex transparency, treat whole mesh as transparent + if (vertexTransparency) { + return skinned ? RAW_MATERIAL_TYPE_SKINNED_TRANSPARENT : RAW_MATERIAL_TYPE_TRANSPARENT; + } // Default to simply opaque. @@ -173,7 +173,7 @@ static void ReadMesh(RawModel &raw, FbxScene *pScene, FbxNode *pNode, const std: for (int polygonIndex = 0; polygonIndex < pMesh->GetPolygonCount(); polygonIndex++) { FBX_ASSERT(pMesh->GetPolygonSize(polygonIndex) == 3); const std::shared_ptr fbxMaterial = materials.GetMaterial(polygonIndex); - const std::vector userProperties = materials.GetUserProperties(polygonIndex); + const std::vector userProperties = materials.GetUserProperties(polygonIndex); int textures[RAW_TEXTURE_USAGE_MAX]; std::fill_n(textures, (int) RAW_TEXTURE_USAGE_MAX, -1); diff --git a/src/fbx/FbxMaterialsAccess.cpp b/src/fbx/FbxMaterialsAccess.cpp index 16122be..b39381f 100644 --- a/src/fbx/FbxMaterialsAccess.cpp +++ b/src/fbx/FbxMaterialsAccess.cpp @@ -38,109 +38,109 @@ FbxMaterialsAccess::FbxMaterialsAccess(const FbxMesh *pMesh, const std::mapGetNode()->GetSrcObject(materialNum); - + FbxSurfaceMaterial* surfaceMaterial = mesh->GetNode()->GetSrcObject(materialNum); + if (materialNum >= summaries.size()) { summaries.resize(materialNum + 1); } auto summary = summaries[materialNum]; if (summary == nullptr) { summary = summaries[materialNum] = GetMaterialInfo( - surfaceMaterial, + surfaceMaterial, textureLocations); } - if (materialNum >= userProperties.size()) { - userProperties.resize(materialNum + 1); - } - if (userProperties[materialNum].empty()) { - FbxProperty objectProperty = surfaceMaterial->GetFirstProperty(); - while (objectProperty.IsValid()) - { - if (objectProperty.GetFlag(FbxPropertyFlags::eUserDefined)) { - std::string ename; - switch (objectProperty.GetPropertyDataType().GetType()) { - case eFbxBool: ename = "eFbxBool"; break; - case eFbxChar: ename = "eFbxChar"; break; - case eFbxUChar: ename = "eFbxUChar"; break; - case eFbxShort: ename = "eFbxShort"; break; - case eFbxUShort: ename = "eFbxUShort"; break; - case eFbxInt: ename = "eFbxInt"; break; - case eFbxUInt: ename = "eFbxUint"; break; - case eFbxLongLong: ename = "eFbxLongLong"; break; - case eFbxULongLong: ename = "eFbxULongLong"; break; - case eFbxFloat: ename = "eFbxFloat"; break; - case eFbxHalfFloat: ename = "eFbxHalfFloat"; break; - case eFbxDouble: ename = "eFbxDouble"; break; - case eFbxDouble2: ename = "eFbxDouble2"; break; - case eFbxDouble3: ename = "eFbxDouble3"; break; - case eFbxDouble4: ename = "eFbxDouble4"; break; - case eFbxString: ename = "eFbxString"; break; + if (materialNum >= userProperties.size()) { + userProperties.resize(materialNum + 1); + } + if (userProperties[materialNum].empty()) { + FbxProperty objectProperty = surfaceMaterial->GetFirstProperty(); + while (objectProperty.IsValid()) + { + if (objectProperty.GetFlag(FbxPropertyFlags::eUserDefined)) { + std::string ename; + switch (objectProperty.GetPropertyDataType().GetType()) { + case eFbxBool: ename = "eFbxBool"; break; + case eFbxChar: ename = "eFbxChar"; break; + case eFbxUChar: ename = "eFbxUChar"; break; + case eFbxShort: ename = "eFbxShort"; break; + case eFbxUShort: ename = "eFbxUShort"; break; + case eFbxInt: ename = "eFbxInt"; break; + case eFbxUInt: ename = "eFbxUint"; break; + case eFbxLongLong: ename = "eFbxLongLong"; break; + case eFbxULongLong: ename = "eFbxULongLong"; break; + case eFbxFloat: ename = "eFbxFloat"; break; + case eFbxHalfFloat: ename = "eFbxHalfFloat"; break; + case eFbxDouble: ename = "eFbxDouble"; break; + case eFbxDouble2: ename = "eFbxDouble2"; break; + case eFbxDouble3: ename = "eFbxDouble3"; break; + case eFbxDouble4: ename = "eFbxDouble4"; break; + case eFbxString: ename = "eFbxString"; break; - // Use this as fallback because it does not give very descriptive names - default: ename = objectProperty.GetPropertyDataType().GetName(); break; - } + // Use this as fallback because it does not give very descriptive names + default: ename = objectProperty.GetPropertyDataType().GetName(); break; + } - json p; - p["type"] = ename; + json p; + p["type"] = ename; - // Convert property value - switch (objectProperty.GetPropertyDataType().GetType()) { - case eFbxBool: - case eFbxChar: - case eFbxUChar: - case eFbxShort: - case eFbxUShort: - case eFbxInt: - case eFbxUInt: - case eFbxLongLong: { - p["value"] = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); - break; - } - case eFbxULongLong: { - p["value"] = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); - break; - } - case eFbxFloat: - case eFbxHalfFloat: - case eFbxDouble: { - p["value"] = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); - break; - } - case eFbxDouble2: { - auto v = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); - p["value"] = { v[0], v[1] }; - break; - } - case eFbxDouble3: { - auto v = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); - p["value"] = { v[0], v[1], v[2] }; - break; - } - case eFbxDouble4: { - auto v = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); - p["value"] = { v[0], v[1], v[2], v[3] }; - break; - } - case eFbxString: { - p["value"] = std::string{ objectProperty.Get() }; - break; - } - default: { - p["value"] = "UNSUPPORTED_VALUE_TYPE"; - break; - } - } + // Convert property value + switch (objectProperty.GetPropertyDataType().GetType()) { + case eFbxBool: + case eFbxChar: + case eFbxUChar: + case eFbxShort: + case eFbxUShort: + case eFbxInt: + case eFbxUInt: + case eFbxLongLong: { + p["value"] = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); + break; + } + case eFbxULongLong: { + p["value"] = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); + break; + } + case eFbxFloat: + case eFbxHalfFloat: + case eFbxDouble: { + p["value"] = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); + break; + } + case eFbxDouble2: { + auto v = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); + p["value"] = { v[0], v[1] }; + break; + } + case eFbxDouble3: { + auto v = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); + p["value"] = { v[0], v[1], v[2] }; + break; + } + case eFbxDouble4: { + auto v = objectProperty.EvaluateValue(FBXSDK_TIME_INFINITE); + p["value"] = { v[0], v[1], v[2], v[3] }; + break; + } + case eFbxString: { + p["value"] = std::string{ objectProperty.Get() }; + break; + } + default: { + p["value"] = "UNSUPPORTED_VALUE_TYPE"; + break; + } + } - json n; - n[objectProperty.GetNameAsCStr()] = p; + json n; + n[objectProperty.GetNameAsCStr()] = p; - userProperties[materialNum].push_back(n.dump()); - } + userProperties[materialNum].push_back(n.dump()); + } - objectProperty = surfaceMaterial->GetNextProperty(objectProperty); - } - } + objectProperty = surfaceMaterial->GetNextProperty(objectProperty); + } + } } } @@ -158,14 +158,14 @@ const std::shared_ptr FbxMaterialsAccess::GetMaterial(const int const std::vector FbxMaterialsAccess::GetUserProperties(const int polygonIndex) const { - if (mappingMode != FbxGeometryElement::eNone) { - const int materialNum = indices->GetAt((mappingMode == FbxGeometryElement::eByPolygon) ? polygonIndex : 0); - if (materialNum < 0) { - return std::vector(); - } - return userProperties.at((unsigned long)materialNum); - } - return std::vector(); + if (mappingMode != FbxGeometryElement::eNone) { + const int materialNum = indices->GetAt((mappingMode == FbxGeometryElement::eByPolygon) ? polygonIndex : 0); + if (materialNum < 0) { + return std::vector(); + } + return userProperties.at((unsigned long)materialNum); + } + return std::vector(); } std::unique_ptr diff --git a/src/gltf/GltfModel.hpp b/src/gltf/GltfModel.hpp index f218c0a..4bce9c7 100644 --- a/src/gltf/GltfModel.hpp +++ b/src/gltf/GltfModel.hpp @@ -110,7 +110,7 @@ public: accessor->count = attribArr.size(); } else { auto bufferView = GetAlignedBufferView(buffer, BufferViewData::GL_ARRAY_BUFFER); - accessor = AddAccessorWithView(*bufferView, attrDef.glType, attribArr, std::string("")); + accessor = AddAccessorWithView(*bufferView, attrDef.glType, attribArr, std::string("")); } primitive.AddAttrib(attrDef.gltfName, *accessor); return accessor; diff --git a/src/gltf/Raw2Gltf.cpp b/src/gltf/Raw2Gltf.cpp index 96fbc8f..dd8fb40 100644 --- a/src/gltf/Raw2Gltf.cpp +++ b/src/gltf/Raw2Gltf.cpp @@ -363,9 +363,9 @@ ModelData *Raw2Gltf( emissiveFactor * emissiveIntensity, khrCmnUnlitMat, pbrMetRough)); materialsByName[materialHash(material)] = mData; - if (options.enableUserProperties) { - mData->userProperties = material.userProperties; - } + if (options.enableUserProperties) { + mData->userProperties = material.userProperties; + } } for (const auto &surfaceModel : materialModels) { diff --git a/src/gltf/properties/MaterialData.cpp b/src/gltf/properties/MaterialData.cpp index 1bb1a92..2269928 100644 --- a/src/gltf/properties/MaterialData.cpp +++ b/src/gltf/properties/MaterialData.cpp @@ -33,7 +33,7 @@ KHRCmnUnlitMaterial::KHRCmnUnlitMaterial() void to_json(json &j, const KHRCmnUnlitMaterial &d) { - j = json({}); + j = json({}); } inline float clamp(float d, float bottom = 0, float top = 1) { @@ -129,16 +129,16 @@ json MaterialData::serialize() const result["extensions"] = extensions; } - for (const auto& i : userProperties) - { - auto& prop_map = result["extras"]["fromFBX"]["userProperties"]; + for (const auto& i : userProperties) + { + auto& prop_map = result["extras"]["fromFBX"]["userProperties"]; - json j = json::parse(i); - for (const auto& k : json::iterator_wrapper(j)) - { - prop_map[k.key()] = k.value(); - } - } + json j = json::parse(i); + for (const auto& k : json::iterator_wrapper(j)) + { + prop_map[k.key()] = k.value(); + } + } return result; } diff --git a/src/gltf/properties/MaterialData.hpp b/src/gltf/properties/MaterialData.hpp index d38a532..407f3ad 100644 --- a/src/gltf/properties/MaterialData.hpp +++ b/src/gltf/properties/MaterialData.hpp @@ -62,7 +62,7 @@ struct MaterialData : Holdable const std::shared_ptr khrCmnConstantMaterial; const std::shared_ptr pbrMetallicRoughness; - std::vector userProperties; + std::vector userProperties; }; void to_json(json &j, const Tex &data); diff --git a/src/raw/RawModel.cpp b/src/raw/RawModel.cpp index 04d66b3..d974893 100644 --- a/src/raw/RawModel.cpp +++ b/src/raw/RawModel.cpp @@ -121,7 +121,7 @@ int RawModel::AddMaterial( const RawMaterialType materialType, const int textures[RAW_TEXTURE_USAGE_MAX], std::shared_ptr materialInfo, - const std::vector& userProperties) + const std::vector& userProperties) { for (size_t i = 0; i < materials.size(); i++) { if (materials[i].name != name) { @@ -137,14 +137,14 @@ int RawModel::AddMaterial( for (int j = 0; match && j < RAW_TEXTURE_USAGE_MAX; j++) { match = match && (materials[i].textures[j] == textures[j]); } - if (materials[i].userProperties.size() != userProperties.size()) { - match = false; - } - else { - for (int j = 0; match && j < userProperties.size(); j++) { - match = match && (materials[i].userProperties[j] == userProperties[j]); - } - } + if (materials[i].userProperties.size() != userProperties.size()) { + match = false; + } + else { + for (int j = 0; match && j < userProperties.size(); j++) { + match = match && (materials[i].userProperties[j] == userProperties[j]); + } + } if (match) { return (int) i; } @@ -154,7 +154,7 @@ int RawModel::AddMaterial( material.name = name; material.type = materialType; material.info = materialInfo; - material.userProperties = userProperties; + material.userProperties = userProperties; for (int i = 0; i < RAW_TEXTURE_USAGE_MAX; i++) { material.textures[i] = textures[i]; @@ -623,11 +623,11 @@ size_t RawModel::CalculateNormals(bool onlyBroken) } } - for (auto &triangle : triangles) { + for (auto &triangle : triangles) { bool relevant = false; for (int vertIx : triangle.verts) { relevant |= (brokenVerts.count(vertIx) > 0); - } + } if (!relevant) { continue; } @@ -636,8 +636,8 @@ size_t RawModel::CalculateNormals(bool onlyBroken) if (!onlyBroken || brokenVerts.count(vertIx) > 0) { vertices[vertIx].normal += faceNormal; } - } - } + } + } for (int vertIx = 0; vertIx < vertices.size(); vertIx ++) { if (onlyBroken && brokenVerts.count(vertIx) == 0) { @@ -652,6 +652,6 @@ size_t RawModel::CalculateNormals(bool onlyBroken) } } vertex.normal.Normalize(); - } + } return onlyBroken ? brokenVerts.size() : vertices.size(); } diff --git a/src/raw/RawModel.hpp b/src/raw/RawModel.hpp index 5c9de5c..03428fa 100644 --- a/src/raw/RawModel.hpp +++ b/src/raw/RawModel.hpp @@ -267,7 +267,7 @@ struct RawMaterial RawMaterialType type; std::shared_ptr info; int textures[RAW_TEXTURE_USAGE_MAX]; - std::vector userProperties; + std::vector userProperties; }; struct RawBlendChannel