#ifndef HOLESOME_COLLECTABLE_SIM_GROUND_HPP #define HOLESOME_COLLECTABLE_SIM_GROUND_HPP #include #include #include "collectable_sim_ground_segment.hpp" class CollectableSimGround { public: CollectableSimGround(std::shared_ptr world, float groundWidth = 1000); void closeAllHoles(); void setGroundWidth(float width); private: std::vector> segments; std::shared_ptr world; float groundWidth; struct SideSegments { std::shared_ptr left; std::shared_ptr right; }; SideSegments getOuterSegments(int holeId = -1); void updateOuterSegmentsToWidth(); }; #endif //HOLESOME_COLLECTABLE_SIM_GROUND_HPP