89 lines
3.5 KiB
C++
89 lines
3.5 KiB
C++
#include "Waterfall_p.h"
|
|
namespace YSG {
|
|
using WaterFall_Binding = Renderable_Binding<Waterfall, Waterfall_Private, Waterfall_Render_State, Waterfall_Input_Data>;
|
|
Waterfall::Waterfall() {
|
|
WaterFall_Binding::init(this, "WaterFall");
|
|
}
|
|
Waterfall_Private* Waterfall::d() {
|
|
return WaterFall_Binding::d(this);
|
|
}
|
|
Render_Data* Waterfall::create_render_data() {
|
|
return WaterFall_Binding::create_render_data();
|
|
}
|
|
Render_State* Waterfall::create_render_state() {
|
|
return WaterFall_Binding::create_render_state();
|
|
}
|
|
Input_Data* Waterfall::create_input_data() {
|
|
return WaterFall_Binding::create_input_data();
|
|
}
|
|
Frequent_Axis* Waterfall::frequent_axis(SRC src) {
|
|
return d()->state_value(&Waterfall_Render_State::frequent_axis, src);
|
|
}
|
|
void Waterfall::set_frequent_axis(Frequent_Axis* value) {
|
|
d()->set_state_value(&Waterfall_Render_State::frequent_axis, value);
|
|
}
|
|
Time_Axis* Waterfall::time_axis(SRC src) {
|
|
return d()->state_value(&Waterfall_Render_State::time_axis, src);
|
|
}
|
|
void Waterfall::set_time_axis(Time_Axis* value) {
|
|
d()->set_state_value(&Waterfall_Render_State::time_axis, value);
|
|
}
|
|
Range Waterfall::frequent_range(SRC src) {
|
|
return d()->state_value(&Waterfall_Render_State::frequent_range, src);
|
|
}
|
|
void Waterfall::set_frequent_range(Range value) {
|
|
d()->set_state_value(&Waterfall_Render_State::frequent_range, std::move(value));
|
|
}
|
|
Range Waterfall::power_range(SRC src) {
|
|
return d()->state_value(&Waterfall_Render_State::power_range, src);
|
|
}
|
|
void Waterfall::set_power_range(Range value) {
|
|
d()->set_state_value(&Waterfall_Render_State::power_range, std::move(value));
|
|
}
|
|
int Waterfall::frequent_point_size(SRC src) {
|
|
return d()->state_value(&Waterfall_Render_State::frequent_point_size, src);
|
|
}
|
|
void Waterfall::set_frequent_point_size(int value) {
|
|
d()->set_state_value(&Waterfall_Render_State::frequent_point_size, value);
|
|
}
|
|
bool Waterfall::visible_range_only(SRC src) {
|
|
return d()->state_value(&Waterfall_Render_State::visible_range_only, src);
|
|
}
|
|
void Waterfall::set_visible_range_only(bool value) {
|
|
d()->set_state_value(&Waterfall_Render_State::visible_range_only, value);
|
|
}
|
|
Image_Interpolation_Mode Waterfall::interpolation_mode(SRC src) {
|
|
return d()->state_value(&Waterfall_Render_State::interpolation_mode, src);
|
|
}
|
|
void Waterfall::set_interpolation_mode(Image_Interpolation_Mode value) {
|
|
d()->set_state_value(&Waterfall_Render_State::interpolation_mode, value);
|
|
}
|
|
void Waterfall::give_data(int tick, const QVector<double>& data) {
|
|
if (!ok())
|
|
return;
|
|
Render_Input_Lease<Waterfall_Private, Waterfall_Input_Data> input(d());
|
|
input->mDataList.push_back({tick, data});
|
|
}
|
|
Waterfall::Builder::Builder(Frequent_Axis* frequent_axis, Time_Axis* time_axis) {
|
|
ASSERT(frequent_axis->mPlot != nullptr, "Afterglow build error! frequent_axis->mPlot == nullptr");
|
|
ASSERT(frequent_axis->mPlot == time_axis->mPlot, "Afterglow build error! frequent_axis->mPlot != time_axis->mPlot");
|
|
plot = frequent_axis->mPlot;
|
|
this->frequent_axis = frequent_axis;
|
|
this->time_axis = time_axis;
|
|
}
|
|
Waterfall* Waterfall::Builder::build() {
|
|
auto ret = new Waterfall();
|
|
ret->init(plot, layerName);
|
|
Waterfall_Private* pd = ret->d();
|
|
Waterfall_Render_State* sc = reinterpret_cast<Waterfall_Render_State*>(pd->state(State_Edit));
|
|
PROP_R(FrequentAxis*, frequent_axis)
|
|
PROP_R(TimeAxis*, time_axis)
|
|
PROP_R(Range, frequent_range)
|
|
PROP_R(Range, power_range)
|
|
PROP_R(int, frequent_point_size)
|
|
PROP_R(bool, visible_range_only)
|
|
PROP_R(Image_Interpolation_Mode, interpolation_mode)
|
|
return ret;
|
|
}
|
|
} // namespace YSG
|