#pragma once #include #include namespace frostbite2D { class GameMapLayer : public Actor { public: static constexpr size_t kInvalidMoveAreaIndex = static_cast(-1); void Render() override; void SetDebugFeasibleAreaPolygon(const std::vector& polygon); void AddDebugMoveAreaInfo(const Rect& rect, size_t index); void SetDebugHighlightedMoveAreaIndex(size_t index); void ClearDebugAreaInfo(); void AddObject(RefPtr obj); private: struct DebugMoveAreaInfo { Rect rect; size_t index = kInvalidMoveAreaIndex; }; std::vector feasibleAreaPolygon_; std::vector feasibleAreaFillRects_; std::vector moveAreaInfoList_; size_t highlightedMoveAreaIndex_ = kInvalidMoveAreaIndex; }; } // namespace frostbite2D