Skip to content

A C++ static library for astronomic calculation and modding SpaceEngine

License

Notifications You must be signed in to change notification settings

StellarDX/CSpaceEngine-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSpaceEngine·聚力新生

开源的SpaceEngine静态库,适配SE0.990

许可证:GPL-3.0

功能

  • GLSL数据类型和内置函数
  • 日期,时间及儒略日
  • 高等数学
  • 类似Python的随机数生成器
  • SpaceEngine SC文件读写
  • 剩下的功能还在重构中...

来自GLSL的数据类型和函数

  • n维向量模板,2-4维是独立数据类型,4维以上为std::array的增强
  • 矩阵,理论上不限大小,支持线性代数计算,可以当容器使用
  • 一些来自GLSL的函数,支持vec2-4以及std::array

日期时间

这个功能的使用方法和Qt的日期和时间类型相似,但是比Qt的简单

高等数学

  • 直角坐标和极坐标之间的转换
  • 导数,积分,微分方程
  • 反函数

类似Python的随机数生成器

基本就是让C++的随机生成更好用些而已,顺便加了个自定义分布

SpaceEngine SC文件读写

  • 一个经历了至少3次的更新换代的,基于LR(1)算法的sc文件读取
  • SC文件输出流

功能很基础物理引擎(可选组件)

  • 轨道跟踪器,用于轨道根数和状态向量的转换,可以实时跟踪(目前只支持椭圆轨道,Bug多慎用)
  • 一些很基础的转换,比如双星轨道转开普勒轨道根数
  • 行星轨道分布模型
  • 卫星TLE工具
  • 洛希极限,希尔球和拉格朗日点,用于多体问题
  • IAU自转模型实时跟踪工具 (未来可能添加IAU和标准自转模型互转,高难)
  • 自带了多个状态方程模板已经状态方程,尽管它们绝大多数是不精确的 (将改为材料实体类,封装基本属性,状态方程及熔化曲线)
  • 基于流体静力平衡的行星物理模型(搁置了两年多的“世纪难题”在此宣告破解!) (将引入温度影响,向气态行星兼容)
  • (未实现)基于恒星结构方程的恒星物理模型 (新的高难世纪难题待破解)
  • 星等-光度计算
  • (未完全实现)光谱分析
  • (未实现)基本热力学 (又是世纪难题)

编译

此版本已经放弃VS2022并迁移到CMake平台,编译就正常使用CMake即可。

注:由于此版本的一些功能会大量使用format函数,而一些编译器在开启了C++20之下仍未支持此功能,所以这里给出了一个备用解决方案,此方案需安装fmtlib

编译选项详见Building the library(还未上传)

遇到问题或想要新功能?

如果发现无法解决的问题或者bug,在issues告诉我。

About

A C++ static library for astronomic calculation and modding SpaceEngine

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages