🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
VolumeGridCylindrical.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 Frame;
29
32class AST_CORE_API VolumeGridCylindrical final : public VolumeGrid
33{
34public:
36 ~VolumeGridCylindrical() 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
46 GridCoord& theta() { return theta_; }
47 const GridCoord& theta() const { return theta_; }
48 GridCoord& radius() { return radius_; }
49 const GridCoord& radius() const { return radius_; }
50 GridCoord& height() { return height_; }
51 const GridCoord& height() const { return height_; }
53
56 void setReferenceFrame(Frame* frame);
57 Frame* getReferenceFrame() const { return refFrame_.get(); }
58 Frame* getFrame() const override { return refFrame_.get(); }
60
61private:
62 GridCoord theta_{};
63 GridCoord radius_{};
64 GridCoord height_{};
65 WeakPtr<Frame> refFrame_{};
66};
67
68AST_NAMESPACE_END
体积网格坐标轴定义
体积网格基类
坐标系抽象基类
定义 Frame.hpp:62
柱面体积网格(Theta, Radius, Height)
定义 VolumeGridCylindrical.hpp:33
void accept(VolumeGridVisitor &visitor) override
接受访问者
定义 VolumeGridCylindrical.hpp:38
Frame * getFrame() const override
获取参考坐标系
定义 VolumeGridCylindrical.hpp:58
体积网格访问者接口
定义 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