#pragma once

#include "AbstractVisualNode.h"
#include "BasicMaterial.h"

class MaterialNode : public AbstractVisualNode
{
public:
    MaterialNode(const Transform& transform);
    virtual ~MaterialNode();

    const BasicMaterial* getMaterial() const;

    void setHasStrokeColor(bool hasStroke);
    void setHasFillColor(bool hasFill);

    void setFillColor(const Color& color);
    void setStrokeColor(const Color& color);
protected:
    std::unique_ptr<BasicMaterial> mMaterial;
    bool mMaterialIsDirty{true};
};
