|
|
/*****************************************************************//**
|
|
|
* @file FITKAbsGeoModelOperImprintSolid.h
|
|
|
* @brief 抽象压印体操作类
|
|
|
*
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*********************************************************************/
|
|
|
|
|
|
#ifndef FITKABSGEOMODELOPERIMPRINTSOLID_H
|
|
|
#define FITKABSGEOMODELOPERIMPRINTSOLID_H
|
|
|
|
|
|
#include "FITKInterfaceGeometryAPI.h"
|
|
|
#include "FITKAbsGeoCommand.h"
|
|
|
|
|
|
|
|
|
namespace Interface
|
|
|
{
|
|
|
class FITKAbsGeoShapeAgent;
|
|
|
|
|
|
/**
|
|
|
* @brief 抽象压印体操作类
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoModelOperImprintSolid : public FITKAbsGeoCommand
|
|
|
{
|
|
|
public:
|
|
|
|
|
|
/**
|
|
|
* @brief 压印体操作类型
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
enum GeoSolidOperType
|
|
|
{
|
|
|
GBTNone,
|
|
|
GBTImprintSolid, ///压印体
|
|
|
};
|
|
|
|
|
|
public:
|
|
|
FITKAbsGeoModelOperImprintSolid() = default;
|
|
|
virtual ~FITKAbsGeoModelOperImprintSolid() override = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取几何命令类型
|
|
|
* @param geoCommandID:操作对象
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-04
|
|
|
*/
|
|
|
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
|
|
/**
|
|
|
* @brief 添加操作对象
|
|
|
* @param geoCommandID:操作对象ID
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
void add(VirtualShape* geoCommandID);
|
|
|
|
|
|
/**
|
|
|
* @brief 添加多个操作对象
|
|
|
* @param geoCommandIDs:操作对象链表
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
void add(QList<VirtualShape*> geoCommandIDs);
|
|
|
|
|
|
/**
|
|
|
* @brief 移除操作对象
|
|
|
* @param geoCommand:操作对象
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
void remove(int index);
|
|
|
|
|
|
/**
|
|
|
* @brief 移除所有操作对象
|
|
|
* @param geoCommand:操作对象
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
void clear();
|
|
|
|
|
|
/**
|
|
|
* @brief 设置类型
|
|
|
* @param t:操作类型
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
void setType(GeoSolidOperType t);
|
|
|
|
|
|
/**
|
|
|
* @brief 设置类型
|
|
|
* @return 返回操作类型
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-08-26
|
|
|
*/
|
|
|
FITKAbsGeoModelOperImprintSolid::GeoSolidOperType getType();
|
|
|
|
|
|
/**
|
|
|
* @brief 获取虚拓扑图形
|
|
|
* @param geoCommand:操作对象
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-08-19
|
|
|
*/
|
|
|
QList<VirtualShape*> getVShapes();
|
|
|
/**
|
|
|
* @brief 获取操作对象列表
|
|
|
* @return 操作对象列表
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
QList<int> getModelOperFacesID();
|
|
|
|
|
|
/**
|
|
|
* @brief 设置公差
|
|
|
* @return 操作对象列表
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-08-23
|
|
|
*/
|
|
|
void setTolerance(double tolerance);
|
|
|
|
|
|
/**
|
|
|
* @brief 获取公差
|
|
|
* @return 操作对象列表
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-08-23
|
|
|
*/
|
|
|
double getTolerance();
|
|
|
|
|
|
protected:
|
|
|
/**
|
|
|
* @brief 面操作类型
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
GeoSolidOperType _faceOperType{ GBTNone };
|
|
|
|
|
|
/**
|
|
|
* @brief 操作对象列表
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-09-05
|
|
|
*/
|
|
|
QList<VirtualShape*> m_tempVShapes{};
|
|
|
|
|
|
/**
|
|
|
* @brief 公差
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-08-23
|
|
|
*/
|
|
|
double _tolerance = 1e-2;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
#endif // !FITKAbsGeoModelOperImprintSolid_H
|