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/FITKGeoEnum.h

177 lines
6.5 KiB
C++

#ifndef _FITK_GEO_ENUM_H___
#define _FITK_GEO_ENUM_H___
#include <QObject>
#include "FITKInterfaceGeometryAPI.h"
namespace Interface
{
/**
* @brief 几何命令相关枚举
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-07-12
*/
class FITKInterfaceGeometryAPI FITKGeoEnum : public QObject
{
Q_OBJECT
public:
/*
* @brief 几何引擎枚举
*/
enum FITKGeoEngine
{
FGENone, ///< None
FGEOCC, ///< OpenCASCADE
FGEOGG, ///< OpenGeometry
FGEPS, ///< Parasolid
FGEACIS, ///< ACIS
};
Q_ENUM(FITKGeoEngine);
/**
* @brief 虚拟拓扑类型
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-09
*/
enum VTopoShapeType
{
VSNone, ///< 无
VSPoint, ///< 点
VSEdge, ///< 线
VSWire, ///< 线环 多条线
VSFace, ///< 面
VSShell, ///< 壳 多个面组成
VSSolid, ///< 体
VSAssembly, ///< 组合
};
Q_ENUM(VTopoShapeType);
/*
* @brief 基准元素类型枚举。
*/
enum FITKDatumType
{
FDTNone = -1,
FDTPoint = 0,
FDTCurveRadio = 1,
FDTLine = 1000,
FDTPlane = 2000,
FDTOffsetPlane = 2001,
FDTThreePointsPlane = 2002,
FDTEquationPlane = 2003
};
Q_ENUM(FITKDatumType);
/*
* @brief 几何命令状态。
*/
enum FITKGeoStatus
{
FGSNone, ///< None
FGSNormal, ///< 常规
FGSModified, ///< 被修改
FGSDeleted, ///< 被移除
};
Q_ENUM(FITKGeoStatus);
/*
* @brief 几何命令枚举
*/
enum FITKGeometryComType
{
FGTNone = -1, ///< None
FGTDelete, ///< 模型删除
FGTSketch2D, ///< 2D草图
FGTImport, ///< 导入文件
FGTExport, ///< 导出文件
FGTBox, ///< 创建长方体
FGTCylinder, ///< 创建圆柱体
FGTSphere, ///< 创建球体
FGTBool, ///< bool操作
FGTPoint, ///< 点
FGTCurveEnd,///< 曲线的端点
FGTCurveEndDistance,///< 距曲线的端点指定距离
FGTCurveRadio,///< 曲线指定比例
FGTPointProjectionOnCurve,///< 点在线上的投影
FGTTwoCurveIntersectPoint,///< 两条曲线交点
FGTPointProjectionOnSurface,///< 点在面上的投影
FGTCurveIntersectSurface,///< 曲线和面的交点
FGTLine, ///< 无限直线
FGTSegment, ///< 有限线段
FGTWire, ///< 多段线
FGTCircle, ///< 圆
FGTCircleArc, ///< 圆弧
FGTThreePointsCircle, ///< 三点构建圆
FGTThreePointsEllipse, ///< 三点构建椭圆
FGTThreePointsHyperbola, ///< 三点构建双曲线
FGTThreePointsParabola, ///< 三点构建抛物线
FGTCurveProjectionOnSurface,///< 线在面上的投影
FGTSurfaceIntersectSurface,///< 面和面的交点
FGTEllipse, ///< 椭圆
FGTEllipseArc, ///< 椭圆弧
FGTHyperbola, ///< 双曲线
FGTHyperbolaArc, ///< 双曲线弧
FGTParabola, ///< 抛物线
FGTParabolaArc, ///< 抛物线弧
FGTOffsetCurve, ///< 偏移线
FGTBezierByControlPoints, ///< 通过控制点创建贝塞尔曲线
FGTBezierByThroughPoints, ///< 通过曲线上的点点创建贝塞尔曲线
FGTBSplineByControlPoints, ///< 通过控制点创建B样条曲线
FGTBSplineByThroughPoints, ///< 通过曲线上的点创建B样条曲线
FGTTrimmed, ///< 裁剪曲线
FGTBridgeCurve, ///< 桥接曲线
FGTCurveFromSurface, ///< 曲面的边线
FGTClosedWireSurface, ///< 封闭曲线形成的面
FGTOffsetSurface, ///< 偏移面
FGTExtrudeSurface, ///< 拉伸面
FGTRevolSurface, ///< 旋转面
FGTRectangularTrimmedSurface, ///< 矩形裁剪面
FGTSweepSurface,///< 扫略曲面
FGTClosedSurfaceSolid, ///< 封闭曲面形成的体
FGTBridgeSurface, ///< 桥接曲面
FGTSurfaceFromSolid, ///< 从体上提取面
FGTMultiSectionSurface, ///< 多截面扫略面
FGTExtrudeSolid, ///< 拉伸体
FGTRevolSolid, ///< 旋转体
FGTSweepSolid,///< 扫略体
FGTMultiSectionSolid, ///< 多截面扫略体
FGTChamferSolid,///< 倒角(体)
FGTFilletSolid,///< 倒圆(体)
FGTDefeature, ///< 移除特征(体)
FGTRemoveChamfer,///< 移除倒角(体)
FGTRemoveFillet,///< 移除倒圆(体)
FGTFillHole,///< 填补孔洞(体)
FGTMergeLine, ///合并线
FGTSplitByMiddlePositionLine, ///线分割 基于中点分割
FGTSplitByAngleLine, ///线分割 基于角度分割
FGTDeleteFloatingEdge, ///删除悬浮边
FGTFillHolesFace, ///填补孔洞(面)
FGTFillGapsFace, ///填补缝隙(面)
FGTImprintMapPointToFace, ///点映射到面
FGTImprintMapLineToFace, ///线映射到面
FGTImprintSolid, ///压印体
FGTCompoundAppendShape, ///复合对象添加对象
FGTCompoundRemoveShape, ///复合对象移除对象
FGTTransform, ///通过向量平移
FGTTransformByTwoPoints, /// 通过两点平移
FGTTransformByDirAndDis, /// 通过方向和距离平移
FGTRotate, ///旋转
FGTScale, ///缩放
FGTCurveSplitter, /// 曲线分割
FGTSurfaceSplitter, /// 曲面分割
FGTSolidSplitter, /// 体分割
};
Q_ENUM(FITKGeometryComType);
private:
/**
* @brief 私有构造函数
*/
FITKGeoEnum() = default;
};
}
#endif