diff options
Diffstat (limited to 'src/Authoring/QT3DSIMP/Qt3DSImportSGTranslation/Qt3DSImportColladaSGTranslation.cpp')
-rw-r--r-- | src/Authoring/QT3DSIMP/Qt3DSImportSGTranslation/Qt3DSImportColladaSGTranslation.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Authoring/QT3DSIMP/Qt3DSImportSGTranslation/Qt3DSImportColladaSGTranslation.cpp b/src/Authoring/QT3DSIMP/Qt3DSImportSGTranslation/Qt3DSImportColladaSGTranslation.cpp index 20626c9c..0cadee7b 100644 --- a/src/Authoring/QT3DSIMP/Qt3DSImportSGTranslation/Qt3DSImportColladaSGTranslation.cpp +++ b/src/Authoring/QT3DSIMP/Qt3DSImportSGTranslation/Qt3DSImportColladaSGTranslation.cpp @@ -73,7 +73,7 @@ public: public: bool LoadDocument(const std::string &inFilePath); - void ProcessScene(); + bool ProcessScene(); void ProcessLibraryAnimations(); protected: @@ -363,10 +363,13 @@ bool ColladaDOMWalker::LoadDocument(const std::string &inFilePath) * This begins by looking at the active visual_scene node and starting import * from that node. */ -void ColladaDOMWalker::ProcessScene() +bool ColladaDOMWalker::ProcessScene() { if (m_ColladaRoot != nullptr) { const domCOLLADA::domSceneRef theScene = m_ColladaRoot->getScene(); + if (!theScene) + return false; + // Retrieve the active visual_scene const domInstanceWithExtraRef theInstanceVisualScene = theScene->getInstance_visual_scene(); const xsAnyURI &theVisualSceneURI = theInstanceVisualScene->getUrl(); @@ -413,6 +416,8 @@ void ColladaDOMWalker::ProcessScene() // Disable wrapping the visual scene in it's own group, since m_TopMostParent exists // PopGroup( ); } + + return true; } void ColladaDOMWalker::SetFColladaAuthoringTool(const char *inName) @@ -1816,8 +1821,7 @@ bool CImportTranslation::ParseColladaFile(const std::string &fileName, Import &i ColladaDOMWalker theDOMWalker(&transHelper); if (theDOMWalker.LoadDocument(fileName)) { theDOMWalker.ProcessLibraryAnimations(); - theDOMWalker.ProcessScene(); - return true; + return theDOMWalker.ProcessScene(); } return false; } |