|
| CHAOS_API | FPBDIslandManager (FPBDRigidsSOAs &InParticles) |
| |
| CHAOS_API | ~FPBDIslandManager () |
| |
| CHAOS_API int32 | GetNumConstraintContainers () const |
| |
| int32 | GetNumParticles () const |
| |
| CHAOS_API void | AddParticle (FGeometryParticleHandle *Particle) |
| |
| CHAOS_API void | RemoveParticle (FGeometryParticleHandle *Particle) |
| |
| CHAOS_API int32 | ReserveParticles (const int32 InNumParticles) |
| |
| CHAOS_API void | UpdateParticleMaterial (FGeometryParticleHandle *Particle) |
| |
| CHAOS_API int32 | GetParticleLevel (FGeometryParticleHandle *Particle) const |
| |
| CHAOS_API void | WakeParticleIslands (FGeometryParticleHandle *Particle) |
| |
| CHAOS_API void | SleepParticle (FGeometryParticleHandle *Particle) |
| |
| CHAOS_API void | FlagParticleUpdated (const FGeometryParticleHandle *Particle) |
| |
| CHAOS_API bool | WasParticleTransformSetExplicitly (const FGeometryParticleHandle *Particle) |
| |
| CHAOS_API void | FlagParticleTransformSetExplicitly (const FGeometryParticleHandle *Particle) |
| |
| int32 | GetNumConstraints () const |
| |
| CHAOS_API void | AddConstraint (const int32 ContainerId, FConstraintHandle *Constraint, const TVec2< FGeometryParticleHandle * > &ConstrainedParticles) |
| |
| template<typename ConstraintContainerType > |
| void | AddContainerConstraints (ConstraintContainerType &ConstraintContainer) |
| |
| CHAOS_API void | RemoveConstraint (FConstraintHandle *ConstraintHandle) |
| |
| CHAOS_API void | RemoveParticleConstraints (FGeometryParticleHandle *Particle) |
| |
| CHAOS_API void | RemoveParticleContainerConstraints (FGeometryParticleHandle *Particle, const int32 ContainerId) |
| |
| CHAOS_API void | RemoveContainerConstraints (const int32 ContainerId) |
| |
| CHAOS_API void | WakeConstraintIsland (FConstraintHandle *Constraint) |
| |
| int32 | GetNumIslands () const |
| |
| const FPBDIsland * | GetIsland (const int32 IslandIndex) const |
| |
| CHAOS_API const FPBDIsland * | GetParticleIsland (const FGeometryParticleHandle *Particle) const |
| |
| CHAOS_API const FPBDIsland * | GetConstraintIsland (const FConstraintHandle *Constraint) const |
| |
| CHAOS_API void | Reset () |
| |
| CHAOS_API void | RemoveAllConstraints () |
| |
| CHAOS_API void | AddConstraintContainer (const FPBDConstraintContainer &Container) |
| |
| CHAOS_API void | RemoveConstraintContainer (const FPBDConstraintContainer &Container) |
| |
| CHAOS_API void | SetMaterialContainers (const TArrayCollectionArray< TSerializablePtr< FChaosPhysicsMaterial > > *InPhysicsMaterials, const TArrayCollectionArray< TUniquePtr< FChaosPhysicsMaterial > > *InPerParticlePhysicsMaterials, const THandleArray< FChaosPhysicsMaterial > *InSimMaterials) |
| |
| CHAOS_API void | SetGravityForces (const FPerParticleGravity *InGravity) |
| |
| CHAOS_API void | SetDisableCounterThreshold (const int32 InDisableCounterThreshold) |
| |
| CHAOS_API void | SetIsDeterministic (const bool bInIsDeterministic) |
| |
| CHAOS_API void | SetAssignLevels (const bool bInAssignLevels) |
| |
| CHAOS_API void | UpdateExplicitSleep () |
| |
| CHAOS_API void | UpdateParticles () |
| |
| CHAOS_API void | UpdateIslands () |
| |
| CHAOS_API void | UpdateSleep (const FReal Dt=0) |
| |
| CHAOS_API void | UpdateDisable (TFunctionRef< void(FPBDRigidParticleHandle *)> ParticleDisableFunctor) |
| |
| CHAOS_API void | EndTick () |
| |
| CHAOS_API int32 | GetParticleLevel (const FPBDIslandParticle *Node) const |
| |
| CHAOS_API int32 | GetParticleColor (const FPBDIslandParticle *Node) const |
| |
| CHAOS_API int32 | GetConstraintLevel (const FPBDIslandConstraint *Edge) const |
| |
| CHAOS_API int32 | GetConstraintColor (const FPBDIslandConstraint *Edge) const |
| |
| template<typename VisitorType > |
| void | VisitAwakeConstraints (const int32 ContainerId, const VisitorType &Visitor) |
| |
| template<typename VisitorType > |
| void | VisitAwakeConstConstraints (const int32 ContainerId, const VisitorType &Visitor) const |
| |
| template<typename VisitorType > |
| void | VisitConstraints (const int32 ContainerId, const VisitorType &Visitor) |
| |
| template<typename VisitorType > |
| void | VisitConstConstraints (const int32 ContainerId, const VisitorType &Visitor) const |
| |
| CHAOS_API int32 | GetParticleResimFrame (const FGeometryParticleHandle *Particle) const |
| |
| CHAOS_API void | SetParticleResimFrame (FGeometryParticleHandle *Particle, const int32 ResimFrame) |
| |
| CHAOS_API void | ResetParticleResimFrame (const int32 ResetFrame=INDEX_NONE) |
| |
| FPBDIsland * | GetIsland (const int32 IslandIndex) |
| |
| CHAOS_API int32 | GetIslandIndex (const FPBDIsland *Island) const |
| |
| CHAOS_API int32 | GetIslandArrayIndex (const FPBDIslandConstraint *Edge) const |
| |
| CHAOS_API TArray< const FPBDIsland * > | FindParticleIslands (const FGeometryParticleHandle *Particle) const |
| |
| CHAOS_API void | FindParticleIslands (const FGeometryParticleHandle *Particle, TArray< const FPBDIsland * > &OutParticleIslands) const |
| |
| CHAOS_API TArray< const FGeometryParticleHandle * > | FindParticlesInIslands (const TArray< const FPBDIsland * > Islands) const |
| |
| CHAOS_API void | FindParticlesInIslands (const TArray< const FPBDIsland * > &InIslands, TArray< const FGeometryParticleHandle * > &OutIslandParticles) const |
| |
| CHAOS_API TArray< const FConstraintHandle * > | FindConstraintsInIslands (const TArray< const FPBDIsland * > Islands, int32 ContainerId) const |
| |
| | UE_DEPRECATED (5.3, "Use Reset") void RemoveConstraints() |
| |
| | UE_DEPRECATED (5.3, "Use UpdateParticles") void InitializeGraph(const TParticleView< FPBDRigidParticles > &InParticles) |
| |
| | UE_DEPRECATED (5.3, "Use GetNumIslands") int32 NumIslands() const |
| |
| | UE_DEPRECATED (5.3, "Use GetParticleIsland") const FPBDIsland *GetIsland(const FGeometryParticleHandle *Particle) const |
| |
| | UE_DEPRECATED (5.3, "Use RemoveConstraint without ContainerId") void RemoveConstraint(const int32 ContainerId |
| |
Notes on the implementation:
- Particles are nodes in the graph
- Constraints are edges in the graph
- Each island knows about the constraints and dynamic particle in it
- Islands do not track their kinematic particles (kinematics may be in multiple islands)