修改一些
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
#include "Web_Plot_Session.h"
|
||||
#include "Pixel_Frame.h"
|
||||
#include "render_2D/scene/Render_Scene_2D.h"
|
||||
#include <renderive/error/Error_Policy.hpp>
|
||||
|
||||
#include <memory>
|
||||
#include <stdexcept>
|
||||
#include <type_traits>
|
||||
|
||||
namespace renderive::web {
|
||||
@@ -12,10 +15,14 @@ struct Web_Plot_Session::Impl {
|
||||
|
||||
Impl() { rebuild(); }
|
||||
void rebuild() {
|
||||
scene = Render_Scene_2D::Builder(
|
||||
auto built_scene = Render_Scene_2D::Builder(
|
||||
std::make_shared<Low_Latency_Render_Scene_2D_Strategy>())
|
||||
.set<&Render_Scene_2D::Properties::viewport>(viewport)
|
||||
.build();
|
||||
if (!built_scene)
|
||||
::renderive::error::unexpected<std::logic_error>(
|
||||
"web plot scene topology validation failed");
|
||||
scene = std::move(*built_scene);
|
||||
scene->activate_view();
|
||||
}
|
||||
std::optional<Web_Response> handle(const Web_Event& event) {
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
#include "render_2D/plottable/Waterfall.h"
|
||||
#include "render_2D/scene/Render_Scene_2D.h"
|
||||
|
||||
#include <renderive/error/Error_Policy.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
@@ -22,6 +24,7 @@
|
||||
#include <memory>
|
||||
#include <numbers>
|
||||
#include <span>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -225,11 +228,11 @@ public:
|
||||
|
||||
private:
|
||||
void rebuild(Gallery_Frame_Mode mode) {
|
||||
scene_ = Render_Scene_2D::Builder(make_strategy(mode))
|
||||
auto scene_builder = Render_Scene_2D::Builder(make_strategy(mode));
|
||||
scene_builder
|
||||
.set<&Render_Scene_2D::Properties::viewport>(viewport_)
|
||||
.set<&Render_Scene_2D::Properties::background>(Color{3, 8, 14, 255})
|
||||
.build();
|
||||
const auto root = scene_->root_renderable();
|
||||
.set<&Render_Scene_2D::Properties::background>(Color{3, 8, 14, 255});
|
||||
const auto root = scene_builder.root_renderable();
|
||||
const bool numeric_domain =
|
||||
case_id_ == "sweep_spectrum" || case_id_ == "constellation";
|
||||
const bool time_domain = case_id_ == "frequency_trace";
|
||||
@@ -244,7 +247,6 @@ 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,11 +259,12 @@ private:
|
||||
.set<&Time_Axis::Properties::color>(Color{69, 221, 190, 255})
|
||||
.set_paint_rely({root})
|
||||
.set_render_rely({root})
|
||||
.set_object_name("Time Axis")
|
||||
.build();
|
||||
scene_builder.add_renderable(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,10 +275,11 @@ private:
|
||||
.set<&Frequency_Axis::Properties::drag>(true)
|
||||
.set_paint_rely({root})
|
||||
.set_render_rely({root})
|
||||
.set_object_name("Frequency Axis")
|
||||
.build();
|
||||
scene_builder.add_renderable(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,11 +291,12 @@ private:
|
||||
.set<&Axis::Properties::drag>(true)
|
||||
.set_paint_rely({root})
|
||||
.set_render_rely({root})
|
||||
.set_object_name("Domain Axis")
|
||||
.build();
|
||||
scene_builder.add_renderable(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,11 +308,12 @@ private:
|
||||
.set<&Axis::Properties::color>(Color{118, 145, 184, 255})
|
||||
.set_paint_rely({root})
|
||||
.set_render_rely({root})
|
||||
.set_object_name("Value Axis")
|
||||
.build();
|
||||
scene_builder.add_renderable(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,28 +323,31 @@ private:
|
||||
.set<&Spectrum::Properties::min_pen>(Pen{Color{122, 162, 255, 255}, 1.2})
|
||||
.set_paint_rely({root})
|
||||
.set_render_rely({root})
|
||||
.set_object_name("Spectrum")
|
||||
.build();
|
||||
scene_builder.add_renderable(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})
|
||||
.set_object_name("Selection Overlay")
|
||||
.build();
|
||||
scene_builder.add_renderable(selection_);
|
||||
}
|
||||
} 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})
|
||||
.set_object_name("Waterfall")
|
||||
.build();
|
||||
scene_builder.add_renderable(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,34 +355,44 @@ private:
|
||||
.set<&Afterglow::Properties::attenuation_rate>(0.18)
|
||||
.set_paint_rely({root})
|
||||
.set_render_rely({root})
|
||||
.set_object_name("Afterglow")
|
||||
.build();
|
||||
scene_builder.add_renderable(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})
|
||||
.set_object_name("Sweep Spectrum")
|
||||
.build();
|
||||
scene_builder.add_renderable(sweep_);
|
||||
} 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})
|
||||
.set_object_name("Frequency Trace")
|
||||
.build();
|
||||
scene_builder.add_renderable(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})
|
||||
.set<&Constellation_Diagram::Properties::anchor_color>(Color{255, 209, 102, 255})
|
||||
.set_paint_rely({root})
|
||||
.set_render_rely({root})
|
||||
.set_object_name("Constellation Diagram")
|
||||
.build();
|
||||
scene_builder.add_renderable(constellation_);
|
||||
}
|
||||
auto built_scene = scene_builder.build();
|
||||
if (!built_scene)
|
||||
::renderive::error::unexpected<std::logic_error>(
|
||||
"gallery 2D scene topology validation failed");
|
||||
scene_ = std::move(*built_scene);
|
||||
scene_->activate_view();
|
||||
}
|
||||
void update_samples() {
|
||||
|
||||
@@ -5,10 +5,13 @@
|
||||
#include "../common/Pixel_Frame.h"
|
||||
#include "render_3D/Render_Scene_3D.h"
|
||||
|
||||
#include <renderive/error/Error_Policy.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -211,10 +214,14 @@ private:
|
||||
visual_ = Point_Visual::Builder(std::move(points))
|
||||
.set_object_name(case_id_ + " Points")
|
||||
.build();
|
||||
scene_ = Render_Scene_3D::Builder(visual_, make_strategy(mode))
|
||||
auto built_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_))
|
||||
.build();
|
||||
if (!built_scene)
|
||||
::renderive::error::unexpected<std::logic_error>(
|
||||
"gallery 3D scene topology validation failed");
|
||||
scene_ = std::move(*built_scene);
|
||||
}
|
||||
|
||||
std::string case_id_;
|
||||
|
||||
Reference in New Issue
Block a user