/*****************************************************************//** * @file FITKOCCModelOperFace.h * @brief 抽象线操作类 * * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-19 *********************************************************************/ #ifndef FITKOCCMODELOPERFACE_H #define FITKOCCMODELOPERFACE_H #include "FITKAbstractOCCModel.h" #include "FITK_Interface/FITKInterfaceGeometry/FITKAbsGeoModelOperFace.h" namespace OCC { /** * @brief 抽象面操作类 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-31 */ class FITKGeoCompOCCAPI FITKOCCModelOperFace : public Interface::FITKAbsGeoModelOperFace, public OCCShapeAgent { public: FITKOCCModelOperFace(); virtual ~FITKOCCModelOperFace() 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-23 */ bool updateFillHoles(QList shapes); /** * @brief 删除悬浮边 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-29 */ bool updateDeleteFloatingEdge(QList shapes); /** * @brief 将点映射到面 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-23 */ bool updateImprintMapPointToFace(QList shapes); /** * @brief 将线映射到面 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-23 */ bool updateImprintMapLineToFace(QList shapes); /** * @brief 将圆映射到面 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-23 */ bool updateImprintMapCircleToFace(QList shapes); }; /** * @brief 抽象面操作类 填补孔洞 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-31 */ class FITKGeoCompOCCAPI FITKOCCModelOperFaceFillHoles : public Interface::FITKAbsGeoModelOperFaceFillHoles, public OCCShapeAgent { public: FITKOCCModelOperFaceFillHoles(); virtual ~FITKOCCModelOperFaceFillHoles() 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-23 */ bool updateFillHoles(QList shapes); }; /** * @brief 抽象面操作类 填补缝隙 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-31 */ class FITKGeoCompOCCAPI FITKOCCModelOperFaceFillGaps : public Interface::FITKAbsGeoModelOperFaceFillGaps, public OCCShapeAgent { public: FITKOCCModelOperFaceFillGaps(); virtual ~FITKOCCModelOperFaceFillGaps() 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-23 */ bool updateFillGaps(QList shapes); /** * @brief 检查并强制曲线闭合 * @param shapes:操作形状列表 * @return true * @return false * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-23 */ TopoDS_Shape CheckAndForceCurveClosure(QList shapes, bool& isSuccessful); }; /** * @brief 抽象面操作类 删除悬浮边 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-08-31 */ class FITKGeoCompOCCAPI FITKOCCModelOperFaceDeleteFloatingEdge : public Interface::FITKAbsGeoModelOperFaceDeleteFloatingEdge, public OCCShapeAgent { public: FITKOCCModelOperFaceDeleteFloatingEdge(); virtual ~FITKOCCModelOperFaceDeleteFloatingEdge() 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-31 */ bool updateDeleteFloatingEdge(QList shapes); }; } #endif // !FITKABSGEOMODELOPERLINE_H