Scene: keep an internal flag whether the scene was copied using aiCopyScene() (and potentially modified by the user afterwards)

pull/145/merge
acgessler 2013-10-05 16:26:16 +02:00
parent 3bee2818e4
commit 9d4f7c32e4
2 changed files with 9 additions and 0 deletions

View File

@ -73,6 +73,7 @@ ASSIMP_API void aiCopyScene(const aiScene* pIn, aiScene** pOut)
}
SceneCombiner::CopyScene(pOut,pIn,true);
ScenePriv(*pOut)->mIsCopy = true;
}

View File

@ -53,6 +53,7 @@ struct ScenePrivateData {
ScenePrivateData()
: mOrigImporter()
, mPPStepsApplied()
, mIsCopy()
{}
// Importer that originally loaded the scene though the C-API
@ -61,6 +62,13 @@ struct ScenePrivateData {
// List of postprocessing steps already applied to the scene.
unsigned int mPPStepsApplied;
// true if the scene is a copy made with aiCopyScene()
// or the corresponding C++ API. This means that user code
// may have made modifications to it, so mPPStepsApplied
// and mOrigImporter are no longer safe to rely on and only
// serve informative purposes.
bool mIsCopy;
};
// Access private data stored in the scene