Rename ChipmunkPhysics2D and JoltPhysics3D to Physics[2D|3D]

This commit is contained in:
Lynix
2024-02-09 20:59:53 +01:00
committed by Jérôme Leclercq
parent 139bed2b0a
commit e336c8a514
116 changed files with 3044 additions and 3042 deletions

View File

@@ -1,30 +1,30 @@
#include <Nazara/ChipmunkPhysics2D/ChipmunkRigidBody2D.hpp>
#include <Nazara/ChipmunkPhysics2D/ChipmunkPhysWorld2D.hpp>
#include <Nazara/Physics2D/RigidBody2D.hpp>
#include <Nazara/Physics2D/PhysWorld2D.hpp>
#include <catch2/catch_approx.hpp>
#include <catch2/catch_test_macros.hpp>
#include <iostream>
#include <limits>
Nz::ChipmunkRigidBody2D CreateBody(Nz::ChipmunkPhysWorld2D& world);
void EQUALITY(const Nz::ChipmunkRigidBody2D& left, const Nz::ChipmunkRigidBody2D& right);
Nz::RigidBody2D CreateBody(Nz::PhysWorld2D& world);
void EQUALITY(const Nz::RigidBody2D& left, const Nz::RigidBody2D& right);
void EQUALITY(const Nz::Rectf& left, const Nz::Rectf& right);
SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
{
GIVEN("A physic world and a rigid body")
{
Nz::ChipmunkPhysWorld2D world;
Nz::PhysWorld2D world;
world.SetMaxStepCount(std::numeric_limits<std::size_t>::max());
world.SetStepSize(Nz::Time::TickDuration(200)); //< FIXME: Tests fail on Linux with default step size
Nz::Vector2f positionAABB(3.f, 4.f);
Nz::Rectf aabb(positionAABB.x, positionAABB.y, 1.f, 2.f);
Nz::ChipmunkRigidBody2D::DynamicSettings dynamicSettings;
dynamicSettings.geom = std::make_shared<Nz::ChipmunkBoxCollider2D>(aabb);
Nz::RigidBody2D::DynamicSettings dynamicSettings;
dynamicSettings.geom = std::make_shared<Nz::BoxCollider2D>(aabb);
dynamicSettings.mass = 1.f;
Nz::ChipmunkRigidBody2D body(world, dynamicSettings);
Nz::RigidBody2D body(world, dynamicSettings);
float angularVelocity = 0.2f;
body.SetAngularVelocity(angularVelocity);
Nz::Vector2f massCenter(5.f, 7.f);
@@ -38,12 +38,12 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
world.Step(Nz::Time::Second());
Nz::ChipmunkRigidBody2D::StaticSettings staticSettings;
Nz::RigidBody2D::StaticSettings staticSettings;
WHEN("We copy construct the body")
{
body.AddForce(Nz::Vector2f(3.f, 5.f));
Nz::ChipmunkRigidBody2D copiedBody(body);
Nz::RigidBody2D copiedBody(body);
EQUALITY(copiedBody, body);
world.Step(Nz::Time::Second());
EQUALITY(copiedBody, body);
@@ -51,22 +51,22 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
WHEN("We move construct the body")
{
Nz::ChipmunkRigidBody2D copiedBody(body);
Nz::ChipmunkRigidBody2D movedBody(std::move(body));
Nz::RigidBody2D copiedBody(body);
Nz::RigidBody2D movedBody(std::move(body));
EQUALITY(movedBody, copiedBody);
}
WHEN("We copy assign the body")
{
Nz::ChipmunkRigidBody2D copiedBody(world, staticSettings);
Nz::RigidBody2D copiedBody(world, staticSettings);
copiedBody = body;
EQUALITY(copiedBody, body);
}
WHEN("We move assign the body")
{
Nz::ChipmunkRigidBody2D copiedBody(body);
Nz::ChipmunkRigidBody2D movedBody(world, staticSettings);
Nz::RigidBody2D copiedBody(body);
Nz::RigidBody2D movedBody(world, staticSettings);
movedBody = std::move(body);
EQUALITY(movedBody, copiedBody);
}
@@ -74,7 +74,7 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
WHEN("We set a new geometry")
{
float radius = 5.f;
body.SetGeom(std::make_shared<Nz::ChipmunkCircleCollider2D>(radius));
body.SetGeom(std::make_shared<Nz::CircleCollider2D>(radius));
world.Step(Nz::Time::Second());
@@ -89,14 +89,14 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
GIVEN("A physic world")
{
Nz::ChipmunkPhysWorld2D world;
Nz::PhysWorld2D world;
world.SetMaxStepCount(std::numeric_limits<std::size_t>::max());
Nz::Rectf aabb(3.f, 4.f, 1.f, 2.f);
WHEN("We get a rigid body from a function")
{
std::vector<Nz::ChipmunkRigidBody2D> tmp;
std::vector<Nz::RigidBody2D> tmp;
tmp.push_back(CreateBody(world));
tmp.push_back(CreateBody(world));
@@ -112,18 +112,18 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
GIVEN("A physic world and a rigid body")
{
Nz::ChipmunkPhysWorld2D world;
Nz::PhysWorld2D world;
world.SetMaxStepCount(std::numeric_limits<std::size_t>::max());
Nz::Vector2f positionAABB(3.f, 4.f);
Nz::Rectf aabb(positionAABB.x, positionAABB.y, 1.f, 2.f);
Nz::ChipmunkRigidBody2D::DynamicSettings dynamicSettings;
Nz::RigidBody2D::DynamicSettings dynamicSettings;
dynamicSettings.mass = 1.f;
auto box = std::make_shared<Nz::ChipmunkBoxCollider2D>(aabb);
auto box = std::make_shared<Nz::BoxCollider2D>(aabb);
Nz::ChipmunkRigidBody2D body(world, dynamicSettings);
Nz::RigidBody2D body(world, dynamicSettings);
body.SetGeom(box, true, false);
Nz::Vector2f position = Nz::Vector2f::Zero();
@@ -215,15 +215,15 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
GIVEN("A physic world and a rigid body of circle")
{
Nz::ChipmunkPhysWorld2D world;
Nz::PhysWorld2D world;
world.SetMaxStepCount(std::numeric_limits<std::size_t>::max());
Nz::Vector2f position(3.f, 4.f);
float radius = 5.f;
std::shared_ptr<Nz::ChipmunkCollider2D> circle = std::make_shared<Nz::ChipmunkCircleCollider2D>(radius, position);
std::shared_ptr<Nz::Collider2D> circle = std::make_shared<Nz::CircleCollider2D>(radius, position);
Nz::ChipmunkRigidBody2D body(world, Nz::ChipmunkRigidBody2D::DynamicSettings({}, 1.f));
Nz::RigidBody2D body(world, Nz::RigidBody2D::DynamicSettings({}, 1.f));
body.SetGeom(circle, true, false);
world.Step(Nz::Time::Second());
@@ -240,21 +240,21 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
GIVEN("A physic world and a rigid body of compound")
{
Nz::ChipmunkPhysWorld2D world;
Nz::PhysWorld2D world;
world.SetMaxStepCount(std::numeric_limits<std::size_t>::max());
Nz::Rectf aabb(0.f, 0.f, 1.f, 1.f);
std::shared_ptr<Nz::ChipmunkBoxCollider2D> box1 = std::make_shared<Nz::ChipmunkBoxCollider2D>(aabb);
std::shared_ptr<Nz::BoxCollider2D> box1 = std::make_shared<Nz::BoxCollider2D>(aabb);
aabb.Translate(Nz::Vector2f::Unit());
std::shared_ptr<Nz::ChipmunkBoxCollider2D> box2 = std::make_shared<Nz::ChipmunkBoxCollider2D>(aabb);
std::shared_ptr<Nz::BoxCollider2D> box2 = std::make_shared<Nz::BoxCollider2D>(aabb);
std::vector<std::shared_ptr<Nz::ChipmunkCollider2D>> colliders;
std::vector<std::shared_ptr<Nz::Collider2D>> colliders;
colliders.push_back(box1);
colliders.push_back(box2);
std::shared_ptr<Nz::ChipmunkCompoundCollider2D> compound = std::make_shared<Nz::ChipmunkCompoundCollider2D>(colliders);
std::shared_ptr<Nz::CompoundCollider2D> compound = std::make_shared<Nz::CompoundCollider2D>(colliders);
float mass = 1.f;
Nz::ChipmunkRigidBody2D body(world, Nz::ChipmunkRigidBody2D::DynamicSettings({}, mass));
Nz::RigidBody2D body(world, Nz::RigidBody2D::DynamicSettings({}, mass));
body.SetGeom(compound, true, false);
world.Step(Nz::Time::Second());
@@ -271,7 +271,7 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
GIVEN("A physic world and a rigid body of circle")
{
Nz::ChipmunkPhysWorld2D world;
Nz::PhysWorld2D world;
world.SetMaxStepCount(std::numeric_limits<std::size_t>::max());
std::vector<Nz::Vector2f> vertices;
@@ -281,9 +281,9 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
vertices.emplace_back(1.f, 0.f);
Nz::SparsePtr<const Nz::Vector2f> sparsePtr(vertices.data());
std::shared_ptr<Nz::ChipmunkConvexCollider2D> convex = std::make_shared<Nz::ChipmunkConvexCollider2D>(sparsePtr, vertices.size());
std::shared_ptr<Nz::ConvexCollider2D> convex = std::make_shared<Nz::ConvexCollider2D>(sparsePtr, vertices.size());
float mass = 1.f;
Nz::ChipmunkRigidBody2D body(world, Nz::ChipmunkRigidBody2D::DynamicSettings({}, mass));
Nz::RigidBody2D body(world, Nz::RigidBody2D::DynamicSettings({}, mass));
body.SetGeom(convex, true, false);
world.Step(Nz::Time::Second());
@@ -300,14 +300,14 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
GIVEN("A physic world and a rigid body of segment")
{
Nz::ChipmunkPhysWorld2D world;
Nz::PhysWorld2D world;
world.SetMaxStepCount(std::numeric_limits<std::size_t>::max());
Nz::Vector2f positionA(3.f, 4.f);
Nz::Vector2f positionB(1.f, -4.f);
std::shared_ptr<Nz::ChipmunkCollider2D> segment = std::make_shared<Nz::ChipmunkSegmentCollider2D>(positionA, positionB, 0.f);
std::shared_ptr<Nz::Collider2D> segment = std::make_shared<Nz::SegmentCollider2D>(positionA, positionB, 0.f);
float mass = 1.f;
Nz::ChipmunkRigidBody2D body(world, Nz::ChipmunkRigidBody2D::DynamicSettings({}, mass));
Nz::RigidBody2D body(world, Nz::RigidBody2D::DynamicSettings({}, mass));
body.SetGeom(segment, true, false);
world.Step(Nz::Time::Second());
@@ -323,20 +323,20 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]")
}
}
Nz::ChipmunkRigidBody2D CreateBody(Nz::ChipmunkPhysWorld2D& world)
Nz::RigidBody2D CreateBody(Nz::PhysWorld2D& world)
{
Nz::Vector2f positionAABB(3.f, 4.f);
Nz::Rectf aabb(positionAABB.x, positionAABB.y, 1.f, 2.f);
std::shared_ptr<Nz::ChipmunkCollider2D> box = std::make_shared<Nz::ChipmunkBoxCollider2D>(aabb);
std::shared_ptr<Nz::Collider2D> box = std::make_shared<Nz::BoxCollider2D>(aabb);
float mass = 1.f;
Nz::ChipmunkRigidBody2D body(world, Nz::ChipmunkRigidBody2D::DynamicSettings(box, mass));
Nz::RigidBody2D body(world, Nz::RigidBody2D::DynamicSettings(box, mass));
body.SetPosition(Nz::Vector2f::Zero());
return body;
}
void EQUALITY(const Nz::ChipmunkRigidBody2D& left, const Nz::ChipmunkRigidBody2D& right)
void EQUALITY(const Nz::RigidBody2D& left, const Nz::RigidBody2D& right)
{
CHECK(left.GetAABB() == right.GetAABB());
CHECK(left.GetAngularVelocity() == right.GetAngularVelocity());