#pragma once #include #include #include #include #include #include "variants/sprite_data.hpp" namespace BGTU::ComputerGraphicsLabWork::Impl { class ZoomedSceneSprite : public RendererApi::Sprite { private: public: ZoomedSceneSprite() = default; void draw(Utilities::DefaultVoxelDrawerCache::VoxelPainterImpl *frame, const SpriteData *data) const override { Utilities::ZoomedVoxelPainter zoomed_painter{frame, data->central_pixel_tl, data->pixel_size}; for (std::size_t i = 0; i < data->sub_sprites_count; i++) { zoomed_painter.current_owner = data->sub_sprites[i]; data->sub_sprites[i]->draw(&zoomed_painter, &data->shape_data); } } }; }