收敛set_object_name

This commit is contained in:
2026-08-18 10:08:53 +08:00
parent 97d2d1574b
commit 4581b3fc05
5 changed files with 29 additions and 13 deletions
@@ -36,6 +36,7 @@ struct Builder
using Business_Builder::Business_Builder;
using Business_Builder::set;
using Business_Builder::configure;
using Business_Builder::set_object_name;
using Business_Builder::build;
};
template <class Layer>
@@ -7,6 +7,7 @@
#include <functional>
#include <initializer_list>
#include <memory>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
@@ -46,6 +47,10 @@ struct Renderable_Builder {
render_rely_.assign(rely);
return *this;
}
Self& set_object_name(std::string name) {
object_name_ = std::move(name);
return *this;
}
const Properties& properties_value() const noexcept {
return properties_;
}
@@ -57,6 +62,7 @@ struct Renderable_Builder {
auto construct = std::exchange(constructor_, {});
auto result = construct(properties_);
if (!result) return {};
result->set_object_name(std::move(object_name_));
auto attach = Scene_2D_Base::attach_builder(*anchor);
attach.attach(result);
for (const auto& parent : paint_rely_) attach.add_display_parent(result, parent);
@@ -100,6 +106,7 @@ private:
Properties properties_{};
[[no_unique_address]] Validator validator_{};
Constructor constructor_;
std::string object_name_;
std::vector<renderive_Owner<Renderable>> paint_rely_;
std::vector<renderive_Owner<Renderable>> render_rely_;
std::vector<renderive_Owner<Renderable>> constructor_rely_;
@@ -5,6 +5,7 @@
#include <renderive/renderable/Inheritance.hpp>
#include <functional>
#include <memory>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
@@ -28,10 +29,15 @@ struct Renderable_Builder {
std::invoke(std::forward<Configure>(configure), properties_);
return *this;
}
Self& set_object_name(std::string name) {
object_name_ = std::move(name);
return *this;
}
[[nodiscard]] std::shared_ptr<Product> build() {
validator_(properties_);
auto construct = std::exchange(constructor_, {});
auto result = construct(properties_);
result->set_object_name(std::move(object_name_));
return ::renderive::inheritance::initialize(std::move(result), [](auto&) {});
}
private:
@@ -50,5 +56,6 @@ private:
Properties properties_{};
[[no_unique_address]] Validator validator_{};
Constructor constructor_;
std::string object_name_;
};
}
+11 -11
View File
@@ -244,6 +244,7 @@ private:
? Orientation::Horizontal
: Orientation::Vertical;
time_axis_ = Time_Axis::Builder{}
.set_object_name("Time Axis")
.set<&Time_Axis::Properties::orientation>(orientation)
.set<&Time_Axis::Properties::visible_count>(80)
.set<&Time_Axis::Properties::x>(left)
@@ -257,10 +258,10 @@ private:
.set_paint_rely({root})
.set_render_rely({root})
.build();
time_axis_->set_object_name("Time Axis");
}
if (!time_domain && !numeric_domain) {
frequency_axis_ = Frequency_Axis::Builder{}
.set_object_name("Frequency Axis")
.set<&Frequency_Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Frequency_Axis::Properties::coordinates>(Range{88'000'000.0, 108'000'000.0})
.set<&Frequency_Axis::Properties::x>(left)
@@ -272,9 +273,9 @@ private:
.set_paint_rely({root})
.set_render_rely({root})
.build();
frequency_axis_->set_object_name("Frequency Axis");
} else if (numeric_domain) {
domain_axis_ = Axis::Builder{}
.set_object_name("Domain Axis")
.set<&Axis::Properties::orientation>(Orientation::Horizontal)
.set<&Axis::Properties::coordinates>(
case_id_ == "constellation" ? Range{-1.25, 1.25} : Range{0.0, 300.0})
@@ -287,10 +288,10 @@ private:
.set_paint_rely({root})
.set_render_rely({root})
.build();
domain_axis_->set_object_name("Domain Axis");
}
if (case_id_ != "waterfall") {
value_axis_ = Axis::Builder{}
.set_object_name("Value Axis")
.set<&Axis::Properties::orientation>(Orientation::Vertical)
.set<&Axis::Properties::coordinates>(
case_id_ == "constellation"
@@ -303,10 +304,10 @@ private:
.set_paint_rely({root})
.set_render_rely({root})
.build();
value_axis_->set_object_name("Value Axis");
}
if (case_id_ == "spectrum" || case_id_ == "selection_overlay") {
spectrum_ = Spectrum::Builder(frequency_axis_, value_axis_)
.set_object_name("Spectrum")
.set<&Spectrum::Properties::frequency_range>(Range{88'000'000.0, 108'000'000.0})
.set<&Spectrum::Properties::frequency_point_size>(512)
.set<&Spectrum::Properties::center_frequency>(98'000'000.0)
@@ -317,27 +318,27 @@ private:
.set_paint_rely({root})
.set_render_rely({root})
.build();
spectrum_->set_object_name("Spectrum");
if (case_id_ == "selection_overlay") {
selection_ = Selection_Rectangle_Overlay::Builder(frequency_axis_, value_axis_)
.set_object_name("Selection Overlay")
.set<&Selection_Rectangle_Overlay::Properties::selection_brush>(
Brush{Color{23, 59, 102, 90}, Brush_Style::Solid})
.set_paint_rely({root})
.set_render_rely({root})
.build();
selection_->set_object_name("Selection Overlay");
}
} else if (case_id_ == "waterfall") {
waterfall_ = Waterfall::Builder(frequency_axis_, time_axis_)
.set_object_name("Waterfall")
.set<&Waterfall::Properties::frequency_range>(Range{88'000'000.0, 108'000'000.0})
.set<&Waterfall::Properties::power_range>(Range{-120.0, -20.0})
.set<&Waterfall::Properties::frequency_bin_count>(256)
.set_paint_rely({root})
.set_render_rely({root})
.build();
waterfall_->set_object_name("Waterfall");
} else if (case_id_ == "afterglow") {
afterglow_ = Afterglow::Builder(frequency_axis_, value_axis_)
.set_object_name("Afterglow")
.set<&Afterglow::Properties::frequency_range>(Range{88'000'000.0, 108'000'000.0})
.set<&Afterglow::Properties::power_range>(Range{-120.0, -20.0})
.set<&Afterglow::Properties::frequency_point_size>(192)
@@ -346,25 +347,25 @@ private:
.set_paint_rely({root})
.set_render_rely({root})
.build();
afterglow_->set_object_name("Afterglow");
} else if (case_id_ == "sweep_spectrum") {
sweep_ = Sweep_Spectrum::Builder(domain_axis_, value_axis_)
.set_object_name("Sweep Spectrum")
.set<&Sweep_Spectrum::Properties::frequency_range>(Range{0.0, 300.0})
.set<&Sweep_Spectrum::Properties::bins_per_block>(static_cast<int>(sweep_bins_per_block))
.set<&Sweep_Spectrum::Properties::block_count>(static_cast<int>(sweep_block_count))
.set_paint_rely({root})
.set_render_rely({root})
.build();
sweep_->set_object_name("Sweep Spectrum");
} else if (case_id_ == "frequency_trace") {
trace_ = Frequency_Trace::Builder(time_axis_, value_axis_)
.set_object_name("Frequency Trace")
.set<&Frequency_Trace::Properties::pen>(Pen{Color{53, 230, 178, 255}, 2.0})
.set_paint_rely({root})
.set_render_rely({root})
.build();
trace_->set_object_name("Frequency Trace");
} else if (case_id_ == "constellation") {
constellation_ = Constellation_Diagram::Builder(domain_axis_, value_axis_)
.set_object_name("Constellation Diagram")
.set<&Constellation_Diagram::Properties::i_range>(Range{-1.25, 1.25})
.set<&Constellation_Diagram::Properties::q_range>(Range{-1.25, 1.25})
.set<&Constellation_Diagram::Properties::point_color>(Color{73, 230, 195, 255})
@@ -372,7 +373,6 @@ private:
.set_paint_rely({root})
.set_render_rely({root})
.build();
constellation_->set_object_name("Constellation Diagram");
}
scene_->activate_view();
}
+3 -2
View File
@@ -208,8 +208,9 @@ private:
{{-0.55F, -0.25F, 0.0F}, {255, 80, 80, 255}, 24.0F},
{{0.0F, 0.45F, 0.0F}, {80, 255, 120, 255}, 28.0F},
{{0.55F, -0.1F, 0.0F}, {80, 140, 255, 255}, 26.0F}};
visual_ = Point_Visual::Builder(std::move(points)).build();
visual_->set_object_name(case_id_ + " Points");
visual_ = Point_Visual::Builder(std::move(points))
.set_object_name(case_id_ + " Points")
.build();
scene_ = Render_Scene_3D::Builder(visual_, make_strategy(mode))
.set<&Render_Scene_3D::Properties::viewport>(extent_)
.set<&Render_Scene_3D::Properties::visual_family>(visual_family(case_id_))