|
| CHAOS_API | FEvolution (const FCollectionPropertyConstFacade &Properties) |
| |
| | ~FEvolution ()=default |
| |
| CHAOS_API void | Reset () |
| |
| CHAOS_API void | AdvanceOneTimeStep (const FSolverReal Dt, const FSolverReal TimeDependentIterationMultiplier) |
| |
| void | AddGroupArray (TArrayCollectionArrayBase *Array) |
| |
| void | AddParticleArray (TArrayCollectionArrayBase *Array) |
| |
| void | AddCollisionParticleArray (TArrayCollectionArrayBase *Array) |
| |
| const FSolverParticles & | GetParticles () const |
| |
| FSolverParticles & | GetParticles () |
| |
| TSet< uint32 > | GetActiveGroups () const |
| |
| CHAOS_API TArray< uint32 > | GetActiveGroupsArray () const |
| |
| CHAOS_API int32 | NumActiveParticles () const |
| |
| const FEvolutionGroupContext & | GetGroupContext (uint32 GroupId) const |
| |
| const FEvolutionGroupContext & | GetGroupContextForSoftBody (int32 SoftBodyId) const |
| |
| CHAOS_API int32 | AddSoftBody (uint32 GroupId, int32 NumParticles, bool bEnable) |
| |
| CHAOS_API void | RemoveSoftBody (int32 SoftBodyId) |
| |
| int32 | GetSoftBodyParticleNum (int32 SoftBodyId) const |
| |
| int32 | GetSoftBodyGroupId (int32 SoftBodyId) const |
| |
| CHAOS_API void | SetSoftBodyProperties (int32 SoftBodyId, const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps, const FSolverVec3 &ReferenceSpaceLocation, const FSolverVec3 &ReferenceSpaceVelocity, const FSolverVec3 &ReferenceSpaceAngularVelocity) |
| |
| void | SetSoftBodyProperties (int32 SoftBodyId, const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &WeightMaps) |
| |
| CHAOS_API void | ActivateSoftBody (int32 SoftBodyId, bool bActivate) |
| |
| bool | IsSoftBodyActive (int32 SoftBodyId) const |
| |
| FSolverParticlesRange & | GetSoftBodyParticles (int32 SoftBodyId) |
| |
| const FSolverParticlesRange & | GetSoftBodyParticles (int32 SoftBodyId) const |
| |
| const TArray< int32 > & | GetGroupSoftBodies (uint32 GroupId) const |
| |
| const TSet< int32 > & | GetGroupActiveSoftBodies (uint32 GroupId) const |
| |
| int32 | GetLastLinearSolveIterations (int32 SoftBodyId) const |
| |
| FSolverReal | GetLastLinearSolveError (int32 SoftBodyId) const |
| |
| CHAOS_API int32 | AddCollisionParticleRange (uint32 GroupId, int32 NumParticles, bool bEnable) |
| |
| CHAOS_API void | RemoveCollisionParticleRange (int32 CollisionRangeId) |
| |
| CHAOS_API void | ActivateCollisionParticleRange (int32 CollisionRangeId, bool bEnable) |
| |
| const TSet< int32 > & | GetGroupActiveCollisionParticleRanges (uint32 GroupId) const |
| |
| CHAOS_API TArray< FSolverCollisionParticlesRange > | GetActiveCollisionParticles (uint32 GroupId) const |
| |
| bool | IsValidCollisionParticleRange (int32 CollisionRangeId) const |
| |
| FSolverCollisionParticlesRange & | GetCollisionParticleRange (int32 CollisionRangeId) |
| |
| const FSolverCollisionParticlesRange & | GetCollisionParticleRange (int32 CollisionRangeId) const |
| |
| void | SetKinematicUpdateFunction (KinematicUpdateFunc Func) |
| |
| void | SetCollisionKinematicUpdateFunction (CollisionKinematicUpdateFunc Func) |
| |
| void | AllocatePreSubstepParallelInitRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocatePBDExternalForceRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocatePostInitialGuessParallelInitRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocatePreSubstepConstraintRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocatePerIterationPBDConstraintRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocatePerIterationCollisionPBDConstraintRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocatePerIterationPostCollisionsPBDConstraintRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocateUpdateLinearSystemRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocateUpdateLinearSystemCollisionsRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| void | AllocatePostSubstepConstraintRulesRange (int32 SoftBodyId, int32 NumRules) |
| |
| TArrayView< ParallelInitFunc > | GetPreSubstepParallelInitRange (int32 SoftBodyId) |
| |
| TArrayView< PBDConstraintRuleFunc > | GetPBDExternalForceRulesRange (int32 SoftBodyId) |
| |
| TArrayView< ParallelInitFunc > | GetPostInitialGuessParallelInitRange (int32 SoftBodyId) |
| |
| TArrayView< ConstraintRuleFunc > | GetPreSubstepConstraintRulesRange (int32 SoftBodyId) |
| |
| TArrayView< PBDConstraintRuleFunc > | GetPerIterationPBDConstraintRulesRange (int32 SoftBodyId) |
| |
| TArrayView< PBDCollisionConstraintRuleFunc > | GetPerIterationCollisionPBDConstraintRulesRange (int32 SoftBodyId) |
| |
| TArrayView< PBDConstraintRuleFunc > | GetPerIterationPostCollisionsPBDConstraintRulesRange (int32 SoftBodyId) |
| |
| TArrayView< UpdateLinearSystemFunc > | GetUpdateLinearSystemRulesRange (int32 SoftBodyId) |
| |
| TArrayView< UpdateLinearSystemCollisionsFunc > | GetUpdateLinearSystemCollisionsRulesRange (int32 SoftBodyId) |
| |
| TArrayView< ConstraintRuleFunc > | GetPostSubstepConstraintRulesRange (int32 SoftBodyId) |
| |
| FSolverReal | GetTime () const |
| |
| int32 | GetIterations () const |
| |
| int32 | GetMaxIterations () const |
| |
| int32 | GetNumUsedIterations () const |
| |
| bool | GetDisableTimeDependentNumIterations () const |
| |
| bool | GetDoQuasistatics () const |
| |
| void | SetDisableTimeDependentNumIterations (bool bDisable) |
| |
| CHAOS_API void | SetSolverProperties (const FCollectionPropertyConstFacade &PropertyCollection) |
| |
Solver can contain multiple "Groups". Groups do not interact with each other. They may be in different spaces. They may be solved in parallel, completely independently of each other. The only reason why they're in the same evolution is because they share the same solver settings and step together in time.
A Group can contain multiple "SoftBodies". SoftBodies can interact but have different constraint rules/forces.