32 glm::vec3 vehiclePos = vehicleTransform.
GetPosition();
33 glm::quat vehicleRot = vehicleTransform.GetRotation();
35 glm::vec3 vehicleForward = vehicleRot * glm::vec3(0.0f, 0.0f, 1.0f);
37 constexpr float cameraDistance = 8.0f;
38 constexpr float cameraHeight = 3.0f;
39 constexpr float cameraLookAhead = 2.0f;
41 glm::vec3 cameraOffset = -vehicleForward * cameraDistance + glm::vec3(0.0f, cameraHeight, 0.0f);
42 glm::vec3 cameraPosition = vehiclePos + cameraOffset;
43 glm::vec3 cameraTarget = vehiclePos + vehicleForward * cameraLookAhead + glm::vec3(0.0f, 0.5f, 0.0f);
47 glm::quat lookRotation =
CameraManager is a resource that manages the active camera entity.
Definition CameraManager.hpp:24
Base interface for camera behaviors.
Definition CameraBehavior.hpp:18
void Update(Engine::Core &core, CameraMovement::Resource::CameraManager &manager, Object::Component::Transform &transform, Object::Component::Camera &camera, float deltaTime) override
Update the camera behavior.
Definition ChaseCameraBehavior.hpp:25
ChaseCameraBehavior(Engine::Entity vehicleEntity)
Definition ChaseCameraBehavior.hpp:22
void SetVehicleEntity(Engine::Entity vehicleEntity)
Definition ChaseCameraBehavior.hpp:54
Engine::Entity GetVehicleEntity() const
Definition ChaseCameraBehavior.hpp:52
Engine::Entity _vehicleEntity
Definition ChaseCameraBehavior.hpp:57
~ChaseCameraBehavior() override=default
The core is the place where all the data of the engine is stored. It contains the registry (entities)...
Definition Core.hpp:33
Registry & GetRegistry()
Get the entt::registry that contains all components. It should be used to update component through sy...
Definition Core.hpp:50
Wrapper class providing a convenient interface for entity manipulation with the Core....
Definition Entity.hpp:20
glm::quat ComputeLookAtQuaternion(const glm::vec3 &eye, const glm::vec3 &target, const glm::vec3 &up)
Compute a quaternion that represents a "look at" rotation.
Definition CameraUtils.hpp:19