#pragma once #include "drape_frontend/traffic_generator.hpp" #include "drape/gpu_program_manager.hpp" #include "drape/pointers.hpp" #include "drape/uniform_values_storage.hpp" #include "geometry/screenbase.hpp" #include "geometry/spline.hpp" #include "std/map.hpp" #include "std/vector.hpp" #include "std/unordered_map.hpp" namespace df { class TrafficRenderer final { public: TrafficRenderer() = default; void AddRenderData(ref_ptr mng, vector && renderData); void SetTexCoords(unordered_map && texCoords); void UpdateTraffic(vector const & trafficData); void RenderTraffic(ScreenBase const & screen, int zoomLevel, ref_ptr mng, dp::UniformValuesStorage const & commonUniforms); void Clear(); private: vector m_renderData; unordered_map m_texCoords; unordered_map m_handles; }; } // namespace df