ferx/engine/scene/components/Cube.h
2024-11-22 04:37:06 +04:00

42 lines
1.2 KiB
C++

#pragma once
#include <string>
#include <glm/vec3.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/glm.hpp>
class Cube{
public:
Cube(const std::string& cubeName);
void Draw() const;
void SetPosition(const glm::vec3& newPosition){ *m_Position = newPosition; }
glm::vec3* GetPosition() const{ return m_Position; }
void SetRotation(const glm::vec3& newRotation){ *m_Rotation = newRotation; }
glm::vec3* GetRotation() const{ return m_Rotation; }
void SetScale(const glm::vec3& newScale){ *m_Scale = newScale; }
glm::vec3* GetScale() const{ return m_Scale; }
glm::mat4* GetModelMatrix() const{ return m_ModelMatrix; }
glm::vec3* GetShaderColor() const{ return m_ShaderColor; }
static std::vector<float>& GetVertices() { return s_Vertices; }
static std::vector<unsigned int>& GetIndices() { return s_Indices; }
std::string name;
private:
static std::vector<float> s_Vertices;
static std::vector<unsigned int> s_Indices;
glm::vec3* m_Position = new glm::vec3{0.0f, 0.0f, 0.0f};
glm::vec3* m_Rotation = new glm::vec3{0.0f, 0.0f, 0.0f};
glm::vec3* m_Scale = new glm::vec3{1.0f, 1.0f, 1.0f};
glm::mat4* m_ModelMatrix = new glm::mat4(1.0f);
glm::vec3* m_ShaderColor = new glm::vec3(1.0f, 1.0f, 1.0f);
};