LinAl::Vector<float, 3> position;
Geometry::Quaternion<float> rotation = Geometry::Quaternion<float>::one();
LinAl::Vector<float, 3> scale = { 1.0f, 1.0f, 1.0f };
+
+ TransformValues() = default;
+ TransformValues(const LinAl::Vector<float, 3> &p): position(p) { }
+ TransformValues(const LinAl::Vector<float, 3> &p, const Geometry::Quaternion<float> &r,
+ const LinAl::Vector<float, 3> &s = LinAl::Vector<float, 3>(1.0f, 1.0f, 1.0f)):
+ position(p), rotation(r), scale(s)
+ { }
};
class Transform: public Component
Transform(Handle<Entity>);
void set_values(const TransformValues &);
+ void set_position(const LinAl::Vector<float, 3> &);
+ void set_rotation(const Geometry::Quaternion<float> &);
+ void set_scale(const LinAl::Vector<float, 3> &);
const TransformValues &get_values() const { return values; }
const LinAl::Vector<float, 3> &get_position() const { return values.position; }
const Geometry::Quaternion<float> &get_rotation() const { return values.rotation; }