🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
Frame.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/Object.hpp"
25#include "AstUtil/ObjectNamed.hpp"
26
27AST_NAMESPACE_BEGIN
28
34class Transform;
35class KinematicTransform;
36class Frame;
37class Axes;
38class Point;
39
46AST_CORE_API errc_t aFrameTransform(Frame& source, Frame& target, const TimePoint& tp, Transform& transform);
47AST_CORE_API errc_t aFrameTransform(Frame* source, Frame* target, const TimePoint& tp, Transform& transform);
48
55AST_CORE_API errc_t aFrameTransform(Frame& source, Frame& target, const TimePoint& tp, KinematicTransform& transform);
56AST_CORE_API errc_t aFrameTransform(Frame* source, Frame* target, const TimePoint& tp, KinematicTransform& transform);
57
58
65AST_CORE_API errc_t aFrameTransform(Frame& source, Frame& target, const TimePoint& tp, AccelerationTransform& transform);
66AST_CORE_API errc_t aFrameTransform(Frame* source, Frame* target, const TimePoint& tp, AccelerationTransform& transform);
67
68
73class AST_CORE_API Frame: public ObjectNamed
74{
75public:
76 AST_OBJECT(Frame)
77
78
82 static Frame* Resolve(StringView value);
83
84 Frame() = default;
85 ~Frame() override= default;
86 A_DISABLE_COPY(Frame)
87
88
91 std::string getRepresentation() const override;
92
96 bool equals(const Frame& other) const;
97
101 CelestialBody* getBody();
102
106 double getGM();
107
110 virtual Frame* getParent() const;
111
116 virtual errc_t getTransform(const TimePoint& tp, Transform& transform) const;
117
122 virtual errc_t getTransform(const TimePoint& tp, KinematicTransform& transform) const;
123
128 virtual errc_t getTransform(const TimePoint& tp, AccelerationTransform& transform) const;
129
133 virtual Axes* getAxes() const = 0;
134
138 virtual Point* getOrigin() const = 0;
139public:
145 errc_t getTransformTo(Frame* target, const TimePoint& tp, Transform& transform) const
146 {
147 return aFrameTransform(const_cast<Frame*>(this), target, tp, transform);
148 }
149
155 errc_t getTransformTo(Frame* target, const TimePoint& tp, KinematicTransform& transform) const
156 {
157 return aFrameTransform(const_cast<Frame*>(this), target, tp, transform);
158 }
159
165 errc_t getTransformFrom(Frame* source, const TimePoint& tp, Transform& transform) const
166 {
167 return aFrameTransform(source, const_cast<Frame*>(this), tp, transform);
168 }
169
175 errc_t getTransformFrom(Frame* source, const TimePoint& tp, KinematicTransform& transform) const
176 {
177 return aFrameTransform(source, const_cast<Frame*>(this), tp, transform);
178 }
179};
180
181using PFrame = Frame*;
183
186AST_NAMESPACE_END
加速度(二阶运动学)坐标系变换
定义 AccelerationTransform.hpp:55
轴系抽象基类
定义 Axes.hpp:86
天体
定义 CelestialBody.hpp:72
坐标系抽象基类
定义 Frame.hpp:74
errc_t getTransformTo(Frame *target, const TimePoint &tp, KinematicTransform &transform) const
获取当前坐标系到目标坐标系的运动学变换。
定义 Frame.hpp:155
errc_t getTransformFrom(Frame *source, const TimePoint &tp, KinematicTransform &transform) const
获取源坐标系到当前坐标系的运动学变换。
定义 Frame.hpp:175
errc_t getTransformTo(Frame *target, const TimePoint &tp, Transform &transform) const
获取当前坐标系到目标坐标系的变换。
定义 Frame.hpp:145
virtual Point * getOrigin() const =0
获取当前坐标系的原点
errc_t getTransformFrom(Frame *source, const TimePoint &tp, Transform &transform) const
获取源坐标系到当前坐标系的变换。
定义 Frame.hpp:165
virtual Axes * getAxes() const =0
获取当前坐标系的轴系
运动学变换
定义 KinematicTransform.hpp:49
命名对象
定义 ObjectNamed.hpp:36
static Object * Resolve(StringView value)
解析字符串
定义 Object.cpp:39
virtual std::string getRepresentation() const
获取对象的表示
定义 Object.cpp:62
点抽象基类
定义 Point.hpp:42
绝对时间点
定义 TimePoint.hpp:108
坐标系转换类
定义 Transform.hpp:40
errc_t aFrameTransform(Frame &source, Frame &target, const TimePoint &tp, Transform &transform)
计算源坐标系到目标坐标系的变换,不考虑速度项
定义 Axes.cpp:234