#pragma once

#include "GeometryNode.h"

#include <memory>

class RectangleNode : public GeometryNode
{
public:
    RectangleNode(const Transform& transform, double width, double height);
    static std::unique_ptr<RectangleNode> Create(const Transform& transform, double width, double height);

    GeometryNode::Type getType() override;

    double getWidth() const;
    double getHeight() const;
    double getRadius() const;

    void setWidth(double width);
    void setHeight(double height);
    void setRadius(double radius);

private:
    void createOrUpdateGeometry(SceneInfo* sceneInfo) override;

    double mWidth{1};
    double mHeight{1};
    double mRadius{ 0.0 };
};

using RectangleNodePtr = std::unique_ptr<RectangleNode>;


