UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ConstraintsManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "UObject/Object.h"
8#include "Misc/Guid.h"
9#include "Engine/Level.h"
10#include "ConstraintsManager.generated.h"
11
13
15
23USTRUCT()
25{
27public:
30
32 /* Begin FTickFunction Interface */
33 CONSTRAINTS_API virtual void ExecuteTick(
34 float DeltaTime,
35 ELevelTick TickType,
36 ENamedThreads::Type CurrentThread,
38
39 CONSTRAINTS_API virtual FString DiagnosticMessage() override;
40 /* End FTickFunction Interface */
41
44
46 CONSTRAINTS_API void RegisterFunction(ConstraintFunction InConstraint);
47
49 CONSTRAINTS_API void EvaluateFunctions() const;
50
53
56};
57
58template<>
60{
61 enum
62 {
63 WithCopy = false
64 };
65};
66
72UCLASS(Abstract, Blueprintable, MinimalAPI)
74{
76
77public:
80
83
85 CONSTRAINTS_API virtual void Evaluate(bool bTickHandlesAlso = false) const;
86
88 virtual bool IsValid(const bool bDeepCheck = true) const PURE_VIRTUAL(IsValid, return false;);
90 CONSTRAINTS_API virtual void SetActive(const bool bIsActive);
91
93 CONSTRAINTS_API virtual bool IsFullyActive() const;
95 virtual bool HasBoundObjects() const PURE_VIRTUAL(HasBoundObjects, return false;);
97 virtual void ResolveBoundObjects(FMovieSceneSequenceID LocalSequenceID, TSharedRef<UE::MovieScene::FSharedPlaybackState> SharedPlaybackState, UObject* SubObject = nullptr) PURE_VIRTUAL(ResolveBoundObjects);
98
100 virtual uint32 GetTargetHash() const PURE_VIRTUAL(GetTargetHash, return 0;);
102 virtual bool ReferencesObject(TWeakObjectPtr<UObject> InObject) const PURE_VIRTUAL(ReferencesObject, return false;);
106 virtual void InitConstraint(UWorld * InWorld) PURE_VIRTUAL(UTickableConstraint::InitConstraint);
110 virtual void AddedToWorld(UWorld* InWorld) PURE_VIRTUAL(UTickableConstraint::AddedToWorld);
111
115
116 // UObject interface
118 CONSTRAINTS_API virtual void PostDuplicate(bool bDuplicateForPIE) override;
119 CONSTRAINTS_API virtual void PostInitProperties() override;
120 // End of UObject interface
121
122#if WITH_EDITOR
124 CONSTRAINTS_API virtual FString GetLabel() const;
125 CONSTRAINTS_API virtual FString GetFullLabel() const;
126
128 CONSTRAINTS_API virtual FString GetTypeLabel() const;
129
130 // UObject editor only interface
131 CONSTRAINTS_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
132 CONSTRAINTS_API virtual void PostEditUndo() override;
133 // End of UObject editor only interface
134
135#endif
137 UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName="Active State", Category="Constraint")
139
140 UPROPERTY()
141 bool bValid = false;
142
143
145 FGuid ConstraintID;
146
148
151};
152
153
160UCLASS(BLUEPRINTABLE, MinimalAPI)
162{
164public:
165
167
171
172
175
176 //UObjects
177 CONSTRAINTS_API virtual void PostLoad() override;
178
181
184
187
188private:
191
192
193public:
195 UPROPERTY(BlueprintAssignable, Category = Constraints, meta = (DisplayName = "OnConstraintAdded"))
196 FOnConstraintAdded OnConstraintAdded_BP;
197
199 UPROPERTY(BlueprintAssignable, Category = Constraints, meta = (DisplayName = "OnConstraintRemoved"))
200 FOnConstraintRemoved OnConstraintRemoved_BP;
201
202private:
203
204
206 FDelegateHandle OnActorDestroyedHandle;
207 CONSTRAINTS_API void OnActorDestroyed(AActor* InActor);
208
209 CONSTRAINTS_API void RegisterDelegates(UWorld* World);
210 CONSTRAINTS_API void UnregisterDelegates(UWorld* World);
211
212
214 CONSTRAINTS_API void Dump() const;
215
218 UPROPERTY()
220
223};
224
238
240
242{
243public:
249
251 template< typename TConstraint >
252 TConstraint* AllocateConstraintT(const FName& InBaseName, const bool bUseDefault = false) const;
253
256
259
262
265
268
271
274
277
280
283
286
289
291 template <typename Predicate>
292 TArray< TWeakObjectPtr<UTickableConstraint> > GetConstraintsByPredicate(Predicate Pred, const bool bSorted = false) const;
293
296 const uint32 InTargetHash,
297 const bool bSorted = false) const;
298
302 const FName& InNameToTickAfter) const;
303
306 const FGuid& InGuidToTickAfter) const;
307
310
312 UE_DEPRECATED(5.7, "Function is no longer needed.")
314
315 UE_DEPRECATED(5.7, "Function is no longer needed.")
317
320
321private:
324
327
329 CONSTRAINTS_API UConstraintsManager* FindManager() const;
330
332 CONSTRAINTS_API void DestroyManager() const;
333
335 UWorld* World = nullptr;
336
337public:
341
344
347
352};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
EConstraintsManagerNotifyType
Definition ConstraintsManager.h:231
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#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
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
ELevelTick
Definition EngineBaseTypes.h:70
return true
Definition ExternalRpcRegistry.cpp:601
void Init()
Definition LockFreeList.h:4
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition ConstraintsActor.h:17
Definition Constraints.Build.cs:6
Definition ConstraintsManager.h:242
static CONSTRAINTS_API FOnSceneComponentConstrained & OnSceneComponentConstrained()
Definition ConstraintsManager.cpp:944
CONSTRAINTS_API void FlushEvaluationGraph() const
Definition ConstraintsManager.cpp:1009
CONSTRAINTS_API void SetConstraintsDependencies(const FName &InNameToTickBefore, const FName &InNameToTickAfter) const
Definition ConstraintsManager.cpp:746
CONSTRAINTS_API TArray< TWeakObjectPtr< UTickableConstraint > > GetParentConstraints(const uint32 InTargetHash, const bool bSorted=false) const
Definition ConstraintsManager.cpp:691
TArray< TWeakObjectPtr< UTickableConstraint > > GetConstraintsByPredicate(Predicate Pred, const bool bSorted=false) const
Definition ConstraintsManager.inl:38
TConstraint * AllocateConstraintT(const FName &InBaseName, const bool bUseDefault=false) const
Definition ConstraintsManager.inl:10
static CONSTRAINTS_API FConstraintsManagerController & Get(UWorld *InWorld)
Definition ConstraintsManager.cpp:399
CONSTRAINTS_API TArray< TWeakObjectPtr< UTickableConstraint > > GetAllConstraints(const bool bSorted=false) const
Definition ConstraintsManager.cpp:890
CONSTRAINTS_API bool RemoveAllConstraints(bool bDoNotCompensate=false)
Definition ConstraintsManager.cpp:840
CONSTRAINTS_API void EvaluateAllConstraints() const
Definition ConstraintsManager.cpp:929
static CONSTRAINTS_API void Notify(EConstraintsManagerNotifyType InNotifyType, UObject *InObject)
Definition ConstraintsManager.cpp:956
static CONSTRAINTS_API FConstraintsManagerNotifyDelegate & GetNotifyDelegate()
Definition ConstraintsManager.cpp:950
CONSTRAINTS_API bool AddConstraint(UTickableConstraint *InConstraint) const
Definition ConstraintsManager.cpp:491
CONSTRAINTS_API void MarkConstraintForEvaluation(UTickableConstraint *InConstraint) const
Definition ConstraintsManager.cpp:981
CONSTRAINTS_API TArray< TWeakObjectPtr< UTickableConstraint > > GetStaticConstraints(const bool bSorted=false) const
Definition ConstraintsManager.cpp:864
CONSTRAINTS_API bool RemoveConstraint(const int32 InConstraintIndex, bool bDoNotCompensate=false)
Definition ConstraintsManager.cpp:591
CONSTRAINTS_API const TArray< TWeakObjectPtr< UTickableConstraint > > & GetConstraintsArray() const
Definition ConstraintsManager.cpp:827
CONSTRAINTS_API void InvalidateEvaluationGraph() const
Definition ConstraintsManager.cpp:993
CONSTRAINTS_API UTickableConstraint * AddConstraintFromCopy(UTickableConstraint *CopyOfConstraint) const
CONSTRAINTS_API bool DoesExistInAnyWorld(UTickableConstraint *InConstraint)
Definition ConstraintsManager.cpp:1029
static CONSTRAINTS_API bool bDoNotRemoveConstraint
Definition ConstraintsManager.h:246
CONSTRAINTS_API bool UnregisterConstraint(UTickableConstraint *InConstraint)
Definition ConstraintsManager.cpp:567
CONSTRAINTS_API void StaticConstraintCreated(UWorld *InWorld, UTickableConstraint *InConstraint)
Definition ConstraintsManager.cpp:472
CONSTRAINTS_API UTickableConstraint * GetConstraint(const FGuid &InGuid) const
Definition ConstraintsManager.cpp:655
CONSTRAINTS_API int32 GetConstraintIndex(const FGuid &InGuid) const
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition MovieScene.Build.cs:6
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:153
Definition ConstraintsManager.h:162
DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_ThreeParams(FOnConstraintRemoved, UConstraintsManager, OnConstraintRemoved_BP, UConstraintsManager *, Mananger, UTickableConstraint *, Constraint, bool, bDoNotCompensate)
bool IsStaticConstraint(UTickableConstraint *InConstraint) const
Definition ConstraintsManager.h:183
DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_TwoParams(FOnConstraintAdded, UConstraintsManager, OnConstraintAdded_BP, UConstraintsManager *, Mananger, UTickableConstraint *, Constraint)
void RemoveStaticConstraint(UTickableConstraint *InConstraint)
Definition ConstraintsManager.h:182
Definition Level.h:423
Definition Object.h:95
Definition ConstraintsManager.h:74
UTickableConstraint()
Definition ConstraintsManager.h:78
virtual FConstraintTickFunction::ConstraintFunction GetFunction() const PURE_VIRTUAL(GetFunction
virtual ~UTickableConstraint()
Definition ConstraintsManager.h:79
Definition World.h:918
Type
Definition TaskGraphInterfaces.h:57
Definition ConstraintsManager.h:14
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition ConstraintsManager.h:25
TWeakObjectPtr< UTickableConstraint > Constraint
Definition ConstraintsManager.h:52
TArray< ConstraintFunction > ConstraintFunctions
Definition ConstraintsManager.h:55
Definition Guid.h:109
Definition MovieSceneSequenceID.h:13
Definition UnrealType.h:6865
Definition EngineBaseTypes.h:173
Definition StructOpsTypeTraits.h:11
@ WithCopy
Definition StructOpsTypeTraits.h:17
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25
Definition MovieSceneSharedPlaybackState.h:59