|
| | FGeometryCollectionPhysicsProxy ()=delete |
| |
| CHAOS_API | FGeometryCollectionPhysicsProxy (UObject *InOwner, FGeometryDynamicCollection &GameThreadCollection, const FSimulationParameters &SimulationParameters, FCollisionFilterData InSimFilter, FCollisionFilterData InQueryFilter, FGuid InCollectorGuid=FGuid::NewGuid(), const Chaos::EMultiBufferMode BufferMode=Chaos::EMultiBufferMode::TripleGuarded) |
| |
| CHAOS_API | FGeometryCollectionPhysicsProxy (UObject *InOwner, TSharedRef< FGeometryDynamicCollection > GameThreadCollection, const FSimulationParameters &SimulationParameters, FCollisionFilterData InSimFilter, FCollisionFilterData InQueryFilter, FGuid InCollectorGuid=FGuid::NewGuid(), const Chaos::EMultiBufferMode BufferMode=Chaos::EMultiBufferMode::TripleGuarded) |
| |
| virtual CHAOS_API | ~FGeometryCollectionPhysicsProxy () |
| |
| CHAOS_API void | Initialize (Chaos::FPBDRigidsEvolutionBase *Evolution) |
| |
| void | Reset () |
| |
| bool | IsInitializedOnPhysicsThread () const |
| |
| CHAOS_API void | InitializeBodiesPT (Chaos::FPBDRigidsSolver *RigidsSolver, typename Chaos::FPBDRigidsSolver::FParticlesType &Particles) |
| |
| bool | IsSimulating () const |
| |
| Chaos::FParticleData * | NewData () |
| |
| CHAOS_API void | BufferGameState () |
| |
| void | ClearAccumulatedData () |
| |
| CHAOS_API void | BufferPhysicsResults_Internal (Chaos::FPBDRigidsSolver *CurrentSolver, Chaos::FDirtyGeometryCollectionData &BufferData) |
| |
| CHAOS_API void | BufferPhysicsResults_External (Chaos::FDirtyGeometryCollectionData &BufferData) |
| |
| CHAOS_API void | PushStateOnGameThread (Chaos::FPBDRigidsSolver *InSolver) |
| |
| CHAOS_API void | PushToPhysicsState () |
| |
| CHAOS_API void | FlipBuffer () |
| |
| CHAOS_API bool | PullFromPhysicsState (const Chaos::FDirtyGeometryCollectionData &BufferData, const int32 SolverSyncTimestamp, const Chaos::FDirtyGeometryCollectionData *NextPullData=nullptr, const Chaos::FRealSingle *Alpha=nullptr, const Chaos::FDirtyRigidParticleReplicationErrorData *Error=nullptr, const Chaos::FReal AsyncFixedTimeStep=0) |
| |
| bool | IsDirty () |
| |
| CHAOS_API void | SyncBeforeDestroy () |
| |
| CHAOS_API void | OnRemoveFromSolver (Chaos::FPBDRigidsSolver *RBDSolver) |
| |
| CHAOS_API void | OnRemoveFromScene () |
| |
| CHAOS_API void | OnUnregisteredFromSolver () |
| |
| void | SetCollisionParticlesPerObjectFraction (float CollisionParticlesPerObjectFractionIn) |
| |
| TArray< FClusterHandle * > & | GetSolverClusterHandles () |
| |
| TArray< FClusterHandle * > & | GetSolverParticleHandles () |
| |
| FClusterHandle * | GetSolverClusterHandle_Internal (int32 Index) const |
| |
| const FGeometryCollectionResults * | GetConsumerResultsGT () const |
| |
| CHAOS_API void | BufferFieldCommand_External (FFieldSystemCommand &&Command) |
| |
| CHAOS_API void | BufferCommand (Chaos::FPBDRigidsSolver *RigidsSolver, const FFieldSystemCommand &Command) |
| |
| CHAOS_API void | BufferFieldCommand_Internal (Chaos::FPBDRigidsSolver *RigidsSolver, const FFieldSystemCommand &Command) |
| |
| CHAOS_API void | FieldForcesUpdateCallback (Chaos::FPBDRigidsSolver *RigidSolver) |
| |
| CHAOS_API void | FieldParameterUpdateCallback (Chaos::FPBDRigidsSolver *RigidSolver, const bool bUpdateViews=true) |
| |
| void | UpdateKinematicBodiesCallback (const FParticlesType &InParticles, const float InDt, const float InTime, FKinematicProxy &InKinematicProxy) |
| |
| void | StartFrameCallback (const float InDt, const float InTime) |
| |
| void | EndFrameCallback (const float InDt) |
| |
| void | BindParticleCallbackMapping (Chaos::TArrayCollectionArray< PhysicsProxyWrapper > &PhysicsProxyReverseMap, Chaos::TArrayCollectionArray< int32 > &ParticleIDReverseMap) |
| |
| void | CreateRigidBodyCallback (FParticlesType &InOutParticles) |
| |
| void | DisableCollisionsCallback (TSet< TTuple< int32, int32 > > &InPairs) |
| |
| void | AddForceCallback (FParticlesType &InParticles, const float InDt, const int32 InIndex) |
| |
| bool | IsGTCollectionDirty () const |
| |
| CHAOS_API void | SetWorldTransform_External (const FTransform &WorldTransform) |
| |
| const FTransform & | GetPreviousWorldTransform_External () const |
| |
| const FTransform & | GetWorldTransform_External () |
| |
| CHAOS_API void | SetUseStaticMeshCollisionForTraces_External (bool bInUseStaticMeshCollisionForTraces) |
| |
| const TArray< FClusterHandle * > | GetParticles () const |
| |
| const TArray< FClusterHandle * > | GetUnorderedParticles_Internal () const |
| |
| FClusterHandle * | GetParticle_Internal (int32 Index) const |
| |
| const FSimulationParameters & | GetSimParameters () const |
| |
| FSimulationParameters & | GetSimParameters () |
| |
| FGeometryDynamicCollection & | GetPhysicsCollection () |
| |
| FGeometryDynamicCollection & | GetExternalCollection () |
| |
| TArray< TUniquePtr< FParticle > > & | GetExternalParticles () |
| |
| TArray< TUniquePtr< FParticle > > & | GetUnorderedParticles_External () |
| |
| CHAOS_API FParticle * | GetParticleByIndex_External (int32 Index) |
| |
| CHAOS_API const FParticle * | GetParticleByIndex_External (int32 Index) const |
| |
| CHAOS_API FParticleHandle * | GetParticleByIndex_Internal (int32 Index) |
| |
| CHAOS_API const FParticleHandle * | GetParticleByIndex_Internal (int32 Index) const |
| |
| FParticle * | GetInitialRootParticle_External () |
| |
| const FParticle * | GetInitialRootParticle_External () const |
| |
| FParticleHandle * | GetInitialRootParticle_Internal () |
| |
| const FParticleHandle * | GetInitialRootParticle_Internal () const |
| |
| CHAOS_API void | GetRelevantParticleHandles (TArray< Chaos::TGeometryParticleHandle< Chaos::FReal, 3 > * > &Handles, const Chaos::FPBDRigidsSolver *RigidSolver, EFieldResolutionType ResolutionType) |
| |
| CHAOS_API void | GetFilteredParticleHandles (TArray< Chaos::TGeometryParticleHandle< Chaos::FReal, 3 > * > &Handles, const Chaos::FPBDRigidsSolver *RigidSolver, const EFieldFilterType FilterType, const EFieldObjectType ObjectType) |
| |
| virtual void * | GetHandleUnsafe () const override |
| |
| int32 | GetTransformGroupIndexFromHandle (const FParticleHandle *Handle) const |
| |
| void | GetTransformGroupIndicesFromHandles (const TArray< FParticleHandle * > Handles, TArray< int32 > &IndicesOut) const |
| |
| FGeometryCollectionItemIndex | GetInternalClusterParentItemIndex_External (int32 ChildTransformIndex) const |
| |
| const TArray< int32 > * | FindInternalClusterChildrenTransformIndices_External (FGeometryCollectionItemIndex ItemIndex) const |
| |
| FGeometryCollectionItemIndex | GetItemIndexFromGTParticle_External (const FParticle *GTPParticle) const |
| |
| FGeometryCollectionItemIndex | GetItemIndexFromGTParticleNoInternalCluster_External (const FParticle *GTPParticle) const |
| |
| CHAOS_API FName | GetTransformName_External (FGeometryCollectionItemIndex ItemIndex) const |
| |
| bool | GetIsObjectDynamic () const |
| |
| CHAOS_API void | DisableParticles_External (TArray< int32 > &&TransformGroupIndices) |
| |
| CHAOS_API void | ApplyForceAt_External (FVector Force, FVector WorldLocation) |
| |
| CHAOS_API void | ApplyImpulseAt_External (FVector Force, FVector WorldLocation) |
| |
| CHAOS_API void | BreakClusters_External (TArray< FGeometryCollectionItemIndex > &&ItemIndices) |
| |
| CHAOS_API void | BreakActiveClusters_External () |
| |
| CHAOS_API void | SetAnchoredByIndex_External (int32 Index, bool bAnchored) |
| |
| CHAOS_API void | SetAnchoredByTransformedBox_External (const FBox &Box, const FTransform &Transform, bool bAnchored, int32 MaxLevel=INDEX_NONE) |
| |
| CHAOS_API void | RemoveAllAnchors_External () |
| |
| CHAOS_API void | ApplyExternalStrain_External (FGeometryCollectionItemIndex ItemIndex, const FVector &WorldLocation, float Radius, int32 PropagationDepth, float PropagationFactor, float StrainValue) |
| |
| CHAOS_API void | ApplyInternalStrain_External (FGeometryCollectionItemIndex ItemIndex, const FVector &WorldLocation, float Radius, int32 PropagationDepth, float PropagationFactor, float StrainValue) |
| |
| CHAOS_API void | ApplyBreakingLinearVelocity_External (FGeometryCollectionItemIndex ItemIndex, const FVector &LinearVelocity) |
| |
| CHAOS_API void | ApplyBreakingAngularVelocity_External (FGeometryCollectionItemIndex ItemIndex, const FVector &AngularVelocity) |
| |
| CHAOS_API void | ApplyLinearVelocity_External (FGeometryCollectionItemIndex ItemIndex, const FVector &LinearVelocity) |
| |
| CHAOS_API void | ApplyAngularVelocity_External (FGeometryCollectionItemIndex ItemIndex, const FVector &AngularVelocity) |
| |
| CHAOS_API void | SetProxyDirty_External () |
| |
| CHAOS_API void | SetEnableDamageFromCollision_External (bool bEnable) |
| |
| CHAOS_API void | SetNotifyBreakings_External (bool bNotify) |
| |
| CHAOS_API void | SetNotifyRemovals_External (bool bNotify) |
| |
| CHAOS_API void | SetNotifyCrumblings_External (bool bNotify, bool bIncludeChildren) |
| |
| CHAOS_API void | SetNotifyGlobalBreakings_External (bool bNotify) |
| |
| CHAOS_API void | SetNotifyGlobalRemovals_External (bool bNotify) |
| |
| CHAOS_API void | SetNotifyGlobalCrumblings_External (bool bNotify, bool bIncludeChildren) |
| |
| CHAOS_API float | ComputeMaterialBasedDamageThreshold_Internal (Chaos::FPBDRigidClusteredParticleHandle &ClusteredParticle) const |
| |
| FProxyInterpolationBase * | GetInterpolationData () |
| |
| const FProxyInterpolationBase * | GetInterpolationData () const |
| |
| void | SetReplicationMode (EReplicationMode Mode) |
| |
| EReplicationMode | GetReplicationMode () const |
| |
| | UE_DEPRECATED (5.7, "Use the overload that takes a FCombinedShapeFilterData instead") CHAOS_API void UpdateFilterData_External(const FCollisionFilterData &NewSimFilter |
| |
| CHAOS_API void | UpdateFilterData_External (const Chaos::Filter::FCombinedShapeFilterData &NewShapeFilter) |
| |
| CHAOS_API void | UpdatePerParticleFilterData_External (const TArray< FParticleCollisionFilterData > &Data) |
| |
| CHAOS_API void | SetDamageThresholds_External (const TArray< float > &DamageThresholds) |
| |
| CHAOS_API void | SetDamagePropagationData_External (bool bEnabled, float BreakDamagePropagationFactor, float ShockDamagePropagationFactor) |
| |
| CHAOS_API void | SetDamageModel_External (EDamageModelTypeEnum DamageModel) |
| |
| CHAOS_API void | SetUseMaterialDamageModifiers_External (bool bUseMaterialDamageModifiers) |
| |
| CHAOS_API void | SetMaterialOverrideMassScaleMultiplier_External (float InMultiplier) |
| |
| CHAOS_API void | SetEnableGravity_External (bool EnableGravity_External) |
| |
| CHAOS_API void | SetGravityGroupIndex_External (int32 GravityGroupIndex) |
| |
| CHAOS_API void | SetOneWayInteractionLevel_External (int32 OneWayInteractionLevel) |
| |
| CHAOS_API void | SetPhysicsMaterial_External (const Chaos::FMaterialHandle &MaterialHandle) |
| |
| void | SetPostPhysicsSyncCallback (TFunction< void()> Callback) |
| |
| void | SetPostParticlesCreatedCallback (TFunction< void()> Callback) |
| |
| CHAOS_API FClusterHandle * | GetInitialRootHandle_Internal () const |
| |
| CHAOS_API TArray< Chaos::FPhysicsObjectHandle > | GetAllPhysicsObjects () const |
| |
| CHAOS_API TArray< Chaos::FPhysicsObjectHandle > | GetAllPhysicsObjectIncludingNulls () const |
| |
| CHAOS_API Chaos::FPhysicsObjectHandle | GetPhysicsObjectByIndex (int32 Index) const |
| |
| CHAOS_API void | RebaseAllGameThreadCollectionTransformsOnNewWorldTransform_External () |
| |
| int32 | GetNumParticles () const |
| |
| int32 | GetNumTransforms () const |
| |
| void | SetCreateTraceCollisionGeometryCallback (FCreateTraceCollisionGeometryCallback InCreateGeometryCallback) |
| |
| CHAOS_API void | CreateChildrenGeometry_Internal () |
| |
| int32 | GetFromParticleToTransformIndex (int32 Index) const |
| |
| bool | GetSkipChildToParentUpdateWhenInClusterUnion () const |
| |
| void | SetSkipChildToParentUpdateWhenInClusterUnion (bool bValue) |
| |
| template<typename ErrorDataType > |
| ErrorDataType * | GetOrCreateErrorInterpolationData () |
| |
| template<class SOLVER_TYPE > |
| SOLVER_TYPE * | GetSolver () const |
| |
| | TPhysicsProxy () |
| |
| | TPhysicsProxy (UObject *InOwner) |
| |
| virtual | ~TPhysicsProxy () |
| |
| bool | IsSimulating () const |
| |
| void | UpdateKinematicBodiesCallback (const FParticlesType &InParticles, const float InDt, const float InTime, FKinematicProxy &InKinematicProxy) |
| |
| void | StartFrameCallback (const float InDt, const float InTime) |
| |
| void | EndFrameCallback (const float InDt) |
| |
| void | CreateRigidBodyCallback (FParticlesType &InOutParticles) |
| |
| void | DisableCollisionsCallback (TSet< TTuple< int32, int32 > > &InPairs) |
| |
| void | AddForceCallback (FParticlesType &InParticles, const float InDt, const int32 InIndex) |
| |
| void | BindParticleCallbackMapping (Chaos::TArrayCollectionArray< PhysicsProxyWrapper > &PhysicsProxyReverseMap, Chaos::TArrayCollectionArray< int32 > &ParticleIDReverseMap) |
| |
| void | ClearAccumulatedData () |
| |
| void | SyncBeforeDestroy () |
| |
| void | OnRemoveFromScene () |
| |
| bool | IsDirty () |
| |
| void * | GetUserData () const |
| |
| Chaos::FRigidTransform3 | GetTransform () const |
| |
| FORCEINLINE_DEBUGGABLE FGeometryCollectionProxyTimestamp & | GetSyncTimestampTyped () |
| |
| | IPhysicsProxyBase (EPhysicsProxyType InType, UObject *InOwner, TSharedPtr< FProxyTimestampBase, ESPMode::ThreadSafe > InProxyTimeStamp) |
| |
| UObject * | GetOwner () const |
| |
| template<class SOLVER_TYPE > |
| SOLVER_TYPE * | GetSolver () const |
| |
| Chaos::FPhysicsSolverBase * | GetSolverBase () const |
| |
| template<class SOLVER_TYPE = Chaos::FPhysicsSolver> |
| void | SetSolver (SOLVER_TYPE *InSolver) |
| |
| EPhysicsProxyType | GetType () const |
| |
| int32 | GetDirtyIdx () const |
| |
| void | SetDirtyIdx (const int32 Idx) |
| |
| void | ResetDirtyIdx () |
| |
| void | MarkDeleted () |
| |
| bool | GetMarkedDeleted () const |
| |
| TSharedPtr< FProxyTimestampBase, ESPMode::ThreadSafe > | GetSyncTimestamp () const |
| |
| bool | IsInitialized () const |
| |
| void | SetInitialized (const int32 InitializeStep) |
| |
| int32 | GetInitializedStep () const |
| |
| int32 | GetIgnoreDataOnStep_Internal () const |
| |
| IPhysicsProxyBase * | GetParentProxy () const |
| |
| void | SetParentProxy (IPhysicsProxyBase *InProxy) |
| |
|
| bool | RebaseParticleGameThreadCollectionTransformOnNewWorldTransform_External (int32 ParticleIndex, const TManagedArray< FTransform > &MassToLocal, bool bIsComponentTransformScaled, const FTransform &ComponentScaleTransform) |
| |
| CHAOS_API float | ComputeMaterialBasedDamageThreshold_Internal (int32 TransformIndex) const |
| |
| CHAOS_API float | ComputeUserDefinedDamageThreshold_Internal (int32 TransformIndex) const |
| |
| CHAOS_API float | AdjustMassForScale (float Mass) const |
| |
| CHAOS_API Chaos::FVec3f | AdjustInertiaForScale (const Chaos::FVec3f &Inertia) const |
| |
| CHAOS_API Chaos::TPBDGeometryCollectionParticleHandle< Chaos::FReal, 3 > * | BuildNonClusters_Internal (const uint32 CollectionClusterIndex, Chaos::FPBDRigidsSolver *RigidsSolver, float Mass, Chaos::FVec3f Inertia, const Chaos::FUniqueIdx *ExistingIndex) |
| |
| CHAOS_API Chaos::FPBDRigidClusteredParticleHandle * | BuildClusters_Internal (const uint32 CollectionClusterIndex, TArray< Chaos::FPBDRigidParticleHandle * > &ChildHandles, const TArray< int32 > &ChildTransformGroupIndices, const Chaos::FClusterCreationParameters &Parameters, const Chaos::FUniqueIdx *ExistingIndex) |
| |
| CHAOS_API void | SetSleepingState (const Chaos::FPBDRigidsSolver &RigidsSolver) |
| |
| CHAOS_API void | DirtyAllParticles (const Chaos::FPBDRigidsSolver &RigidsSolver) |
| |
| CHAOS_API void | SetClusteredParticleKinematicTarget_Internal (Chaos::FPBDRigidClusteredParticleHandle *Handle, const FTransform &WorldTransform) |
| |
| CHAOS_API void | PrepareBufferData (Chaos::FDirtyGeometryCollectionData &BufferData, const FGeometryDynamicCollection &ThreadCollection, Chaos::FReal SolverLastDt=0.0) |
| |
| CHAOS_API void | CreateNonClusteredParticles (Chaos::FPBDRigidsSolver *RigidsSolver, const FGeometryCollection &RestCollection, const FGeometryDynamicCollection &DynamicCollection) |
| |
| CHAOS_API Chaos::FPBDRigidClusteredParticleHandle * | FindClusteredParticleHandleByItemIndex_Internal (FGeometryCollectionItemIndex ItemIndex) const |
| |
| CHAOS_API void | UpdateDamageThreshold_Internal () |
| |
| CHAOS_API void | ScaleClusterGeometry_Internal (const FVector &WorldScale) |
| |
| CHAOS_API void | SetWorldTransform_Internal (const FTransform &WorldTransform, bool bInSkipChildToParentUpdateWhenInClusterUnion=false) |
| |
| | UE_DEPRECATED (5.7, "Use the overload that takes a FCombinedShapeFilterData instead") CHAOS_API void SetFilterData_Internal(const FCollisionFilterData &NewSimFilter |
| |
| CHAOS_API void | SetFilterData_Internal (const Chaos::Filter::FCombinedShapeFilterData &NewShapeFilter) |
| |
| CHAOS_API void | SetPerParticleFilterData_Internal (const TArray< FParticleCollisionFilterData > &PerParticleData) |
| |
| CHAOS_API void | SetDamagePropagationData_Internal (bool bEnabled, float BreakDamagePropagationFactor, float ShockDamagePropagationFactor) |
| |
| CHAOS_API void | SetEnableGravity_Internal (bool bEnabled) |
| |
| CHAOS_API void | SetDamageThresholds_Internal (const TArray< float > &DamageThresholds) |
| |
| CHAOS_API void | SetDamageModel_Internal (EDamageModelTypeEnum DamageModel) |
| |
| CHAOS_API void | SetUseMaterialDamageModifiers_Internal (bool bUseMaterialDamageModifiers) |
| |
| CHAOS_API void | SetMaterialOverrideMassScaleMultiplier_Internal (float InMultiplier) |
| |
| CHAOS_API void | SetGravityGroupIndex_Internal (int32 GravityGroupIndex) |
| |
| CHAOS_API void | SetOneWayInteractionLevel_Internal (int32 InOneWayInteractionLevel) |
| |
| CHAOS_API void | SetPhysicsMaterial_Internal (const Chaos::FMaterialHandle &MaterialHandle) |
| |
| virtual CHAOS_API | ~IPhysicsProxyBase () |
| |
| template<typename TProxyTimeStamp > |
| FORCEINLINE_DEBUGGABLE TProxyTimeStamp & | GetSyncTimestampAs () |
| |
| CHAOS_API int32 | GetSolverSyncTimestamp_External () const |
| |
Class to manage sharing data between the game thread and the simulation thread (which may not be different than the game thread) for a FGeometryDynamicCollection.