6#include "../utils/logger.hpp"
7#include <cereal/archives/json.hpp>
8#include <box2d/types.h>
21 static constexpr float scale = 0.01f;
52 Color(std::string hexCode);
53 Color(
const std::string &hexCode,
int a);
55 operator SDL_Color()
const {
return {
r,
g,
b,
a}; };
56 operator SDL_FColor()
const {
return {
r / 255.0f,
g / 255.0f,
b / 255.0f,
a / 255.0f}; };
65 template <
class Archive>
102 operator b2Vec2()
const {
return {
x,
y}; };
105 return std::sqrt((
x - other.
x) * (
x - other.
x) + (
y - other.
y) * (
y - other.
y));
108 template <
class Archive>
111 ar(CEREAL_NVP(
x), CEREAL_NVP(
y));
163 other.handle =
nullptr;
170 SDL_DestroyTexture(
handle);
172 window = other.window;
177 path = std::move(other.path);
178 other.handle =
nullptr;
183 template <
class Archive>
189 template <
class Archive>
198 this->window = window;
210 std::shared_ptr<Window> window;
233 template <
class Archive>
236 ar(cereal::make_nvp(
"matrix",
m));
279 static float degToRad(
float degrees);
280 static float radToDeg(
float radians);
282 template <
class Archive>
300 template <
class Archive>
306 operator SDL_Rect()
const
332 template <
class Archive>
338 template <
class Archive>
387 template <
typename... Args>
390 (this->frames.push_back(
frames), ...);
393 template <
class Archive>
399 template <
class Archive>
415 explicit Polygon(
const b2Polygon &polygon);
423 operator b2Polygon()
const;
425 template <
class Archive>
440 explicit Circle(
const b2Circle &circle);
445 operator b2Circle()
const;
447 template <
class Archive>
461 explicit Capsule(
const b2Capsule &capsule);
467 operator b2Capsule()
const;
469 template <
class Archive>
483 explicit Segment(
const b2Segment &segment);
488 operator b2Segment()
const;
490 template <
class Archive>
516 template <
class Archive>
522 template <
class Archive>
Definition definitions.hpp:372
std::string texturePath
Definition definitions.hpp:380
std::string name
Definition definitions.hpp:376
TextureScaling textureScaling
Definition definitions.hpp:381
std::vector< Frame > frames
Definition definitions.hpp:378
Animation(std::string _name="Animation", int _fps=30, Vector2 _size={0, 0}, bool _loop=true, bool _autoplay=false)
Definition definitions.hpp:374
bool loop
Definition definitions.hpp:384
void load(Archive &ar)
Definition definitions.hpp:400
int fps
Definition definitions.hpp:377
void addFrames(Args... frames)
Definition definitions.hpp:388
bool autoplay
Definition definitions.hpp:385
Vector2 size
Definition definitions.hpp:383
void save(Archive &ar) const
Definition definitions.hpp:394
Definition definitions.hpp:41
Uint8 b
Definition definitions.hpp:45
static const Color GREEN
Definition definitions.hpp:61
static const Color WHITE
Definition definitions.hpp:58
Uint8 g
Definition definitions.hpp:44
static const Color BLACK
Definition definitions.hpp:59
static const Color BLUE
Definition definitions.hpp:62
Uint8 r
Definition definitions.hpp:43
void serialize(Archive &ar)
Definition definitions.hpp:66
static const Color TRANSPARENT
Definition definitions.hpp:63
Uint8 a
Definition definitions.hpp:46
static const Color RED
Definition definitions.hpp:60
Definition graphics.hpp:26
Definition services.hpp:34
Definition definitions.hpp:154
void save(Archive &ar) const
Definition definitions.hpp:190
int width
Definition definitions.hpp:202
Texture(Texture &&other) noexcept
Definition definitions.hpp:161
~Texture()
Definition definitions.cpp:232
int textureWidth
Definition definitions.hpp:204
int textureHeight
Definition definitions.hpp:205
Texture & operator=(const Texture &)=delete
void load(Archive &ar)
Definition definitions.hpp:184
Texture()
Definition definitions.hpp:156
Texture(const Texture &)=delete
Texture & operator=(Texture &&other) noexcept
Definition definitions.hpp:166
SDL_Texture * handle
Definition definitions.hpp:201
std::string path
Definition definitions.hpp:206
void initialize(bool set=true)
Definition definitions.cpp:219
int height
Definition definitions.hpp:203
void setWindow(std::shared_ptr< Window > window)
Definition definitions.hpp:196
Definition definitions.hpp:64
TextureScaling
Definition definitions.hpp:122
Definition definitions.hpp:459
Capsule()
Definition definitions.cpp:301
Vector2 center1
Definition definitions.hpp:463
Vector2 center2
Definition definitions.hpp:464
float radius
Definition definitions.hpp:465
void serialize(Archive &ar)
Definition definitions.hpp:470
Definition definitions.hpp:438
float radius
Definition definitions.hpp:443
Vector2 center
Definition definitions.hpp:442
void serialize(Archive &ar)
Definition definitions.hpp:448
Circle()
Definition definitions.cpp:279
Definition definitions.hpp:324
Color modulate
Definition definitions.hpp:330
void load(Archive &ar)
Definition definitions.hpp:339
void save(Archive &ar) const
Definition definitions.hpp:333
Vector2 origin
Definition definitions.hpp:329
Frame(const Rect _rect, const Vector2 _origin={0.5, 0.5f}, const Color _modulate=Color::WHITE)
Definition definitions.hpp:326
Rect rect
Definition definitions.hpp:328
Definition definitions.hpp:221
Matrix2 operator+(const Matrix2 &other) const
Definition definitions.cpp:27
Matrix2 operator-(const Matrix2 &other) const
Definition definitions.cpp:40
static Matrix2 rotation(float angle)
Definition definitions.cpp:74
void serialize(Archive &ar)
Definition definitions.hpp:234
Matrix2 operator*(const Matrix2 &other) const
Definition definitions.cpp:16
Matrix2 operator/(float scalar) const
Definition definitions.cpp:53
float m[2][2]
Definition definitions.hpp:222
static Matrix2 scale(Vector2 s)
Definition definitions.cpp:87
Definition definitions.hpp:20
static constexpr float scale
Definition definitions.hpp:21
Definition definitions.hpp:413
Vector2 vertices[B2_MAX_POLYGON_VERTICES]
Definition definitions.hpp:421
Vector2 centroid
Definition definitions.hpp:417
int count
Definition definitions.hpp:418
void serialize(Archive &ar)
Definition definitions.hpp:426
float radius
Definition definitions.hpp:420
Vector2 normals[B2_MAX_POLYGON_VERTICES]
Definition definitions.hpp:419
Polygon()
Definition definitions.cpp:265
Definition definitions.hpp:294
void serialize(Archive &ar)
Definition definitions.hpp:301
Vector2 size
Definition definitions.hpp:298
Rect()
Definition definitions.hpp:295
Rect(const Vector2 _position, const Vector2 _size)
Definition definitions.hpp:296
Vector2 position
Definition definitions.hpp:297
Definition definitions.hpp:481
Vector2 point2
Definition definitions.hpp:486
void serialize(Archive &ar)
Definition definitions.hpp:491
Segment()
Definition definitions.cpp:326
Vector2 point1
Definition definitions.hpp:485
Definition definitions.hpp:509
void load(Archive &ar)
Definition definitions.hpp:523
Color modulate
Definition definitions.hpp:514
Tile(Vector2 gridPosition, Rect sourceRect={{0, 0}, {64, 64}}, Color modulate=Color::WHITE)
Definition definitions.hpp:510
Vector2 gridPosition
Definition definitions.hpp:512
void save(Archive &ar) const
Definition definitions.hpp:517
Rect sourceRect
Definition definitions.hpp:513
Definition definitions.hpp:77
float x
Definition definitions.hpp:78
Vector2(float x, float y)
Definition definitions.hpp:82
float y
Definition definitions.hpp:79
Vector2 operator+(const Vector2 &v) const
Definition definitions.hpp:99
Vector2()
Definition definitions.hpp:81
Vector2 operator/(Vector2 s) const
Definition definitions.hpp:97
Vector2 operator-(const Vector2 &v) const
Definition definitions.hpp:100
Vector2 operator*(float s) const
Definition definitions.hpp:95
Vector2(const b2Vec2 &v)
Definition definitions.hpp:83
bool operator==(Vector2 o) const
Definition definitions.hpp:94
float distanceTo(const Vector2 &other) const
Definition definitions.hpp:103
Vector2(const SDL_FPoint &v)
Definition definitions.hpp:88
Vector2 operator*(Vector2 s) const
Definition definitions.hpp:98
Vector2 operator/(float s) const
Definition definitions.hpp:96
bool operator!=(Vector2 o) const
Definition definitions.hpp:101
void serialize(Archive &ar)
Definition definitions.hpp:109