43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#pragma once
|
|
#include <glm/gtc/matrix_transform.hpp>
|
|
#include <glm/gtc/quaternion.hpp>
|
|
#include <vector>
|
|
|
|
#include "material.h"
|
|
#include "vulkan/buffer_handle.h"
|
|
#include "vulkan/vertex.h"
|
|
|
|
namespace veng {
|
|
struct Model {
|
|
Model(class Graphics* graphics) : graphics_(graphics) {}
|
|
~Model();
|
|
|
|
std::vector<veng::Vertex> vertices;
|
|
veng::BufferHandle vertex_buffer;
|
|
std::vector<std::uint32_t> indices;
|
|
veng::BufferHandle index_buffer;
|
|
|
|
glm::mat4 transform = glm::rotate(glm::mat4(1.0f), glm::radians(180.f),
|
|
glm::vec3(0.f, 0.f, 1.f));
|
|
|
|
glm::vec3 position = glm::vec3(0.f);
|
|
glm::vec3 linear_velocity = glm::vec3(0.f);
|
|
glm::vec3 linear_acceleration = glm::vec3(0.f);
|
|
|
|
glm::quat rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f);
|
|
glm::vec3 angular_velocity = glm::vec3(0.f); // 축 * 각속도(rad/s)
|
|
glm::vec3 angular_acceleration = glm::vec3(0.f);
|
|
|
|
glm::vec3 scale = glm::vec3(1.f);
|
|
|
|
Material material;
|
|
|
|
glm::mat4 UpdateTransform(float dt);
|
|
|
|
glm::vec3 original_offset = glm::vec3(0.f);
|
|
|
|
private:
|
|
class Graphics* graphics_;
|
|
};
|
|
} // namespace veng
|