#pragma once #include "MaterialNode.h" #include "Color.h" class SceneModel; class GridNode : public MaterialNode { public: GridNode(const Transform& transform); void setNumX(std::size_t numX); void setNumY(std::size_t numY); void setData(const std::vector& colors); SceneItem* getSceneItem(std::size_t idx) const override; std::size_t getNumSceneItems() const override; void update(SceneInfo* sceneInfo) override; void setWidth(double width); void setHeight(double height); private: std::size_t mNumberX{5}; std::size_t mNumberY{5}; double mWidth{1}; double mHeight{1}; bool mDataDirty = true; bool mGeometryIsDirty = true; std::vector mData; std::unique_ptr mBackgroundModel; std::unique_ptr mOutlineModel; };