统一 2D/3D Renderable 继承链与实时数据策略

This commit is contained in:
2026-08-14 18:47:36 +08:00
parent bb64801679
commit cb32f72bc9
43 changed files with 1010 additions and 528 deletions
+41 -35
View File
@@ -955,36 +955,40 @@ private:
else if (case_id_ == "constellation")
coordinate_range = {-1.25, 1.25};
if (case_id_ == "frequency_trace") {
time_axis_ = Gallery_Time_Axis::Builder(axes_node_, Orientation::Horizontal, &attach)
.set_visible_time_point_count(80)
.set_tick_label_spacing_px(28)
.set_time_format("mm:ss.zzz")
.set_color(axis_color)
.build();
time_axis_ = Gallery_Time_Axis::Builder{&attach}
.set<&Gallery_Time_Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Gallery_Time_Axis::Properties::visible_count>(80)
.set<&Gallery_Time_Axis::Properties::tick_label_spacing_px>(28)
.set<&Gallery_Time_Axis::Properties::format>("mm:ss.zzz")
.set<&Gallery_Time_Axis::Properties::color>(axis_color)
.build(axes_node_);
}
else if (case_id_ == "sweep_spectrum" || case_id_ == "constellation") {
numeric_domain_axis_ = Gallery_Axis::Builder(axes_node_, Orientation::Horizontal, &attach)
.set_coord_range(coordinate_range)
.set_use_wheel(true)
.set_use_drag(true)
.set_color(axis_color)
.build();
numeric_domain_axis_ = Gallery_Axis::Builder{&attach}
.set<&Gallery_Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Gallery_Axis::Properties::coordinates>(coordinate_range)
.set<&Gallery_Axis::Properties::wheel>(true)
.set<&Gallery_Axis::Properties::drag>(true)
.set<&Gallery_Axis::Properties::color>(axis_color)
.build(axes_node_);
}
else {
frequency_domain_axis_ = Gallery_Frequency_Axis::Builder(axes_node_, Orientation::Horizontal, &attach)
.set_coord_range(coordinate_range)
.set_use_wheel(true)
.set_use_drag(true)
.set_color(axis_color)
.build();
frequency_domain_axis_ = Gallery_Frequency_Axis::Builder{&attach}
.set<&Gallery_Frequency_Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Gallery_Frequency_Axis::Properties::coordinates>(coordinate_range)
.set<&Gallery_Frequency_Axis::Properties::wheel>(true)
.set<&Gallery_Frequency_Axis::Properties::drag>(true)
.set<&Gallery_Frequency_Axis::Properties::color>(axis_color)
.build(axes_node_);
}
if (case_id_ == "waterfall") {
time_axis_ = Gallery_Time_Axis::Builder(axes_node_, Orientation::Vertical, &attach)
.set_visible_time_point_count(80)
.set_tick_label_spacing_px(28)
.set_time_format("mm:ss.zzz")
.set_color(axis_color)
.build();
time_axis_ = Gallery_Time_Axis::Builder{&attach}
.set<&Gallery_Time_Axis::Properties::orientation>(Orientation::Vertical)
.set<&Gallery_Time_Axis::Properties::visible_count>(80)
.set<&Gallery_Time_Axis::Properties::tick_label_spacing_px>(28)
.set<&Gallery_Time_Axis::Properties::format>("mm:ss.zzz")
.set<&Gallery_Time_Axis::Properties::color>(axis_color)
.build(axes_node_);
}
else {
Range value_range{-120.0, -20.0};
@@ -992,19 +996,21 @@ private:
value_range = {-1.0, 1.0};
else if (case_id_ == "constellation")
value_range = {-1.25, 1.25};
value_axis_ = Gallery_Axis::Builder(axes_node_, Orientation::Vertical, &attach)
.set_coord_range(value_range)
.set_label_precision(case_id_ == "constellation" ? 2 : 0)
.set_color(axis_color)
.build();
value_axis_ = Gallery_Axis::Builder{&attach}
.set<&Gallery_Axis::Properties::orientation>(Orientation::Vertical)
.set<&Gallery_Axis::Properties::coordinates>(value_range)
.set<&Gallery_Axis::Properties::precision>(case_id_ == "constellation" ? 2 : 0)
.set<&Gallery_Axis::Properties::color>(axis_color)
.build(axes_node_);
}
if (case_id_ == "axis_lab") {
time_axis_ = Gallery_Time_Axis::Builder(axes_node_, Orientation::Horizontal, &attach)
.set_visible_time_point_count(80)
.set_tick_label_spacing_px(28)
.set_time_format("mm:ss.zzz")
.set_color({69, 221, 190, 255})
.build();
time_axis_ = Gallery_Time_Axis::Builder{&attach}
.set<&Gallery_Time_Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Gallery_Time_Axis::Properties::visible_count>(80)
.set<&Gallery_Time_Axis::Properties::tick_label_spacing_px>(28)
.set<&Gallery_Time_Axis::Properties::format>("mm:ss.zzz")
.set<&Gallery_Time_Axis::Properties::color>(Color{69, 221, 190, 255})
.build(axes_node_);
}
const auto style = [this](const renderive_Owner<Abs_Axis>& axis) {
if (!axis)