2#include <cereal/types/polymorphic.hpp>
4#include "../../core/definitions.hpp"
5#include "../../utils/logger.hpp"
6#include "../../core/node/components.hpp"
24 template <
class Archive>
61 shapeDef.enableSensorEvents = sensor;
66 template <
class Archive>
67 void save(Archive &ar)
const
69 ar(CEREAL_NVP(material), CEREAL_NVP(
origin), CEREAL_NVP(isSensor));
72 template <
class Archive>
75 ar(CEREAL_NVP(material), CEREAL_NVP(
origin), CEREAL_NVP(isSensor));
90 bool isSensor =
false;
104 template <
class Archive>
110 template <
class Archive>
117 b2Rot rotation = {cos(0.0f), sin(0.0f)};
120 b2Polygon polyUnscaled = b2MakeOffsetBox(
size.
x / 2,
size.
y / 2, calculatedCenter, rotation);
122 this->polygon =
static_cast<Polygon>(polyUnscaled);
123 this->scaledPolygon =
static_cast<Polygon>(poly);
124 this->
shapeDef = b2DefaultShapeDef();
139 template <
class Archive>
145 template <
class Archive>
149 this->
shapeDef = b2DefaultShapeDef();
165 template <
class Archive>
168 ar(cereal::base_class<Shape>(
this), CEREAL_NVP(
radius), CEREAL_NVP(
circle));
171 template <
class Archive>
174 ar(cereal::base_class<Shape>(
this), CEREAL_NVP(
radius), CEREAL_NVP(
circle));
175 this->
shapeDef = b2DefaultShapeDef();
189 template <
class Archive>
195 template <
class Archive>
199 this->
shapeDef = b2DefaultShapeDef();
213 template <
class Archive>
219 template <
class Archive>
223 this->
shapeDef = b2DefaultShapeDef();
265 void render(std::shared_ptr<Window> window)
override;
267 template <
class Archive>
273 template <
class Archive>
325 template <
class Archive>
Definition definitions.hpp:95
void load(Archive &ar)
Definition definitions.hpp:111
Polygon scaledPolygon
Definition definitions.hpp:101
void save(Archive &ar) const
Definition definitions.hpp:105
Polygon polygon
Definition definitions.hpp:102
Vector2 size
Definition definitions.hpp:99
Definition definitions.hpp:181
void save(Archive &ar) const
Definition definitions.hpp:190
void load(Archive &ar)
Definition definitions.hpp:196
Capsule capsule
Definition definitions.hpp:186
Capsule scaledCapsule
Definition definitions.hpp:187
Definition definitions.hpp:156
float radius
Definition definitions.hpp:160
Circle circle
Definition definitions.hpp:162
Circle scaledCircle
Definition definitions.hpp:163
void save(Archive &ar) const
Definition definitions.hpp:166
void load(Archive &ar)
Definition definitions.hpp:172
Definition definitions.hpp:41
static const Color WHITE
Definition definitions.hpp:58
static void debug(fmt::format_string< Args... > fmt, Args &&...args)
Definition logger.hpp:43
Definition definitions.hpp:16
float density
Definition definitions.hpp:18
float tangentSpeed
Definition definitions.hpp:22
float rollingResistance
Definition definitions.hpp:21
float friction
Definition definitions.hpp:19
void serialize(Archive &ar)
Definition definitions.hpp:25
float restitution
Definition definitions.hpp:20
Definition physics.hpp:58
Definition definitions.hpp:205
void load(Archive &ar)
Definition definitions.hpp:220
Polygon scaledPolygon
Definition definitions.hpp:211
Polygon polygon
Definition definitions.hpp:210
void save(Archive &ar) const
Definition definitions.hpp:214
Definition definitions.hpp:316
void serialize(Archive &ar)
Definition definitions.hpp:326
RaycastResult calculate()
Definition definitions.cpp:121
float maxDistance
Definition definitions.hpp:321
Raycast(float maxDistance=500.0f)
Definition definitions.hpp:318
Transform transform
Definition definitions.hpp:320
Definition definitions.hpp:131
Segment segment
Definition definitions.hpp:136
void save(Archive &ar) const
Definition definitions.hpp:140
Segment scaledSegment
Definition definitions.hpp:137
void load(Archive &ar)
Definition definitions.hpp:146
Definition definitions.hpp:253
void save(Archive &ar) const
Definition definitions.hpp:268
void load(Archive &ar)
Definition definitions.hpp:274
bool screenSpace
Definition definitions.hpp:262
bool visible
Definition definitions.hpp:260
Vector2 origin
Definition definitions.hpp:258
Color modulate
Definition definitions.hpp:263
void render(std::shared_ptr< Window > window) override
Definition definitions.cpp:102
std::shared_ptr< Shape > shape
Definition definitions.hpp:259
Definition definitions.hpp:49
void save(Archive &ar) const
Definition definitions.hpp:67
void applyMaterial(const Material &material)
Definition physics.cpp:7
Shape * setSensor(bool sensor)
Definition definitions.hpp:57
void load(Archive &ar)
Definition definitions.hpp:73
void postLoad()
Definition definitions.hpp:79
Vector2 origin
Definition definitions.hpp:53
b2ShapeDef shapeDef
Definition definitions.hpp:52
CEREAL_REGISTER_POLYMORPHIC_RELATION(Shape, BoxShape)
CEREAL_REGISTER_TYPE(BoxShape)
Definition definitions.hpp:459
Definition definitions.hpp:438
Definition components.hpp:21
static constexpr float scale
Definition definitions.hpp:21
Definition definitions.hpp:413
Definition definitions.hpp:288
Vector2 normal
Definition definitions.hpp:292
float fraction
Definition definitions.hpp:294
Vector2 point
Definition definitions.hpp:293
RaycastResult()
Definition definitions.hpp:289
bool hit
Definition definitions.hpp:295
PhysicsBody * physicsBody
Definition definitions.hpp:291
Definition definitions.hpp:481
Definition definitions.hpp:77
float x
Definition definitions.hpp:78
float y
Definition definitions.hpp:79