5#include <glm/gtc/quaternion.hpp>
28 static glm::vec3
getPosition(
const glm::mat4& matrix);
29 static glm::quat
getRotation(
const glm::mat4& matrix);
31 static glm::vec3
getScale(
const glm::mat4& matrix);
48 Transform(glm::vec3 location, glm::vec3 rotation);
49 Transform(glm::vec3 location, glm::vec3 rotation, glm::vec3 scale);
53 explicit Transform(nlohmann::json
object);
84 void setRotation(
const glm::vec3& newRotationEuler);
89 [[nodiscard]] glm::vec3
getScale()
const;
90 void setScale(
const glm::vec3& newScale);
97 [[nodiscard]] glm::mat4
toMatrix()
const;
99 [[nodiscard]] std::string
toString()
const;
101 void Serialize(nlohmann::json &archive)
override;
102 void Deserialize(nlohmann::json& archive)
override;
103 [[nodiscard]] std::string
getClassName()
const override;
116 inline static std::string
SCALE =
"scale";
#define REGISTER_SERIALIZABLE(ClassName)
Registers the serializable in the list of all serializable objects. This list is primarily used in th...
Data structs for the Entity Component System.
Log category system implementation.