#pragma once #include #include #include #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 vertices; veng::BufferHandle vertex_buffer; std::vector 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