Merge branch 'master' into Fix_SceneCombiner_Texture_Reindexing
commit
ca1ab8b11b
|
@ -268,6 +268,8 @@ ELSEIF(MSVC)
|
|||
ADD_COMPILE_OPTIONS(/wd4351)
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /D_DEBUG /Zi /Od")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG:FULL /PDBALTPATH:%_PDB% /OPT:REF /OPT:ICF")
|
||||
ELSEIF (CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
||||
IF(NOT ASSIMP_HUNTER_ENABLED)
|
||||
SET(CMAKE_CXX_STANDARD 11)
|
||||
|
|
|
@ -541,10 +541,17 @@ void FBXExporter::WriteReferences ()
|
|||
// (before any actual data is written)
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
size_t count_nodes(const aiNode* n) {
|
||||
size_t count = 1;
|
||||
size_t count_nodes(const aiNode* n, const aiNode* root) {
|
||||
size_t count;
|
||||
if (n == root) {
|
||||
count = n->mNumMeshes; // (not counting root node)
|
||||
} else if (n->mNumMeshes > 1) {
|
||||
count = n->mNumMeshes + 1;
|
||||
} else {
|
||||
count = 1;
|
||||
}
|
||||
for (size_t i = 0; i < n->mNumChildren; ++i) {
|
||||
count += count_nodes(n->mChildren[i]);
|
||||
count += count_nodes(n->mChildren[i], root);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
@ -714,7 +721,7 @@ void FBXExporter::WriteDefinitions ()
|
|||
|
||||
// Model / FbxNode
|
||||
// <~~ node hierarchy
|
||||
count = int32_t(count_nodes(mScene->mRootNode)) - 1; // (not counting root node)
|
||||
count = int32_t(count_nodes(mScene->mRootNode, mScene->mRootNode));
|
||||
if (count) {
|
||||
n = FBX::Node("ObjectType", "Model");
|
||||
n.AddChild("Count", count);
|
||||
|
@ -2625,17 +2632,14 @@ void FBXExporter::WriteModelNodes(
|
|||
],
|
||||
new_node_uid
|
||||
);
|
||||
// write model node
|
||||
FBX::Node m("Model");
|
||||
|
||||
aiNode new_node;
|
||||
// take name from mesh name, if it exists
|
||||
std::string name = mScene->mMeshes[node->mMeshes[i]]->mName.C_Str();
|
||||
name += FBX::SEPARATOR + "Model";
|
||||
m.AddProperties(new_node_uid, name, "Mesh");
|
||||
m.AddChild("Version", int32_t(232));
|
||||
FBX::Node p("Properties70");
|
||||
p.AddP70enum("InheritType", 1);
|
||||
m.AddChild(p);
|
||||
m.Dump(outstream, binary, 1);
|
||||
new_node.mName = mScene->mMeshes[node->mMeshes[i]]->mName;
|
||||
// write model node
|
||||
WriteModelNode(
|
||||
outstream, binary, &new_node, new_node_uid, "Mesh", std::vector<std::pair<std::string,aiVector3D>>()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue