TModel


This template class has been removed in release 10.0.0. Use CModel class instead.

Implements a base 3D model which represents 3D object hierarchy and transformations.

You can find more information in comments below.

template<class TYPE>>
    class TModel :public virtual IModel<TYPE>
    {
    public:
        IModel<TYPE> *getParent() override;
        IModelListener<TYPE> *getListener() override;
        size_t getModelCount() override;
        IModel<TYPE> *getModel(const size_t index) override;
        bool hasModel(IModel<TYPE> *model) override;
        TYPE getX() override;
        TYPE getY() override;
        TYPE getZ() override;
        math::TVec3<TYPE> getPosition() override;
        TYPE getPitch() override;
        TYPE getYaw() override;
        TYPE getRoll() override;
        math::TVec3<TYPE> getRotation() override;
        TYPE getSx() override;
        TYPE getSy() override;
        TYPE getSz() override;
        math::TVec3<TYPE> getScaling() override;
        ROTATE_ORDER getRotateOrder() override;
        TRANSFORM_ORDER getTransformOrder() override;
        const math::TMat4<TYPE> &getTranslateMatrix() override;
        const math::TMat4<TYPE> &getRotatePitchMatrix() override;
        const math::TMat4<TYPE> &getRotateYawMatrix() override;
        const math::TMat4<TYPE> &getRotateRollMatrix() override;
        const math::TMat4<TYPE> &getRotateMatrix() override;
        const math::TMat4<TYPE> &getScaleMatrix() override;
        const math::TMat4<TYPE> &getModelMatrix() override;
        const math::TMat4<TYPE> &getMatrix() override;
        bool isAcceptModel() override;
        bool isAcceptModels() override;
    
        bool setParent(IModel<TYPE> *value) override;
        void setListener(IModelListener<TYPE> *value) override;
        bool setX(const TYPE value) override;
        bool setY(const TYPE value) override;
        bool setZ(const TYPE value) override;
        bool setPosition(const math::TVec3<TYPE> &value) override;
        bool setPosition(const TYPE x, const TYPE y, const TYPE z) override;
        bool setPitch(const TYPE value) override;
        bool setYaw(const TYPE value) override;
        bool setRoll(const TYPE value) override;
        bool setRotation(const math::TVec3<TYPE> &value) override;
        bool setRotation(const TYPE pitch, const TYPE yaw, const TYPE roll) override;
        bool setSx(const TYPE value) override;
        bool setSy(const TYPE value) override;
        bool setSz(const TYPE value) override;
        bool setScaling(const math::TVec3<TYPE> &value) override;
        bool setScaling(const TYPE sx, const TYPE sy, const TYPE sz) override;
        bool setRotateOrder(const ROTATE_ORDER value) override;
        bool setTransformOrder(const TRANSFORM_ORDER value) override;
    
        void Release() override;
        IModelService<TYPE> *QueryService() override;
    
        bool AddModel(IModel<TYPE> *model) override;
        bool InsertModel(IModel<TYPE> *model, const size_t before) override;
        bool InsertModel(IModel<TYPE> *model, IModel<TYPE> *before) override;
        bool DetachModel(const size_t index) override;
        bool DetachModel(IModel<TYPE> *model) override;
        bool DeleteModel(const size_t index) override;
        bool DeleteModel(IModel<TYPE> *model) override;
        bool DetachModels() override;
        bool DeleteModels() override;
        bool MoveBefore(const size_t index, const size_t before) override;
        bool MoveBefore(const size_t index, IModel<TYPE> *before) override;
        bool MoveBefore(IModel<TYPE> *model, const size_t before) override;
        bool MoveBefore(IModel<TYPE> *model, IModel<TYPE> *before) override;
    
        TModel(const bool accept_model, const bool accept_models, IModelListener<TYPE> *listener);
        virtual ~TModel();
    };
Namespace: nitisa::graphics3d
Include: Nitisa/Modules/Graphics3D/Core/Model.h