diff --git a/Kernel/src/renderive/renderable/Inheritance.hpp b/Kernel/src/renderive/renderable/Inheritance.hpp index 7f34cf2..40767cb 100644 --- a/Kernel/src/renderive/renderable/Inheritance.hpp +++ b/Kernel/src/renderive/renderable/Inheritance.hpp @@ -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 diff --git a/render_2D/render_2D/renderable/Renderable_Builder.h b/render_2D/render_2D/renderable/Renderable_Builder.h index b3e5d68..a51cba3 100644 --- a/render_2D/render_2D/renderable/Renderable_Builder.h +++ b/render_2D/render_2D/renderable/Renderable_Builder.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -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> paint_rely_; std::vector> render_rely_; std::vector> constructor_rely_; diff --git a/render_3D/render_3D/renderable/Renderable_Builder.h b/render_3D/render_3D/renderable/Renderable_Builder.h index 959dd50..a3e1b82 100644 --- a/render_3D/render_3D/renderable/Renderable_Builder.h +++ b/render_3D/render_3D/renderable/Renderable_Builder.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -28,10 +29,15 @@ struct Renderable_Builder { std::invoke(std::forward(configure), properties_); return *this; } + Self& set_object_name(std::string name) { + object_name_ = std::move(name); + return *this; + } [[nodiscard]] std::shared_ptr 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_; }; } diff --git a/web_server/app/render_2D/Gallery_Scene2D.cpp b/web_server/app/render_2D/Gallery_Scene2D.cpp index e802a5d..c937c74 100644 --- a/web_server/app/render_2D/Gallery_Scene2D.cpp +++ b/web_server/app/render_2D/Gallery_Scene2D.cpp @@ -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(sweep_bins_per_block)) .set<&Sweep_Spectrum::Properties::block_count>(static_cast(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(); } diff --git a/web_server/app/render_3D/Gallery_Scene3D.cpp b/web_server/app/render_3D/Gallery_Scene3D.cpp index 3bdd2dd..1ecb3f0 100644 --- a/web_server/app/render_3D/Gallery_Scene3D.cpp +++ b/web_server/app/render_3D/Gallery_Scene3D.cpp @@ -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_))