🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
VolumeGridCartographic.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 VolumeGridCartographic final : public VolumeGrid
33{
34public:
36 ~VolumeGridCartographic() 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;
44
47 GridCoord& latitude() { return lat_; }
48 const GridCoord& latitude() const { return lat_; }
49 GridCoord& longitude() { return lon_; }
50 const GridCoord& longitude() const { return lon_; }
51 GridCoord& altitude() { return alt_; }
52 const GridCoord& altitude() const { return alt_; }
54
57 void setCentralBody(CelestialBody* body);
58 CelestialBody* getCentralBody() const { return body_.get(); }
60
63 void setAutoFit(bool fit) { autoFit_ = fit; }
64 bool getAutoFit() const { return autoFit_; }
66
67private:
68 GridCoord lat_{};
69 GridCoord lon_{};
70 GridCoord alt_{};
71 WeakPtr<CelestialBody> body_{};
72 bool autoFit_{true};
73};
74
75AST_NAMESPACE_END
体积网格坐标轴定义
体积网格基类
坐标系抽象基类
定义 Frame.hpp:62
经纬高体积网格(Latitude, Longitude, Altitude)
定义 VolumeGridCartographic.hpp:33
void accept(VolumeGridVisitor &visitor) override
接受访问者
定义 VolumeGridCartographic.hpp:38
体积网格访问者接口
定义 VolumeGridVisitor.hpp:37
体积网格基类
定义 VolumeGrid.hpp:36
virtual size_t getGridPointCount() const =0
获取网格点总数
virtual Frame * getFrame() const =0
获取参考坐标系
virtual void enumerateGridPoints(std::vector< Vector3d > &points) const =0
枚举所有网格点坐标
virtual void getBoundingBox(Vector3d &minCorner, Vector3d &maxCorner) const =0
获取包围盒
坐标轴定义
定义 GridCoord.hpp:36