🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Facility.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/Point.hpp"
25#include "AstCore/GeodeticPoint.hpp"
26#include "AstCore/CelestialBody.hpp"
27#include "AstSim/CentroidPosition.hpp"
28#include "AstUtil/StringView.hpp"
29
30AST_NAMESPACE_BEGIN
31
38class AST_SIM_API Facility: public Point
39{
40public:
41 AST_OBJECT(Facility)
42 AST_PROPERT(latitude)
43 AST_PROPERT(longitude)
44 AST_PROPERT(altitude)
45 AST_PROPERT(body)
46 Facility();
47 ~Facility() override = default;
48public: // 从Point继承重写的函数
49 Frame* getFrame() const final;
50 errc_t getPos(const TimePoint& tp, Vector3d& pos) const final;
51 errc_t getPosVel(const TimePoint& tp, Vector3d& pos, Vector3d& vel) const final;
52public:
53 const std::string& getName() const override {return name_;}
54 void setName(StringView name) override {name_ = std::string(name);}
55public:
56 void setPosition(const CentroidPosition& position){position_ = position;}
57 const CentroidPosition& getPosition() const{return position_;}
58 CentroidPosition& position(){return position_;}
59 const GeodeticPoint& getGeodeticPosition() const {return position_.getPosition();}
60 void setGeodeticPosition(const GeodeticPoint& position){position_.setPosition(position);}
61PROPERTIES:
62 angle_d latitude() const {return position_.latitude();}
63 void setLatitude(angle_d latitude) {position_.setLatitude(latitude);}
64
65 angle_d longitude() const {return position_.longitude();}
66 void setLongitude(angle_d longitude) {position_.setLongitude(longitude);}
67
68 length_d altitude() const {return position_.altitude();}
69 void setAltitude(length_d altitude) {position_.setAltitude(altitude);}
70
71 Body* body() const {return position_.body();}
72 void setBody(Body* body) {position_.setBody(body);}
73protected:
74 std::string name_;
75 CentroidPosition position_;
76};
77
80AST_NAMESPACE_END
质心位置类
定义 CentroidPosition.hpp:38
设施对象
定义 Facility.hpp:39
const std::string & getName() const override
获取对象的名称
定义 Facility.hpp:53
void setName(StringView name) override
设置对象的名称
定义 Facility.hpp:54
坐标系类
定义 Frame.hpp:60
double latitude() const
获取纬度
定义 GeoCoordinate.hpp:58
定义 Point.hpp:38
virtual Frame * getFrame() const =0
获取点所在的参考坐标系
virtual errc_t getPosVel(const TimePoint &tp, Vector3d &pos, Vector3d &vel) const =0
获取点在指定时间点的位置和速度,相对于点的参考坐标系
virtual errc_t getPos(const TimePoint &tp, Vector3d &pos) const =0
获取点在指定时间点的位置,相对于点的参考坐标系
绝对时间点
定义 TimePoint.hpp:106