#pragma once
#include <memory>

class GeometryElement;
class TextElement;

class VisualLayer
{
    std::unique_ptr<GeometryElement> mShape;
    std::unique_ptr<TextElement> mText;

public:

    VisualLayer();

    static std::unique_ptr<VisualLayer> Create();

    GeometryElement* GetShape() const;
    TextElement* GetText() const;
    bool HasShape() const;
    bool HasText() const;
    void SetShape(std::unique_ptr<GeometryElement> shape);
    void SetText(std::unique_ptr<TextElement> text);
};
using VisualLayerUPtr = std::unique_ptr<VisualLayer>;
