🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
待办事项列表
成员 ast::aAnsiToWide (const char *ansi, std::wstring &wide)
实现Linux平台上的ANSI到宽字符编码转换
成员 ast::aGeometryTransform (GeometryType *source, GeometryType *target, const TimePoint &tp, RotationType &rotation)

在寻找最近公共祖先时,如果出现了超过256层的意外情况(非常非常罕见), 需要进入动态分配内存的计算模式

这里应该可以专门写个函数将 .inverse() * 的计算进行合并

成员 ast::aICRFToMoonMeanEarthTransform_IAU (const TimePoint &tp, Rotation &rotation)
还未实现该函数
成员 ast::aICRFToMoonPrincipalAxesTransform (const TimePoint &tp, KinematicRotation &rotation)
还未实现该函数,需要实现旋转角速度的计算
成员 ast::aInitializeByConfig (DataContext *context, StringView configfile)
这里获取到的路径可能是相对路径,要处理相对路径问题!
成员 ast::aSpiceGetInterval (StringView filepath, int target, TimeInterval &interval)
这里需要支持多个SPK段的时间间隔的合并
成员 ast::aUtf8ToWide (const char *utf8, std::wstring &wide)
实现Linux平台上的UTF-8到宽字符编码转换
ast::BackTrace
实现回溯信息
成员 ast::BaseParser::read (void *buffer, size_t size, size_t pos) const
当前的函数实现未考虑线程安全问题,该接口需要线程安全的实现,考虑在linux下使用pread函数
ast::BodyEphemeris
但是对于行星卫星,他们的星历是相对于行星系的,例如月球 此时 getPosVelICRF 接口会产生数值截断误差,需要考虑如何处理
ast::Breakpoint
实现断点相关功能
ast::CallStack
实现调用栈相关功能
成员 ast::CelestialBody::getAxes (StringView name) const
这里考虑使用哈希表来存储映射关系
ast::Class

实现类的反射机制

ast::DAFParser
在读取数据时需要处理数据的大小端问题
成员 ast::DataContext::m_iauXYSPrecomputed
: 这个考虑更改为静态数据
ast::Debugger
实现调试器相关功能
成员 ast::EphemerisLagrangeVar::getPosVel (const TimePoint &tp, Vector3d &pos, Vector3d &vel) const override
这里有一点优化空间,可以避免重复计算插值点的系数
ast::GenericValue

考虑参考variant进行存储,保留原始值

成员 ast::GlobalContext::m_iauXYS
: 这个考虑更改为静态数据
成员 ast::HPOPEquation::initBlocks (const HPOPForceModel &forceModel)

这里要根据重力场的配置来获取重力场坐标系

这里产生了一次重力场系数复制,有一定的优化空间

成员 ast::HPOPEquation::setPropagationFrame (Frame *frame)
这里还需要检查frame是否是准惯性系
ast::InterpreterContext
暂时不支持子解释器,只能区分全局解释器和当前解释器。
联合体 ast::KernelData
使用union不太合适,考虑其他的实现方式
ast::LeapSecond
支持读取Spice的闰秒内核文件
成员 ast::MolniyaOrbitDesigner::getOrbitState (ModOrbElem &orbElem) const override
这里目前只支持地球,需要增加对其他天体的支持
成员 ast::MoonOrientation::getICRFToFixedTransform (const TimePoint &tp, KinematicRotation &rotation) const override
实现动力学旋转
成员 ast::MoonOrientation::getICRFToInertialTransform (const TimePoint &tp, Rotation &rotation) const override
实现月球惯性系变换
成员 ast::MoonOrientation::getMODTransform (const TimePoint &tp, Rotation &rot) const override
实现月球MOD系变换
成员 ast::MoonOrientation::getTODTransform (const TimePoint &tp, Rotation &rot) const override
实现月球TOD系变换
成员 ast::MotionProfile::toHPOP () const
提升类型动态转换效率
成员 ast::MotionProfile::toSPICE () const
提升类型动态转换效率
成员 ast::MotionProfile::toTwoBody () const
提升类型动态转换效率
成员 ast::Point::toBody () const
这里需要优化动态类型转换的执行效率
ast::PropertyPOD

拟作为int, double, bool等的基础属性类,其他属性类继承自该类。

成员 ast::PropertyQuantity::getValueString (const void *container, std::string &value) override
这里需要一个通过量纲获取国际制单位的函数
成员 ast::RepeatingOrbitDesigner::getOrbitState (ModOrbElem &orbElem) const override
这里目前只支持地球,需要增加对其他天体的支持
成员 ast::RepeatingSunSyncOrbitDesigner::getOrbitState (ModOrbElem &orbElem) const override
这里目前只支持地球,需要增加对其他天体的支持
成员 ast::RepeatingSunSyncOrbitDesigner::setApproxAltitude (double alt)
这里的逻辑与 RepeatingOrbitDesigner::setApproxRevsPerDay(double revs)相同,需要避免重复
ast::Sparse

实现稀疏矩阵Sparse类

ast::SPKParser
处理不同类型的SPK数据,目前仅支持类型2
ast::StackFrame
实现栈帧相关功能
成员 ast::StationaryOrbitDesigner::getOrbitState (ModOrbElem &orbElem) const override

目前只能计算地球轨道,这里需要增加对其他天体的支持

这里应该可以采用解析公式直接计算得到半长轴

ast::SymbolTable

实现符号表相关功能

成员 ast::UiMotionProfile::getMotionProfile () const
优化类型转换效率
ast::ValRange

目前只支持浮点数类型的范围值

成员 ast::WorkingDirectory::WorkingDirectory (StringView path)
需要考虑如何避免创建临时std::string对象
Debris

实现空间碎片模型