Describes transformation in more efficient way than ITransform.
You can find more information in comments below. Overrided methods can be found in corresponding base interface.
class ITransformable
{
protected:
nitisa::Transform m_sTransform;
public:
// Properties
float const &Tx;
float const &Ty;
float const &Tz;
float const &Rx;
float const &Ry;
float const &Rz;
float const &Sx;
float const &Sy;
float const &Sz;
Vec3f const &Translation;
Vec3f const &Rotation;
Vec3f const &Scaling;
nitisa::TransformOrder const &TransformOrder;
nitisa::RotateOrder const &RotateOrder;
nitisa::Transform const &Transform;
// Getters
virtual bool hasTranslation(const float relative_tolerance = ntl::RelativeTolerance<float>) const = 0;
virtual bool hasRotation(const float relative_tolerance = ntl::RelativeTolerance<float>) const = 0;
virtual bool hasScaling(const float relative_tolerance = ntl::RelativeTolerance<float>) const = 0;
virtual const Mat4f &getMatrix() = 0;
virtual const Mat4f &getTranslateMatrix() = 0;
virtual const Mat4f &getScaleMatrix() = 0;
virtual const Mat4f &getRotateMaterix() = 0;
virtual const Mat4f &getRotateXMatrix() = 0;
virtual const Mat4f &getRotateYMatrix() = 0;
virtual const Mat4f &getRotateZMatrix() = 0;
virtual const Mat4f &getInverseMatrix() = 0;
// Setters
virtual bool setRotateOrder(const nitisa::RotateOrder value) = 0;
virtual bool setTransformOrder(const nitisa::TransformOrder value) = 0;
virtual bool setTx(const float value, const float relative_tolerance) = 0;
virtual bool setTy(const float value, const float relative_tolerance) = 0;
virtual bool setTz(const float value, const float relative_tolerance) = 0;
virtual bool setRx(const float value, const float relative_tolerance) = 0;
virtual bool setRy(const float value, const float relative_tolerance) = 0;
virtual bool setRz(const float value, const float relative_tolerance) = 0;
virtual bool setSx(const float value, const float relative_tolerance) = 0;
virtual bool setSy(const float value, const float relative_tolerance) = 0;
virtual bool setSz(const float value, const float relative_tolerance) = 0;
virtual bool setTranslation(const Vec3f &value, const float relative_tolerance) = 0;
virtual bool setRotation(const Vec3f &value, const float relative_tolerance) = 0;
virtual bool setScaling(const Vec3f &value, const float relative_tolerance) = 0;
virtual bool setTransform(const nitisa::Transform &value, const float relative_tolerance) = 0;
// Absolute setters
virtual ITransformable *setOrder(const nitisa::RotateOrder value) = 0;
virtual ITransformable *setOrder(const nitisa::TransformOrder value) = 0;
virtual ITransformable *setTx(const float value) = 0;
virtual ITransformable *setTy(const float value) = 0;
virtual ITransformable *setTz(const float value) = 0;
virtual ITransformable *setRx(const float value) = 0;
virtual ITransformable *setRy(const float value) = 0;
virtual ITransformable *setRz(const float value) = 0;
virtual ITransformable *setSx(const float value) = 0;
virtual ITransformable *setSy(const float value) = 0;
virtual ITransformable *setSz(const float value) = 0;
virtual ITransformable *setTranslation(const Vec3f &value) = 0;
virtual ITransformable *setRotation(const Vec3f &value) = 0;
virtual ITransformable *setScaling(const Vec3f &value) = 0;
virtual ITransformable *setTransform(const nitisa::Transform &value) = 0;
};
Namespace: | nitisa |
Include: | Nitisa/Interfaces/ITransformable.h |