#ifndef FITKOCCMODELCURVE_H #define FITKOCCMODELCURVE_H #include "FITKAbstractOCCModel.h" #include "FITK_Interface/FITKInterfaceGeometry/FITKAbsGeoModelCurve.h" namespace OCC { /** * @brief 无限直线OCC实现类. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelLine : public Interface::FITKAbsGeoModelLine , public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelLine(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelLine() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 有限线段抽象类. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelSegment : public Interface::FITKAbsGeoModelSegment, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelSegment(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelSegment() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 多段线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelWire : public Interface::FITKAbsGeoModelWire, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelWire(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelWire() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 圆. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelCircle : public Interface::FITKAbsGeoModelCircle, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelCircle(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelCircle() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 三点圆. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelThreePointsCircle : public Interface::FITKAbsGeoModelThreePointsCircle, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelThreePointsCircle(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelThreePointsCircle() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 圆弧. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelCircleArc : public Interface::FITKAbsGeoModelCircleArc, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelCircleArc(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelCircleArc() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 椭圆. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelEllipse : public Interface::FITKAbsGeoModelEllipse, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelEllipse(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelEllipse() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 三点椭圆. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelThreePointsEllipse : public Interface::FITKAbsGeoModelThreePointsEllipse, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelThreePointsEllipse(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelThreePointsEllipse() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 椭圆弧. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelEllipseArc : public Interface::FITKAbsGeoModelEllipseArc, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelEllipseArc(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelEllipseArc() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 双曲线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelHyperbola : public Interface::FITKAbsGeoModelHyperbola, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelHyperbola(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelHyperbola() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 三点双曲线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelThreePointsHyperbola : public Interface::FITKAbsGeoModelThreePointsHyperbola, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelThreePointsHyperbola(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelThreePointsHyperbola() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 双曲线弧. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelHyperbolaArc : public Interface::FITKAbsGeoModelHyperbolaArc, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelHyperbolaArc(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelHyperbolaArc() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 抛物线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelParabola : public Interface::FITKAbsGeoModelParabola, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelParabola(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelParabola() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 三点抛物线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelThreePointsParabola : public Interface::FITKAbsGeoModelThreePointsParabola, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelThreePointsParabola(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelThreePointsParabola() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 抛物线弧. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelParabolaArc : public Interface::FITKAbsGeoModelParabolaArc, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelParabolaArc(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelParabolaArc() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 通过控制点创建贝塞尔曲线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-09-07 */ class FITKGeoCompOCCAPI FITKOCCModelBeizeByControlPoints : public Interface::FITKAbsGeoModelBeizeByControlPoints, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelBeizeByControlPoints(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelBeizeByControlPoints() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 通过线上的点创建B样条曲线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-09-07 */ class FITKGeoCompOCCAPI FITKOCCModelBsplineByThroughPoints : public Interface::FITKAbsGeoModelBsplineByThroughPoints, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelBsplineByThroughPoints(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelBsplineByThroughPoints() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 裁剪曲线OCC实现类. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelTrimmedCurve : public Interface::FITKAbsGeoModelTrimmedCurve, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelTrimmedCurve(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelTrimmedCurve() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 偏移曲线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ class FITKGeoCompOCCAPI FITKOCCModelOffsetCurve :public Interface::FITKAbsGeoModelOffsetCurve, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelOffsetCurve(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelOffsetCurve() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 线在面上的投影. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-27 */ class FITKGeoCompOCCAPI FITKOCCModelCurveProjectionOnSurface : public Interface::FITKAbsGeoModelCurveProjectionOnSurface, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelCurveProjectionOnSurface(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelCurveProjectionOnSurface() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 面和面的交线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-27 */ class FITKGeoCompOCCAPI FITKOCCModelSurfaceIntersectionSurface : public Interface::FITKAbsGeoModelSurfaceIntersectionSurface, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelSurfaceIntersectionSurface(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelSurfaceIntersectionSurface() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 桥接曲线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-27 */ class FITKGeoCompOCCAPI FITKOCCModelBridgeCurve : public Interface::FITKAbsGeoModelBridgeCurve, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelBridgeCurve(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelBridgeCurve() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; /** * @brief 面的边线. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-27 */ class FITKGeoCompOCCAPI FITKOCCModelSurfaceEdge : public Interface::FITKAbsGeoModelSurfaceEdge, public OCCShapeAgent { public: /** * @brief 构造函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ FITKOCCModelSurfaceEdge(); /** * @brief 析构函数. * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ ~FITKOCCModelSurfaceEdge() override = default; /** * @brief 更新模型. * @return 是否成功 * @author YanZhiHui (chanyuantiandao@126.com) * @date 2024-08-13 */ virtual bool update() override; }; } #endif // !FITKOCCMODELCURVE_H