mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 15:29:42 +02:00
More priority bits.
This commit is contained in:
parent
8717977437
commit
083543419d
2 changed files with 14 additions and 3 deletions
|
@ -711,17 +711,19 @@ glm::vec3 MyAvatar::getUprightHeadPosition() const {
|
||||||
return _position + getWorldAlignedOrientation() * glm::vec3(0.0f, getPelvisToHeadLength(), 0.0f);
|
return _position + getWorldAlignedOrientation() * glm::vec3(0.0f, getPelvisToHeadLength(), 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const float JOINT_PRIORITY = 2.0f;
|
||||||
|
|
||||||
void MyAvatar::setJointData(int index, const glm::quat& rotation) {
|
void MyAvatar::setJointData(int index, const glm::quat& rotation) {
|
||||||
Avatar::setJointData(index, rotation);
|
Avatar::setJointData(index, rotation);
|
||||||
if (QThread::currentThread() == thread()) {
|
if (QThread::currentThread() == thread()) {
|
||||||
_skeletonModel.setJointState(index, true, rotation, 2.0f);
|
_skeletonModel.setJointState(index, true, rotation, JOINT_PRIORITY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyAvatar::clearJointData(int index) {
|
void MyAvatar::clearJointData(int index) {
|
||||||
Avatar::clearJointData(index);
|
Avatar::clearJointData(index);
|
||||||
if (QThread::currentThread() == thread()) {
|
if (QThread::currentThread() == thread()) {
|
||||||
_skeletonModel.setJointState(index, false, glm::quat(), 2.0f);
|
_skeletonModel.setJointState(index, false, glm::quat(), JOINT_PRIORITY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1681,7 +1681,7 @@ void AnimationHandle::setURL(const QUrl& url) {
|
||||||
|
|
||||||
static void insertSorted(QList<AnimationHandlePointer>& handles, const AnimationHandlePointer& handle) {
|
static void insertSorted(QList<AnimationHandlePointer>& handles, const AnimationHandlePointer& handle) {
|
||||||
for (QList<AnimationHandlePointer>::iterator it = handles.begin(); it != handles.end(); it++) {
|
for (QList<AnimationHandlePointer>::iterator it = handles.begin(); it != handles.end(); it++) {
|
||||||
if (handle->getPriority() < (*it)->getPriority()) {
|
if (handle->getPriority() > (*it)->getPriority()) {
|
||||||
handles.insert(it, handle);
|
handles.insert(it, handle);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1713,6 +1713,15 @@ void AnimationHandle::setRunning(bool running) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
_model->_runningAnimations.removeOne(_self);
|
_model->_runningAnimations.removeOne(_self);
|
||||||
|
for (int i = 0; i < _jointMappings.size(); i++) {
|
||||||
|
int mapping = _jointMappings.at(i);
|
||||||
|
if (mapping != -1) {
|
||||||
|
Model::JointState& state = _model->_jointStates[mapping];
|
||||||
|
if (_priority == state.animationPriority) {
|
||||||
|
state.animationPriority = 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue