Content


NTL
Core
ITransformable

ITransformable


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