20 lines
1.2 KiB
C++
20 lines
1.2 KiB
C++
#include "bgtu/computer_graphics_lab_work/utilities/shapes/circle.hpp"
|
|
#include "../variants.hpp"
|
|
#include "../sprite_data.hpp"
|
|
#include "common_sprites.hpp"
|
|
|
|
namespace BGTU::ComputerGraphicsLabWork::Impl::Variants::Lab1 {
|
|
template<double z, RendererApi::Color::Transparent c, double center_distance_multiplier, double center_angle_degrees, double radius_multiplier>
|
|
static void _variant3_circle(Utilities::ZoomedVoxelPainter<BGTU::ComputerGraphicsLabWork::Utilities::DefaultVoxelDrawerCache::VoxelPainterImpl> *frame, SpriteData::ShapeData const *data) {
|
|
Utilities::Shapes::draw_circle_edge(frame, data->pos_rotated(data->radius * center_distance_multiplier, center_angle_degrees), data->radius * radius_multiplier, z, c);
|
|
}
|
|
|
|
variant_sprites variant3 = variant_sprites::make_light<
|
|
static_centered_circle_edge<4.0, {127, 127, 127}, 1.0>,
|
|
pos_rotated_polygon_edge<3.0, {0, 255, 0}, {1, 0}, {1, 120}, {1, -120}>,
|
|
_variant3_circle<2.0, {0, 255, 0}, 0.6666666666666, 0.0, 0.16666666666666666>,
|
|
_variant3_circle<2.0, {0, 255, 0}, 0.6666666666666, 120.0, 0.16666666666666666>,
|
|
_variant3_circle<2.0, {0, 255, 0}, 0.6666666666666, -120.0, 0.16666666666666666>,
|
|
static_centered_circle_edge<1.0, {0, 255, 0}, 0.5>
|
|
>();
|
|
} |