#pragma once #include "Vertex.h" #include "Matrix.h" #include "TransformTools.h" using namespace TransformTools; class Camera { public: Camera(float xRot, float yRot, float zRot, const Vertex& pos); Camera(const Camera& other); ~Camera(); Matrix UpdateCameraPosition(const Vertex& newPos); Matrix RotateCamera(float xRot, float yRot, float zRot); Matrix GetCurrentCameraTransformMatrix(); float GetCurrentRotationValue(const Axis axis); float GetInitialRotationValue(const Axis axis); Vertex GetCurrentPosition(); Vertex GetInitialPosition(); Camera& operator= (const Camera& rhs); private: float _initialRotation[3] = { 0 }; Vertex _initialPosition; float _currentRotation[3] = { 0 }; Vertex _currentPosition; Matrix _currentCameraTransform; void Copy(const Camera& other); };