mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-11 14:44:36 +00:00
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:
parent
684f299e86
commit
aa294b37f6
3 changed files with 25 additions and 21 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue