2024-07-21 22:02:19 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <cmath>
|
|
|
|
|
|
|
|
|
|
#include "Engine.h"
|
2024-07-22 21:22:52 +03:00
|
|
|
#include "Vec.hpp"
|
2024-07-21 22:02:19 +03:00
|
|
|
|
|
|
|
|
enum class Color : uint32_t {
|
|
|
|
|
BLACK = 0x000000ff,
|
|
|
|
|
WHITE = 0x00ff6000,
|
|
|
|
|
|
|
|
|
|
BLUE = 0x000000ff,
|
|
|
|
|
GREEN = 0x0000ff00,
|
|
|
|
|
CYAN = 0x0000ffff,
|
|
|
|
|
RED = 0x00ff0000,
|
|
|
|
|
MAGENTA = 0x00ff00ff,
|
|
|
|
|
YELLOW = 0x00ffff00,
|
|
|
|
|
GRAY = 0x001f1f1f,
|
|
|
|
|
ORANGE = 0x00ff6000,
|
|
|
|
|
};
|
|
|
|
|
constexpr Color CL_BG = Color::BLACK;
|
|
|
|
|
|
|
|
|
|
using Screen = uint32_t[SCREEN_HEIGHT][SCREEN_WIDTH];
|
|
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
namespace canvas {
|
2024-07-21 22:02:19 +03:00
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
struct Object {
|
|
|
|
|
Veci pos;
|
|
|
|
|
Color color;
|
2024-07-21 22:02:19 +03:00
|
|
|
};
|
|
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
struct Square : public Object {
|
|
|
|
|
int side;
|
2024-07-21 22:02:19 +03:00
|
|
|
};
|
|
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
struct Circle : public Object {
|
|
|
|
|
int radius;
|
2024-07-21 22:02:19 +03:00
|
|
|
};
|
|
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
} // namespace canvas
|
2024-07-21 22:02:19 +03:00
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
namespace paint {
|
2024-07-21 22:02:19 +03:00
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
void square(const canvas::Square &s);
|
2024-07-21 22:02:19 +03:00
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
void circle(const canvas::Circle &c);
|
2024-07-21 22:02:19 +03:00
|
|
|
|
2024-07-22 21:22:52 +03:00
|
|
|
} // namespace paint
|