16#include "PhysicsObjectInterface.generated.h"
27 Chaos::FPhysicsObjectHandle PhysicsObject =
nullptr;
29 double ClosestDistance = 0.0;
36 return PhysicsObject !=
nullptr;
53 template<EThreadContext Id>
78 UE_DEPRECATED(5.3,
"GetAllShapes has been deprecated. Please use GetAllThreadShapes instead.")
112 template<EThreadContext Id>
121 UE_DEPRECATED(5.5,
"This version of AddTorque has been deprecated. Please use the version with @param bAccelChange")
128 UE_DEPRECATED(5.4,
"This version of AddRadialImpulse has been deprecated. Please use the version where the strain value is passed explicitly")
131 CHAOS_API void AddRadialImpulse(
TArrayView<const FPhysicsObjectHandle> InObjects,
FVector Origin,
float Radius,
float Strength,
enum ERadialImpulseFalloff Falloff,
bool bApplyStrain,
float Strain,
bool bInvalidate,
bool bVelChange =
false,
float MinValue = 0.f,
float MaxValue = 1.f);
136 UE_DEPRECATED(5.7,
"Use UpdateCombinedShapeFilterData instead")
140 template<
typename TPayloadType,
typename T,
int d>
143 if (!SpatialAcceleration)
157 template<
typename TPayloadType,
typename T,
int d>
160 if (!SpatialAcceleration)
207 template<EThreadContext Id>
211 template<EThreadContext Id>
ERadialImpulseFalloff
Definition ChaosEngineInterface.h:91
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition ParticleHandle.h:213
Definition ImplicitObject.h:111
Definition PBDRigidsSolver.h:84
Definition PhysicsObjectInterface.h:189
static CHAOS_API FPBDRigidsSolver * GetSolver(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:1453
static CHAOS_API void SetName(const FPhysicsObjectHandle Object, const FName &InName)
Definition PhysicsObjectInterface.cpp:1400
static FReadPhysicsObjectInterface< Id > CreateReadInterface()
Definition PhysicsObjectInterface.h:208
static CHAOS_API FName GetName(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:1410
static FWritePhysicsObjectInterface< Id > CreateWriteInterface()
Definition PhysicsObjectInterface.h:212
static CHAOS_API void SetId(const FPhysicsObjectHandle Object, int32 InId)
Definition PhysicsObjectInterface.cpp:1433
static CHAOS_API IPhysicsProxyBase * GetProxy(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:1498
static CHAOS_API int32 GetId(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:1443
Definition PhysicsObjectInterface.h:55
CHAOS_API bool AreAllDynamic(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:614
CHAOS_API bool AreAllRigidBody(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:603
CHAOS_API bool AreAllSleeping(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:592
CHAOS_API FVector GetV(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:315
CHAOS_API FVector GetCoM(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:274
CHAOS_API FClosestPhysicsObjectResult GetClosestPhysicsBodyFromLocation(TArrayView< const FConstPhysicsObjectHandle > InObjects, const FVector &WorldLocation)
Definition PhysicsObjectInterface.cpp:766
CHAOS_API FBox GetWorldBounds(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:734
CHAOS_API TArray< TThreadParticle< Id > * > GetAllParticles(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:433
CHAOS_API bool AreAllValid(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:570
CHAOS_API float GetMass(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:682
CHAOS_API FVector GetVAtPoint(const FConstPhysicsObjectHandle Object, const FVector &Point)
Definition PhysicsObjectInterface.cpp:334
CHAOS_API FVector GetWorldCoM(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:293
CHAOS_API FAccelerationStructureHandle CreateAccelerationStructureHandle(const FConstPhysicsObjectHandle Handle)
Definition PhysicsObjectInterface.cpp:810
CHAOS_API int32 GetClusterHierarchyLevel(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:223
CHAOS_API bool AreAllKinematic(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:581
CHAOS_API bool AreAllDynamicOrSleeping(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:625
FReadPhysicsObjectInterface()=default
CHAOS_API TArray< FPerShapeData * > GetAllShapes(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:482
CHAOS_API FBox GetBounds(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:702
CHAOS_API bool AreAllDisabled(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:636
CHAOS_API FPhysicsObjectHandle GetRootObject(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:179
CHAOS_API FQuat GetR(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:299
CHAOS_API void VisitEveryShape(TArrayView< const FConstPhysicsObjectHandle > InObjects, TFunctionRef< bool(const FConstPhysicsObjectHandle, TThreadShapeInstance< Id > *)> Lambda)
Definition PhysicsObjectInterface.cpp:547
CHAOS_API FChaosUserDefinedEntity * GetUserDefinedEntity(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:196
CHAOS_API TThreadRigidParticle< Id > * GetRigidParticle(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:416
CHAOS_API FTransform GetTransform(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:252
CHAOS_API FVector GetX(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:258
CHAOS_API FImplicitObjectRef GetGeometry(const FConstPhysicsObjectHandle Handle)
Definition PhysicsObjectInterface.cpp:531
CHAOS_API TThreadKinematicParticle< Id > * GetKinematicParticle(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:399
CHAOS_API TArray< TThreadShapeInstance< Id > * > GetAllThreadShapes(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:507
CHAOS_API FSpatialAccelerationIdx GetSpatialIndex(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:373
CHAOS_API bool HasChildren(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:190
CHAOS_API FVector GetW(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:354
CHAOS_API TThreadParticle< Id > * GetParticle(const FConstPhysicsObjectHandle Object)
Definition PhysicsObjectInterface.cpp:389
CHAOS_API TArray< TThreadRigidParticle< Id > * > GetAllRigidParticles(TArrayView< const FConstPhysicsObjectHandle > InObjects, bool bIncludeNulls=false)
Definition PhysicsObjectInterface.cpp:455
CHAOS_API bool AreAllShapesQueryEnabled(TArrayView< const FConstPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:655
Definition PhysicsObjectInterface.h:114
CHAOS_API void SetAngularVelocityInRadians(TArrayView< const FPhysicsObjectHandle > InObjects, const FVector &InAngularVelocity, bool bAddToCurrent=false)
Definition PhysicsObjectInterface.cpp:1077
CHAOS_API void ForceKinematic(TArrayView< const FPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:910
CHAOS_API void AddRadialImpulse(TArrayView< const FPhysicsObjectHandle > InObjects, FVector Origin, float Radius, float Strength, enum ERadialImpulseFalloff Falloff, bool bApplyStrain, bool bInvalidate, bool bVelChange=false)
Definition PhysicsObjectInterface.cpp:1167
CHAOS_API void SetAngularEtherDrag(TArrayView< const FPhysicsObjectHandle > InObjects, float InAngularDrag)
Definition PhysicsObjectInterface.cpp:1284
void AddToSpatialAcceleration(TArrayView< const FPhysicsObjectHandle > InObjects, ISpatialAcceleration< TPayloadType, T, d > *SpatialAcceleration)
Definition PhysicsObjectInterface.h:141
CHAOS_API void WakeUp(TArrayView< const FPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:882
CHAOS_API void SetUserDefinedEntity(TArrayView< const FPhysicsObjectHandle > InObjects, FChaosUserDefinedEntity *UserDefinedEntity)
Definition PhysicsObjectInterface.cpp:816
CHAOS_API void SetLinearImpulseVelocity(TArrayView< const FPhysicsObjectHandle > InObjects, const FVector &Impulse, bool bVelChange)
Definition PhysicsObjectInterface.cpp:1122
void RemoveFromSpatialAcceleration(TArrayView< const FPhysicsObjectHandle > InObjects, ISpatialAcceleration< TPayloadType, T, d > *SpatialAcceleration)
Definition PhysicsObjectInterface.h:158
CHAOS_API void UpdateCombinedShapeFilterData(TArrayView< const FPhysicsObjectHandle > InObjects, const Chaos::Filter::FCombinedShapeFilterData &CombinedShapeFilter)
Definition PhysicsObjectInterface.cpp:1340
CHAOS_API void SetLinearVelocity(TArrayView< const FPhysicsObjectHandle > InObjects, const FVector &InVelocity, bool bAddToCurrent=false)
Definition PhysicsObjectInterface.cpp:1032
CHAOS_API void UpdateShapeFilterData(TArrayView< const FPhysicsObjectHandle > InObjects, const FCollisionFilterData &QueryData, const FCollisionFilterData &SimData)
Definition PhysicsObjectInterface.cpp:1333
CHAOS_API void PutToSleep(TArrayView< const FPhysicsObjectHandle > InObjects)
Definition PhysicsObjectInterface.cpp:864
FWritePhysicsObjectInterface()=default
CHAOS_API void UpdateShapeCollisionFlags(TArrayView< const FPhysicsObjectHandle > InObjects, bool bSimCollision, bool bQueryCollision)
Definition PhysicsObjectInterface.cpp:1310
CHAOS_API void SetLinearEtherDrag(TArrayView< const FPhysicsObjectHandle > InObjects, float InLinearDrag)
Definition PhysicsObjectInterface.cpp:1257
CHAOS_API void AddConnectivityEdgesBetween(TArrayView< const FPhysicsObjectHandle > FromObjects, TArrayView< const FPhysicsObjectHandle > ToObjects, const FClusterCreationParameters &Parameters)
Definition PhysicsObjectInterface.cpp:1360
Definition ISpatialAcceleration.h:267
virtual bool UpdateElementIn(const TPayloadType &Payload, const TAABB< T, d > &NewBounds, bool bHasBounds, FSpatialAccelerationIdx Idx)
Definition ISpatialAcceleration.h:333
virtual bool RemoveElementFrom(const TPayloadType &Payload, FSpatialAccelerationIdx Idx)
Definition ISpatialAcceleration.h:323
Definition ChaosScene.h:88
Definition ChaosUserEntity.h:9
Definition NameTypes.h:617
Definition PhysicsProxyBase.h:97
Definition ArrayView.h:139
Definition AssetRegistryState.h:50
Definition SkeletalMeshComponent.h:307
std::conditional_t< Id==EThreadContext::External, FKinematicGeometryParticle, FKinematicGeometryParticleHandle > TThreadKinematicParticle
Definition ParticleHandleFwd.h:123
std::conditional_t< Id==EThreadContext::External, FGeometryParticle, FGeometryParticleHandle > TThreadParticle
Definition ParticleHandleFwd.h:120
std::conditional_t< Id==EThreadContext::External, FShapeInstanceProxy, FShapeInstance > TThreadShapeInstance
Definition ShapeInstanceFwd.h:33
std::conditional_t< Id==EThreadContext::External, FPBDRigidParticle, FPBDRigidParticleHandle > TThreadRigidParticle
Definition ParticleHandleFwd.h:126
FPBDRigidsSolver FPBDRigidsSolver
Definition PBDRigidsEvolutionFwd.h:15
int
Definition TestServer.py:515
Definition ClusterCreationParameters.h:14
Definition PhysicsObjectInternal.h:16
Definition GeometryParticlesfwd.h:59
Definition CollisionFilterData.h:187
Definition PhysicsObjectInterface.h:24
bool IsValid() const
Definition PhysicsObjectInterface.h:34
Definition CollisionFilterData.h:46
TVector< T > Min
Definition Box.h:39
TVector< T > Max
Definition Box.h:42