#pragma once #include #include #include "DrawData.hpp" #include #include #include using namespace Eigen; class MainProgram; class GridManager { public: GridManager(MainProgram& initMain); void draw(SkCanvas* canvas, const DrawData& drawData); enum GridType : unsigned { GRIDTYPE_NONE = 0, GRIDTYPE_CIRCLEDOT, GRIDTYPE_SQUAREDOT, GRIDTYPE_LINE }; GridType gridType = GRIDTYPE_CIRCLEDOT; private: Vector2f oldWindowSize{0.0f, 0.0f}; WorldScalar size{50000000}; SkPath gridPath; sk_sp circleDotShader; sk_sp squareDotShader; sk_sp lineShader; MainProgram& main; }; NLOHMANN_JSON_SERIALIZE_ENUM(GridManager::GridType, { {GridManager::GRIDTYPE_NONE, "None"}, {GridManager::GRIDTYPE_CIRCLEDOT, "Circle Dot"}, {GridManager::GRIDTYPE_SQUAREDOT, "Square Dot"}, {GridManager::GRIDTYPE_LINE, "Line"} })