PhysicsSetupManipulators.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <Editor/Plugins/Ragdoll/PhysicsSetupManipulators.h>
  9. #include <AzFramework/Physics/Character.h>
  10. #include <AzFramework/Physics/Configuration/JointConfiguration.h>
  11. namespace EMotionFX
  12. {
  13. bool PhysicsSetupManipulatorData::HasColliders() const
  14. {
  15. return m_valid && m_colliderNodeConfiguration && !m_colliderNodeConfiguration->m_shapes.empty();
  16. }
  17. bool PhysicsSetupManipulatorData::HasCapsuleCollider() const
  18. {
  19. return HasColliders() && m_colliderNodeConfiguration->m_shapes[0].second->GetShapeType() == Physics::ShapeType::Capsule;
  20. }
  21. bool PhysicsSetupManipulatorData::HasJointLimit() const
  22. {
  23. return m_valid && m_jointConfiguration;
  24. }
  25. AZ::Transform PhysicsSetupManipulatorData::GetJointParentFrameWorld() const
  26. {
  27. const AZ::Quaternion& parentWorldRotation = m_parentWorldTransform.GetRotation();
  28. const AZ::Vector3& childWorldTranslation = m_nodeWorldTransform.GetTranslation();
  29. return AZ::Transform::CreateFromQuaternionAndTranslation(parentWorldRotation, childWorldTranslation) *
  30. AZ::Transform::CreateFromQuaternion(m_jointConfiguration->m_parentLocalRotation);
  31. }
  32. void PhysicsSetupManipulatorsBase::SetViewportId(AZ::s32 viewportId)
  33. {
  34. m_viewportId = viewportId;
  35. }
  36. } // namespace EMotionFX