Physics stuff
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user