xcal
基于 C++23 的现代图形渲染引擎
载入中...
搜索中...
未找到
axis.hpp
浏览该文件的文档.
1#pragma once
2#include <xcal/public.h>
3
9
10namespace xcal::mobject {
11class XCAL_API Axis : public ComposedMObject<Axis, BaseTransformableMobject,
12 StrokeableMObject> {
14 property::Scalar min_x_;
15 property::Scalar max_x_;
16 property::Scalar x_tick_size_;
17 property::Scalar min_y_;
18 property::Scalar max_y_;
19 property::Scalar y_tick_size_;
20
21 public:
22 explicit Axis(float_t min_x = -1, float_t max_x = 1,
23 float_t x_tick_size = 1, float_t min_y = -1,
24 float_t max_y = 1, float_t y_tick_size = 1)
25 : min_x_(min_x),
26 max_x_(max_x),
27 x_tick_size_(x_tick_size),
28 min_y_(min_y),
29 max_y_(max_y),
30 y_tick_size_(y_tick_size) {}
31
32 float_t min_x() const { return min_x_.value(); }
33 float_t max_x() const { return max_x_.value(); }
34 float_t x_tick_size() const { return x_tick_size_.value(); }
35 float_t min_y() const { return min_y_.value(); }
36 float_t max_y() const { return max_y_.value(); }
37 float_t y_tick_size() const { return y_tick_size_.value(); }
38};
39class XCAL_API Axis3D : public AbsMGroup {
41 property::Scalar min_x_;
42 property::Scalar max_x_;
43 property::Scalar x_tick_size_;
44 property::Scalar min_y_;
45 property::Scalar max_y_;
46 property::Scalar y_tick_size_;
47 property::Scalar min_z_;
48 property::Scalar max_z_;
49 property::Scalar z_tick_size_;
50
51 public:
52 explicit Axis3D(float_t min_x = -1, float_t max_x = 1,
53 float_t x_tick_size = 1, float_t min_y = -1,
54 float_t max_y = 1, float_t y_tick_size = 1,
55 float_t min_z = -1, float_t max_z = 1,
56 float_t z_tick_size = 1)
57 : AbsMGroup(),
58 min_x_(min_x),
59 max_x_(max_x),
60 x_tick_size_(x_tick_size),
61 min_y_(min_y),
62 max_y_(max_y),
63 y_tick_size_(y_tick_size),
64 min_z_(min_z),
65 max_z_(max_z),
66 z_tick_size_(z_tick_size) {
67 mobjects_.emplace_back(new Line{{-1, 0, 0}, {1, 0, 0}});
68 mobjects_.emplace_back(new Line{{0, -1, 0}, {0, 1, 0}});
69 mobjects_.emplace_back(new Line{{0, 0, -1}, {0, 0, 1}});
70 }
71
72 Line* x_axis() const { return static_cast<Line*>(mobjects_[0].get()); }
73 Line* y_axis() const { return static_cast<Line*>(mobjects_[1].get()); }
74 Line* z_axis() const { return static_cast<Line*>(mobjects_[2].get()); }
75
76 float_t min_x() const { return min_x_.value(); }
77 float_t max_x() const { return max_x_.value(); }
78 float_t x_tick_size() const { return x_tick_size_.value(); }
79 float_t min_y() const { return min_y_.value(); }
80 float_t max_y() const { return max_y_.value(); }
81 float_t y_tick_size() const { return y_tick_size_.value(); }
82 float_t min_z() const { return min_z_.value(); }
83 float_t max_z() const { return max_z_.value(); }
84 float_t z_tick_size() const { return z_tick_size_.value(); }
85};
86
87} // namespace xcal::mobject
float_t min_x() const
Definition axis.hpp:76
float_t x_tick_size() const
Definition axis.hpp:78
float_t y_tick_size() const
Definition axis.hpp:81
float_t max_x() const
Definition axis.hpp:77
Axis3D(float_t min_x=-1, float_t max_x=1, float_t x_tick_size=1, float_t min_y=-1, float_t max_y=1, float_t y_tick_size=1, float_t min_z=-1, float_t max_z=1, float_t z_tick_size=1)
Definition axis.hpp:52
float_t min_z() const
Definition axis.hpp:82
Line * x_axis() const
Definition axis.hpp:72
float_t max_y() const
Definition axis.hpp:80
float_t max_z() const
Definition axis.hpp:83
Line * z_axis() const
Definition axis.hpp:74
float_t z_tick_size() const
Definition axis.hpp:84
float_t min_y() const
Definition axis.hpp:79
Line * y_axis() const
Definition axis.hpp:73
Axis(float_t min_x=-1, float_t max_x=1, float_t x_tick_size=1, float_t min_y=-1, float_t max_y=1, float_t y_tick_size=1)
Definition axis.hpp:22
float_t y_tick_size() const
Definition axis.hpp:37
float_t max_y() const
Definition axis.hpp:36
float_t max_x() const
Definition axis.hpp:33
float_t x_tick_size() const
Definition axis.hpp:34
float_t min_x() const
Definition axis.hpp:32
float_t min_y() const
Definition axis.hpp:35
const data_t & value() const
Definition scalar.hpp:19
基础图形对象类
#define XCAL_MOBJECT_TYPE(type)
float float_t
Definition public.h:27
#define XCAL_API
Definition public.h:69