Files
Towards/modules/client/src/network/EntityPositionInterpolator.hpp
T

33 lines
685 B
C++
Raw Normal View History

2026-08-03 23:30:18 +02:00
#pragma once
2026-07-18 14:31:15 +02:00
#include <chrono>
#include <entt/entt.hpp>
#include <glm/glm.hpp>
namespace tw::net {
class EntityPositionInterpolator {
using Clock = std::chrono::high_resolution_clock;
entt::registry* m_registry;
size_t m_bufferingIntervalInMillis;
2026-08-03 23:30:18 +02:00
glm::vec3 get_position(Clock::time_point time_point, entt::entity entity);
2026-07-18 14:31:15 +02:00
public:
EntityPositionInterpolator(
entt::registry* registry,
size_t bufferingIntervalInMillis);
void register_entity(entt::entity entity);
2026-08-03 23:30:18 +02:00
void set_position(Clock::time_point time_point, entt::entity entity, glm::vec3 position);
2026-07-18 14:31:15 +02:00
2026-08-03 23:30:18 +02:00
void interpolate_smoothed_entities(Clock::time_point time_point);
2026-07-18 14:31:15 +02:00
};
}