#include "Camera.h" Camera::Camera(float xRot, float yRot, float zRot, const Vertex& pos) { _xRot = xRot; _yRot = yRot; _zRot = zRot; _cameraPosition = pos; } Camera::Camera(const Camera& other) { Copy(other); } Camera::~Camera() { } Matrix Camera::UpdateCameraPosition(const Vertex& newPos) { _cameraPosition = newPos; return GetCurrentCameraTransformMatrix(); } Matrix Camera::RotateCamera(float xRot, float yRot, float zRot) { _xRot = xRot; _yRot = yRot; _zRot = zRot; return GetCurrentCameraTransformMatrix(); } Matrix Camera::GetCurrentCameraTransformMatrix() { return GetCameraRotationMatrix(Axis::X, _xRot) * GetCameraRotationMatrix(Axis::Y, _yRot) * GetCameraRotationMatrix(Axis::Z, _zRot) * GetCameraTranslateMatrix(_cameraPosition); } void Camera::SetXRot(const float value) { _xRot = value; } float Camera::GetXRot() const { return _xRot; } void Camera::SetYRot(const float value) { _yRot = value; } float Camera::GetYRot() const { return _yRot; } void Camera::SetZRot(const float value) { _zRot = value; } float Camera::GetZRot() const { return _zRot; } Vertex Camera::GetCameraPosition() const { return _cameraPosition; } Camera& Camera::operator=(const Camera& rhs) { if (this != &rhs) { Copy(rhs); } return *this; } void Camera::Copy(const Camera& other) { _xRot = other.GetXRot(); _yRot = other.GetYRot(); _zRot = other.GetZRot(); _cameraPosition = other.GetCameraPosition(); }