112 lines
4.7 KiB
C++
112 lines
4.7 KiB
C++
#include <utility>
|
|
#include "../Axis/Abs_Axis.h"
|
|
#include "Sweep_Frequent_p.h"
|
|
namespace YSG {
|
|
using Sweep_Frequent_Binding = Renderable_Binding<Sweep_Frequent, Sweep_Frequent_Private, Sweep_Frequent_Render_State, Sweep_Frequent_Input_Data>;
|
|
Sweep_Frequent::Sweep_Frequent() {
|
|
Sweep_Frequent_Binding::init(this, "SweepFrequent");
|
|
}
|
|
Sweep_Frequent_Private* Sweep_Frequent::d() {
|
|
return Sweep_Frequent_Binding::d(this);
|
|
}
|
|
Render_Data* Sweep_Frequent::create_render_data() {
|
|
return Sweep_Frequent_Binding::create_render_data();
|
|
}
|
|
Render_State* Sweep_Frequent::create_render_state() {
|
|
return Sweep_Frequent_Binding::create_render_state();
|
|
}
|
|
Input_Data* Sweep_Frequent::create_input_data() {
|
|
return Sweep_Frequent_Binding::create_input_data();
|
|
}
|
|
Axis* Sweep_Frequent::frequent_axis(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::frequent_axis, src);
|
|
}
|
|
void Sweep_Frequent::set_frequent_axis(Axis* value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::frequent_axis, value);
|
|
}
|
|
Axis* Sweep_Frequent::power_axis(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::power_axis, src);
|
|
}
|
|
void Sweep_Frequent::set_power_axis(Axis* value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::power_axis, value);
|
|
}
|
|
Range Sweep_Frequent::frequent_range(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::frequent_range, src);
|
|
}
|
|
void Sweep_Frequent::set_frequent_range(Range value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::frequent_range, std::move(value));
|
|
}
|
|
int Sweep_Frequent::block_frequent_point_size(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::block_frequent_point_size, src);
|
|
}
|
|
void Sweep_Frequent::set_block_frequent_point_size(int value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::block_frequent_point_size, value);
|
|
}
|
|
int Sweep_Frequent::block_num(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::block_num, src);
|
|
}
|
|
void Sweep_Frequent::set_block_num(int value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::block_num, value);
|
|
}
|
|
QPen Sweep_Frequent::pen(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::pen, src);
|
|
}
|
|
void Sweep_Frequent::set_pen(QPen value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::pen, std::move(value));
|
|
}
|
|
QPen Sweep_Frequent::cur_frequent_pen(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::cur_frequent_pen, src);
|
|
}
|
|
void Sweep_Frequent::set_cur_frequent_pen(QPen value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::cur_frequent_pen, std::move(value));
|
|
}
|
|
bool Sweep_Frequent::visible_range_only(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::visible_range_only, src);
|
|
}
|
|
void Sweep_Frequent::set_visible_range_only(bool value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::visible_range_only, value);
|
|
}
|
|
Line_Interpolation_Mode Sweep_Frequent::interpolation_mode(SRC src) {
|
|
return d()->state_value(&Sweep_Frequent_Render_State::interpolation_mode, src);
|
|
}
|
|
void Sweep_Frequent::set_interpolation_mode(Line_Interpolation_Mode value) {
|
|
d()->set_state_value(&Sweep_Frequent_Render_State::interpolation_mode, value);
|
|
}
|
|
void Sweep_Frequent::give_data(const QVector<double>& data) {
|
|
if (!ok())
|
|
return;
|
|
Sweep_Frequent_Private* pd = d();
|
|
Render_State_Lease<Sweep_Frequent_Private, Sweep_Frequent_Render_State> state(pd);
|
|
int block_frequent_point_size = state->block_frequent_point_size;
|
|
if (data.size() != block_frequent_point_size) {
|
|
qDebug() << "error data size == " << data.size() << " BlockFrquentPointSize" << block_frequent_point_size;
|
|
return;
|
|
}
|
|
Render_Input_Lease<Sweep_Frequent_Private, Sweep_Frequent_Input_Data> input(pd);
|
|
input->mData.push_front(data);
|
|
}
|
|
Sweep_Frequent::Builder::Builder(Axis* frequent_axis, Axis* power_axis) {
|
|
ASSERT(frequent_axis->mPlot != nullptr, "Afterglow build error! frequent_axis->mPlot == nullptr");
|
|
ASSERT(frequent_axis->mPlot == power_axis->mPlot, "Afterglow build error! frequent_axis->mPlot != power_axis->mPlot");
|
|
plot = frequent_axis->mPlot;
|
|
this->frequent_axis = frequent_axis;
|
|
this->power_axis = power_axis;
|
|
}
|
|
Sweep_Frequent* Sweep_Frequent::Builder::build() {
|
|
auto ret = new Sweep_Frequent();
|
|
ret->init(plot, layerName);
|
|
Sweep_Frequent_Private* pd = ret->d();
|
|
Sweep_Frequent_Render_State* sc = reinterpret_cast<Sweep_Frequent_Render_State*>(pd->state(State_Edit));
|
|
PROP_R(Axis*, frequent_axis)
|
|
PROP_R(Axis*, power_axis)
|
|
PROP_R(Range, frequent_range)
|
|
PROP_R(int, block_frequent_point_size)
|
|
PROP_R(int, block_num)
|
|
PROP_R(QPen, pen)
|
|
PROP_R(QPen, cur_frequent_pen)
|
|
PROP_R(bool, visible_range_only)
|
|
PROP_R(Line_Interpolation_Mode, interpolation_mode)
|
|
return ret;
|
|
}
|
|
} // namespace YSG
|