#pragma once #include "../../render_2D/src/export.h" #include #include #include #include namespace renderive { struct Abs_Plot_Private; class Latency_Eager_Plot; class Explicit_Plot; class LIB_DECL Abs_Plot : public QWidget { Q_OBJECT public: virtual void init(); [[nodiscard]] QColor background_color() const; [[nodiscard]] Scene2D* scene() const; [[nodiscard]] renderive_Owner root_renderable() const; void set_background_color(const QColor& color); ~Abs_Plot() override; protected: explicit Abs_Plot(Abs_Plot_Private* private_data); void start_render_timer(); void stop_render_timer(); void update_render_interval(); bool event(QEvent* event) final; void paintEvent(QPaintEvent* event) final; Abs_Plot_Private* d{}; }; } // namespace renderive