/** * * @file FITKAbstractSection.h * @brief 截面抽象类 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-30 * */ #ifndef __FITKABSTRACTSEDTION_H__ #define __FITKABSTRACTSEDTION_H__ #include "FITK_Kernel/FITKCore/FITKAbstractNDataObject.h" #include "FITK_Kernel/FITKCore/FITKAbstractDataManager.hpp" #include "FITKInterfacePhysicsAPI.h" #include namespace Interface { class FITKAbstractMaterial; /** * @brief 抽象截面类 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-30 */ class FITKInterfacePhysicsAPI FITKAbstractSection : public Core::FITKAbstractNDataObject { public: /** * @brief Construct a new FITKAbstractSection object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-30 */ explicit FITKAbstractSection(); /** * @brief Destroy the FITKAbstractSection object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-30 */ virtual ~FITKAbstractSection() = 0; /** * @brief 设置材料的数据ID * @param[i] id 材料id * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-22 */ void setMaterial(int id, int index = 0); /** * @brief 设置材料 * @param[i] mat 材料指针 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-22 */ void setMaterial(Core::FITKAbstractDataObject* mat, int index = 0); /** * @brief 获取材料ID * @return int * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-22 */ int getMaterialID( int index = 0) const; /** * @brief 获取材料对象 * @return FITKAbaMaterial* * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-22 */ FITKAbstractMaterial* getMaterial(int index = 0) const; /** * @brief 获取材料名称 * @return QString * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-22 */ QString getMaterialName( int index = 0) const; /** * @brief 获取材料数量 * @return int * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-22 */ int getMaterialCount(); /** * @brief 移除第index个材料 * @param[i] index 索引 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-22 */ void removeMaterial(int index); /** * @brief 获取截面类型字符串,用于UI显式 * @return QString * @author libaojun (libaojunqd@foxmail.com) * @date 2024-03-27 */ virtual QString getTypeString(); /** * @brief 获取截面id,注意:该值与管理器的中使用的id无关,与其他对象的关联也无关 * @return int * @author libaojun (libaojunqd@foxmail.com) * @date 2024-04-03 */ int getSectionID() const; private: /** * @brief 设置材料数组长度,不足的补充-1 * @param[i] count 最大长度 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-27 */ void setSize(int count); protected: /** * @brief 材料列表 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-27 */ QList _materialIDs{}; private: /** * @brief 截面id,与管理器无关,不能被使用 * @author libaojun (libaojunqd@foxmail.com) * @date 2024-04-03 */ int _sectionID = -1; }; /** * @brief 截面管理器 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-30 */ class FITKInterfacePhysicsAPI FITKAbstractSectionManager : public Core::FITKAbstractObject, public Core::FITKAbstractDataManager { public: explicit FITKAbstractSectionManager() = default; virtual ~FITKAbstractSectionManager() = default; }; } #endif