7#include "Containers/Array.h"
8#include "Containers/Map.h"
9#include "Containers/Set.h"
18#include "ClusterUnionComponent.generated.h"
29 class FPBDRigidsSolver;
31 template <
typename TPayload,
typename T,
int d>
32 class ISpatialAccelerationCollection;
54 return ID ==
Other.ID;
59 return !(*
this ==
Other);
64 return GetTypeHash(Data.ID);
75#if WITH_EDITORONLY_DATA
76 UE_DEPRECATED(5.4,
"This property is deprecated. Please use BonesData instead.")
118 bool bWasReplicatingMovement =
true;
144#if WITH_EDITORONLY_DATA
145 UE_DEPRECATED(5.4,
"This property is deprecated. Please use BonesData instead.")
219 UFUNCTION(BlueprintCallable, Category=
"Cluster Union")
235 UFUNCTION(BlueprintCallable, Category = "
Cluster Union", meta = (DeprecatedFunction, DeprecationMessage = "SetIsAnchored is deprecated, Use SetSimulatePhysics
instead"))
241 ENGINE_API void SetEnableDamageFromCollision(
bool bValue);
244 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter = SetEnableDamageFromCollision, Category = "
Cluster Union")
245 bool bEnableDamageFromCollision;
270 return ComponentKey <
Other.ComponentKey;
275 return ComponentKey ==
Other.ComponentKey;
293 , RigidParticle(RigidParticle)
294 , ParticleID(ParticleID)
295 , ChildToParentTransform(ChildToParentTransform)
314 ENGINE_API virtual void WakeAllRigidBodies()
override;
315 ENGINE_API virtual bool IsAnyRigidBodyAwake()
override;
325 UPROPERTY(BlueprintAssignable, Category =
"Events")
328 UPROPERTY(BlueprintAssignable, Category = "Events")
331 UPROPERTY(BlueprintAssignable, Category = "Events")
340 ENGINE_API void VisitAllCurrentChildComponents(const
TFunction<
bool(UPrimitiveComponent*)>& Lambda) const;
348 ENGINE_API void ForceRebuildGTParticleGeometry();
361 friend class UModularVehicleBaseComponent;
395 UPROPERTY(EditAnywhere, Category =
"Cluster Union")
401 int32 GravityGroupIndexOverride;
422 UPROPERTY(ReplicatedUsing=OnRep_RigidState)
426 mutable bool bHasCachedLocalBounds;
430 bool bPhysicsPredictionEnabled;
442 Chaos::FClusterUnionPhysicsProxy* PhysicsProxy;
454 static_assert(std::is_same_v<TSourceData, FClusterUnionPendingAddData> || std::is_same_v<TSourceData, FClusteredComponentData>,
"Only FClusterUnionPendingAddData and FClusteredComponentData are supported");
477 ENGINE_API TArray<UPrimitiveComponent*> GetAllCurrentChildComponents() const;
485 ENGINE_API void RemoveGTParticleGeometry(const TSet<
Chaos::FPhysicsObjectHandle>& PhysicsObjects);
498 using UPrimitiveComponent::LineTraceComponent;
499 using UPrimitiveComponent::SweepComponent;
500 using UPrimitiveComponent::OverlapComponentWithResult;
OODEFFUNC typedef const int const char * function
Definition oodle2.h:710
EUpdateTransformFlags
Definition ActorComponent.h:95
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#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 DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param1Name, Param2Type, Param2Name)
Definition DelegateCombinations.h:62
#define DECLARE_MULTICAST_DELEGATE_FourParams(DelegateName, Param1Type, Param2Type, Param3Type, Param4Type)
Definition DelegateCombinations.h:76
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(DelegateName, Param1Type, Param1Name, Param2Type, Param2Name, Param3Type, Param3Name)
Definition DelegateCombinations.h:71
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type, Param1Name)
Definition DelegateCombinations.h:53
ETeleportType
Definition EngineTypes.h:2401
ECollisionChannel
Definition EngineTypes.h:1088
return true
Definition ExternalRpcRegistry.cpp:601
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
EComponentPhysicsStateChange
Definition PrimitiveComponent.h:220
Definition ClusterUnionPhysicsProxy.h:63
Definition ImplicitObject.h:111
Definition ISpatialAcceleration.h:267
Definition ParticleHandle.h:2739
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
Definition UnrealType.h:3087
Definition PhysScene_Chaos.h:116
Definition UObjectGlobals.h:2492
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition ObjectKey.h:228
Definition SortedMap.h:20
Definition UniquePtr.h:107
void Reset(T *InPtr=nullptr)
Definition UniquePtr.h:346
Definition ClusterUnionComponent.h:211
Chaos::FClusterUnionPhysicsProxy * GetPhysicsProxy() const
Definition ClusterUnionComponent.h:374
virtual bool ShouldDispatchWakeEvents(FName BoneName) const override
Definition ClusterUnionComponent.h:509
virtual bool CanEditSimulatePhysics() override
Definition ClusterUnionComponent.h:504
TMap< TObjectKey< UPrimitiveComponent >, FClusteredComponentData > PerComponentData
Definition ClusterUnionComponent.h:383
Chaos::FClusterUnionPhysicsProxy * GetPhysicsProxy()
Definition ClusterUnionComponent.h:375
Definition ClusterUnionReplicatedProxyComponent.h:26
void Transform(const InT &Input, OutT &&Output, TransformT Trans)
Definition Transform.h:66
Definition SkeletalMeshComponent.h:307
EObjectStateType
Definition ObjectState.h:10
int32 FPhysicsObjectId
Definition PhysicsObject.h:20
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition PhysicsObjectInternal.h:16
Definition GeometryParticlesfwd.h:87
Definition BodyInstance.h:320
Definition PhysicsInterfaceTypesCore.h:199
Definition ClusterUnionComponent.h:37
int32 ID
Definition ClusterUnionComponent.h:49
Chaos::FUniqueIdx ParticleID
Definition ClusterUnionComponent.h:50
bool operator!=(const FClusterUnionBoneData &Other) const
Definition ClusterUnionComponent.h:57
bool operator==(const FClusterUnionBoneData &Other) const
Definition ClusterUnionComponent.h:52
FClusterUnionBoneData(int32 InBoneId, Chaos::FUniqueIdx InParticleID)
Definition ClusterUnionComponent.h:45
friend uint32 GetTypeHash(const FClusterUnionBoneData &Data)
Definition ClusterUnionComponent.h:62
Definition ClusterUnionComponent.h:166
Definition ClusterUnionComponent.h:139
Definition ClusterUnionComponent.h:123
Definition ClusterUnionComponent.h:112
Definition ClusterUnionComponent.h:70
TArray< FClusterUnionBoneData > BonesData
Definition ClusterUnionComponent.h:93
Definition CollisionQueryParams.h:430
Definition CollisionQueryParams.h:43
Definition CollisionQueryParams.h:324
Definition EngineTypes.h:3704
Definition ExternalSpatialAccelerationPayload.h:24
Definition HitResult.h:21
Definition NavigationSystemHelpers.h:25
Definition SafePhysicsObjectHandle.h:10
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25
Definition ClusterUnionComponent.h:288
FMappedBoneData()=default
Chaos::FUniqueIdx ParticleID
Definition ClusterUnionComponent.h:301
FMappedBoneData(Chaos::FPhysicsObjectHandle PhysicsObjectHande, Chaos::FPBDRigidParticle *RigidParticle, const Chaos::FUniqueIdx &ParticleID, const FTransform &ChildToParentTransform)
Definition ClusterUnionComponent.h:291
FTransform ChildToParentTransform
Definition ClusterUnionComponent.h:302
Definition ClusterUnionComponent.h:251
FMappedComponentKey(TObjectKey< UPrimitiveComponent > InComponentKey, UPrimitiveComponent *InComponent)
Definition ClusterUnionComponent.h:256
FMappedComponentKey()
Definition ClusterUnionComponent.h:252
FMappedComponentKey(UPrimitiveComponent *InComponent)
Definition ClusterUnionComponent.h:262
TObjectKey< UPrimitiveComponent > ComponentKey
Definition ClusterUnionComponent.h:283
friend uint32 GetTypeHash(const FMappedComponentKey &InMappedComponentKey)
Definition ClusterUnionComponent.h:278
UPrimitiveComponent * ComponentPtr
Definition ClusterUnionComponent.h:284
bool operator<(const FMappedComponentKey &Other) const
Definition ClusterUnionComponent.h:268
bool operator==(const FMappedComponentKey &Other) const
Definition ClusterUnionComponent.h:273
Definition BoxSphereBounds.h:25