INNER CODE UNIT · C++
base_velocity_iter
trillek-team/tec · client/client-game-state-queue.cpp:88
auto base_velocity_iter = this->base_state.velocities.find(velocity.first);
if (base_velocity_iter != this->base_state.velocities.end()) {
this->interpolated_state.velocities[velocity.first].linear =
glm::lerp(base_velocity_iter->second.linear, velocity.second.linear, lerp_percent);
this->interpolated_state.velocities[velocity.first].angular =
glm::lerp(base_velocity_iter->second.angular, velocity.second.angular, lerp_percent);
}
else {
this->interpolated_state.velocities[velocity.first].linear = velocity.second.linear;
this->interpolated_state.velocities[velocity.first].angular = velocity.second.angular;
}
}
// Quaternions, we use a slerp here instead
for (auto orientation : to_state.orientations) {
auto base_orientation_iter = this->base_state.orientations.find(orientation.first);
if (base_orientation_iter != this->base_state.orientations.end()) {
this->interpolated_state.orientations[orientation.first].value =
glm::slerp(base_orientation_iter->second.value, orientation.second.value, lerp_percent);