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

/*****************************************************************//**
* @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