You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/FITK_Component/FITKGeoCompOCC/FITKOCCModelOperFace.h

199 lines
5.8 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*****************************************************************//**
* @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<TopoDS_Shape> shapes);
/**
* @brief 删除悬浮边
* @param shapes操作形状列表
* @return true
* @return false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-29
*/
bool updateDeleteFloatingEdge(QList<TopoDS_Shape> shapes);
/**
* @brief 将点映射到面
* @param shapes操作形状列表
* @return true
* @return false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-23
*/
bool updateImprintMapPointToFace(QList<TopoDS_Shape> shapes);
/**
* @brief 将线映射到面
* @param shapes操作形状列表
* @return true
* @return false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-23
*/
bool updateImprintMapLineToFace(QList<TopoDS_Shape> shapes);
/**
* @brief 将圆映射到面
* @param shapes操作形状列表
* @return true
* @return false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-23
*/
bool updateImprintMapCircleToFace(QList<TopoDS_Shape> 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<TopoDS_Shape> 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<TopoDS_Shape> shapes);
/**
* @brief 检查并强制曲线闭合
* @param shapes操作形状列表
* @return true
* @return false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-23
*/
TopoDS_Shape CheckAndForceCurveClosure(QList<TopoDS_Shape> 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<TopoDS_Shape> shapes);
};
}
#endif // !FITKABSGEOMODELOPERLINE_H