修复若干bug
This commit is contained in:
@@ -4,69 +4,69 @@
|
||||
#include "../base/Memory.h"
|
||||
#include "Constellation_Diagram_p.h"
|
||||
namespace renderive {
|
||||
RENDERIVE_DEFINE_RENDERABLE_BINDING(Constellation_Diagram, Constellation_Diagram_Private, Planisphere_Render_State, Planisphere_Input_Data, "Planisphere")
|
||||
RENDERIVE_DEFINE_RENDERABLE_BINDING(Constellation_Diagram, Constellation_Diagram_Private, Constellation_Diagram_State, Constellation_Diagram_Input_Data, "Planisphere")
|
||||
std::shared_ptr<Axis> Constellation_Diagram::i_axis() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::i_axis).lock();
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::i_axis).lock();
|
||||
}
|
||||
void Constellation_Diagram::set_i_axis(std::shared_ptr<Axis> value) {
|
||||
d()->set_state_value(&Planisphere_Render_State::i_axis, std::weak_ptr<Axis>(value));
|
||||
d()->set_state_value(&Constellation_Diagram_State::i_axis, std::weak_ptr<Axis>(value));
|
||||
}
|
||||
std::shared_ptr<Axis> Constellation_Diagram::q_axis() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::q_axis).lock();
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::q_axis).lock();
|
||||
}
|
||||
void Constellation_Diagram::set_q_axis(std::shared_ptr<Axis> value) {
|
||||
d()->set_state_value(&Planisphere_Render_State::q_axis, std::weak_ptr<Axis>(value));
|
||||
d()->set_state_value(&Constellation_Diagram_State::q_axis, std::weak_ptr<Axis>(value));
|
||||
}
|
||||
Range Constellation_Diagram::i_range() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::i_range);
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::i_range);
|
||||
}
|
||||
void Constellation_Diagram::set_i_range(Range value) {
|
||||
if (value.length() == 0.0)
|
||||
return;
|
||||
d()->set_state_value(&Planisphere_Render_State::i_range, std::move(value));
|
||||
d()->set_state_value(&Constellation_Diagram_State::i_range, std::move(value));
|
||||
}
|
||||
Range Constellation_Diagram::q_range() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::q_range);
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::q_range);
|
||||
}
|
||||
void Constellation_Diagram::set_q_range(Range value) {
|
||||
if (value.length() == 0.0)
|
||||
return;
|
||||
d()->set_state_value(&Planisphere_Render_State::q_range, std::move(value));
|
||||
d()->set_state_value(&Constellation_Diagram_State::q_range, std::move(value));
|
||||
}
|
||||
Color Constellation_Diagram::point_color() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::point_color);
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::point_color);
|
||||
}
|
||||
void Constellation_Diagram::set_point_color(Color value) {
|
||||
d()->set_state_value(&Planisphere_Render_State::point_color, std::move(value));
|
||||
d()->set_state_value(&Constellation_Diagram_State::point_color, std::move(value));
|
||||
}
|
||||
Color Constellation_Diagram::anchor_color() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::anchor_color);
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::anchor_color);
|
||||
}
|
||||
void Constellation_Diagram::set_anchor_color(Color value) {
|
||||
d()->set_state_value(&Planisphere_Render_State::anchor_color, std::move(value));
|
||||
d()->set_state_value(&Constellation_Diagram_State::anchor_color, std::move(value));
|
||||
}
|
||||
int Constellation_Diagram::point_lifetime_ms() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::point_lifetime_ms);
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::point_lifetime_ms);
|
||||
}
|
||||
void Constellation_Diagram::set_point_lifetime_ms(int value) {
|
||||
d()->set_state_value(&Planisphere_Render_State::point_lifetime_ms, std::max(1, value));
|
||||
d()->set_state_value(&Constellation_Diagram_State::point_lifetime_ms, std::max(1, value));
|
||||
}
|
||||
Constellation_Diagram_Type Constellation_Diagram::type() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::type);
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::type);
|
||||
}
|
||||
void Constellation_Diagram::set_type(Constellation_Diagram_Type value) {
|
||||
d()->set_state_value(&Planisphere_Render_State::type, value);
|
||||
d()->set_state_value(&Constellation_Diagram_State::type, value);
|
||||
}
|
||||
double Constellation_Diagram::phase_offset_radians() {
|
||||
return d()->edit_state_value(&Planisphere_Render_State::phase_offset_radians);
|
||||
return d()->edit_state_value(&Constellation_Diagram_State::phase_offset_radians);
|
||||
}
|
||||
void Constellation_Diagram::set_phase_offset_radians(double value) {
|
||||
d()->set_state_value(&Planisphere_Render_State::phase_offset_radians, value);
|
||||
d()->set_state_value(&Constellation_Diagram_State::phase_offset_radians, value);
|
||||
}
|
||||
void Constellation_Diagram::append_point(PointF pos) {
|
||||
if (!ok())
|
||||
return;
|
||||
Render_Input_Lease<Constellation_Diagram_Private, Planisphere_Input_Data> input(d());
|
||||
Render_Input_Lease<Constellation_Diagram_Private, Constellation_Diagram_Input_Data> input(d());
|
||||
input->push(pos);
|
||||
}
|
||||
Constellation_Diagram::Builder::Builder(std::shared_ptr<Renderable> parent, std::shared_ptr<Axis> i_axis, std::shared_ptr<Axis> q_axis) {
|
||||
@@ -84,7 +84,7 @@ std::shared_ptr<Constellation_Diagram> Constellation_Diagram::Builder::build() {
|
||||
auto ret = renderive::make_shared<Constellation_Diagram>();
|
||||
ret->init(parent);
|
||||
Constellation_Diagram_Private* pd = ret->d();
|
||||
Planisphere_Render_State* sc = reinterpret_cast<Planisphere_Render_State*>(pd->state(State_Edit));
|
||||
Constellation_Diagram_State* sc = reinterpret_cast<Constellation_Diagram_State*>(pd->state(State_Edit));
|
||||
PROP_R(std::weak_ptr<Axis>, i_axis)
|
||||
PROP_R(std::weak_ptr<Axis>, q_axis)
|
||||
PROP_R(Range, i_range)
|
||||
@@ -92,7 +92,7 @@ std::shared_ptr<Constellation_Diagram> Constellation_Diagram::Builder::build() {
|
||||
PROP_R(Color, point_color)
|
||||
PROP_R(Color, anchor_color)
|
||||
PROP_R(int, point_lifetime_ms)
|
||||
PROP_R(Planisphere_Type, type)
|
||||
PROP_R(Constellation_Diagram_Type, type)
|
||||
PROP_R(double, phase_offset_radians)
|
||||
if (sc->i_range.length() == 0.0)
|
||||
sc->i_range = {0.0, 1.0};
|
||||
@@ -102,7 +102,7 @@ std::shared_ptr<Constellation_Diagram> Constellation_Diagram::Builder::build() {
|
||||
return ret;
|
||||
}
|
||||
void Constellation_Diagram::fit_square_to_axes() {
|
||||
Planisphere_Render_State* s = reinterpret_cast<Planisphere_Render_State*>(d()->state(State_Edit));
|
||||
Constellation_Diagram_State* s = reinterpret_cast<Constellation_Diagram_State*>(d()->state(State_Edit));
|
||||
auto i_axis = s->i_axis.lock();
|
||||
auto q_axis = s->q_axis.lock();
|
||||
if (!i_axis || !q_axis)
|
||||
|
||||
Reference in New Issue
Block a user