#pragma once #include #include "Camera.hpp" #include "../Utils/MeshHelper.hpp" #include "../World/WorldObject.hpp" typedef enum eCameraMovementType { CAMERA_MOVE_WALK, CAMERA_MOVE_STRAFE, CAMERA_MOVE_FLY, CAMERA_MOVE_PITCH, CAMERA_MOVE_YAW } CAMERA_MOVE; class Graphic3DRenderer final { public: Graphic3DRenderer(); ~Graphic3DRenderer(); Graphic3DRenderer(Graphic3DRenderer&&) = default; Graphic3DRenderer& operator= (Graphic3DRenderer&&) = default; Graphic3DRenderer(Graphic3DRenderer const&) = delete; Graphic3DRenderer& operator= (Graphic3DRenderer const&) = delete; void UpdateCamera(CAMERA_MOVE type, const float value); void Draw(sf::RenderTexture& context); private: std::unique_ptr mMainCamera; // Default player view std::vector> mRenderList; // List of elements to be rendered next frame };