NazaraEngine/include/Nazara/Graphics/Components/CameraComponent.inl

43 lines
1.2 KiB
C++

// Copyright (C) 2021 Jérôme Leclercq
// This file is part of the "Nazara Engine - Utility module"
// For conditions of distribution and use, see copyright notice in Prerequisites.hpp
#include <Nazara/Graphics/Components/CameraComponent.hpp>
#include <Nazara/Graphics/Debug.hpp>
namespace Nz
{
inline CameraComponent::CameraComponent(const RenderTarget* renderTarget, ProjectionType projectionType) :
m_projectionType(projectionType),
m_renderTarget(renderTarget)
{
UpdateProjectionMatrix();
}
inline void CameraComponent::UpdateTarget(const RenderTarget* renderTarget)
{
m_renderTarget = renderTarget;
}
inline void CameraComponent::UpdateProjectionType(ProjectionType projectionType)
{
m_projectionType = projectionType;
UpdateProjectionMatrix();
}
inline void CameraComponent::UpdateProjectionMatrix()
{
//FIXME
switch (m_projectionType)
{
case ProjectionType::Orthographic:
m_viewerInstance.UpdateProjectionMatrix(Nz::Matrix4f::Ortho(0.f, 1920.f, 0.f, 1080.f));
break;
case ProjectionType::Perspective:
m_viewerInstance.UpdateProjectionMatrix(Nz::Matrix4f::Perspective(Nz::DegreeAnglef(70.f), 16.f / 9.f, 1.f, 1000.f));
break;
}
}
}