#pragma once #include "../RenderAble.h" namespace YSG { enum class Planisphere_Type {Psk8 = 8}; struct PlanispherePrivate; class LIB_DECL Planisphere : public RenderAble { public: Q_Ptr2(Planisphere) void giveData(QPointF pos); PROP(Axis*, IAxis) PROP(Axis*, QAxis) PROP(Range, IRange) PROP(Range, QRange) PROP(QColor, pointColor) PROP(QColor, anchorColor) PROP(int, continueMillisecond) PROP(Planisphere_Type, type) void setToAxisCenter(); struct Builder; }; struct Planisphere_Prop { Axis *IAxis{}; Axis *QAxis{}; Range IRange{0, 100}; Range QRange{0, 100}; QColor pointColor = Qt::red; QColor anchorColor = Qt::yellow; int continueMillisecond = 1000; Planisphere_Type type = Planisphere_Type::Psk8; }; struct LIB_DECL Planisphere::Builder : Planisphere_Prop { PROP_B(Axis*, IAxis) PROP_B(Axis*, QAxis) PROP_B(Range, IRange) PROP_B(Range, QRange) PROP_B(QColor, pointColor) PROP_B(QColor, anchorColor) PROP_B(int, continueMillisecond) PROP_B(Planisphere_Type, type) SETTER(QString, layerName, "plottable") Builder(Axis* IAxis, Axis* QAxis); Planisphere* build(); protected: Plot *plot{}; }; }