Physics stuff

This commit is contained in:
Confideo-IOM
2026-08-25 22:10:54 +01:00
parent 1253571c17
commit 30538ae7ab
59 changed files with 1403 additions and 518 deletions
+17 -14
View File
@@ -95,22 +95,15 @@ void HydraActorManager::Initialise(size_t max_actors)
}
void HydraActorManager::TickActors(float delta_t)
void HydraActorManager::FixedTickActor(float actor_id, float delta_t)
{
// std::lock_guard<std::mutex> lock(m_mutex);
HydraActor *actor = GetActor(actor_id);
if (actor != nullptr)
{
actor->FixedTick(delta_t);
}
// // HydraID barrierID = GetEngine()->TaskScheduler()->CreateBarrier();
// for (int i = 0; i < m_actors_to_tick_fixed.size(); i++)
// {
// HydraID tick_actors_task_id = GetEngine()->TaskScheduler()->CreateTask<HydraFixedTickActorTask>(HydraThreadAffinity::General);
// if (tick_actors_task_id != INVALID_HYDRA_ID)
// {
// ((HydraFixedTickActorTask *)(GetEngine()->TaskScheduler()->GetTask(tick_actors_task_id)))->Initialise(m_actors_to_tick_fixed[i], delta_t);
// GetEngine()->TaskScheduler()->StartTask(tick_actors_task_id);
// }
// }
// GetEngine()->TaskScheduler()->WaitForBarrier(barrierID);
}
void HydraActorManager::InitialiseActor(HydraID actorID)
{
@@ -188,6 +181,16 @@ void HydraActorManager::SetOrientation(HydraID actorID, float x, float y, float
}
}
void HydraActorManager::SetLinearVelocity(HydraID actor_id, glm::vec3 velocity)
{
HydraECS* ecs = GetEngine()->ECS();
if (ecs->HasComponent<HydraPhysicsComponent>(actor_id))
{
std::shared_ptr<HydraPhysicsSystem> phys_sys = ecs->GetSystem<HydraPhysicsSystem>();
phys_sys->SetLinearVelocity(actor_id, velocity);
}
}
void HydraActorManager::SetPositionAndOrientation(HydraID actorID, glm::dvec3 position, glm::vec3 euler_angles, bool ignore_physics)
{
HydraECS *ecs = GetEngine()->ECS();