#pragma once #include "drape_frontend/map_shape.hpp" #include "drape_frontend/shape_view_params.hpp" #include "drape/pointers.hpp" #include "geometry/point2d.hpp" #include "std/vector.hpp" namespace df { struct BuildingOutline { buffer_vector m_vertices; vector m_indices; vector m_normals; }; class AreaShape : public MapShape { public: AreaShape(vector && triangleList, BuildingOutline && buildingOutline, AreaViewParams const & params); void Draw(ref_ptr batcher, ref_ptr textures) const override; private: void DrawArea(ref_ptr batcher, m2::PointD const & colorUv, m2::PointD const & outlineUv, ref_ptr texture) const; void DrawArea3D(ref_ptr batcher, m2::PointD const & colorUv, m2::PointD const & outlineUv, ref_ptr texture) const; vector m_vertexes; BuildingOutline m_buildingOutline; AreaViewParams m_params; }; } // namespace df