// SPDX-FileCopyrightText: 2021 Jorrit Rouwe // SPDX-License-Identifier: MIT #include #include #include JPH_IMPLEMENT_RTTI_VIRTUAL(LoadRigTest) { JPH_ADD_BASE_CLASS(LoadRigTest, Test) } LoadRigTest::ConstraintNameAndType LoadRigTest::sTypes[] = { { "Fixed", EConstraintOverride::TypeFixed }, { "Point", EConstraintOverride::TypePoint }, { "Hinge", EConstraintOverride::TypeHinge }, { "Slider", EConstraintOverride::TypeSlider }, { "Cone", EConstraintOverride::TypeCone }, { "Ragdoll", EConstraintOverride::TypeRagdoll }, }; EConstraintOverride LoadRigTest::sConstraintType = EConstraintOverride::TypeRagdoll; LoadRigTest::~LoadRigTest() { mRagdoll->RemoveFromPhysicsSystem(); } void LoadRigTest::Initialize() { // Floor CreateFloor(); // Load ragdoll mRagdollSettings = RagdollLoader::sLoad("Assets/Human.tof", EMotionType::Dynamic, sConstraintType); // Create ragdoll mRagdoll = mRagdollSettings->CreateRagdoll(0, 0, mPhysicsSystem); mRagdoll->AddToPhysicsSystem(EActivation::Activate); } void LoadRigTest::CreateSettingsMenu(DebugUI *inUI, UIElement *inSubMenu) { inUI->CreateTextButton(inSubMenu, "Constraint Type", [this, inUI]() { UIElement *constraint_type = inUI->CreateMenu(); for (uint i = 0; i < size(sTypes); ++i) inUI->CreateTextButton(constraint_type, sTypes[i].mName, [this, i]() { sConstraintType = sTypes[i].mType; RestartTest(); }); inUI->ShowMenu(constraint_type); }); }