#pragma once #include "core.h" #include "DirectXCore.h" #include "SharedMethods.h" #include "ObjectNode.h" class Camera { public: Camera(); ~Camera(); void Update(); XMMATRIX GetViewMatrix(); XMVECTOR GetCameraPosition(); void SetCameraPosition(XMVECTOR vectorIn); void SetCameraPosition(XMFLOAT4 floatIn); void SetCameraPosition(float x, float y, float z); void SetPitch(float pitch); void SetTotalPitch(float pitch); float GetPitch() const; void SetYaw(float yaw); void SetTotalYaw(float yaw); float GetYaw() const; void SetRoll(float roll); void SetTotalRoll(float roll); float GetRoll() const; void SetLeftRight(float leftRight); void SetForwardBack(float forwardBack); void SetFollowNode(shared_ptr nodeFollowed, XMFLOAT3 followOffset, bool positionOnly); private: XMFLOAT4 _cameraPosition; XMFLOAT4X4 _viewMatrix; float _moveLeftRight; float _moveForwardBack; float _cameraYaw; float _cameraYawPrev; float _cameraPitch; float _cameraRoll; shared_ptr _nodeFollowed; XMFLOAT3 _followOffset; bool _followPositionOnly; };