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

103 lines
3.0 KiB
C

/**
* @file FITKAbsGeoSplitter.h
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-13
*/
#ifndef FITKABSGEOSPLITTER_H
#define FITKABSGEOSPLITTER_H
#include "FITKAbsGeoCommand.h"
#include "FITKAbsGeoDatum.h"
#include "FITKInterfaceGeometryAPI.h"
#include <array>
namespace Interface {
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-10
*/
class FITKInterfaceGeometryAPI FITKAbsGeoSplitter :
public FITKAbsGeoCommand
{
public:
FITKAbsGeoSplitter() = default;
virtual ~FITKAbsGeoSplitter() = default;
VirtualShape sourceShape() const { return m_SourceShape; }
void setSourceShape(VirtualShape shape) { m_SourceShape = shape; }
SourceObject toolShape() const { return m_ToolShape; }
void setToolShape(SourceObject shape) { m_ToolShape = shape; }
protected:
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-13
*/
VirtualShape m_SourceShape{};
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-13
*/
SourceObject m_ToolShape{};
};
/**
* @brief 线.
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-10
*/
class FITKInterfaceGeometryAPI FITKAbsGeoCurveSplitter :
public FITKAbsGeoSplitter
{
public:
FITKAbsGeoCurveSplitter() = default;
~FITKAbsGeoCurveSplitter() override = default;
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
std::array<double, 3> point() const { return m_Point; }
void setPoint(std::array<double, 3> xyz) { m_Point = xyz; }
void setPoint(double x, double y, double z) { m_Point = { x,y,z }; }
protected:
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-10
*/
std::array<double, 3> m_Point{};
};
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-10
*/
class FITKInterfaceGeometryAPI FITKAbsGeoSurfaceSplitter :
public FITKAbsGeoSplitter
{
public:
FITKAbsGeoSurfaceSplitter() = default;
~FITKAbsGeoSurfaceSplitter() override = default;
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
};
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-10
*/
class FITKInterfaceGeometryAPI FITKAbsGeoSolidSplitter :
public FITKAbsGeoSplitter
{
public:
FITKAbsGeoSolidSplitter() = default;
~FITKAbsGeoSolidSplitter() override = default;
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
};
}
#endif // FITKABSGEOSPLITTER_H