#pragma once #include "../renderable/Renderable.h" #include #include #include #include #include namespace renderive::detail { using Plottable_Real_Time_Data_Observer = Observer_State; inline Plottable_Real_Time_Data_Observer observe_real_time_data(Renderable& renderable) { return Plottable_Real_Time_Data_Observer(Frame_Strategy_Real_Time_Data_Observer(renderable)); } template class Plottable_Latest_Real_Time_Data : public Latest_Real_Time_Data { using Base = Latest_Real_Time_Data; public: explicit Plottable_Latest_Real_Time_Data(Renderable& owner) : Base(observe_real_time_data(owner)), binding_(this->bind_renderable(owner)) {} private: Real_Time_Data_Binding binding_; }; template class Plottable_History_Real_Time_Data : public History_Real_Time_Data { using Base = History_Real_Time_Data; public: explicit Plottable_History_Real_Time_Data(Renderable& owner) : Base(observe_real_time_data(owner)), binding_(this->bind_renderable(owner)) {} private: Real_Time_Data_Binding binding_; }; }