🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
AggVisitor.hpp
1#pragma once
2
3#if defined(AST_WITH_MATPLOT) && defined(AST_WITH_AGG)
4
5#include <matplot/util/visitor.h>
6
7#include "AggRenderer.hpp"
8
9AST_NAMESPACE_BEGIN
10
11
13class AggVisitor : public matplot::visitor {
14public:
15 AggVisitor(AggRenderer& renderer, double fig_w, double fig_h);
16
17 void setAxes(const matplot::axes_type& axes);
18
20 void drawAxes();
21
22 // ---- visit 重载 ----
23 void visit(matplot::line& l) override;
24
25 // 以下暂为空实现
26 void visit(matplot::histogram&) override {}
27 void visit(matplot::function_line&) override {}
28 void visit(matplot::stair&) override {}
29 void visit(matplot::string_function&) override {}
30 void visit(matplot::bars&) override {}
31 void visit(matplot::error_bar&) override {}
32 void visit(matplot::filled_area&) override {}
33 void visit(matplot::surface&) override {}
34 void visit(matplot::matrix&) override {}
35 void visit(matplot::vectors&) override {}
36 void visit(matplot::network&) override {}
37 void visit(matplot::parallel_lines&) override {}
38 void visit(matplot::labels&) override {}
39 void visit(matplot::box_chart&) override {}
40 void visit(matplot::circles&) override {}
41 void visit(matplot::contours&) override {}
42
43private:
45 agg::trans_affine makeTransform(double xmin, double xmax, double ymin, double ymax) const;
46 const agg::trans_affine& getTransform() const{return trans_;}
47
48 AggRenderer& renderer_;
49 double fig_w_, fig_h_;
50
51 const matplot::axes_type* axes_{nullptr};
52 double xmin_{0.0}, xmax_{1.0}, ymin_{0.0}, ymax_{1.0};
53 agg::trans_affine trans_;
54};
55
56AST_NAMESPACE_END
57
58#endif // AST_WITH_AGG && AST_WITH_MATPLOT