UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PBDConstraintContainer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5#include "Chaos/Transform.h"
10
11namespace Chaos
12{
19 {
20 public:
22
24
30 {
31 return ContainerId;
32 }
33
41
50
54 virtual int32 GetNumConstraints() const = 0;
55
59 virtual void ResetConstraints() = 0;
60
64 virtual void UpdatePositionBasedState(const FReal Dt) {}
65
69 virtual void PrepareTick() = 0;
70
74 virtual void UnprepareTick() = 0;
75
76 // This is called when a particle is destroyed. The constraint should be disabled and the particle in the constraint set to null
77 // @todo(chaos): remove the set
79
80 // This is called to notify the constraint container that a particle has been disabled
82
83 // This is called to notify the constraint container that a particle has been disabled
85
92
100
104 virtual void AddConstraintsToGraph(Private::FPBDIslandManager& IslandManager) = 0;
105
106 protected:
109 };
110
111 //
112 //
113 // From ConstraintHandle.h
114 //
115 //
116
118 {
119 if (ConstraintContainer != nullptr)
120 {
122 }
123 return INDEX_NONE;
124 }
125
127 {
128 if (ConstraintContainer != nullptr)
129 {
131 }
133 }
134
135 template<typename T>
137 {
138 // @todo(chaos): we need a safe cast that allows for casting to intermediate base classes (e.g., FIndexedConstraintHandle)
139 return ((ConstraintContainer != nullptr) && ConstraintContainer->GetConstraintHandleType().IsA(T::StaticType())) ? static_cast<T*>(this) : nullptr;
140 }
141
142 template<typename T>
143 inline const T* FConstraintHandle::As() const
144 {
145 return ((ConstraintContainer != nullptr) && ConstraintContainer->GetConstraintHandleType().IsA(T::StaticType())) ? static_cast<const T*>(this) : nullptr;
146 }
147
148
149}
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
A type id for constraint handles to support safe up/down casting (including intermediate classes in t...
Definition ConstraintHandle.h:49
bool IsA(const FConstraintHandleTypeID &TypeID) const
Whether this type can be cast to the specified type.
Definition ConstraintHandle.h:68
FPBDConstraintContainer * ConstraintContainer
Definition ConstraintHandle.h:213
int32 GetContainerId() const
Definition PBDConstraintContainer.h:117
const FConstraintHandleTypeID & GetType() const
Definition PBDConstraintContainer.h:126
T * As()
Definition PBDConstraintContainer.h:136
static const FConstraintHandleTypeID & InvalidType()
Definition ConstraintHandle.h:200
Definition PBDConstraintContainer.h:19
virtual void AddConstraintsToGraph(Private::FPBDIslandManager &IslandManager)=0
int32 ContainerId
Definition PBDConstraintContainer.h:108
virtual void DisconnectConstraints(const TSet< TGeometryParticleHandle< FReal, 3 > * > &)
Definition PBDConstraintContainer.h:78
virtual TUniquePtr< FConstraintContainerSolver > CreateSceneSolver(const int32 Priority)=0
virtual void UnprepareTick()=0
virtual TUniquePtr< FConstraintContainerSolver > CreateGroupSolver(const int32 Priority)=0
const FConstraintHandleTypeID & GetConstraintHandleType() const
Definition PBDConstraintContainer.h:46
void SetContainerId(int32 InContainerId)
Definition PBDConstraintContainer.h:37
virtual void ResetConstraints()=0
virtual void OnEnableParticle(FGeometryParticleHandle *EnabledParticle)
Definition PBDConstraintContainer.cpp:28
virtual void OnDisableParticle(FGeometryParticleHandle *DisabledParticle)
Definition PBDConstraintContainer.cpp:17
virtual void UpdatePositionBasedState(const FReal Dt)
Definition PBDConstraintContainer.h:64
virtual CHAOS_API ~FPBDConstraintContainer()
Definition PBDConstraintContainer.cpp:13
int32 GetContainerId() const
Definition PBDConstraintContainer.h:29
FConstraintHandleTypeID ConstraintHandleType
Definition PBDConstraintContainer.h:107
virtual int32 GetNumConstraints() const =0
Definition IslandManager.h:453
Definition ParticleHandle.h:436
Definition UniquePtr.h:107
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22