/*****************************************************************//** * @file FITKAbsGeoModelOperSolid.h * @brief 体特征处理数据抽象类。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 *********************************************************************/ #ifndef FITKABSGEOMODELOPERSOLID_H #define FITKABSGEOMODELOPERSOLID_H #include "FITKAbsGeoModelSolid.h" #include "FITKInterfaceGeometryAPI.h" namespace Interface { /** * @brief 倒角抽象类。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ class FITKInterfaceGeometryAPI FITKAbsGeoModelChamferSolid : public FITKAbsGeoModelSolid { public: /** * @brief 构造函数。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ FITKAbsGeoModelChamferSolid() = default; /** * @brief 析构函数。[虚函数] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ virtual ~FITKAbsGeoModelChamferSolid() = default; /** * @brief 获取几何命令类型。[重写] * @return 命令类型 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override; /** * @brief 设置被倒角模型的数据ID。 * @param cmdId:模型数据ID * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ void setInputCmdId(int cmdId); /** * @brief 获取被倒角模型的数据ID。 * @return 模型数据ID * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ int getInputCmdId(); /** * @brief 设置被倒角的边虚拓扑数据ID列表。 * @param edgeIds:边虚拓扑ID列表[引用] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ void setEdgeIds(QList edgeIds); /** * @brief 获取被倒角的边虚拓扑数据ID列表。 * @return 边虚拓扑ID列表 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ QList & getEgdeIds(); /** * @brief 设置倒角距离。 * @param dist:倒角距离 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ void setDistance(double dist); /** * @brief 获取倒角距离。 * @return 倒角距离 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ double getDistance(); protected: /** * @brief 进行倒角操作的数据ID。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ int m_solidCmdId = -1; /** * @brief 进行倒角操作的虚拓扑边索引列表。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ QList m_edgeVirtualIds; /** * @brief 倒角距离。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ double m_dist = 0.; }; /** * @brief 倒圆抽象类。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ class FITKInterfaceGeometryAPI FITKAbsGeoModelFilletSolid : public FITKAbsGeoModelSolid { public: /** * @brief 构造函数。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ FITKAbsGeoModelFilletSolid() = default; /** * @brief 析构函数。[虚函数] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ virtual ~FITKAbsGeoModelFilletSolid() = default; /** * @brief 获取几何命令类型。[重写] * @return 命令类型 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override; /** * @brief 设置被倒圆模型的数据ID。 * @param cmdId:模型数据ID * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ void setInputCmdId(int cmdId); /** * @brief 获取被倒圆模型的数据ID。 * @return 模型数据ID * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ int getInputCmdId(); /** * @brief 设置被倒圆的边虚拓扑数据ID列表。 * @param edgeIds:边虚拓扑ID列表[引用] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ void setEdgeIds(QList edgeIds); /** * @brief 获取被倒圆的边虚拓扑数据ID列表。 * @return 边虚拓扑ID列表 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ QList & getEgdeIds(); /** * @brief 设置倒圆半径。 * @param radius:倒圆半径 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ void setRadius(double radius); /** * @brief 获取倒圆半径。 * @return 倒圆半径 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-22 */ double getRadius(); protected: /** * @brief 进行倒角操作的数据ID。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ int m_solidCmdId = -1; /** * @brief 进行倒圆操作的虚拓扑边索引列表。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ QList m_edgeVirtualIds; /** * @brief 倒圆半径。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-20 */ double m_radius = 0.; }; /** * @brief 特征移除抽象类。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ class FITKInterfaceGeometryAPI FITKAbsGeoModelDefeatureSolid : public FITKAbsGeoModelSolid { public: /** * @brief 构造函数。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ FITKAbsGeoModelDefeatureSolid() = default; /** * @brief 析构函数。[虚函数] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ virtual ~FITKAbsGeoModelDefeatureSolid() = default; /** * @brief 获取几何命令类型。[虚函数][重写] * @return 命令类型 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-29 */ virtual FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override; /** * @brief 设置被移除特征模型的数据ID。 * @param cmdId:模型数据ID * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ void setInputCmdId(int cmdId); /** * @brief 获取被移除特征模型的数据ID。 * @return 模型数据ID * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ int getInputCmdId(); /** * @brief 设置被移除特征面虚拓扑数据ID列表。 * @param faceIds:面虚拓扑ID列表 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ void setFaceIds(QList faceIds); /** * @brief 获取被移除特征面虚拓扑数据ID列表。 * @return 面虚拓扑ID列表[引用] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ QList & getFaceIds(); protected: /** * @brief 进行被移除特征操作的体模型数据ID。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ int m_solidCmdId = -1; /** * @brief 进行倒角操作的虚拓扑面索引列表。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ QList m_faceVirtualIds; }; /** * @brief 删除倒角抽象类。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ class FITKInterfaceGeometryAPI FITKAbsGeoModelRemoveChamferSolid : public FITKAbsGeoModelDefeatureSolid { public: /** * @brief 构造函数。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ FITKAbsGeoModelRemoveChamferSolid() = default; /** * @brief 析构函数。[虚函数] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ virtual ~FITKAbsGeoModelRemoveChamferSolid() = default; /** * @brief 获取几何命令类型。[重写] * @return 命令类型 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override; }; /** * @brief 删除倒圆抽象类。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ class FITKInterfaceGeometryAPI FITKAbsGeoModelRemoveFilletSolid : public FITKAbsGeoModelDefeatureSolid { public: /** * @brief 构造函数。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ FITKAbsGeoModelRemoveFilletSolid() = default; /** * @brief 析构函数。[虚函数] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ virtual ~FITKAbsGeoModelRemoveFilletSolid() = default; /** * @brief 获取几何命令类型。[重写] * @return 命令类型 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override; }; /** * @brief 填补孔洞抽象类。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ class FITKInterfaceGeometryAPI FITKAbsGeoModelFillHoleSolid : public FITKAbsGeoModelDefeatureSolid { public: /** * @brief 构造函数。 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ FITKAbsGeoModelFillHoleSolid() = default; /** * @brief 析构函数。[虚函数] * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ virtual ~FITKAbsGeoModelFillHoleSolid() = default; /** * @brief 获取几何命令类型。[重写] * @return 命令类型 * @author ChengHaotian (yeguangbaozi@foxmail.com) * @date 2024-08-26 */ FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override; }; } #endif // !FITKABSGEOMODELOPERSOLID_H