UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PBDMinEvolution.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Chaos/Core.h"
12
13
14namespace Chaos
15{
16 class FBasicCollisionDetector;
17 class FConstraintContainerSolver;
18 class FPBDCollisionConstraints;
20 class FPBDRigidsSOAs;
21
31 {
32 public:
36
39
41 CHAOS_API void SetConstraintContainerPriority(const int32 ContainerId, const int32 Priority);
42
43 CHAOS_API void Advance(const FReal StepDt, const int32 NumSteps, const FReal RewindDt);
45
47 {
48 Private::FIterationSettings Iterations = ConstraintSolver.GetIterationSettings();
50 ConstraintSolver.SetIterationSettings(Iterations);
51 }
52
54 {
55 Private::FIterationSettings Iterations = ConstraintSolver.GetIterationSettings();
57 ConstraintSolver.SetIterationSettings(Iterations);
58 }
59
61 {
62 Private::FIterationSettings Iterations = ConstraintSolver.GetIterationSettings();
64 ConstraintSolver.SetIterationSettings(Iterations);
65 }
66
67 void SetGravity(const FVec3& G)
68 {
69 Gravity = G;
70 }
71
73 {
74 bRewindVelocities = InRewindVelocities;
75 }
76
78 {
79 SimulationSpace = InSimulationSpace;
80 }
81
83 {
84 return SimulationSpaceSettings;
85 }
86
88 {
89 return SimulationSpaceSettings;
90 }
91
96
97
98 UE_DEPRECATED(5.2, "InBoundsExtension parameter has been removed")
103
104 UE_DEPRECATED(5.2, "BoundsExtension has been removed")
106 {
107 }
108
109 private:
110 CHAOS_API void PrepareTick();
111 CHAOS_API void UnprepareTick();
113 CHAOS_API void Integrate(FReal Dt);
114 CHAOS_API void ApplyKinematicTargets(FReal Dt, FReal StepFraction);
115 CHAOS_API void DetectCollisions(FReal Dt);
116 CHAOS_API void GatherInput(FReal Dt);
117 CHAOS_API void ScatterOutput(FReal Dt);
118 CHAOS_API void ApplyConstraintsPhase1(FReal Dt);
119 CHAOS_API void ApplyConstraintsPhase2(FReal Dt);
120 CHAOS_API void ApplyConstraintsPhase3(FReal Dt);
121
122 FRigidParticleSOAs& Particles;
123 FCollisionDetector& CollisionDetector;
124
125 TArrayCollectionArray<FVec3>& ParticlePrevXs;
126 TArrayCollectionArray<FRotation3>& ParticlePrevRs;
127
128 TArray<FPBDConstraintContainer*> ConstraintContainers;
130
131 FVec3 Gravity;
132 FSimulationSpaceSettings SimulationSpaceSettings;
133 FSimulationSpace SimulationSpace;
134 bool bRewindVelocities;
135 };
136}
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition BasicCollisionDetector.h:15
Definition CollisionDetector.h:14
Definition PBDConstraintContainer.h:19
Definition PBDMinEvolution.h:31
void SetRewindVelocities(bool InRewindVelocities)
Definition PBDMinEvolution.h:72
void SetGravity(const FVec3 &G)
Definition PBDMinEvolution.h:67
CHAOS_API void SetConstraintContainerPriority(const int32 ContainerId, const int32 Priority)
Definition PBDMinEvolution.cpp:85
const FSimulationSpaceSettings & GetSimulationSpaceSettings() const
Definition PBDMinEvolution.h:87
void SetBoudsExtension(const FReal Unused)
Definition PBDMinEvolution.h:105
void SetSimulationSpaceSettings(const FSimulationSpaceSettings &InSimulationSpaceSettings)
Definition PBDMinEvolution.h:92
void SetSimulationSpace(const FSimulationSpace &InSimulationSpace)
Definition PBDMinEvolution.h:77
void SetNumVelocityIterations(const int32 NumIts)
Definition PBDMinEvolution.h:53
FSimulationSpaceSettings & GetSimulationSpaceSettings()
Definition PBDMinEvolution.h:82
CHAOS_API ~FPBDMinEvolution()
Definition PBDMinEvolution.cpp:70
CHAOS_API void AddConstraintContainer(FPBDConstraintContainer &InContainer, const int32 Priority=0)
Definition PBDMinEvolution.cpp:74
void SetNumPositionIterations(const int32 NumIts)
Definition PBDMinEvolution.h:46
void SetNumProjectionIterations(const int32 NumIts)
Definition PBDMinEvolution.h:60
CHAOS_API void AdvanceOneTimeStep(const FReal Dt, const FReal StepFraction)
Definition PBDMinEvolution.cpp:124
FPBDRigidsSOAs FRigidParticleSOAs
Definition PBDMinEvolution.h:35
CHAOS_API void Advance(const FReal StepDt, const int32 NumSteps, const FReal RewindDt)
Definition PBDMinEvolution.cpp:90
Definition PBDRigidsSOAs.h:269
Definition SimulationSpace.h:45
Definition SimulationSpace.h:15
virtual void SetIterationSettings(const FIterationSettings &InIterations)
Definition ConstraintGroupSolver.h:40
FIterationSettings GetIterationSettings() const
Definition ConstraintGroupSolver.h:32
Definition ConstraintGroupSolver.h:200
Definition IterationSettings.h:19
void SetNumPositionIterations(const int32 InNum)
Definition IterationSettings.h:64
void SetNumVelocityIterations(const int32 InNum)
Definition IterationSettings.h:65
void SetNumProjectionIterations(const int32 InNum)
Definition IterationSettings.h:66
Definition ArrayCollectionArray.h:15
Definition Array.h:670
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22