don't reload animGraph if url didn't change

This commit is contained in:
SamGondelman 2017-09-26 18:18:41 -07:00
parent ca4d5ef807
commit 306cf883fe

View file

@ -1619,28 +1619,30 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo
} }
void Rig::initAnimGraph(const QUrl& url) { void Rig::initAnimGraph(const QUrl& url) {
_animGraphURL = url; if (_animGraphURL != url) {
_animGraphURL = url;
_animNode.reset(); _animNode.reset();
// load the anim graph // load the anim graph
_animLoader.reset(new AnimNodeLoader(url)); _animLoader.reset(new AnimNodeLoader(url));
connect(_animLoader.get(), &AnimNodeLoader::success, [this](AnimNode::Pointer nodeIn) { connect(_animLoader.get(), &AnimNodeLoader::success, [this](AnimNode::Pointer nodeIn) {
_animNode = nodeIn; _animNode = nodeIn;
_animNode->setSkeleton(_animSkeleton); _animNode->setSkeleton(_animSkeleton);
if (_userAnimState.clipNodeEnum != UserAnimState::None) { if (_userAnimState.clipNodeEnum != UserAnimState::None) {
// restore the user animation we had before reset. // restore the user animation we had before reset.
UserAnimState origState = _userAnimState; UserAnimState origState = _userAnimState;
_userAnimState = { UserAnimState::None, "", 30.0f, false, 0.0f, 0.0f }; _userAnimState = { UserAnimState::None, "", 30.0f, false, 0.0f, 0.0f };
overrideAnimation(origState.url, origState.fps, origState.loop, origState.firstFrame, origState.lastFrame); overrideAnimation(origState.url, origState.fps, origState.loop, origState.firstFrame, origState.lastFrame);
} }
emit onLoadComplete(); emit onLoadComplete();
}); });
connect(_animLoader.get(), &AnimNodeLoader::error, [url](int error, QString str) { connect(_animLoader.get(), &AnimNodeLoader::error, [url](int error, QString str) {
qCCritical(animation) << "Error loading" << url.toDisplayString() << "code = " << error << "str =" << str; qCCritical(animation) << "Error loading" << url.toDisplayString() << "code = " << error << "str =" << str;
}); });
}
} }
bool Rig::getModelRegistrationPoint(glm::vec3& modelRegistrationPointOut) const { bool Rig::getModelRegistrationPoint(glm::vec3& modelRegistrationPointOut) const {