#ifndef RENDERABLE2D_H #define RENDERABLE2D_H #include #include "Scaler2D.h" #include "RenderParams2D.h" class Renderable2D { private: bool visible = true; public: virtual ~Renderable2D() {;} /** show/hide this element */ void setVisible(const bool visible) {this->visible = visible;} /** is this element currently visible? */ bool isVisible() const {return this->visible;} /** render this element */ void render(QPainter& qp, const Scaler2D& s, const RenderParams2D& p) { if (!visible) {return;} doRender(qp, s, p); } protected: /** subclasses render themselves here */ virtual void doRender(QPainter& qp, const Scaler2D& s, const RenderParams2D& p) = 0; }; #endif // RENDERABLE2D_H