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 |