🛰️航天仿真算法库 SpaceAST 0.3.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 "AstCore/PointCartographic.hpp"
28#include "AstSim/Platform.hpp"
29#include "AstSim/CentroidPosition.hpp"
30#include "AstUtil/StringView.hpp"
31
32AST_NAMESPACE_BEGIN
33
39class Facility;
40using HFacility = SharedPtr<Facility>;
41using PFacility = Facility*;
42
43
45class AST_SIM_API Facility: public Platform
46{
47public:
48 AST_OBJECT(Facility)
49 AST_PROPERT(latitude)
50 AST_PROPERT(longitude)
51 AST_PROPERT(altitude)
52 AST_PROPERT(body)
53 Facility();
54 ~Facility() override = default;
55public: // 从Point继承重写的函数
56 Frame* getFrame() const final;
57 errc_t getPos(const TimePoint& tp, Vector3d& pos) const final;
58 errc_t getPosVel(const TimePoint& tp, Vector3d& pos, Vector3d& vel) const final;
59public:
60 const GeodeticPoint& position() const {return cartographic().position();}
61 void setPosition(const GeodeticPoint& position){cartographic().setPosition(position);}
62PROPERTIES:
63 angle_d latitude() const {return cartographic().latitude();}
64 void setLatitude(angle_d latitude) {cartographic().setLatitude(latitude);}
65
66 angle_d longitude() const {return cartographic().longitude();}
67 void setLongitude(angle_d longitude) {cartographic().setLongitude(longitude);}
68
69 length_d altitude() const {return cartographic().altitude();}
70 void setAltitude(length_d altitude) {cartographic().setAltitude(altitude);}
71
72 Body* body() const {return cartographic().body();}
73 void setBody(Body* body) {cartographic().setBody(body);}
74protected:
75 PointCartographic& cartographic() {return static_cast<PointCartographic&>(*location());}
76 const PointCartographic& cartographic() const {return static_cast<const PointCartographic&>(*location());}
77private: // 屏蔽基类public函数
78 void setLocation(Point* location) = delete;
79};
80
83AST_NAMESPACE_END
天体
定义 CelestialBody.hpp:72
设施对象
定义 Facility.hpp:46
坐标系抽象基类
定义 Frame.hpp:74
double latitude() const
获取纬度
定义 GeoCoordinate.hpp:58
大地坐标
定义 GeodeticPoint.hpp:33
通用平台类,用于表示空间中的平台对象,例如卫星、飞机、地面站等,具有位置、姿态两个属性
定义 Platform.hpp:40
errc_t getPos(const TimePoint &tp, Vector3d &pos) const override
获取点在指定时间点的位置,相对于点的参考坐标系
定义 Platform.cpp:50
Frame * getFrame() const override
获取点所在的参考坐标系
定义 Platform.cpp:42
errc_t getPosVel(const TimePoint &tp, Vector3d &pos, Vector3d &vel) const override
获取点在指定时间点的位置和速度,相对于点的参考坐标系
定义 Platform.cpp:58
天地制图坐标点(天体大地坐标点)
定义 PointCartographic.hpp:38
点抽象基类
定义 Point.hpp:42
绝对时间点
定义 TimePoint.hpp:108