UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IPhysicsComponent.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "Containers/Array.h"
10#include "UObject/Interface.h"
11#include "IPhysicsComponent.generated.h"
12
14UINTERFACE(MinimalApi, Experimental, meta = (CannotImplementInterfaceInBlueprint))
19
21{
23
24public:
28
30
31#if UE_WITH_REMOTE_OBJECT_HANDLE
32
33protected:
34 virtual void MigratePhysicsState(FArchive& Ar) = 0;
36public:
37
38#endif
39};
40
41template<typename TId>
43{
44 constexpr bool bIsId = std::is_same_v<TId, Chaos::FPhysicsObjectId>;
45 constexpr bool bIsName = std::is_same_v<TId, FName>;
46
47 static_assert(bIsId || bIsName, "Invalid ID type passed to GetAllPhysicsObjectsById");
48 if (!Component)
49 {
50 return {};
51 }
52
54 Objects.Reserve(AllIds.Num());
55
56 for (const TId& Id : AllIds)
57 {
58 if constexpr (bIsId)
59 {
60 Objects.Add(Component->GetPhysicsObjectById(Id));
61 }
62 else if constexpr (bIsName)
63 {
64 Objects.Add(Component->GetPhysicsObjectByName(Id));
65 }
66 }
67
68 return Objects;
69}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
TArray< Chaos::FPhysicsObjectHandle > GetAllPhysicsObjectsById(IPhysicsComponent *Component, const TArray< TId > &AllIds)
Definition IPhysicsComponent.h:42
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UINTERFACE(...)
Definition ObjectMacros.h:780
Definition ParticleHandle.h:2739
Definition Archive.h:1208
Definition NameTypes.h:617
Definition IPhysicsComponent.h:21
virtual Chaos::FPhysicsObjectId GetIdFromGTParticle(Chaos::FGeometryParticle *Particle) const =0
virtual Chaos::FPhysicsObject * GetPhysicsObjectByName(const FName &Name) const =0
virtual TArray< Chaos::FPhysicsObject * > GetAllPhysicsObjects() const =0
virtual Chaos::FPhysicsObject * GetPhysicsObjectById(Chaos::FPhysicsObjectId Id) const =0
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition UniquePtr.h:107
Definition Interface.h:19
Definition IPhysicsComponent.h:16
int32 FPhysicsObjectId
Definition PhysicsObject.h:20
Definition RobinHoodHashTable.h:18
Definition PhysicsObjectInternal.h:16