42 lines
651 B
C
42 lines
651 B
C
|
#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};
|
||
|
};
|