20 template <
typename Jo
intSolverType>
21 class TPBDJointContainerSolver;
99 const FVec3 LinearStiffness,
const FVec3 LinearDamping,
const FVec3 MaxForce,
100 const FVec3 AngularStiffness,
const FVec3 AngularDamping,
const FVec3 MaxTorque);
117 UE_DEPRECATED(5.2,
"No longer used")
119 UE_DEPRECATED(5.2, "
No longer used")
121 UE_DEPRECATED(5.2, "
No longer used")
134 bool bLinearPlasticityInitialized;
135 bool bAngularPlasticityInitialized;
194 UE_DEPRECATED(5.5,
"No longer used, see per-constraint flag in FPBDJointSettings::bUseLinearSolver")
412 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
414 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
416 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
418 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
420 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
422 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
424 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
426 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
428 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
430 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
432 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
434 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
436 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
438 UE_DEPRECATED(5.2,
"Joint Solver API moved to TPBDJointContainerSolver")
456 CHAOS_API bool ShouldBeInGraph(
const int32 ConstraintIndex)
const;
460 CHAOS_API void SetConstraintBroken(
int32 ConstraintIndex,
bool bBroken);
461 CHAOS_API void SetConstraintBreaking(
int32 ConstraintIndex,
bool bBreaking);
475 bool bUseLinearSolver;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#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
Definition ChaosConstraintSettings.h:16
A type id for constraint handles to support safe up/down casting (including intermediate classes in t...
Definition ConstraintHandle.h:49
FPBDConstraintContainer * ConstraintContainer
Definition ConstraintHandle.h:213
static const FConstraintHandleTypeID & StaticType()
Definition IndexedConstraintContainer.h:50
Definition PBDConstraintContainer.h:19
Definition PBDJointConstraints.h:28
CHAOS_API void SetParentInvMassScale(const FReal ParentInvMassScale)
Definition PBDJointConstraints.cpp:253
CHAOS_API void SetAngularDrivePositionTarget(const FQuat Target)
Definition PBDJointConstraints.cpp:193
CHAOS_API void SetAngularDriveMaxTorque(const FVec3 MaxTorque)
Definition PBDJointConstraints.cpp:238
void SetJointState(const class FPBDJointState &NewState)
Definition PBDJointConstraints.cpp:289
CHAOS_API void ClearDriveTargetChanged()
Definition PBDJointConstraints.cpp:105
CHAOS_API int32 GetConstraintColor() const
Definition PBDJointConstraints.cpp:70
CHAOS_API bool IsConstraintBroken() const
Definition PBDJointConstraints.cpp:75
CHAOS_API const FPBDJointSettings & GetSettings() const
Definition PBDJointConstraints.cpp:283
CHAOS_API FVec3 GetLinearImpulse() const
Definition PBDJointConstraints.cpp:115
CHAOS_API bool IsEnabledDuringResim() const
Definition PBDJointConstraints.cpp:150
CHAOS_API void CalculateConstraintSpace(FVec3 &OutXa, FMatrix33 &OutRa, FVec3 &OutXb, FMatrix33 &OutRb) const
Definition PBDJointConstraints.cpp:52
CHAOS_API void SetLinearDriveVelocityTarget(const FVec3 Target)
Definition PBDJointConstraints.cpp:198
CHAOS_API void SetConstraintEnabled(bool bEnabled)
Definition PBDJointConstraints.cpp:327
CHAOS_API void SetParentConnectorLocation(const FVec3 Location)
Definition PBDJointConstraints.cpp:168
CHAOS_API float GetAngularViolation() const
Definition PBDJointConstraints.cpp:130
FPBDJointConstraintHandle()
Definition PBDJointConstraints.cpp:36
CHAOS_API bool IsConstraintBreaking() const
Definition PBDJointConstraints.cpp:80
const FPBDJointSettings & GetJointSettings() const
Definition PBDJointConstraints.h:56
CHAOS_API float GetLinearViolation() const
Definition PBDJointConstraints.cpp:125
CHAOS_API void SetLinearDriveForceMode(EJointForceMode ForceMode)
Definition PBDJointConstraints.cpp:223
CHAOS_API void SetLinearDriveMaxForce(const FVec3 MaxForce)
Definition PBDJointConstraints.cpp:218
CHAOS_API void SetAngularDriveVelocityTarget(const FVec3 Target)
Definition PBDJointConstraints.cpp:203
bool IsInContainer(FPBDConstraintContainer *TestContainer)
Definition PBDJointConstraints.h:125
CHAOS_API bool IsConstraintEnabled() const
Definition PBDJointConstraints.cpp:110
CHAOS_API EResimType ResimType() const
Definition PBDJointConstraints.cpp:155
CHAOS_API void ClearConstraintBreaking()
Definition PBDJointConstraints.cpp:85
static const FConstraintHandleTypeID & StaticType()
Definition PBDJointConstraints.h:104
CHAOS_API void SetLinearDrivePositionTarget(const FVec3 Target)
Definition PBDJointConstraints.cpp:188
CHAOS_API ESyncState SyncState() const
Definition PBDJointConstraints.cpp:135
CHAOS_API void SetDriveParams(const FVec3 LinearStiffness, const FVec3 LinearDamping, const FVec3 MaxForce, const FVec3 AngularStiffness, const FVec3 AngularDamping, const FVec3 MaxTorque)
Definition PBDJointConstraints.cpp:258
CHAOS_API void SetLinearDriveDamping(const FVec3 Damping)
Definition PBDJointConstraints.cpp:213
void SetConstraintContainer(FPBDConstraintContainer *NewConstraintContainer)
Definition PBDJointConstraints.h:124
CHAOS_API void SetLinearDriveStiffness(const FVec3 Stiffness)
Definition PBDJointConstraints.cpp:208
CHAOS_API bool IsConstraintViolating() const
Definition PBDJointConstraints.cpp:90
CHAOS_API int32 GetConstraintLevel() const
Definition PBDJointConstraints.cpp:64
CHAOS_API void SetEnabledDuringResim(bool bEnabled)
Definition PBDJointConstraints.cpp:145
CHAOS_API void SetAngularDriveStiffness(const FVec3 Stiffness)
Definition PBDJointConstraints.cpp:228
CHAOS_API void SetSettings(const FPBDJointSettings &Settings)
Definition PBDJointConstraints.cpp:294
CHAOS_API int32 GetConstraintIsland() const
Definition PBDJointConstraints.cpp:58
CHAOS_API TVec2< FGeometryParticleHandle * > GetConstrainedParticles() const override final
Definition PBDJointConstraints.cpp:322
CHAOS_API bool IsDriveTargetChanged() const
Definition PBDJointConstraints.cpp:100
CHAOS_API void SetChildConnectorRotation(const FQuat Rotation)
Definition PBDJointConstraints.cpp:183
CHAOS_API void SetAngularDriveForceMode(EJointForceMode ForceMode)
Definition PBDJointConstraints.cpp:243
CHAOS_API FVec3 GetAngularImpulse() const
Definition PBDJointConstraints.cpp:120
CHAOS_API void SetAngularDriveDamping(const FVec3 Damping)
Definition PBDJointConstraints.cpp:233
CHAOS_API void SetSyncState(ESyncState SyncState)
Definition PBDJointConstraints.cpp:140
CHAOS_API void ClearConstraintViolating()
Definition PBDJointConstraints.cpp:95
CHAOS_API void SetParentConnectorRotation(const FQuat Rotation)
Definition PBDJointConstraints.cpp:173
CHAOS_API void SetChildConnectorLocation(const FVec3 Location)
Definition PBDJointConstraints.cpp:178
CHAOS_API void SetCollisionEnabled(const bool bCollisionEnabled)
Definition PBDJointConstraints.cpp:248
Definition PBDJointConstraints.h:168
FPBDJointConstraintHandle FConstraintContainerHandle
Definition PBDJointConstraints.h:172
CHAOS_API const FParticlePair & GetConstrainedParticles(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:914
void ApplyVelocityConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDJointConstraints.h:421
CHAOS_API const FPBDJointSolverSettings & GetSettings() const
Definition PBDJointConstraints.cpp:596
CHAOS_API void DisconnectConstraints(const TSet< TGeometryParticleHandle< FReal, 3 > * > &RemovedParticles)
Definition PBDJointConstraints.cpp:704
virtual int32 GetNumConstraints() const override final
Definition PBDJointConstraints.h:393
CHAOS_API void ClearBreakCallback()
Definition PBDJointConstraints.cpp:896
friend class FPBDJointConstraintHandle
Definition PBDJointConstraints.h:446
void SetConstraintState(int32 ConstraintIndex, const FPBDJointState &InState)
Definition PBDJointConstraints.cpp:664
CHAOS_API float GetConstraintLinearViolation(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:974
CHAOS_API void SetConstraintSettings(int32 ConstraintIndex, const FPBDJointSettings &InConstraintSettings)
Definition PBDJointConstraints.cpp:926
CHAOS_API void SetUseLinearSolver(int32 ConstraintIndex, bool InbUseLinearSolver)
Definition PBDJointConstraints.cpp:942
CHAOS_API void SetConstraintSyncState(int32 ConstraintIndex, ESyncState SyncState)
Definition PBDJointConstraints.cpp:989
virtual CHAOS_API TUniquePtr< FConstraintContainerSolver > CreateGroupSolver(const int32 Priority) override final
Definition PBDJointConstraints.cpp:584
virtual CHAOS_API ~FPBDJointConstraints()
Definition PBDJointConstraints.cpp:568
CHAOS_API bool IsConstraintViolating(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:811
CHAOS_API EResimType GetConstraintResimType(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:1004
void ApplyProjectionConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDJointConstraints.h:423
void ScatterOutput(const FReal Dt)
Definition PBDJointConstraints.h:417
CHAOS_API FConstraintContainerHandle * AddConstraint(const FParticlePair &InConstrainedParticles, const FRigidTransform3 &WorldConstraintFrame)
Definition PBDJointConstraints.cpp:622
CHAOS_API bool IsConstraintBroken(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:796
CHAOS_API void SetLinearDrivePositionTarget(int32 ConstraintIndex, FVec3 InLinearDrivePositionTarget)
Definition PBDJointConstraints.cpp:932
CHAOS_API int32 GetConstraintIsland(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:947
bool GetUseLinearSolver()
Definition PBDJointConstraints.h:441
virtual CHAOS_API void AddConstraintsToGraph(Private::FPBDIslandManager &IslandManager) override final
Definition PBDJointConstraints.cpp:1049
virtual CHAOS_API TUniquePtr< FConstraintContainerSolver > CreateSceneSolver(const int32 Priority) override final
Definition PBDJointConstraints.cpp:572
CHAOS_API FVec3 GetConstraintLinearImpulse(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:964
CHAOS_API void SetConstraintEnabled(int32 ConstraintIndex, bool bEnabled)
Definition PBDJointConstraints.cpp:831
void ApplyPositionConstraints(const FReal Dt, const int32 It, const int32 NumIts)
Definition PBDJointConstraints.h:419
CHAOS_API int32 GetConstraintLevel(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:953
const FHandles & GetConstConstraintHandles() const
Definition PBDJointConstraints.h:321
CHAOS_API void FixConstraint(int32 ConstraintIndex)
Definition PBDJointConstraints.cpp:883
CHAOS_API void SetAngularDrivePositionTarget(int32 ConstraintIndex, FRotation3 InAngularDrivePositionTarget)
Definition PBDJointConstraints.cpp:937
virtual CHAOS_API void UnprepareTick() override final
Definition PBDJointConstraints.cpp:1025
CHAOS_API void SetSettings(const FPBDJointSolverSettings &InSettings)
Definition PBDJointConstraints.cpp:602
CHAOS_API const FPBDJointSettings & GetConstraintSettings(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:920
void RemoveConstraints(const TSet< TGeometryParticleHandle< FReal, 3 > * > &RemovedParticles)
Definition PBDJointConstraints.h:227
CHAOS_API void ClearConstraintViolating(int32 ConstraintIndex)
Definition PBDJointConstraints.cpp:816
void SetUseSimd(const bool bInEnable)
Definition PBDJointConstraints.h:200
void SetUseLinearJointSolver(const bool bInEnable)
Definition PBDJointConstraints.h:195
CHAOS_API int32 GetConstraintColor(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:959
void GatherInput(const FReal Dt)
Definition PBDJointConstraints.h:415
CHAOS_API void SetBreakCallback(const FJointBreakCallback &Callback)
Definition PBDJointConstraints.cpp:890
virtual void ResetConstraints() override final
Definition PBDJointConstraints.h:394
CHAOS_API const FConstraintContainerHandle * GetConstraintHandle(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:902
CHAOS_API ESyncState GetConstraintSyncState(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:984
void SetSortEnabled(const bool bInEnable)
Definition PBDJointConstraints.h:205
CHAOS_API bool IsDriveTargetChanged(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:821
CHAOS_API FVec3 GetConstraintAngularImpulse(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:969
CHAOS_API void SetSolverResults(const int32 ConstraintIndex, const FVec3 &LinearImpulse, const FVec3 &AngularImpulse, const float LinearViolation, const float AngularViolation, const bool bIsBroken, const bool bIsViolating, const FSolverBody *SolverBody0, const FSolverBody *SolverBody1)
Definition PBDJointConstraints.cpp:1070
CHAOS_API float GetConstraintAngularViolation(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:979
void AddBodies(FSolverBodyContainer &SolverBodyContainer)
Definition PBDJointConstraints.h:413
CHAOS_API bool IsConstraintEnabled(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:791
CHAOS_API int32 NumConstraints() const
Definition PBDJointConstraints.cpp:608
virtual CHAOS_API void PrepareTick() override final
Definition PBDJointConstraints.cpp:1009
CHAOS_API void ClearDriveTargetChanged(int32 ConstraintIndex)
Definition PBDJointConstraints.cpp:826
CHAOS_API bool IsConstraintEnabledDuringResim(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:999
CHAOS_API void SetConstraintEnabledDuringResim(int32 ConstraintIndex, bool bEnabled)
Definition PBDJointConstraints.cpp:994
void SetUseLinearSolver(const bool bUseLinearSolverIn)
Definition PBDJointConstraints.h:443
CHAOS_API void BreakConstraint(int32 ConstraintIndex)
Definition PBDJointConstraints.cpp:872
CHAOS_API FPBDJointConstraints()
Definition PBDJointConstraints.cpp:560
CHAOS_API void ClearConstraintBreaking(int32 ConstraintIndex)
Definition PBDJointConstraints.cpp:806
CHAOS_API bool IsConstraintBreaking(int32 ConstraintIndex) const
Definition PBDJointConstraints.cpp:801
void MarkJointsDirty()
Definition PBDJointConstraints.h:409
CHAOS_API void SetDriveTargetChanged(int32 ConstraintIndex, bool bTargetChanged)
Definition PBDJointConstraints.cpp:867
FHandles & GetConstraintHandles()
Definition PBDJointConstraints.h:313
CHAOS_API void RemoveConstraint(int ConstraintIndex)
Definition PBDJointConstraints.cpp:669
Definition PBDJointConstraintTypes.h:114
Definition PBDJointConstraintTypes.h:219
bool bUseSimd
Definition PBDJointConstraintTypes.h:247
bool bSortEnabled
Definition PBDJointConstraintTypes.h:250
Definition PBDJointConstraints.h:142
float LinearViolation
Definition PBDJointConstraints.h:157
int32 Level
Definition PBDJointConstraints.h:147
bool bEnabledDuringResim
Definition PBDJointConstraints.h:161
bool bDriveTargetChanged
Definition PBDJointConstraints.h:154
CHAOS_API FPBDJointState()
Definition PBDJointConstraints.cpp:491
FVec3 AngularImpulse
Definition PBDJointConstraints.h:156
EResimType ResimType
Definition PBDJointConstraints.h:159
FVec3 LinearImpulse
Definition PBDJointConstraints.h:155
ESyncState SyncState
Definition PBDJointConstraints.h:160
int32 Color
Definition PBDJointConstraints.h:148
bool bBreaking
Definition PBDJointConstraints.h:152
bool bDisabled
Definition PBDJointConstraints.h:150
int32 Island
Definition PBDJointConstraints.h:146
float AngularViolation
Definition PBDJointConstraints.h:158
int32 IslandSize
Definition PBDJointConstraints.h:149
bool bBroken
Definition PBDJointConstraints.h:151
bool bViolating
Definition PBDJointConstraints.h:153
Definition SolverBodyContainer.h:37
Definition SolverBody.h:99
Definition IslandManager.h:453
Definition ParticleHandle.h:436
Definition IndexedConstraintContainer.h:68
int32 ConstraintIndex
Definition IndexedConstraintContainer.h:59
FConstraintContainer * ConcreteContainer()
Definition IndexedConstraintContainer.h:108
Definition ArrayView.h:139
Definition UniquePtr.h:107
Definition SkeletalMeshComponent.h:307
ESyncState
Definition GeometryParticlesfwd.h:29
EResimType
Definition GeometryParticles.h:143
FRealDouble FReal
Definition Real.h:22
EJointForceMode
Definition PBDJointConstraintTypes.h:30
Definition OverriddenPropertySet.cpp:45
Definition PBDJointConstraints.h:480
FPBDJointConstraints NonLinearConstraints
Definition PBDJointConstraints.h:489
CHAOS_API void MergeLinearConstraintsIntoNonLinearConstraints()
Definition PBDJointConstraints.cpp:1423
CHAOS_API FPBDJointCombinedConstraints()
Definition PBDJointConstraints.cpp:1367
void ConvertLinearConstraintToNonLinear(const int32 LinearConstraintIndex)
Definition PBDJointConstraints.cpp:1374
CHAOS_API void MergeNonLinearConstraintsIntoLinearConstraints()
Definition PBDJointConstraints.cpp:1431
void ConvertNonLinearConstraintToLinear(const int32 NonLinearConstraintIndex)
Definition PBDJointConstraints.cpp:1399
int32 NumConstraints()
Definition PBDJointConstraints.h:486
FPBDJointConstraints LinearConstraints
Definition PBDJointConstraints.h:488