From 21e08798ce64503a06c2e40d2994e5c6c664dce0 Mon Sep 17 00:00:00 2001 From: SirLynix Date: Sun, 19 Mar 2023 12:05:54 +0100 Subject: [PATCH] Test Showcase with JoltPhysics --- examples/Showcase/main.cpp | 20 +++++++++----------- examples/Showcase/xmake.lua | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/Showcase/main.cpp b/examples/Showcase/main.cpp index 140beb8c9..384a64932 100644 --- a/examples/Showcase/main.cpp +++ b/examples/Showcase/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -18,7 +19,7 @@ NAZARA_REQUEST_DEDICATED_GPU() int main() { - Nz::Application app; + Nz::Application app; Nz::PluginLoader loader; Nz::Plugin assimp = loader.Load(); @@ -30,7 +31,7 @@ int main() auto& world = ecs.AddWorld(); world.AddSystem(); - Nz::BulletPhysics3DSystem& physSytem = world.AddSystem(); + Nz::JoltPhysics3DSystem& physSytem = world.AddSystem(); physSytem.GetPhysWorld().SetGravity(Nz::Vector3f::Zero()); Nz::RenderSystem& renderSystem = world.AddSystem(); @@ -58,12 +59,12 @@ int main() auto& playerNode = playerEntity.emplace(); playerNode.SetPosition(0.f, 1.8f, 1.f); - auto playerCollider = std::make_shared(Nz::Vector3f(0.2f, 1.8f, 0.2f)); + auto playerCollider = std::make_shared(Nz::Vector3f(0.2f, 1.8f, 0.2f)); - auto& playerBody = playerEntity.emplace(physSytem.CreateRigidBody(playerCollider)); + auto& playerBody = playerEntity.emplace(physSytem.CreateRigidBody(playerCollider)); playerBody.SetMass(42.f); - std::shared_ptr colliderMesh = Nz::Mesh::Build(playerCollider->GenerateMesh()); + std::shared_ptr colliderMesh = Nz::Mesh::Build(playerCollider->GenerateDebugMesh()); std::shared_ptr colliderGraphicalMesh = Nz::GraphicalMesh::BuildFromMesh(*colliderMesh); std::shared_ptr colliderMat = Nz::Graphics::Instance()->GetDefaultMaterials().basicMaterial->Instantiate(); @@ -241,9 +242,6 @@ int main() sphereNode.SetInheritScale(false); sphereNode.SetParentJoint(bobEntity, "RightHand"); - auto& sphereBody = sphereEntity.emplace(&physSytem.GetPhysWorld()); - sphereBody.SetGeom(std::make_shared(0.1f)); - auto& sphereGfx = sphereEntity.emplace(); sphereGfx.AttachRenderable(sphereModel); } @@ -335,8 +333,8 @@ int main() floorEntity.emplace(); - auto& planeBody = planeEntity.emplace(&physSytem.GetPhysWorld()); - planeBody.SetGeom(std::make_shared(Nz::Vector3f(planeSize.x, 0.5f, planeSize.y))); + auto& planeBody = floorEntity.emplace(physSytem.CreateRigidBody(std::make_shared(Nz::Vector3f(planeSize.x, 0.5f, planeSize.y)))); + planeBody.SetMass(0.f); std::shared_ptr boxMeshGfx = Nz::GraphicalMesh::Build(Nz::Primitive::Box(Nz::Vector3f(0.5f, 0.5f, 0.5f)), meshPrimitiveParams); @@ -387,7 +385,7 @@ int main() { float updateTime = deltaTime->AsSeconds(); - auto& playerBody = playerEntity.get(); + auto& playerBody = playerEntity.get(); //playerBody.SetAngularDamping(std::numeric_limits::max()); float mass = playerBody.GetMass(); diff --git a/examples/Showcase/xmake.lua b/examples/Showcase/xmake.lua index 61dff77a6..2bdda971f 100644 --- a/examples/Showcase/xmake.lua +++ b/examples/Showcase/xmake.lua @@ -5,7 +5,7 @@ end target("Showcase") set_group("Examples") set_kind("binary") - add_deps("NazaraAudio", "NazaraGraphics", "NazaraPhysics2D", "NazaraBulletPhysics3D", "NazaraWidgets") + add_deps("NazaraAudio", "NazaraGraphics", "NazaraPhysics2D", "NazaraBulletPhysics3D", "NazaraJoltPhysics3D", "NazaraWidgets") if has_config("embed_plugins") then add_deps("PluginAssimp") else