Added mName to aiScene. Primarily to provide access to the "name" member of glTF2 scenes.

pull/3510/head
Evangel 2020-11-22 15:10:36 +10:00
parent b1f3c48551
commit 67abcb10ba
4 changed files with 12 additions and 2 deletions

View File

@ -863,6 +863,7 @@ struct Sampler : public Object {
};
struct Scene : public Object {
std::string name;
std::vector<Ref<Node>> nodes;
Scene() {}

View File

@ -1400,6 +1400,11 @@ inline void Node::Read(Value &obj, Asset &r) {
}
inline void Scene::Read(Value &obj, Asset &r) {
if (Value *name = FindString(obj, "name")) {
if (name->IsString()) {
this->name = name->GetString();
}
}
if (Value *array = FindArray(obj, "nodes")) {
for (unsigned int i = 0; i < array->Size(); ++i) {
if (!(*array)[i].IsUint()) continue;

View File

@ -1386,6 +1386,7 @@ void glTF2Importer::InternReadFile(const std::string &pFile, aiScene *pScene, IO
// read the asset file
glTF2::Asset asset(pIOHandler);
asset.Load(pFile, GetExtension(pFile) == "glb");
pScene->mName = asset.scene->name;
//
// Copy the data out

View File

@ -335,12 +335,15 @@ struct aiScene
/**
* @brief The global metadata assigned to the scene itself.
*
* This data contains global metadata which belongs to the scene like
* unit-conversions, versions, vendors or other model-specific data. This
* This data contains global metadata which belongs to the scene like
* unit-conversions, versions, vendors or other model-specific data. This
* can be used to store format-specific metadata as well.
*/
C_STRUCT aiMetadata* mMetaData;
/** The name of the scene itself.
*/
C_STRUCT aiString mName;
#ifdef __cplusplus