From ffdbc12968257b527d4f3cbb2376ca9bc30bc94e Mon Sep 17 00:00:00 2001 From: kunalgosar Date: Tue, 18 Apr 2017 12:20:03 -0700 Subject: [PATCH] copy into new vector --- libraries/avatars/src/HeadData.cpp | 23 ++++++++++++++++++----- libraries/avatars/src/HeadData.h | 1 + 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/libraries/avatars/src/HeadData.cpp b/libraries/avatars/src/HeadData.cpp index 1e059e04ba..271ce133a2 100644 --- a/libraries/avatars/src/HeadData.cpp +++ b/libraries/avatars/src/HeadData.cpp @@ -39,8 +39,9 @@ HeadData::HeadData(AvatarData* owningAvatar) : _rightEyeBlink(0.0f), _averageLoudness(0.0f), _browAudioLift(0.0f), - _owningAvatar(owningAvatar), - _baseBlendshapeCoefficients(QVector(0, 0)) + _baseBlendshapeCoefficients(QVector(0, 0.0f)), + _currBlendShapeCoefficients(QVector(0, 0.0f)), + _owningAvatar(owningAvatar) { } @@ -89,10 +90,22 @@ static const QMap& getBlendshapesLookupMap() { } const QVector& HeadData::getSummedBlendshapeCoefficients() { - for (int i = 0; i < _baseBlendshapeCoefficients.size(); i++) { - _blendshapeCoefficients[i] += _baseBlendshapeCoefficients[i]; + int maxSize = std::max(_baseBlendshapeCoefficients.size(), _blendshapeCoefficients.size()); + if (_currBlendShapeCoefficients.size() != maxSize) { + _currBlendShapeCoefficients.resize(maxSize); } - return _blendshapeCoefficients; + + for (int i = 0; i < maxSize; i++) { + if (i >= _baseBlendshapeCoefficients.size()) { + _currBlendShapeCoefficients[i] = _blendshapeCoefficients[i]; + } else if (i >= _blendshapeCoefficients.size()) { + _currBlendShapeCoefficients[i] = _baseBlendshapeCoefficients[i]; + } else { + _currBlendShapeCoefficients[i] = _baseBlendshapeCoefficients[i] + _blendshapeCoefficients[i]; + } + } + + return _currBlendShapeCoefficients; } void HeadData::setBlendshape(QString name, float val) { diff --git a/libraries/avatars/src/HeadData.h b/libraries/avatars/src/HeadData.h index ec542fe6a1..dbed0a6a65 100644 --- a/libraries/avatars/src/HeadData.h +++ b/libraries/avatars/src/HeadData.h @@ -94,6 +94,7 @@ protected: QVector _blendshapeCoefficients; QVector _baseBlendshapeCoefficients; + QVector _currBlendShapeCoefficients; AvatarData* _owningAvatar; private: