// SPDX-FileCopyrightText: 2021 Jorrit Rouwe // SPDX-License-Identifier: MIT #pragma once #include #include #include #include #include // This test demonstrates powered constraints. It can either show a ragdoll in a static pose or in an animated pose (e.g. walk). class PoweredRigTest : public Test { public: JPH_DECLARE_RTTI_VIRTUAL(PoweredRigTest) // Destructor virtual ~PoweredRigTest() override; // Number used to scale the terrain and camera movement to the scene virtual float GetWorldScale() const override { return 0.2f; } virtual void Initialize() override; virtual void PrePhysicsUpdate(const PreUpdateParams &inParams) override; // Optional settings menu virtual bool HasSettingsMenu() const override { return true; } virtual void CreateSettingsMenu(DebugUI *inUI, UIElement *inSubMenu) override; // Saving / restoring state for replay virtual void SaveState(StateRecorder &inStream) const override; virtual void RestoreState(StateRecorder &inStream) override; private: // List of possible animation names static const char * sAnimations[]; // Filename of animation to load for this test static const char * sAnimationName; float mTime = 0.0f; Ref mRagdollSettings; Ref mRagdoll; Ref mAnimation; SkeletonPose mPose; };