|
|
/*****************************************************************//**
|
|
|
* @file FITKAbsGeoModelOperSolid.h
|
|
|
* @brief 体特征处理数据抽象类。
|
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*********************************************************************/
|
|
|
|
|
|
#ifndef FITKABSGEOMODELOPERSOLID_H
|
|
|
#define FITKABSGEOMODELOPERSOLID_H
|
|
|
|
|
|
#include "FITKAbsGeoModelSolid.h"
|
|
|
|
|
|
#include "FITKInterfaceGeometryAPI.h"
|
|
|
|
|
|
namespace Interface
|
|
|
{
|
|
|
/**
|
|
|
* @brief 倒角抽象类。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoModelChamferSolid : public FITKAbsGeoModelSolid
|
|
|
{
|
|
|
public:
|
|
|
/**
|
|
|
* @brief 构造函数。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
FITKAbsGeoModelChamferSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 析构函数。[虚函数]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
virtual ~FITKAbsGeoModelChamferSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取几何命令类型。[重写]
|
|
|
* @return 命令类型
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
|
|
/**
|
|
|
* @brief 设置被倒角模型的数据ID。
|
|
|
* @param cmdId:模型数据ID
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
void setInputCmdId(int cmdId);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取被倒角模型的数据ID。
|
|
|
* @return 模型数据ID
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
int getInputCmdId();
|
|
|
|
|
|
/**
|
|
|
* @brief 设置被倒角的边虚拓扑数据ID列表。
|
|
|
* @param edgeIds:边虚拓扑ID列表[引用]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
void setEdgeIds(QList<int> edgeIds);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取被倒角的边虚拓扑数据ID列表。
|
|
|
* @return 边虚拓扑ID列表
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
QList<int> & getEgdeIds();
|
|
|
|
|
|
/**
|
|
|
* @brief 设置倒角距离。
|
|
|
* @param dist:倒角距离
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
void setDistance(double dist);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取倒角距离。
|
|
|
* @return 倒角距离
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
double getDistance();
|
|
|
|
|
|
protected:
|
|
|
/**
|
|
|
* @brief 进行倒角操作的数据ID。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
int m_solidCmdId = -1;
|
|
|
|
|
|
/**
|
|
|
* @brief 进行倒角操作的虚拓扑边索引列表。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
QList<int> m_edgeVirtualIds;
|
|
|
|
|
|
/**
|
|
|
* @brief 倒角距离。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
double m_dist = 0.;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @brief 倒圆抽象类。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoModelFilletSolid : public FITKAbsGeoModelSolid
|
|
|
{
|
|
|
public:
|
|
|
/**
|
|
|
* @brief 构造函数。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
FITKAbsGeoModelFilletSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 析构函数。[虚函数]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
virtual ~FITKAbsGeoModelFilletSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取几何命令类型。[重写]
|
|
|
* @return 命令类型
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
|
|
/**
|
|
|
* @brief 设置被倒圆模型的数据ID。
|
|
|
* @param cmdId:模型数据ID
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
void setInputCmdId(int cmdId);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取被倒圆模型的数据ID。
|
|
|
* @return 模型数据ID
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
int getInputCmdId();
|
|
|
|
|
|
/**
|
|
|
* @brief 设置被倒圆的边虚拓扑数据ID列表。
|
|
|
* @param edgeIds:边虚拓扑ID列表[引用]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
void setEdgeIds(QList<int> edgeIds);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取被倒圆的边虚拓扑数据ID列表。
|
|
|
* @return 边虚拓扑ID列表
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
QList<int> & getEgdeIds();
|
|
|
|
|
|
/**
|
|
|
* @brief 设置倒圆半径。
|
|
|
* @param radius:倒圆半径
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
void setRadius(double radius);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取倒圆半径。
|
|
|
* @return 倒圆半径
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-22
|
|
|
*/
|
|
|
double getRadius();
|
|
|
|
|
|
protected:
|
|
|
/**
|
|
|
* @brief 进行倒角操作的数据ID。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
int m_solidCmdId = -1;
|
|
|
|
|
|
/**
|
|
|
* @brief 进行倒圆操作的虚拓扑边索引列表。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
QList<int> m_edgeVirtualIds;
|
|
|
|
|
|
/**
|
|
|
* @brief 倒圆半径。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-20
|
|
|
*/
|
|
|
double m_radius = 0.;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @brief 特征移除抽象类。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoModelDefeatureSolid : public FITKAbsGeoModelSolid
|
|
|
{
|
|
|
public:
|
|
|
/**
|
|
|
* @brief 构造函数。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKAbsGeoModelDefeatureSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 析构函数。[虚函数]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
virtual ~FITKAbsGeoModelDefeatureSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取几何命令类型。[虚函数][重写]
|
|
|
* @return 命令类型
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-29
|
|
|
*/
|
|
|
virtual FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
|
|
/**
|
|
|
* @brief 设置被移除特征模型的数据ID。
|
|
|
* @param cmdId:模型数据ID
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
void setInputCmdId(int cmdId);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取被移除特征模型的数据ID。
|
|
|
* @return 模型数据ID
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
int getInputCmdId();
|
|
|
|
|
|
/**
|
|
|
* @brief 设置被移除特征面虚拓扑数据ID列表。
|
|
|
* @param faceIds:面虚拓扑ID列表
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
void setFaceIds(QList<int> faceIds);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取被移除特征面虚拓扑数据ID列表。
|
|
|
* @return 面虚拓扑ID列表[引用]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
QList<int> & getFaceIds();
|
|
|
|
|
|
protected:
|
|
|
/**
|
|
|
* @brief 进行被移除特征操作的体模型数据ID。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
int m_solidCmdId = -1;
|
|
|
|
|
|
/**
|
|
|
* @brief 进行倒角操作的虚拓扑面索引列表。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
QList<int> m_faceVirtualIds;
|
|
|
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @brief 删除倒角抽象类。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoModelRemoveChamferSolid : public FITKAbsGeoModelDefeatureSolid
|
|
|
{
|
|
|
public:
|
|
|
/**
|
|
|
* @brief 构造函数。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKAbsGeoModelRemoveChamferSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 析构函数。[虚函数]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
virtual ~FITKAbsGeoModelRemoveChamferSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取几何命令类型。[重写]
|
|
|
* @return 命令类型
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @brief 删除倒圆抽象类。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoModelRemoveFilletSolid : public FITKAbsGeoModelDefeatureSolid
|
|
|
{
|
|
|
public:
|
|
|
/**
|
|
|
* @brief 构造函数。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKAbsGeoModelRemoveFilletSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 析构函数。[虚函数]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
virtual ~FITKAbsGeoModelRemoveFilletSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取几何命令类型。[重写]
|
|
|
* @return 命令类型
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @brief 填补孔洞抽象类。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoModelFillHoleSolid : public FITKAbsGeoModelDefeatureSolid
|
|
|
{
|
|
|
public:
|
|
|
/**
|
|
|
* @brief 构造函数。
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKAbsGeoModelFillHoleSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 析构函数。[虚函数]
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
virtual ~FITKAbsGeoModelFillHoleSolid() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取几何命令类型。[重写]
|
|
|
* @return 命令类型
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
|
|
};
|
|
|
}
|
|
|
|
|
|
#endif // !FITKABSGEOMODELOPERSOLID_H
|