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/FITKAbsGeoModelOperImprintS...

156 lines
4.3 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 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