StellarDX / CSpaceEngine-Project

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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多慎用)

编译

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

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

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

遇到问题或想要新功能?

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

About

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

License:GNU General Public License v3.0


Languages

Language:C++ 94.4%Language:CMake 4.9%Language:C 0.7%Language:Yacc 0.0%