final cleanup

cleanup types
cleanout unnecessary vars
only aboslutely necessary vars to collada utils remain, for tracking scale and up_axis etc.
This commit is contained in:
marauder2k7 2024-12-11 19:28:09 +00:00
parent 684f299e86
commit aa294b37f6
3 changed files with 25 additions and 21 deletions

View file

@ -191,14 +191,18 @@ void AssimpAppMesh::lockMesh(F32 t, const MatrixF& objOffset)
tmpBoneIndex.setSize(totalWeights); tmpBoneIndex.setSize(totalWeights);
tmpVertexIndex.setSize(totalWeights); tmpVertexIndex.setSize(totalWeights);
// Count the total number of weights for all of the bones.
Map<String, aiNode*> boneLookup;
for (U32 b = 0; b < boneCount; b++) {
boneLookup[mMeshData->mBones[b]->mName.C_Str()] =
AssimpAppNode::findChildNodeByName(mMeshData->mBones[b]->mName.C_Str(), appNode->mScene->mRootNode);
}
for (U32 b = 0; b < boneCount; b++) for (U32 b = 0; b < boneCount; b++)
{ {
String name = mMeshData->mBones[b]->mName.C_Str(); const aiBone* bone = mMeshData->mBones[b];
aiNode* nodePtr = AssimpAppNode::findChildNodeByName(mMeshData->mBones[b]->mName.C_Str(), appNode->mScene->mRootNode); aiNode* nodePtr = boneLookup[bone->mName.C_Str()];
if (!nodePtr) bones[b] = nodePtr ? new AssimpAppNode(appNode->mScene, nodePtr) : new AssimpAppNode(appNode->mScene, appNode->mNode);
bones[b] = new AssimpAppNode(appNode->mScene, appNode->mNode);
else
bones[b] = new AssimpAppNode(appNode->mScene, nodePtr);
MatrixF boneTransform; MatrixF boneTransform;
AssimpAppNode::assimpToTorqueMat(mMeshData->mBones[b]->mOffsetMatrix, boneTransform); AssimpAppNode::assimpToTorqueMat(mMeshData->mBones[b]->mOffsetMatrix, boneTransform);

View file

@ -251,7 +251,7 @@ void AssimpAppNode::assimpToTorqueMat(const aiMatrix4x4& inAssimpMat, MatrixF& o
(F32)inAssimpMat.c3, (F32)inAssimpMat.c4)); (F32)inAssimpMat.c3, (F32)inAssimpMat.c4));
outMat.setRow(3, Point4F((F32)inAssimpMat.d1, (F32)inAssimpMat.d2, outMat.setRow(3, Point4F((F32)inAssimpMat.d1, (F32)inAssimpMat.d2,
(F32)inAssimpMat.d3, ColladaUtils::getOptions().formatScaleFactor));// (F32)inAssimpMat.d4)); (F32)inAssimpMat.d3, (F32)inAssimpMat.d4));
} }
void AssimpAppNode::convertMat(MatrixF& outMat) void AssimpAppNode::convertMat(MatrixF& outMat)

View file

@ -128,7 +128,7 @@ void applyTransformation(aiNode* node, const aiMatrix4x4& transform) {
node->mTransformation = transform * node->mTransformation; // Apply transformation to the node node->mTransformation = transform * node->mTransformation; // Apply transformation to the node
} }
void scaleScene(const aiScene* scene, float scaleFactor) { void scaleScene(const aiScene* scene, F32 scaleFactor) {
aiMatrix4x4 scaleMatrix; aiMatrix4x4 scaleMatrix;
scaleMatrix = aiMatrix4x4::Scaling(aiVector3D(scaleFactor, scaleFactor, scaleFactor), scaleMatrix); scaleMatrix = aiMatrix4x4::Scaling(aiVector3D(scaleFactor, scaleFactor, scaleFactor), scaleMatrix);
applyTransformation(scene->mRootNode, scaleMatrix); applyTransformation(scene->mRootNode, scaleMatrix);
@ -140,7 +140,7 @@ void debugSceneMetaData(const aiScene* scene) {
return; return;
} }
for (unsigned int i = 0; i < scene->mMetaData->mNumProperties; ++i) { for (U32 i = 0; i < scene->mMetaData->mNumProperties; ++i) {
const char* key = scene->mMetaData->mKeys[i].C_Str(); const char* key = scene->mMetaData->mKeys[i].C_Str();
aiMetadataType type = scene->mMetaData->mValues[i].mType; aiMetadataType type = scene->mMetaData->mValues[i].mType;
Con::printf("[ASSIMP] Metadata key: %s", key); Con::printf("[ASSIMP] Metadata key: %s", key);
@ -150,16 +150,16 @@ void debugSceneMetaData(const aiScene* scene) {
Con::printf(" Value: %d (bool)", *(bool*)scene->mMetaData->mValues[i].mData); Con::printf(" Value: %d (bool)", *(bool*)scene->mMetaData->mValues[i].mData);
break; break;
case AI_INT32: case AI_INT32:
Con::printf(" Value: %d (int)", *(int*)scene->mMetaData->mValues[i].mData); Con::printf(" Value: %d (int)", *(S32*)scene->mMetaData->mValues[i].mData);
break; break;
case AI_UINT64: case AI_UINT64:
Con::printf(" Value: %llu (uint64)", *(uint64_t*)scene->mMetaData->mValues[i].mData); Con::printf(" Value: %llu (uint64)", *(U64*)scene->mMetaData->mValues[i].mData);
break; break;
case AI_FLOAT: case AI_FLOAT:
Con::printf(" Value: %f (float)", *(float*)scene->mMetaData->mValues[i].mData); Con::printf(" Value: %f (float)", *(F32*)scene->mMetaData->mValues[i].mData);
break; break;
case AI_DOUBLE: case AI_DOUBLE:
Con::printf(" Value: %f (double)", *(double*)scene->mMetaData->mValues[i].mData); Con::printf(" Value: %f (double)", *(F64*)scene->mMetaData->mValues[i].mData);
break; break;
case AI_AISTRING: case AI_AISTRING:
Con::printf(" Value: %s (string)", ((aiString*)scene->mMetaData->mValues[i].mData)->C_Str()); Con::printf(" Value: %s (string)", ((aiString*)scene->mMetaData->mValues[i].mData)->C_Str());
@ -182,7 +182,7 @@ void AssimpShapeLoader::enumerateScene()
Con::printf("[ASSIMP] Attempting to load file: %s", shapePath.getFullPath().c_str()); Con::printf("[ASSIMP] Attempting to load file: %s", shapePath.getFullPath().c_str());
// Define post-processing steps // Define post-processing steps
unsigned int ppsteps = aiProcess_Triangulate | aiProcess_ConvertToLeftHanded & ~aiProcess_FlipWindingOrder; U32 ppsteps = aiProcess_Triangulate | aiProcess_ConvertToLeftHanded & ~aiProcess_FlipWindingOrder;
const auto& options = ColladaUtils::getOptions(); const auto& options = ColladaUtils::getOptions();
if (options.reverseWindingOrder) ppsteps |= aiProcess_FlipWindingOrder; if (options.reverseWindingOrder) ppsteps |= aiProcess_FlipWindingOrder;
@ -249,13 +249,13 @@ void AssimpShapeLoader::enumerateScene()
} }
aiMatrix4x4 rotationMatrix; aiMatrix4x4 rotationMatrix;
for (unsigned int i = 0; i < mScene->mNumTextures; ++i) { for (U32 i = 0; i < mScene->mNumTextures; ++i) {
extractTexture(i, mScene->mTextures[i]); extractTexture(i, mScene->mTextures[i]);
} }
// Load all materials // Load all materials
AssimpAppMaterial::sDefaultMatNumber = 0; AssimpAppMaterial::sDefaultMatNumber = 0;
for (unsigned int i = 0; i < mScene->mNumMaterials; ++i) { for (U32 i = 0; i < mScene->mNumMaterials; ++i) {
AppMesh::appMaterials.push_back(new AssimpAppMaterial(mScene->mMaterials[i])); AppMesh::appMaterials.push_back(new AssimpAppMaterial(mScene->mMaterials[i]));
} }
@ -272,10 +272,10 @@ void AssimpShapeLoader::enumerateScene()
// Add a bounds node if none exists // Add a bounds node if none exists
if (!boundsNode) { if (!boundsNode) {
auto* reqNode = new aiNode("bounds"); aiNode* reqNode = new aiNode("bounds");
mScene->mRootNode->addChildren(1, &reqNode); mScene->mRootNode->addChildren(1, &reqNode);
reqNode->mTransformation = mScene->mRootNode->mTransformation; reqNode->mTransformation = mScene->mRootNode->mTransformation;
auto* appBoundsNode = new AssimpAppNode(mScene, reqNode); AssimpAppNode* appBoundsNode = new AssimpAppNode(mScene, reqNode);
if (!processNode(appBoundsNode)) { if (!processNode(appBoundsNode)) {
delete appBoundsNode; delete appBoundsNode;
} }
@ -295,8 +295,8 @@ void AssimpShapeLoader::configureImportUnits() {
if (options.unit <= 0.0f) { if (options.unit <= 0.0f) {
F64 unitScaleFactor = 1.0; F64 unitScaleFactor = 1.0;
if (!getMetaDouble("UnitScaleFactor", unitScaleFactor)) { if (!getMetaDouble("UnitScaleFactor", unitScaleFactor)) {
float floatVal; F32 floatVal;
int intVal; S32 intVal;
if (getMetaFloat("UnitScaleFactor", floatVal)) { if (getMetaFloat("UnitScaleFactor", floatVal)) {
unitScaleFactor = static_cast<F64>(floatVal); unitScaleFactor = static_cast<F64>(floatVal);
} }
@ -304,7 +304,7 @@ void AssimpShapeLoader::configureImportUnits() {
unitScaleFactor = static_cast<F64>(intVal); unitScaleFactor = static_cast<F64>(intVal);
} }
} }
options.unit = static_cast<float>(unitScaleFactor); options.unit = static_cast<F32>(unitScaleFactor);
} }
} }