You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/FITK_Interface/FITKInterfaceModel/FITKAbstractAssInstance.h

118 lines
3.1 KiB
C

/**
*
* @file FITKAbstractAssInstance.h
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*
*/
#ifndef __FITK_ABSTRACT_INSTANCE_H___
#define __FITK_ABSTRACT_INSTANCE_H___
#include "FITKInterfaceModelAPI.h"
#include "FITKAbstractModel.h"
namespace Interface
{
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
class FITKInerfaceModelAPI FITKAbstractAssInstance : public FITKAbstractModel
{
FITKCLASS(Interface, FITKAbstractAssInstance);
public:
/**
* @brief Construct a new FITKAssemblyInstance object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-22
*/
explicit FITKAbstractAssInstance() = default;
/**
* @brief Destroy the FITKAssemblyInstance object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-22
*/
virtual ~FITKAbstractAssInstance() = 0;
/**
* @brief
* @return AbsModelType
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-02-27
*/
virtual FITKModelEnum::AbsModelType getAbsModelType();
/**
* @brief modelID
* @param[i] modelid ID
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-22
*/
void setModel(int modelid);
/**
* @brief
* @param[i] model
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-22
*/
void setModel(FITKAbstractModel* model);
/**
* @brief
* @return FITKAbstractModel*
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-22
*/
FITKAbstractModel* getModel() const;
/**
* @brief id
* @return int
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-04-30
*/
int getModelID() const;
template<class T>
/**
* @brief
* @return T*
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-22
*/
T* getModelT()
{
return dynamic_cast<T*>(this->getModel());
}
/**
* @brief /
* @return Interface::FITKModelSetManager*
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-03-17
*/
virtual FITKComponentManager* getComponentManager() override;
/**
* @brief
* @return FITKModelDim
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-04-11
*/
virtual FITKModelEnum::FITKModelDim getModelDim() override;
protected:
/**
* @brief ID
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-22
*/
int _modelID{ -1 };
};
}
#endif