UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneTrackInstance.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
10#include "HAL/Platform.h"
11#include "HAL/PlatformMisc.h"
14#include "UObject/Class.h"
15#include "UObject/Object.h"
17#include "UObject/ObjectPtr.h"
19
20#include "MovieSceneTrackInstance.generated.h"
21
24class UWorld;
26
27namespace UE
28{
29namespace MovieScene
30{
31
32struct FPreAnimatedTrackInstanceInputCaptureSources;
33
34}
35}
36
37USTRUCT()
39{
41
42
43 UPROPERTY()
44 TObjectPtr<UMovieSceneSection> Section = nullptr;
45
47 UE::MovieScene::FInstanceHandle InstanceHandle;
48
50 bool bInputHasBeenProcessed = false;
51
53 bool IsSameInput(const FMovieSceneTrackInstanceInput& OtherInput) const
54 {
55 return Section == OtherInput.Section && InstanceHandle == OtherInput.InstanceHandle;
56 }
57
59 {
60 return A.Section == B.Section && A.InstanceHandle == B.InstanceHandle && A.bInputHasBeenProcessed == B.bInputHasBeenProcessed;
61 }
62
64 {
65 // bInputHasBeenProcessed is not considered for sorting
66 if (A.Section == B.Section)
67 {
68 return A.InstanceHandle < B.InstanceHandle;
69 }
70 return A.Section < B.Section;
71 }
72
74 {
75 // Use arbitrary primes to salt this thing.
76 uint32 hash = 7211;
77 hash = (hash * 307) + GetTypeHash(Input.Section);
78 hash = (hash * 307) + GetTypeHash(Input.InstanceHandle);
79 return hash;
80 }
81
84 {
85 Ar << (UObject*&)Section << InstanceHandle.InstanceID << InstanceHandle.InstanceSerial << bInputHasBeenProcessed;
86 return true;
87 }
88};
89
90template<>
92{
93 enum
94 {
97 };
98};
99
100
104UCLASS(transient, MinimalAPI)
106{
107public:
109
110
117
118
122 MOVIESCENE_API void Animate();
123
124
129
130
134 MOVIESCENE_API void Destroy();
135
136
137public:
138
139
144 {
145 return WeakAnimatedObject.Get();
146 }
147
148
153 {
154 return PrivateLinker;
155 }
156
157
162 {
163 return Inputs;
164 }
165
166 MOVIESCENE_API virtual UWorld* GetWorld() const override;
167#if WITH_EDITOR
168 virtual bool ImplementsGetWorld() const override { return true; }
169#endif
170
171private:
172
174 virtual void OnInitialize() {}
175
177 virtual void OnAnimate() {}
178
180 virtual void OnBeginUpdateInputs() {}
181
183 virtual void OnInputAdded(const FMovieSceneTrackInstanceInput& InInput) {}
184
186 virtual void OnInputRemoved(const FMovieSceneTrackInstanceInput& InInput) {}
187
189 virtual void OnEndUpdateInputs() {}
190
192 virtual void OnDestroyed() {}
193
194private:
195
196 UPROPERTY()
197 TWeakObjectPtr<UObject> WeakAnimatedObject;
198
199 UPROPERTY()
200 bool bIsRootTrackInstance;
201
202 UPROPERTY()
204
205 UPROPERTY()
207};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#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
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition Array.h:670
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneSection.h:243
Definition MovieSceneTrackInstance.h:106
UMovieSceneEntitySystemLinker * GetLinker() const
Definition MovieSceneTrackInstance.h:152
UObject * GetAnimatedObject() const
Definition MovieSceneTrackInstance.h:143
TArrayView< const FMovieSceneTrackInstanceInput > GetInputs() const
Definition MovieSceneTrackInstance.h:161
Definition Object.h:95
Definition World.h:918
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition BuiltInComponentTypes.h:80
Definition MovieSceneTrackInstance.h:39
friend uint32 GetTypeHash(const FMovieSceneTrackInstanceInput &Input)
Definition MovieSceneTrackInstance.h:73
friend bool operator==(const FMovieSceneTrackInstanceInput &A, const FMovieSceneTrackInstanceInput &B)
Definition MovieSceneTrackInstance.h:58
bool Serialize(FArchive &Ar)
Definition MovieSceneTrackInstance.h:83
friend bool operator<(const FMovieSceneTrackInstanceInput &A, const FMovieSceneTrackInstanceInput &B)
Definition MovieSceneTrackInstance.h:63
Definition ObjectPtr.h:488
Definition StructOpsTypeTraits.h:11
@ WithIdenticalViaEquality
Definition StructOpsTypeTraits.h:18
@ WithSerializer
Definition StructOpsTypeTraits.h:23
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25