🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
VolumeGridSurfaceBearing.hpp
浏览该文件的文档.
1
19
20#pragma once
21
22#include "VolumeGrid.hpp"
23#include "GridCoord.hpp"
24#include "AstCore/WeakPtr.hpp"
25
26AST_NAMESPACE_BEGIN
27
28class CelestialBody;
29
32class AST_CORE_API VolumeGridSurfaceBearing final : public VolumeGrid
33{
34public:
36 ~VolumeGridSurfaceBearing() override = default;
37
38 void accept(VolumeGridVisitor& visitor) override { visitor.visit(*this); }
39
40 size_t getGridPointCount() const override;
41 void enumerateGridPoints(std::vector<Vector3d>& points) const override;
42 void getBoundingBox(Vector3d& minCorner, Vector3d& maxCorner) const override;
43 Frame* getFrame() const override { return nullptr; }
44
47 GridCoord& alongBearing() { return alongBearing_; }
48 const GridCoord& alongBearing() const { return alongBearing_; }
49 GridCoord& crossBearing() { return crossBearing_; }
50 const GridCoord& crossBearing() const { return crossBearing_; }
51 GridCoord& altitude() { return altitude_; }
52 const GridCoord& altitude() const { return altitude_; }
54
57 void setReferenceLocation(double lat, double lon) { refLat_ = lat; refLon_ = lon; }
58 double getReferenceLatitude() const { return refLat_; }
59 double getReferenceLongitude() const { return refLon_; }
61
64 void setBearing(double bearingDeg) { bearing_ = bearingDeg; }
65 double getBearing() const { return bearing_; }
67
70 void setCentralBody(CelestialBody* body);
71 CelestialBody* getCentralBody() const { return body_.get(); }
73
76 void setAutoFit(bool fit) { autoFit_ = fit; }
77 bool getAutoFit() const { return autoFit_; }
79
80private:
81 GridCoord alongBearing_{};
82 GridCoord crossBearing_{};
83 GridCoord altitude_{};
84 double refLat_{0.0};
85 double refLon_{0.0};
86 double bearing_{90.0};
87 WeakPtr<CelestialBody> body_{};
88 bool autoFit_{false};
89};
90
91AST_NAMESPACE_END
体积网格坐标轴定义
体积网格基类
坐标系抽象基类
定义 Frame.hpp:62
方位角体积网格(AlongBearing, CrossBearing, Altitude)
定义 VolumeGridSurfaceBearing.hpp:33
void accept(VolumeGridVisitor &visitor) override
接受访问者
定义 VolumeGridSurfaceBearing.hpp:38
Frame * getFrame() const override
获取参考坐标系
定义 VolumeGridSurfaceBearing.hpp:43
体积网格访问者接口
定义 VolumeGridVisitor.hpp:37
体积网格基类
定义 VolumeGrid.hpp:36
virtual size_t getGridPointCount() const =0
获取网格点总数
virtual void enumerateGridPoints(std::vector< Vector3d > &points) const =0
枚举所有网格点坐标
virtual void getBoundingBox(Vector3d &minCorner, Vector3d &maxCorner) const =0
获取包围盒
坐标轴定义
定义 GridCoord.hpp:36