66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
#include <SFML/Graphics/RenderTexture.hpp>
|
|
|
|
#include "Camera.hpp"
|
|
#include "../Utils/MeshHelper.hpp"
|
|
|
|
|
|
class MeshObjCube final {
|
|
public:
|
|
MeshObjCube() {
|
|
mMesh = {
|
|
// RIGHT
|
|
{0.5f, 0.5f, -0.5f}, {0.5f, -0.5f, 0.5f}, {0.5f, 0.5f, 0.5f},
|
|
{0.5f, 0.5f, -0.5f}, {0.5f, -0.5f, 0.5f}, {0.5f, -0.5f, -0.5f},
|
|
|
|
// FRONT
|
|
{0.5f, 0.5f, 0.5f}, {0.5f, -0.5f, 0.5f}, {-0.5f, -0.5f, 0.5f},
|
|
{0.5f, 0.5f, 0.5f}, {-0.5f, -0.5f, 0.5f}, {-0.5f, 0.5f, 0.5f},
|
|
|
|
// LEFT
|
|
{-0.5f, 0.5f, 0.5f}, {-0.5f, -0.5f, 0.5f}, {-0.5f, 0.5f, -0.5f},
|
|
{-0.5f, 0.5f, -0.5f}, {-0.5f, -0.5f, 0.5f}, {-0.5f, -0.5f, -0.5f},
|
|
|
|
// BACK
|
|
{0.5f, 0.5f, -0.5f}, {-0.5f, 0.5f, -0.5f}, {0.5f, -0.5f, -0.5f},
|
|
{-0.5f, 0.5f, -0.5f}, {-0.5f, -0.5f, -0.5f}, {0.5f, -0.5f, -0.5f},
|
|
|
|
// TOP
|
|
{-0.5f, 0.5f, -0.5f}, {0.5f, 0.5f, -0.5f}, {-0.5f, 0.5f, 0.5f},
|
|
{0.5f, 0.5f, -0.5f}, {0.5f, 0.5f, 0.5f}, {-0.5f, 0.5f, 0.5f},
|
|
|
|
// BOTTOM
|
|
{-0.5f, -0.5f, -0.5f}, {-0.5f, -0.5f, 0.5f}, {0.5f, -0.5f, 0.5f},
|
|
{0.5f, -0.5f, 0.5f}, {0.5f, -0.5f, -0.5f}, {-0.5f, -0.5f, -0.5f},
|
|
};
|
|
}
|
|
|
|
std::vector<MeshVertex> mMesh;
|
|
|
|
private:
|
|
|
|
};
|
|
|
|
class Graphic3DRenderer final {
|
|
public:
|
|
Graphic3DRenderer();
|
|
~Graphic3DRenderer();
|
|
|
|
Graphic3DRenderer(Graphic3DRenderer&&) = default;
|
|
Graphic3DRenderer& operator= (Graphic3DRenderer&&) = default;
|
|
Graphic3DRenderer(Graphic3DRenderer const&) = delete;
|
|
Graphic3DRenderer& operator= (Graphic3DRenderer const&) = delete;
|
|
|
|
void Draw(sf::RenderTexture& context);
|
|
|
|
private:
|
|
sf::RenderTexture mWorldRender; // This is used to create the scene
|
|
std::unique_ptr<Camera> mMainCamera;
|
|
|
|
MeshObjCube testObj;
|
|
|
|
}; |