store node mesh vs. meshes

glTF nodes can only hold one mesh. this simply assigns to and check’s a Node’s Mesh
This commit is contained in:
Daniel Hritzkiv
2017-09-11 10:55:50 -04:00
parent ab08a7c3cb
commit a0d97505e5
5 changed files with 21 additions and 34 deletions
+9 -10
View File
@@ -442,16 +442,15 @@ void glTF2Exporter::ExportMaterials()
*/
bool FindMeshNode(Ref<Node>& nodeIn, Ref<Node>& meshNode, std::string meshID)
{
for (unsigned int i = 0; i < nodeIn->meshes.size(); ++i) {
if (meshID.compare(nodeIn->meshes[i]->id) == 0) {
meshNode = nodeIn;
return true;
}
if (nodeIn->mesh && meshID.compare(nodeIn->mesh->id) == 0) {
meshNode = nodeIn;
return true;
}
for (unsigned int i = 0; i < nodeIn->children.size(); ++i) {
if(FindMeshNode(nodeIn->children[i], meshNode, meshID)) {
return true;
return true;
}
}
@@ -722,8 +721,8 @@ unsigned int glTF2Exporter::ExportNodeHierarchy(const aiNode* n)
CopyValue(n->mTransformation, node->matrix.value);
}
for (unsigned int i = 0; i < n->mNumMeshes; ++i) {
node->meshes.push_back(mAsset->meshes.Get(n->mMeshes[i]));
if (n->mNumMeshes > 0) {
node->mesh = mAsset->meshes.Get(n->mMeshes[0]);
}
for (unsigned int i = 0; i < n->mNumChildren; ++i) {
@@ -751,8 +750,8 @@ unsigned int glTF2Exporter::ExportNode(const aiNode* n, Ref<Node>& parent)
CopyValue(n->mTransformation, node->matrix.value);
}
for (unsigned int i = 0; i < n->mNumMeshes; ++i) {
node->meshes.push_back(mAsset->meshes.Get(n->mMeshes[i]));
if (n->mNumMeshes > 0) {
node->mesh = mAsset->meshes.Get(n->mMeshes[0]);
}
for (unsigned int i = 0; i < n->mNumChildren; ++i) {