Implementation of the ITransformable. This implementation allow all transformation.
You can find more information in comments below. Overrided methods can be found in corresponding base class or interface.
class CTransformable :public virtual ITransformable
{
protected:
bool m_bTransformChanged;
public:
// ITransformable getters
bool hasTranslation(const float relative_tolerance = ntl::RelativeTolerance<float>) const override;
bool hasRotation(const float relative_tolerance = ntl::RelativeTolerance<float>) const override;
bool hasScaling(const float relative_tolerance = ntl::RelativeTolerance<float>) const override;
const Mat4f &getMatrix() override;
const Mat4f &getTranslateMatrix() override;
const Mat4f &getScaleMatrix() override;
const Mat4f &getRotateMaterix() override;
const Mat4f &getRotateXMatrix() override;
const Mat4f &getRotateYMatrix() override;
const Mat4f &getRotateZMatrix() override;
const Mat4f &getInverseMatrix() override;
// ITransformable setters
bool setRotateOrder(const nitisa::RotateOrder value) override;
bool setTransformOrder(const nitisa::TransformOrder value) override;
bool setTx(const float value, const float relative_tolerance) override;
bool setTy(const float value, const float relative_tolerance) override;
bool setTz(const float value, const float relative_tolerance) override;
bool setRx(const float value, const float relative_tolerance) override;
bool setRy(const float value, const float relative_tolerance) override;
bool setRz(const float value, const float relative_tolerance) override;
bool setSx(const float value, const float relative_tolerance) override;
bool setSy(const float value, const float relative_tolerance) override;
bool setSz(const float value, const float relative_tolerance) override;
bool setTranslation(const Vec3f &value, const float relative_tolerance) override;
bool setRotation(const Vec3f &value, const float relative_tolerance) override;
bool setScaling(const Vec3f &value, const float relative_tolerance) override;
bool setTransform(const nitisa::Transform &value, const float relative_tolerance) override;
ITransformable *setOrder(const nitisa::RotateOrder value) override;
ITransformable *setOrder(const nitisa::TransformOrder value) override;
ITransformable *setTx(const float value) override;
ITransformable *setTy(const float value) override;
ITransformable *setTz(const float value) override;
ITransformable *setRx(const float value) override;
ITransformable *setRy(const float value) override;
ITransformable *setRz(const float value) override;
ITransformable *setSx(const float value) override;
ITransformable *setSy(const float value) override;
ITransformable *setSz(const float value) override;
ITransformable *setTranslation(const Vec3f &value) override;
ITransformable *setRotation(const Vec3f &value) override;
ITransformable *setScaling(const Vec3f &value) override;
ITransformable *setTransform(const nitisa::Transform &value) override;
CTransformable();
};
Namespace: | nitisa |
Include: | Nitisa/Core/Transformable.h |