#pragma once #include "Color.h" #include "Transform.h" class SceneItem { public: enum class Type { MODEL, TEXT }; SceneItem(); virtual ~SceneItem() = default; const Color& getColor() const; const Transform& getTransform() const; virtual Type getType() const = 0; bool isVisible() const; void setIsVisible(bool isVisible); void updateUniformColor(const Color& color); void updateTransform(const Transform& transform); protected: Transform mTransform; Color mUniformColor; bool mColorIsDirty{true}; bool mTransformIsDirty{true}; bool mIsVisible{true}; };