统一 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
+38 -34
View File
@@ -84,43 +84,47 @@ struct Web_Plot_Session::Impl {
const auto overlay = make_group("Web_Overlay");
axes->set_cache_mode(Renderable_Cache_Mode::Local_Pixel);
spectrum_frequency_axis =
Frequency_Axis::Builder(axes, Orientation::Horizontal, &attach)
.set_coord_range(initial_frequency)
.set_label_precision(2)
.set_tick_length(8)
.set_sub_tick_length(4)
.set_color(axis_color)
.set_use_wheel(true)
.set_use_drag(true)
.build();
Frequency_Axis::Builder{&attach}
.set<&Frequency_Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Frequency_Axis::Properties::coordinates>(initial_frequency)
.set<&Frequency_Axis::Properties::precision>(2)
.set<&Frequency_Axis::Properties::tick_length>(8)
.set<&Frequency_Axis::Properties::sub_tick_length>(4)
.set<&Frequency_Axis::Properties::color>(axis_color)
.set<&Frequency_Axis::Properties::wheel>(true)
.set<&Frequency_Axis::Properties::drag>(true)
.build(axes);
spectrum_power_axis =
Axis::Builder(axes, Orientation::Vertical, &attach)
.set_coord_range({-20.0, -120.0})
.set_label_precision(0)
.set_tick_length(-8)
.set_sub_tick_length(-4)
.set_color(axis_color)
.set_unit_text("dBm")
.build();
Axis::Builder{&attach}
.set<&Axis::Properties::orientation>(Orientation::Vertical)
.set<&Axis::Properties::coordinates>(Range{-20.0, -120.0})
.set<&Axis::Properties::precision>(0)
.set<&Axis::Properties::tick_length>(-8)
.set<&Axis::Properties::sub_tick_length>(-4)
.set<&Axis::Properties::color>(axis_color)
.set<&Axis::Properties::unit_text>("dBm")
.build(axes);
waterfall_frequency_axis =
Frequency_Axis::Builder(axes, Orientation::Horizontal, &attach)
.set_coord_range(initial_frequency)
.set_label_precision(2)
.set_tick_length(8)
.set_sub_tick_length(4)
.set_color(axis_color)
.set_use_wheel(true)
.set_use_drag(true)
.build();
Frequency_Axis::Builder{&attach}
.set<&Frequency_Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Frequency_Axis::Properties::coordinates>(initial_frequency)
.set<&Frequency_Axis::Properties::precision>(2)
.set<&Frequency_Axis::Properties::tick_length>(8)
.set<&Frequency_Axis::Properties::sub_tick_length>(4)
.set<&Frequency_Axis::Properties::color>(axis_color)
.set<&Frequency_Axis::Properties::wheel>(true)
.set<&Frequency_Axis::Properties::drag>(true)
.build(axes);
waterfall_time_axis =
Time_Axis::Builder(axes, Orientation::Vertical, &attach)
.set_visible_time_point_count(72)
.set_tick_label_spacing_px(34)
.set_time_format("mm:ss")
.set_tick_length(-8)
.set_sub_tick_length(-4)
.set_color(axis_color)
.build();
Time_Axis::Builder{&attach}
.set<&Time_Axis::Properties::orientation>(Orientation::Vertical)
.set<&Time_Axis::Properties::visible_count>(72)
.set<&Time_Axis::Properties::tick_label_spacing_px>(34)
.set<&Time_Axis::Properties::format>("mm:ss")
.set<&Time_Axis::Properties::tick_length>(-8)
.set<&Time_Axis::Properties::sub_tick_length>(-4)
.set<&Time_Axis::Properties::color>(axis_color)
.build(axes);
spectrum = Spectrum::Builder{&attach}
.set<&Spectrum::Properties::frequency_range>(initial_frequency)
.set<&Spectrum::Properties::frequency_point_size>(768)