SimsWorld/StandardGlobe/standardglobe.h

61 lines
980 B
C
Raw Normal View History

2025-05-31 15:28:41 +00:00
#pragma once
#include "standardglobe_global.h"
2025-06-01 14:37:26 +00:00
#include <qvector3d.h>
2025-05-31 15:28:41 +00:00
/// <summary>
2025-06-01 14:37:26 +00:00
/// <20><>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
2025-05-31 15:28:41 +00:00
/// </summary>
struct LLAPos {
double _lon_deg = 0;
double _lat_deg = 0;
double _alt_m = 0;
};
2025-06-01 14:37:26 +00:00
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
/// </summary>
struct ECEFPos {
double _x_pos = 0;
double _y_pos = 0;
double _z_pos = 0;
2025-06-01 14:37:46 +00:00
QVector3D getVec3() const;
2025-06-01 14:37:26 +00:00
};
/// <summary>
/// <20><><EFBFBD><EFBFBD><ECB1B1><EFBFBD><EFBFBD>ϵ
/// </summary>
struct ENUPos {
double _e_pos = 0;
double _n_pos = 0;
double _t_pos = 0;
};
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
struct PolarPos {
double _dist_m = 0;
double _azimuth_deg = 0;
double _pitch_deg = 0;
};
2025-05-31 15:28:41 +00:00
/// <summary>
/// <20><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
class STANDARDGLOBE_EXPORT StandardGlobe
{
2025-06-01 14:37:26 +00:00
private:
/// <summary>
/// <20><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>
/// </summary>
static double _radius_m;
2025-05-31 15:28:41 +00:00
public:
2025-06-01 14:37:26 +00:00
StandardGlobe();
static ECEFPos llaToEcef(const LLAPos &v);
static void getDistanceWithin(const LLAPos &base, const LLAPos &target, double dist, double azi);
2025-05-31 15:28:41 +00:00
};