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.
70 lines
1.7 KiB
C++
70 lines
1.7 KiB
C++
#ifndef _FITK_ABS_GEOOPER_BOOL_H___
|
|
#define _FITK_ABS_GEOOPER_BOOL_H___
|
|
|
|
#include "FITKInterfaceGeometryAPI.h"
|
|
#include "FITKAbsGeoCommand.h"
|
|
|
|
namespace Interface
|
|
{
|
|
class FITKAbsGeoShapeAgent;
|
|
|
|
/**
|
|
* @brief 球体模型
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-06-05
|
|
*/
|
|
class FITKInterfaceGeometryAPI FITKAbsGeoOperBool :
|
|
public FITKAbsGeoCommand
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
enum GeoBoolOperType
|
|
{
|
|
GBTNone,
|
|
GBTCommon,
|
|
GBTCut,
|
|
GBTAdd,
|
|
};
|
|
|
|
public:
|
|
explicit FITKAbsGeoOperBool() = default;
|
|
virtual ~FITKAbsGeoOperBool();
|
|
|
|
|
|
void setBoolOperType(GeoBoolOperType t);
|
|
GeoBoolOperType getBoolOperType();
|
|
|
|
void setGeoShape1(FITKAbsGeoShapeAgent* s1);
|
|
void setGeoShape2(FITKAbsGeoShapeAgent* s2);
|
|
|
|
FITKAbsGeoShapeAgent* getGeoShape1();
|
|
FITKAbsGeoShapeAgent* getGeoShape2();
|
|
|
|
/**
|
|
* @brief 获取几何命令类型
|
|
* @return FITKGeoEnum::FITKGeometryComType
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-01
|
|
*/
|
|
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
|
|
|
|
VirtualShape target() const { return m_Target; }
|
|
void setTarget(VirtualShape shape) { m_Target = shape; }
|
|
|
|
VirtualShape tool() const { return m_Tool; }
|
|
void setTool(VirtualShape shape) { m_Tool = shape; }
|
|
|
|
protected:
|
|
GeoBoolOperType _boolOperType{ GBTNone };
|
|
|
|
FITKAbsGeoShapeAgent* _shape1{};
|
|
FITKAbsGeoShapeAgent* _shape2{};
|
|
|
|
VirtualShape m_Target{};
|
|
VirtualShape m_Tool{};
|
|
};
|
|
}
|
|
|
|
|
|
#endif
|