Utils.cpp 896 B

123456789101112131415161718192021222324252627
  1. #include "Utils.h"
  2. #include <HingeJointComponent.h>
  3. #include <PhysX/Joint/PhysXJointRequestsBus.h>
  4. #include <PrismaticJointComponent.h>
  5. namespace TestScene::Utils {
  6. AZ::EntityComponentIdPair GetJoint(const AZ::EntityId entityId) {
  7. AZ::Entity *entity{nullptr};
  8. AZ::ComponentApplicationBus::BroadcastResult(
  9. entity, &AZ::ComponentApplicationRequests::FindEntity, entityId);
  10. if (!entity) {
  11. return AZ::EntityComponentIdPair(entityId, AZ::InvalidComponentId);
  12. }
  13. auto *component1 = entity->FindComponent<PhysX::HingeJointComponent>();
  14. auto *component2 = entity->FindComponent<PhysX::PrismaticJointComponent>();
  15. auto componentId(AZ::InvalidComponentId);
  16. if (component1) {
  17. componentId = component1->GetId();
  18. } else if (component2) {
  19. componentId = component2->GetId();
  20. }
  21. return AZ::EntityComponentIdPair(entityId, componentId);
  22. }
  23. } // namespace TestScene::Utils