#ifndef NOTEGRAPHICSENTITY_H #define NOTEGRAPHICSENTITY_H #include #include class NoteGraphicsEntity : public sf::Drawable, public sf::Transformable { public: explicit NoteGraphicsEntity(); virtual ~NoteGraphicsEntity() = 0; virtual void update() = 0; virtual void attach() noexcept final; virtual void detach() noexcept final; virtual void onKeyPressed() = 0; virtual void onKeyReleased() = 0; virtual void show() = 0; virtual void killAsExpired() = 0; virtual void reset() = 0; virtual bool isActive() const = 0; protected: bool _attached; }; #endif