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

77 lines
2.4 KiB
C++

/**
* @file FITKAbsGeoReferencePoint.h
* @brief 抽象点.
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-27
*/
#ifndef FITKABSGEOREFERENCEPOINT_H
#define FITKABSGEOREFERENCEPOINT_H
#include "FITKInterfaceGeometryAPI.h"
#include "FITK_Interface/FITKInterfaceGeometry/FITKAbsGeoDatum.h"
#include <QVector>
#include <array>
namespace Interface
{
/**
* @brief 坐标点.
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-27
*/
class FITKInterfaceGeometryAPI FITKAbsGeoReferencePoint :
public FITKAbsGeoDatumPoint
{
public:
FITKAbsGeoReferencePoint() = default;
virtual ~FITKAbsGeoReferencePoint() override = default;
/**
* @brief 获取基准元素类型.
* @return 基准元素类型
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-04
*/
Interface::FITKGeoEnum::FITKDatumType getDatumType() override;
double x() const { return m_pos[0]; };
void setX(double x) { m_pos[0] = x; };
double y() const { return m_pos[1]; };
void setY(double y) { m_pos[1] = y; };
double z() const { return m_pos[2]; };
void setZ(double z) { m_pos[2] = z; };
void setCoord(double x, double y, double z) {
m_pos[0] = x; m_pos[1] = y; m_pos[2] = z;
};
};
/**
* @brief 指定曲线比例创建点.
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-27
*/
class FITKInterfaceGeometryAPI FITKAbsGeoReferenceCurveRadio :
public FITKAbsGeoReferencePoint
{
public:
FITKAbsGeoReferenceCurveRadio() = default;
virtual ~FITKAbsGeoReferenceCurveRadio() = default;
/**
* @brief 获取基准元素类型.
* @return 基准元素类型
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-09-04
*/
Interface::FITKGeoEnum::FITKDatumType getDatumType() override;
SourceObject sourceCurve() const { return m_SourceCurve; };
void setSourceCurve(SourceObject curve) { m_SourceCurve = curve; };
double radio() const { return m_Radio; }
void setRadio(double radio) { m_Radio = radio; }
protected:
SourceObject m_SourceCurve{};
double m_Radio{};
};
}
#endif // !FITKABSGEOREFERENCEPOINT_H