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

99 lines
3.2 KiB
C

#ifndef FITKABSGEOREFERENCELINE_H
#define FITKABSGEOREFERENCELINE_H
#include "FITKInterfaceGeometryAPI.h"
#include "FITKAbsGeoDatum.h"
#include <array>
namespace Interface
{
/**
* @brief 线.
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
class FITKInterfaceGeometryAPI FITKAbsGeoReferenceLine :
public FITKAbsGeoDatumLine
{
public:
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
FITKAbsGeoReferenceLine() = default;
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
virtual ~FITKAbsGeoReferenceLine() = default;
};
/**
* @brief 线.
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
class FITKInterfaceGeometryAPI FITKAbsGeoReferenceSegment : public FITKAbsGeoReferenceLine {
public:
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
FITKAbsGeoReferenceSegment() = default;
/**
* @brief .
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
~FITKAbsGeoReferenceSegment() override = default;
/**
* @brief .
* @return
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
std::array<double, 3> startPoint() const { return { m_pos[0] ,m_pos[1] ,m_pos[2] }; };
/**
* @brief .
* @param x x
* @param y y
* @param z z
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
void setStartPoint(double x, double y, double z) { m_pos[0] = x; m_pos[1] = y; m_pos[2] = z; };
void setStartPoint(std::array<double, 3> xyz) { m_pos[0] = xyz[0]; m_pos[1] = xyz[1]; m_pos[2] = xyz[2]; };
/**
* @brief .
* @return
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
std::array<double, 3> endPoint() const { return { m_pos2[0] ,m_pos2[1] ,m_pos2[2] }; };
/**
* @brief .
* @param x x
* @param y y
* @param z z
* @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
void setEndPoint(double x, double y, double z) { m_pos2[0] = x; m_pos2[1] = y; m_pos2[2] = z; };
void setEndPoint(std::array<double, 3> xyz) { m_pos2[0] = xyz[0]; m_pos2[1] = xyz[1]; m_pos2[2] = xyz[2]; };
/**
* @brief []
* @return
* @author @author YanZhiHui (chanyuantiandao@126.com)
* @date 2024-08-13
*/
FITKGeoEnum::FITKDatumType getDatumType() override;
};
}
#endif // !FITKABSGEOREFERENCELINE_H