21 #include "hx3d/graphics/transform.hpp" 23 #include "hx3d/utils/log.hpp" 28 Transform::Transform():
34 Transform& Transform::operator=(
const Transform& transform) {
35 position = transform.position;
36 scale = transform.scale;
37 size = transform.size;
38 rotation = transform.rotation;
44 glm::mat4 model = glm::mat4(1.f);
45 model = glm::translate(model, glm::vec3(position.x, position.y, position.z));
46 model = glm::rotate(model, rotation.x, glm::vec3(1, 0, 0));
47 model = glm::rotate(model, rotation.y, glm::vec3(0, 1, 0));
48 model = glm::rotate(model, rotation.z, glm::vec3(0, 0, 1));
49 model = glm::scale(model, glm::vec3(size.x, size.y, size.z));
50 model = glm::scale(model, glm::vec3(scale.x, scale.y, scale.z));
64 float s = std::sin(transform.
rotation.z);
65 float c = std::cos(transform.
rotation.z);
67 float nx = c * position.x - s * position.y + transform.
position.x;
68 float ny = s * position.x + c * position.y + transform.
position.y;
81 float width = scale.x * size.x;
82 float height = scale.y * size.y;
84 float minX = position.x - width / 2;
85 float maxX = position.x + width / 2;
86 float minY = position.y - height / 2;
87 float maxY = position.y + height / 2;
89 return ((minX <= point.x && maxX >= point.x) &&
90 (minY <= point.y && maxY >= point.y));
95 Log.
Info(
"\t Pos: [%f, %f, %f]", position.x, position.y, position.z);
96 Log.
Info(
"\t Sca: [%f, %f, %f]", scale.x, scale.y, scale.z);
97 Log.
Info(
"\t Siz: [%f, %f, %f]", size.x, size.y, size.z);
98 Log.
Info(
"\t Rot: [%f, %f, %f]", rotation.x, rotation.y, rotation.z);
static hx3d::LogImpl Log
Current log implementation.
void Info(const std::string fmt,...)
Write an info message.