#pragma once #ifndef __SATEORIBT_H__ #define __SATEORIBT_H__ /// /// 计算卫星轨道 /// //#define EIGEN_USE_MKL_ALL //#define EIGEN_VECTORIZE_SSE4_2 //#include // 本地方法 #include "gf3calibrationandorthlib_global.h" #include "BaseTool.h" #include #include #include #include //#include //#include //using namespace std; //using namespace Eigen; //using namespace arma; /// /// 多项式轨道模型 /// class GF3CALIBRATIONANDORTHLIB_EXPORT OrbitPoly { public: //OrbitPoly(std::string orbitModelPath); OrbitPoly(); OrbitPoly(int polynum, Eigen::MatrixX polySatellitePara, double SatelliteModelStartTime); ~OrbitPoly(); Eigen::MatrixX SatelliteSpacePoint(Eigen::MatrixX satellitetime); Eigen::MatrixX SatelliteSpacePoint(long double satellitetime); public: int polynum; Eigen::MatrixX polySatellitePara; double SatelliteModelStartTime; }; /// /// 获取指定时刻的卫星轨道坐标 /// /// 卫星时刻 /// 模型起算时间 /// 模型参数[x1,y1,z1,vx1,vy1,vz1; x2,y2,z2,vx2,vy2,vz2; ..... ] /// 模型参数数量 /// 卫星坐标 Eigen::MatrixX GF3CALIBRATIONANDORTHLIB_EXPORT SatelliteSpacePoints(Eigen::MatrixX &satellitetime, double SatelliteModelStartTime, Eigen::MatrixX& polySatellitePara, int polynum = 4); #endif