From 01b29c3aac71030c39ac4c392212a0cfc947bcab Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Mon, 9 Sep 2019 10:42:04 -0700 Subject: [PATCH] Fix DomainBaker not finishing when Re-bake originals checked and .baked.fbx present --- libraries/baking/src/ModelBaker.cpp | 1 + libraries/baking/src/ModelBaker.h | 2 ++ tools/oven/src/DomainBaker.cpp | 6 +++--- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libraries/baking/src/ModelBaker.cpp b/libraries/baking/src/ModelBaker.cpp index 9de32158c5..9d6a368e1c 100644 --- a/libraries/baking/src/ModelBaker.cpp +++ b/libraries/baking/src/ModelBaker.cpp @@ -45,6 +45,7 @@ #include ModelBaker::ModelBaker(const QUrl& inputModelURL, const QString& bakedOutputDirectory, const QString& originalOutputDirectory, bool hasBeenBaked) : + _originalInputModelURL(inputModelURL), _modelURL(inputModelURL), _bakedOutputDir(bakedOutputDirectory), _originalOutputDir(originalOutputDirectory), diff --git a/libraries/baking/src/ModelBaker.h b/libraries/baking/src/ModelBaker.h index b98d9716e1..991cbc25bf 100644 --- a/libraries/baking/src/ModelBaker.h +++ b/libraries/baking/src/ModelBaker.h @@ -51,6 +51,7 @@ public: virtual void setWasAborted(bool wasAborted) override; QUrl getModelURL() const { return _modelURL; } + QUrl getOriginalInputModelURL() const { return _originalInputModelURL; } virtual QUrl getFullOutputMappingURL() const; QUrl getBakedModelURL() const { return _bakedModelURL; } @@ -67,6 +68,7 @@ protected: void exportScene(); FBXNode _rootNode; + QUrl _originalInputModelURL; QUrl _modelURL; QUrl _outputURLSuffix; QUrl _mappingURL; diff --git a/tools/oven/src/DomainBaker.cpp b/tools/oven/src/DomainBaker.cpp index c52803956c..0853b41872 100644 --- a/tools/oven/src/DomainBaker.cpp +++ b/tools/oven/src/DomainBaker.cpp @@ -445,7 +445,7 @@ void DomainBaker::handleFinishedModelBaker() { // enumerate the QJsonRef values for the URL of this model from our multi hash of // entity objects needing a URL re-write - for (auto propertyEntityPair : _entitiesNeedingRewrite.values(baker->getModelURL())) { + for (auto propertyEntityPair : _entitiesNeedingRewrite.values(baker->getOriginalInputModelURL())) { QString property = propertyEntityPair.first; // convert the entity QJsonValueRef to a QJsonObject so we can modify its URL auto entity = propertyEntityPair.second.toObject(); @@ -485,10 +485,10 @@ void DomainBaker::handleFinishedModelBaker() { } // remove the baked URL from the multi hash of entities needing a re-write - _entitiesNeedingRewrite.remove(baker->getModelURL()); + _entitiesNeedingRewrite.remove(baker->getOriginalInputModelURL()); // drop our shared pointer to this baker so that it gets cleaned up - _modelBakers.remove(baker->getModelURL()); + _modelBakers.remove(baker->getOriginalInputModelURL()); // emit progress to tell listeners how many models we have baked emit bakeProgress(++_completedSubBakes, _totalNumberOfSubBakes);