PoweredSwingTwistConstraintTest.h 1.5 KB

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