🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
FrameWithEpoch.hpp
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/Frame.hpp"
25#include "AstCore/EventTime.hpp"
26#include "AstCore/AxesFrozenAtEventTime.hpp"
27#include "AstCore/Axes.hpp"
28#include "AstCore/Point.hpp"
29
30
31AST_NAMESPACE_BEGIN
32
38class FrameWithEpoch;
39using PFrameWithEpoch = FrameWithEpoch*;
40using HFrameWithEpoch = SharedPtr<FrameWithEpoch>;
41
43class AST_CORE_API FrameWithEpoch: public Frame
44{
45public:
46 static PFrameWithEpoch New(Point* origin, Axes* axes);
47 static PFrameWithEpoch New(Point* origin, Axes* axes, EventTime* epoch);
48 static HFrameWithEpoch MakeShared(Point* origin, Axes* axes);
49 static HFrameWithEpoch MakeShared(Point* origin, Axes* axes, EventTime* epoch);
50
52 FrameWithEpoch(Point* origin, Axes* axes);
53 FrameWithEpoch(Point* origin, Axes* axes, EventTime* epoch);
54 ~FrameWithEpoch() = default;
55public:
56 Axes* getAxes() const override;
57 Point* getOrigin() const override;
58public:
59 bool getUseEpoch() const{ return useEpoch_; }
60 void setUseEpoch(bool useEpoch){ useEpoch_ = useEpoch; }
61 SharedPtr<EventTime>& getEpochHandle();
62 EventTime* getEpoch() const;
63 errc_t getEpoch(TimePoint& epoch) const;
64 void setEpoch(EventTime* epoch);
65 void setSourceAxes(Axes* axes);
66 Axes* getSourceAxes() const;
67 Axes* getReferenceAxes() const;
68 void setReferenceAxes(Axes* axes);
69protected:
73 bool useEpoch_{false};
74};
75
78AST_NAMESPACE_END
轴系类
定义 Axes.hpp:69
事件时间
定义 EventTime.hpp:42
带轴系历元的坐标系
定义 FrameWithEpoch.hpp:44
SharedPtr< Axes > sourceAxes_
轴系
定义 FrameWithEpoch.hpp:72
SharedPtr< Point > origin_
原点
定义 FrameWithEpoch.hpp:70
SharedPtr< AxesFrozenAtEventTime > frozenAxes_
冻结轴系
定义 FrameWithEpoch.hpp:71
坐标系类
定义 Frame.hpp:59
virtual Point * getOrigin() const =0
获取当前坐标系的原点。
virtual Axes * getAxes() const =0
获取当前坐标系的轴系。
定义 Point.hpp:37
共享指针
定义 SharedPtr.hpp:33
绝对时间点
定义 TimePoint.hpp:106