Files
Seele/src/Engine/Component/Camera.h
T

36 lines
729 B
C++
Raw Normal View History

#pragma once
#include "Component.h"
#include "Math/Matrix.h"
#include "Transform.h"
2024-06-09 12:20:04 +02:00
namespace Seele {
namespace Component {
struct Camera {
REQUIRE_COMPONENT(Transform)
2024-06-09 12:20:04 +02:00
Camera();
~Camera();
2024-06-09 12:20:04 +02:00
Matrix4 getViewMatrix() const {
assert(!bNeedsViewBuild);
2022-03-19 22:45:30 +01:00
return viewMatrix;
}
2024-06-09 12:20:04 +02:00
Vector getCameraPosition() const { return cameraPos; }
2022-03-19 22:45:30 +01:00
void mouseMove(float deltaX, float deltaY);
void mouseScroll(float x);
void moveX(float amount);
void moveY(float amount);
void buildViewMatrix();
2024-06-09 12:20:04 +02:00
2023-11-13 13:23:16 +01:00
bool mainCamera = false;
2024-06-09 12:20:04 +02:00
private:
2024-01-02 16:48:03 +01:00
float yaw;
float pitch;
Matrix4 viewMatrix;
Vector cameraPos;
bool bNeedsViewBuild;
};
} // namespace Component
} // namespace Seele