PoweredSwingTwistConstraintTest.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. #include <Tests/Test.h>
  6. #include <Jolt/Physics/Constraints/SwingTwistConstraint.h>
  7. class PoweredSwingTwistConstraintTest : public Test
  8. {
  9. public:
  10. JPH_DECLARE_RTTI_VIRTUAL(JPH_NO_EXPORT, PoweredSwingTwistConstraintTest)
  11. virtual void Initialize() override;
  12. virtual void PrePhysicsUpdate(const PreUpdateParams &inParams) override;
  13. virtual void GetInitialCamera(CameraState &ioState) const override;
  14. virtual bool HasSettingsMenu() const override { return true; }
  15. virtual void CreateSettingsMenu(DebugUI *inUI, UIElement *inSubMenu) override;
  16. private:
  17. static Vec3 sBodyRotation[2];
  18. inline static EMotorState sSwingMotorState = EMotorState::Velocity;
  19. inline static EMotorState sTwistMotorState = EMotorState::Velocity;
  20. inline static Vec3 sTargetVelocityCS = Vec3(DegreesToRadians(90), 0, 0);
  21. inline static Vec3 sTargetOrientationCS = Vec3::sZero();
  22. inline static float sMaxAngularAcceleration = DegreesToRadians(36000.0f);
  23. inline static float sMaxFrictionAngularAcceleration = 0.0f;
  24. inline static float sNormalHalfConeAngle = DegreesToRadians(60);
  25. inline static float sPlaneHalfConeAngle = DegreesToRadians(45);
  26. inline static float sTwistMinAngle = DegreesToRadians(-180);
  27. inline static float sTwistMaxAngle = DegreesToRadians(180);
  28. inline static float sFrequency = 10.0f;
  29. inline static float sDamping = 2.0f;
  30. SwingTwistConstraint * mConstraint = nullptr;
  31. float mInertiaBody2AsSeenFromConstraint;
  32. };