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