Files
Seele/src/Engine/Component/Camera.h
T
2024-06-20 21:57:26 +02:00

38 lines
817 B
C++

#pragma once
#include "Component.h"
#include "Math/Matrix.h"
#include "Transform.h"
namespace Seele {
namespace Component {
struct Camera {
REQUIRE_COMPONENT(Transform)
Camera();
~Camera();
Matrix4 getViewMatrix() const {
assert(!bNeedsViewBuild);
return viewMatrix;
}
Vector getCameraPosition() const { return cameraPos; }
Vector getCameraForward() const { return cameraForward; }
void mouseMove(float deltaX, float deltaY);
void mouseScroll(float x);
void moveX(float amount);
void moveY(float amount);
void buildViewMatrix();
bool mainCamera = false;
private:
float yaw;
float pitch;
Matrix4 viewMatrix;
Vector cameraPos;
Vector cameraForward;
bool bNeedsViewBuild;
};
} // namespace Component
} // namespace Seele