aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/crepe/api/GameObject.h6
-rw-r--r--src/crepe/api/ParticleEmitter.cpp17
-rw-r--r--src/crepe/api/Rigidbody.cpp6
-rw-r--r--src/crepe/api/Rigidbody.h13
-rw-r--r--src/crepe/api/Transform.h3
-rw-r--r--src/crepe/api/Vector2.cpp104
-rw-r--r--src/crepe/api/Vector2.h61
-rw-r--r--src/crepe/system/PhysicsSystem.cpp96
-rw-r--r--src/example/physics.cpp8
-rw-r--r--src/example/rendering.cpp2
-rw-r--r--src/example/scene_manager.cpp2
-rw-r--r--src/test/PhysicsTest.cpp94
12 files changed, 210 insertions, 202 deletions
diff --git a/src/crepe/api/GameObject.h b/src/crepe/api/GameObject.h
index 8dc102c..d703730 100644
--- a/src/crepe/api/GameObject.h
+++ b/src/crepe/api/GameObject.h
@@ -1,6 +1,5 @@
#pragma once
-#include <cstdint>
#include <string>
#include "types.h"
@@ -29,8 +28,9 @@ public:
* \param rotation The rotation of the GameObject
* \param scale The scale of the GameObject
*/
- GameObject(game_object_id_t id, const std::string & name, const std::string & tag,
- const Vector2 & position, double rotation, double scale);
+ GameObject(game_object_id_t id, const std::string & name,
+ const std::string & tag, const Vector2 & position,
+ double rotation, double scale);
/**
* \brief Set the parent of this GameObject
*
diff --git a/src/crepe/api/ParticleEmitter.cpp b/src/crepe/api/ParticleEmitter.cpp
index 6094732..3b2e2f2 100644
--- a/src/crepe/api/ParticleEmitter.cpp
+++ b/src/crepe/api/ParticleEmitter.cpp
@@ -6,15 +6,14 @@
using namespace crepe;
-ParticleEmitter::ParticleEmitter(game_object_id_t id,
- uint32_t max_particles, uint32_t emission_rate,
- uint32_t speed, uint32_t speed_offset,
- uint32_t angle, uint32_t angleOffset,
- float begin_lifespan, float end_lifespan)
- : Component(id), max_particles(max_particles),
- emission_rate(emission_rate), speed(speed), speed_offset(speed_offset),
- position{0, 0}, begin_lifespan(begin_lifespan),
- end_lifespan(end_lifespan) {
+ParticleEmitter::ParticleEmitter(game_object_id_t id, uint32_t max_particles,
+ uint32_t emission_rate, uint32_t speed,
+ uint32_t speed_offset, uint32_t angle,
+ uint32_t angleOffset, float begin_lifespan,
+ float end_lifespan)
+ : Component(id), max_particles(max_particles), emission_rate(emission_rate),
+ speed(speed), speed_offset(speed_offset), position{0, 0},
+ begin_lifespan(begin_lifespan), end_lifespan(end_lifespan) {
std::srand(
static_cast<uint32_t>(std::time(nullptr))); // initialize random seed
std::cout << "Create emitter" << std::endl;
diff --git a/src/crepe/api/Rigidbody.cpp b/src/crepe/api/Rigidbody.cpp
index cf07b0e..0de9846 100644
--- a/src/crepe/api/Rigidbody.cpp
+++ b/src/crepe/api/Rigidbody.cpp
@@ -2,9 +2,8 @@
using namespace crepe;
-crepe::Rigidbody::Rigidbody(uint32_t game_object_id,
- const RigidbodyData & data) :
- Component(game_object_id), data(data){}
+crepe::Rigidbody::Rigidbody(uint32_t game_object_id, const RigidbodyData & data)
+ : Component(game_object_id), data(data) {}
void crepe::Rigidbody::add_force_linear(const Vector2 & force) {
this->data.linear_velocity += force;
@@ -13,4 +12,3 @@ void crepe::Rigidbody::add_force_linear(const Vector2 & force) {
void crepe::Rigidbody::add_force_angular(double force) {
this->data.angular_velocity += force;
}
-
diff --git a/src/crepe/api/Rigidbody.h b/src/crepe/api/Rigidbody.h
index 0c069d8..e1abd46 100644
--- a/src/crepe/api/Rigidbody.h
+++ b/src/crepe/api/Rigidbody.h
@@ -37,17 +37,18 @@ public:
*/
struct PhysicsConstraints {
//! X constraint
- bool x = 0;
+ bool x = 0;
//! Y constraint
- bool y = 0;
+ bool y = 0;
//! rotation constraint
- bool rotation = 0;
+ bool rotation = 0;
};
+
public:
/**
* This struct holds the data for the Rigidbody.
*/
- struct RigidbodyData{
+ struct RigidbodyData {
//! objects mass
double mass = 0.0;
//! gravtiy scale
@@ -73,14 +74,16 @@ public:
//! if object bounces
bool bounce = false;
};
+
public:
/**
* \param game_object_id id of the gameobject the rigibody is added to.
* \param data struct to configure the rigidbody.
*/
- Rigidbody(uint32_t game_object_id,const RigidbodyData& data);
+ Rigidbody(uint32_t game_object_id, const RigidbodyData & data);
//! struct to hold data of rigidbody
RigidbodyData data;
+
public:
/**
* \brief add a linear force to the Rigidbody.
diff --git a/src/crepe/api/Transform.h b/src/crepe/api/Transform.h
index 33e70f9..805553e 100644
--- a/src/crepe/api/Transform.h
+++ b/src/crepe/api/Transform.h
@@ -20,7 +20,8 @@ public:
* \param rot The rotation of the GameObject
* \param scale The scale of the GameObject
*/
- Transform(game_object_id_t id, const Vector2 & point, double rot, double scale);
+ Transform(game_object_id_t id, const Vector2 & point, double rot,
+ double scale);
/**
* \brief Get the maximum number of instances for this component
*
diff --git a/src/crepe/api/Vector2.cpp b/src/crepe/api/Vector2.cpp
index 8cbd9ad..09bb59b 100644
--- a/src/crepe/api/Vector2.cpp
+++ b/src/crepe/api/Vector2.cpp
@@ -2,58 +2,56 @@
namespace crepe {
- // Constructor with initial values
- Vector2::Vector2(float x, float y) : x(x), y(y) {}
-
- // Subtracts another vector from this vector and returns the result.
- Vector2 Vector2::operator-(const Vector2& other) const {
- return {x - other.x, y - other.y};
- }
-
- // Adds another vector to this vector and returns the result.
- Vector2 Vector2::operator+(const Vector2& other) const {
- return {x + other.x, y + other.y};
- }
-
- // Multiplies this vector by a scalar and returns the result.
- Vector2 Vector2::operator*(float scalar) const {
- return {x * scalar, y * scalar};
- }
-
- // Multiplies this vector by another vector element-wise and updates this vector.
- Vector2& Vector2::operator*=(const Vector2& other) {
- x *= other.x;
- y *= other.y;
- return *this;
- }
-
- // Adds another vector to this vector and updates this vector.
- Vector2& Vector2::operator+=(const Vector2& other) {
- x += other.x;
- y += other.y;
- return *this;
- }
-
- // Adds a scalar value to both components of this vector and updates this vector.
- Vector2& Vector2::operator+=(float other) {
- x += other;
- y += other;
- return *this;
- }
-
- // Returns the negation of this vector.
- Vector2 Vector2::operator-() const {
- return {-x, -y};
- }
-
- // Checks if this vector is equal to another vector.
- bool Vector2::operator==(const Vector2& other) const {
- return x == other.x && y == other.y;
- }
-
- // Checks if this vector is not equal to another vector.
- bool Vector2::operator!=(const Vector2& other) const {
- return !(*this == other);
- }
+// Constructor with initial values
+Vector2::Vector2(float x, float y) : x(x), y(y) {}
+
+// Subtracts another vector from this vector and returns the result.
+Vector2 Vector2::operator-(const Vector2 & other) const {
+ return {x - other.x, y - other.y};
+}
+
+// Adds another vector to this vector and returns the result.
+Vector2 Vector2::operator+(const Vector2 & other) const {
+ return {x + other.x, y + other.y};
+}
+
+// Multiplies this vector by a scalar and returns the result.
+Vector2 Vector2::operator*(float scalar) const {
+ return {x * scalar, y * scalar};
+}
+
+// Multiplies this vector by another vector element-wise and updates this vector.
+Vector2 & Vector2::operator*=(const Vector2 & other) {
+ x *= other.x;
+ y *= other.y;
+ return *this;
+}
+
+// Adds another vector to this vector and updates this vector.
+Vector2 & Vector2::operator+=(const Vector2 & other) {
+ x += other.x;
+ y += other.y;
+ return *this;
+}
+
+// Adds a scalar value to both components of this vector and updates this vector.
+Vector2 & Vector2::operator+=(float other) {
+ x += other;
+ y += other;
+ return *this;
+}
+
+// Returns the negation of this vector.
+Vector2 Vector2::operator-() const { return {-x, -y}; }
+
+// Checks if this vector is equal to another vector.
+bool Vector2::operator==(const Vector2 & other) const {
+ return x == other.x && y == other.y;
+}
+
+// Checks if this vector is not equal to another vector.
+bool Vector2::operator!=(const Vector2 & other) const {
+ return !(*this == other);
+}
} // namespace crepe
diff --git a/src/crepe/api/Vector2.h b/src/crepe/api/Vector2.h
index d571209..741951b 100644
--- a/src/crepe/api/Vector2.h
+++ b/src/crepe/api/Vector2.h
@@ -2,47 +2,46 @@
namespace crepe {
- //! Vector2 class
- class Vector2 {
- public:
- //! X component of the vector
- float x;
- //! Y component of the vector
- float y;
+//! Vector2 class
+class Vector2 {
+public:
+ //! X component of the vector
+ float x;
+ //! Y component of the vector
+ float y;
- //! Default constructor
- Vector2() = default;
+ //! Default constructor
+ Vector2() = default;
- //! Constructor with initial values
- Vector2(float x, float y);
+ //! Constructor with initial values
+ Vector2(float x, float y);
- //! Subtracts another vector from this vector and returns the result.
- Vector2 operator-(const Vector2& other) const;
+ //! Subtracts another vector from this vector and returns the result.
+ Vector2 operator-(const Vector2 & other) const;
- //! Adds another vector to this vector and returns the result.
- Vector2 operator+(const Vector2& other) const;
+ //! Adds another vector to this vector and returns the result.
+ Vector2 operator+(const Vector2 & other) const;
- //! Multiplies this vector by a scalar and returns the result.
- Vector2 operator*(float scalar) const;
+ //! Multiplies this vector by a scalar and returns the result.
+ Vector2 operator*(float scalar) const;
- //! Multiplies this vector by another vector element-wise and updates this vector.
- Vector2& operator*=(const Vector2& other);
+ //! Multiplies this vector by another vector element-wise and updates this vector.
+ Vector2 & operator*=(const Vector2 & other);
- //! Adds another vector to this vector and updates this vector.
- Vector2& operator+=(const Vector2& other);
+ //! Adds another vector to this vector and updates this vector.
+ Vector2 & operator+=(const Vector2 & other);
- //! Adds a scalar value to both components of this vector and updates this vector.
- Vector2& operator+=(float other);
+ //! Adds a scalar value to both components of this vector and updates this vector.
+ Vector2 & operator+=(float other);
- //! Returns the negation of this vector.
- Vector2 operator-() const;
+ //! Returns the negation of this vector.
+ Vector2 operator-() const;
- //! Checks if this vector is equal to another vector.
- bool operator==(const Vector2& other) const;
+ //! Checks if this vector is equal to another vector.
+ bool operator==(const Vector2 & other) const;
- //! Checks if this vector is not equal to another vector.
- bool operator!=(const Vector2& other) const;
-
- };
+ //! Checks if this vector is not equal to another vector.
+ bool operator!=(const Vector2 & other) const;
+};
} // namespace crepe
diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp
index 1a323ee..1bd2171 100644
--- a/src/crepe/system/PhysicsSystem.cpp
+++ b/src/crepe/system/PhysicsSystem.cpp
@@ -1,10 +1,10 @@
#include <cmath>
#include "../ComponentManager.h"
+#include "../api/Config.h"
#include "../api/Rigidbody.h"
#include "../api/Transform.h"
#include "../api/Vector2.h"
-#include "../api/Config.h"
#include "PhysicsSystem.h"
@@ -19,71 +19,77 @@ void PhysicsSystem::update() {
double gravity = Config::get_instance().physics.gravity;
for (Rigidbody & rigidbody : rigidbodies) {
- if(!rigidbody.active){continue;}
+ if (!rigidbody.active) continue;
+
switch (rigidbody.data.body_type) {
case Rigidbody::BodyType::DYNAMIC:
for (Transform & transform : transforms) {
if (transform.game_object_id == rigidbody.game_object_id) {
-
- // Add gravity
- if(rigidbody.data.use_gravity)
- {
- rigidbody.data.linear_velocity.y += (rigidbody.data.mass * rigidbody.data.gravity_scale * gravity);
+
+ // Add gravity
+ if (rigidbody.data.use_gravity) {
+ rigidbody.data.linear_velocity.y
+ += (rigidbody.data.mass
+ * rigidbody.data.gravity_scale * gravity);
}
// Add damping
- if(rigidbody.data.angular_damping != 0)
- {
- rigidbody.data.angular_velocity *= rigidbody.data.angular_damping;
+ if (rigidbody.data.angular_damping != 0) {
+ rigidbody.data.angular_velocity
+ *= rigidbody.data.angular_damping;
}
- if(rigidbody.data.linear_damping != Vector2{0,0})
- {
- rigidbody.data.linear_velocity *= rigidbody.data.linear_damping;
+ if (rigidbody.data.linear_damping != Vector2{0, 0}) {
+ rigidbody.data.linear_velocity
+ *= rigidbody.data.linear_damping;
}
// Max velocity check
- if(rigidbody.data.angular_velocity > rigidbody.data.max_angular_velocity)
- {
- rigidbody.data.angular_velocity = rigidbody.data.max_angular_velocity;
- }
- else if (rigidbody.data.angular_velocity < -rigidbody.data.max_angular_velocity)
- {
- rigidbody.data.angular_velocity = -rigidbody.data.max_angular_velocity;
+ if (rigidbody.data.angular_velocity
+ > rigidbody.data.max_angular_velocity) {
+ rigidbody.data.angular_velocity
+ = rigidbody.data.max_angular_velocity;
+ } else if (rigidbody.data.angular_velocity
+ < -rigidbody.data.max_angular_velocity) {
+ rigidbody.data.angular_velocity
+ = -rigidbody.data.max_angular_velocity;
}
- if(rigidbody.data.linear_velocity.x > rigidbody.data.max_linear_velocity.x)
- {
- rigidbody.data.linear_velocity.x = rigidbody.data.max_linear_velocity.x;
- }
- else if(rigidbody.data.linear_velocity.x < -rigidbody.data.max_linear_velocity.x)
- {
- rigidbody.data.linear_velocity.x = -rigidbody.data.max_linear_velocity.x;
+ if (rigidbody.data.linear_velocity.x
+ > rigidbody.data.max_linear_velocity.x) {
+ rigidbody.data.linear_velocity.x
+ = rigidbody.data.max_linear_velocity.x;
+ } else if (rigidbody.data.linear_velocity.x
+ < -rigidbody.data.max_linear_velocity.x) {
+ rigidbody.data.linear_velocity.x
+ = -rigidbody.data.max_linear_velocity.x;
}
- if(rigidbody.data.linear_velocity.y > rigidbody.data.max_linear_velocity.y)
- {
- rigidbody.data.linear_velocity.y = rigidbody.data.max_linear_velocity.y;
- }
- else if(rigidbody.data.linear_velocity.y < -rigidbody.data.max_linear_velocity.y)
- {
- rigidbody.data.linear_velocity.y = -rigidbody.data.max_linear_velocity.y;
+ if (rigidbody.data.linear_velocity.y
+ > rigidbody.data.max_linear_velocity.y) {
+ rigidbody.data.linear_velocity.y
+ = rigidbody.data.max_linear_velocity.y;
+ } else if (rigidbody.data.linear_velocity.y
+ < -rigidbody.data.max_linear_velocity.y) {
+ rigidbody.data.linear_velocity.y
+ = -rigidbody.data.max_linear_velocity.y;
}
- // Move object
- if(!rigidbody.data.constraints.rotation)
- {
- transform.rotation += rigidbody.data.angular_velocity;
- transform.rotation = std::fmod(transform.rotation, 360.0);
+ // Move object
+ if (!rigidbody.data.constraints.rotation) {
+ transform.rotation
+ += rigidbody.data.angular_velocity;
+ transform.rotation
+ = std::fmod(transform.rotation, 360.0);
if (transform.rotation < 0) {
transform.rotation += 360.0;
}
}
- if(!rigidbody.data.constraints.x)
- {
- transform.position.x += rigidbody.data.linear_velocity.x;
+ if (!rigidbody.data.constraints.x) {
+ transform.position.x
+ += rigidbody.data.linear_velocity.x;
}
- if(!rigidbody.data.constraints.y)
- {
- transform.position.y += rigidbody.data.linear_velocity.y;
+ if (!rigidbody.data.constraints.y) {
+ transform.position.y
+ += rigidbody.data.linear_velocity.y;
}
}
}
diff --git a/src/example/physics.cpp b/src/example/physics.cpp
index 9a5e5f9..a7e94f6 100644
--- a/src/example/physics.cpp
+++ b/src/example/physics.cpp
@@ -9,16 +9,16 @@ using namespace crepe;
using namespace std;
int main(int argc, char * argv[]) {
- GameObject *game_object;
- game_object = new GameObject(0, "Name", "Tag", Vector2{0,0},0,0);
+ GameObject * game_object;
+ game_object = new GameObject(0, "Name", "Tag", Vector2{0, 0}, 0, 0);
game_object->add_component<Rigidbody>(Rigidbody::RigidbodyData{
.mass = 1,
.gravity_scale = 1,
.body_type = Rigidbody::BodyType::DYNAMIC,
- .constraints = {0,0,0},
+ .constraints = {0, 0, 0},
.use_gravity = true,
.bounce = false,
- });
+ });
delete game_object;
return 0;
}
diff --git a/src/example/rendering.cpp b/src/example/rendering.cpp
index e1ff9da..d554a8a 100644
--- a/src/example/rendering.cpp
+++ b/src/example/rendering.cpp
@@ -5,10 +5,10 @@
#include <crepe/api/AssetManager.h>
#include <crepe/api/Color.h>
-#include <crepe/api/Vector2.h>
#include <crepe/api/Sprite.h>
#include <crepe/api/Texture.h>
#include <crepe/api/Transform.h>
+#include <crepe/api/Vector2.h>
#include <chrono>
#include <memory>
diff --git a/src/example/scene_manager.cpp b/src/example/scene_manager.cpp
index 1780c81..f46dc36 100644
--- a/src/example/scene_manager.cpp
+++ b/src/example/scene_manager.cpp
@@ -3,9 +3,9 @@
#include <crepe/ComponentManager.h>
#include <crepe/api/GameObject.h>
#include <crepe/api/Metadata.h>
-#include <crepe/api/Vector2.h>
#include <crepe/api/Scene.h>
#include <crepe/api/SceneManager.h>
+#include <crepe/api/Vector2.h>
using namespace crepe;
using namespace std;
diff --git a/src/test/PhysicsTest.cpp b/src/test/PhysicsTest.cpp
index 5ad5d01..6b8c4d8 100644
--- a/src/test/PhysicsTest.cpp
+++ b/src/test/PhysicsTest.cpp
@@ -1,10 +1,10 @@
-#include <gtest/gtest.h>
#include <crepe/ComponentManager.h>
+#include <crepe/api/Config.h>
#include <crepe/api/GameObject.h>
#include <crepe/api/Rigidbody.h>
#include <crepe/api/Transform.h>
#include <crepe/system/PhysicsSystem.h>
-#include <crepe/api/Config.h>
+#include <gtest/gtest.h>
using namespace std;
using namespace std::chrono_literals;
@@ -12,42 +12,44 @@ using namespace crepe;
class PhysicsTest : public ::testing::Test {
protected:
- GameObject* game_object;
- PhysicsSystem physics_system;
- void SetUp() override {
- ComponentManager & mgr = ComponentManager::get_instance();
- std::vector<std::reference_wrapper<Transform>> transforms = mgr.get_components_by_id<Transform>(0);
- if (transforms.empty()) {
- game_object = new GameObject(0,"","",Vector2{0,0},0,0);
- game_object->add_component<Rigidbody>(Rigidbody::RigidbodyData{
- .mass = 1,
- .gravity_scale = 1,
- .body_type = Rigidbody::BodyType::DYNAMIC,
- .max_linear_velocity = Vector2{10,10},
- .max_angular_velocity = 10,
- .constraints = {0, 0},
- .use_gravity = true,
- .bounce = false
- });
- }
- transforms = mgr.get_components_by_id<Transform>(0);
- Transform& transform = transforms.front().get();
- transform.position.x = 0.0;
- transform.position.y = 0.0;
- transform.rotation = 0.0;
- std::vector<std::reference_wrapper<Rigidbody>> rigidbodies = mgr.get_components_by_id<Rigidbody>(0);
- Rigidbody& rigidbody = rigidbodies.front().get();
- rigidbody.data.angular_velocity = 0;
- rigidbody.data.linear_velocity.x = 0;
- rigidbody.data.linear_velocity.y = 0;
- }
+ GameObject * game_object;
+ PhysicsSystem physics_system;
+ void SetUp() override {
+ ComponentManager & mgr = ComponentManager::get_instance();
+ std::vector<std::reference_wrapper<Transform>> transforms
+ = mgr.get_components_by_id<Transform>(0);
+ if (transforms.empty()) {
+ game_object = new GameObject(0, "", "", Vector2{0, 0}, 0, 0);
+ game_object->add_component<Rigidbody>(Rigidbody::RigidbodyData{
+ .mass = 1,
+ .gravity_scale = 1,
+ .body_type = Rigidbody::BodyType::DYNAMIC,
+ .max_linear_velocity = Vector2{10, 10},
+ .max_angular_velocity = 10,
+ .constraints = {0, 0},
+ .use_gravity = true,
+ .bounce = false});
+ }
+ transforms = mgr.get_components_by_id<Transform>(0);
+ Transform & transform = transforms.front().get();
+ transform.position.x = 0.0;
+ transform.position.y = 0.0;
+ transform.rotation = 0.0;
+ std::vector<std::reference_wrapper<Rigidbody>> rigidbodies
+ = mgr.get_components_by_id<Rigidbody>(0);
+ Rigidbody & rigidbody = rigidbodies.front().get();
+ rigidbody.data.angular_velocity = 0;
+ rigidbody.data.linear_velocity.x = 0;
+ rigidbody.data.linear_velocity.y = 0;
+ }
};
TEST_F(PhysicsTest, gravity) {
Config::get_instance().physics.gravity = 1;
ComponentManager & mgr = ComponentManager::get_instance();
- std::vector<std::reference_wrapper<Transform>> transforms = mgr.get_components_by_id<Transform>(0);
- const Transform& transform = transforms.front().get();
+ std::vector<std::reference_wrapper<Transform>> transforms
+ = mgr.get_components_by_id<Transform>(0);
+ const Transform & transform = transforms.front().get();
ASSERT_FALSE(transforms.empty());
EXPECT_EQ(transform.position.y, 0);
physics_system.update();
@@ -58,17 +60,18 @@ TEST_F(PhysicsTest, gravity) {
TEST_F(PhysicsTest, max_velocity) {
ComponentManager & mgr = ComponentManager::get_instance();
- std::vector<std::reference_wrapper<Rigidbody>> rigidbodies = mgr.get_components_by_id<Rigidbody>(0);
- Rigidbody& rigidbody = rigidbodies.front().get();
+ std::vector<std::reference_wrapper<Rigidbody>> rigidbodies
+ = mgr.get_components_by_id<Rigidbody>(0);
+ Rigidbody & rigidbody = rigidbodies.front().get();
ASSERT_FALSE(rigidbodies.empty());
EXPECT_EQ(rigidbody.data.linear_velocity.y, 0);
- rigidbody.add_force_linear({100,100});
+ rigidbody.add_force_linear({100, 100});
rigidbody.add_force_angular(100);
physics_system.update();
EXPECT_EQ(rigidbody.data.linear_velocity.y, 10);
EXPECT_EQ(rigidbody.data.linear_velocity.x, 10);
EXPECT_EQ(rigidbody.data.angular_velocity, 10);
- rigidbody.add_force_linear({-100,-100});
+ rigidbody.add_force_linear({-100, -100});
rigidbody.add_force_angular(-100);
physics_system.update();
EXPECT_EQ(rigidbody.data.linear_velocity.y, -10);
@@ -79,19 +82,21 @@ TEST_F(PhysicsTest, max_velocity) {
TEST_F(PhysicsTest, movement) {
Config::get_instance().physics.gravity = 0;
ComponentManager & mgr = ComponentManager::get_instance();
- std::vector<std::reference_wrapper<Rigidbody>> rigidbodies = mgr.get_components_by_id<Rigidbody>(0);
- Rigidbody& rigidbody = rigidbodies.front().get();
- std::vector<std::reference_wrapper<Transform>> transforms = mgr.get_components_by_id<Transform>(0);
- const Transform& transform = transforms.front().get();
+ std::vector<std::reference_wrapper<Rigidbody>> rigidbodies
+ = mgr.get_components_by_id<Rigidbody>(0);
+ Rigidbody & rigidbody = rigidbodies.front().get();
+ std::vector<std::reference_wrapper<Transform>> transforms
+ = mgr.get_components_by_id<Transform>(0);
+ const Transform & transform = transforms.front().get();
ASSERT_FALSE(rigidbodies.empty());
ASSERT_FALSE(transforms.empty());
- rigidbody.add_force_linear({1,1});
+ rigidbody.add_force_linear({1, 1});
rigidbody.add_force_angular(1);
physics_system.update();
EXPECT_EQ(transform.position.x, 1);
EXPECT_EQ(transform.position.y, 1);
EXPECT_EQ(transform.rotation, 1);
- rigidbody.data.constraints = {1,1,1};
+ rigidbody.data.constraints = {1, 1, 1};
EXPECT_EQ(transform.position.x, 1);
EXPECT_EQ(transform.position.y, 1);
EXPECT_EQ(transform.rotation, 1);
@@ -102,7 +107,7 @@ TEST_F(PhysicsTest, movement) {
EXPECT_EQ(rigidbody.data.linear_velocity.x, 0.5);
EXPECT_EQ(rigidbody.data.linear_velocity.y, 0.5);
EXPECT_EQ(rigidbody.data.angular_velocity, 0.5);
- rigidbody.data.constraints = {1,1,0};
+ rigidbody.data.constraints = {1, 1, 0};
rigidbody.data.angular_damping = 0;
rigidbody.data.max_angular_velocity = 1000;
rigidbody.data.angular_velocity = 360;
@@ -112,4 +117,3 @@ TEST_F(PhysicsTest, movement) {
physics_system.update();
EXPECT_EQ(transform.rotation, 1);
}
-