/*****************************************************************//** * @file FITKAbsGeoModelOperLine.h * @brief 抽象线操作类 * * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 *********************************************************************/ #ifndef FITKOCCMODELOPERLINE_H #define FITKOCCMODELOPERLINE_H #include "FITKAbstractOCCModel.h" #include "FITK_Interface/FITKInterfaceGeometry/FITKAbsGeoModelOperLine.h" namespace OCC { class FITKGeoCompOCCAPI FITKOCCModelOperLine : public Interface::FITKAbsGeoModelOperLine, public OCCShapeAgent { public: FITKOCCModelOperLine(); virtual ~FITKOCCModelOperLine() override = default; /** * @brief 更新模型 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 */ virtual bool update() override; private: /** * @brief 合并 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 */ bool updateMerge(QList shapes); /** * @brief 按中点分割 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 */ bool updateSplitByMiddlePosition(QList shapes); /** * @brief 按角度分割 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 */ bool updateSplitByAngle(QList shapes); }; class FITKGeoCompOCCAPI FITKOCCModelMiddleOperLine : public Interface::FITKAbsGeoModelMiddleOperLine, public OCCShapeAgent { public: FITKOCCModelMiddleOperLine(); virtual ~FITKOCCModelMiddleOperLine() override = default; /** * @brief 更新模型 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 */ virtual bool update() override; private: /** * @brief 按中点分割 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 */ bool updateSplitByMiddlePosition(QList shapes); }; } #endif // !FITKABSGEOMODELOPERLINE_H