mirror of
https://github.com/JulianGro/overte.git
synced 2025-08-04 18:39:18 +02:00
cleanup and minor optimizations
This commit is contained in:
parent
d948168727
commit
160bef8f23
1 changed files with 27 additions and 29 deletions
|
@ -288,39 +288,37 @@ void AvatarActionHold::doKinematicUpdate(float deltaTimeStep) {
|
||||||
glm::vec3 oneFrameVelocity = (_positionalTarget - _previousPositionalTarget) / deltaTimeStep;
|
glm::vec3 oneFrameVelocity = (_positionalTarget - _previousPositionalTarget) / deltaTimeStep;
|
||||||
|
|
||||||
_measuredLinearVelocities[_measuredLinearVelocitiesIndex++] = oneFrameVelocity;
|
_measuredLinearVelocities[_measuredLinearVelocitiesIndex++] = oneFrameVelocity;
|
||||||
if (_measuredLinearVelocitiesIndex >= AvatarActionHold::velocitySmoothFrames) {
|
_measuredLinearVelocitiesIndex %= AvatarActionHold::velocitySmoothFrames;
|
||||||
_measuredLinearVelocitiesIndex = 0;
|
}
|
||||||
|
|
||||||
|
if (_kinematicSetVelocity) {
|
||||||
|
glm::vec3 measuredLinearVelocity = _measuredLinearVelocities[0];
|
||||||
|
for (int i = 1; i < AvatarActionHold::velocitySmoothFrames; i++) {
|
||||||
|
// there is a bit of lag between when someone releases the trigger and when the software reacts to
|
||||||
|
// the release. we calculate the velocity from previous frames but we don't include several
|
||||||
|
// of the most recent.
|
||||||
|
//
|
||||||
|
// if _measuredLinearVelocitiesIndex is
|
||||||
|
// 0 -- ignore i of 3 4 5
|
||||||
|
// 1 -- ignore i of 4 5 0
|
||||||
|
// 2 -- ignore i of 5 0 1
|
||||||
|
// 3 -- ignore i of 0 1 2
|
||||||
|
// 4 -- ignore i of 1 2 3
|
||||||
|
// 5 -- ignore i of 2 3 4
|
||||||
|
|
||||||
|
// This code is now disabled, but I'm leaving it commented-out because I suspect it will come back.
|
||||||
|
// if ((i + 1) % AvatarActionHold::velocitySmoothFrames == _measuredLinearVelocitiesIndex ||
|
||||||
|
// (i + 2) % AvatarActionHold::velocitySmoothFrames == _measuredLinearVelocitiesIndex ||
|
||||||
|
// (i + 3) % AvatarActionHold::velocitySmoothFrames == _measuredLinearVelocitiesIndex) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
measuredLinearVelocity += _measuredLinearVelocities[i];
|
||||||
}
|
}
|
||||||
}
|
measuredLinearVelocity /= (float)(AvatarActionHold::velocitySmoothFrames
|
||||||
|
|
||||||
glm::vec3 measuredLinearVelocity;
|
|
||||||
for (int i = 0; i < AvatarActionHold::velocitySmoothFrames; i++) {
|
|
||||||
// there is a bit of lag between when someone releases the trigger and when the software reacts to
|
|
||||||
// the release. we calculate the velocity from previous frames but we don't include several
|
|
||||||
// of the most recent.
|
|
||||||
//
|
|
||||||
// if _measuredLinearVelocitiesIndex is
|
|
||||||
// 0 -- ignore i of 3 4 5
|
|
||||||
// 1 -- ignore i of 4 5 0
|
|
||||||
// 2 -- ignore i of 5 0 1
|
|
||||||
// 3 -- ignore i of 0 1 2
|
|
||||||
// 4 -- ignore i of 1 2 3
|
|
||||||
// 5 -- ignore i of 2 3 4
|
|
||||||
|
|
||||||
// This code is now disabled, but I'm leaving it commented-out because I suspect it will come back.
|
|
||||||
// if ((i + 1) % AvatarActionHold::velocitySmoothFrames == _measuredLinearVelocitiesIndex ||
|
|
||||||
// (i + 2) % AvatarActionHold::velocitySmoothFrames == _measuredLinearVelocitiesIndex ||
|
|
||||||
// (i + 3) % AvatarActionHold::velocitySmoothFrames == _measuredLinearVelocitiesIndex) {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
measuredLinearVelocity += _measuredLinearVelocities[i];
|
|
||||||
}
|
|
||||||
measuredLinearVelocity /= (float)(AvatarActionHold::velocitySmoothFrames
|
|
||||||
// - 3 // 3 because of the 3 we skipped, above
|
// - 3 // 3 because of the 3 we skipped, above
|
||||||
);
|
);
|
||||||
|
|
||||||
if (_kinematicSetVelocity) {
|
|
||||||
rigidBody->setLinearVelocity(glmToBullet(measuredLinearVelocity));
|
rigidBody->setLinearVelocity(glmToBullet(measuredLinearVelocity));
|
||||||
rigidBody->setAngularVelocity(glmToBullet(_angularVelocityTarget));
|
rigidBody->setAngularVelocity(glmToBullet(_angularVelocityTarget));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue