#include #include #include #include "../variants.hpp" #include "../sprite_data.hpp" namespace BGTU::ComputerGraphicsLabWork::Lab1 { namespace Variant1 { class S1 : public RendererApi::Sprite> { public: void draw( BGTU::ComputerGraphicsLabWork::Utilities::ZoomedVoxelPainter *frame, const BGTU::ComputerGraphicsLabWork::Lab1::Lab1SpriteData::ShapeData *data ) const final { Utilities::Shapes::draw_polygon_edge( frame, {data->neg_rotated(data->radius / 2, 0), data->neg_rotated(data->radius / 2, 90), data->neg_rotated(data->radius / 2, 180), data->neg_rotated(data->radius / 2, 270),}, 1, {255, 0, 0} ); } }; class S2 : public RendererApi::Sprite> { public: void draw( BGTU::ComputerGraphicsLabWork::Utilities::ZoomedVoxelPainter *frame, const BGTU::ComputerGraphicsLabWork::Lab1::Lab1SpriteData::ShapeData *data ) const final { Utilities::Shapes::draw_polygon_edge( frame, { {data->radius, 0}, {0, data->radius}, {-data->radius, 0}, {0, -data->radius} }, 2, {0, 255, 255} ); } }; } variant_sprites variant1 = variant_sprites::make(Variant1::S1{}, Variant1::S2{}); }