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_Interface/FITKInterfaceGeometry/FITKAbsGeoModelOperSolid.h

397 lines
12 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 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