UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneInterrogationLinker.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
10#include "UObject/GCObject.h"
11#include "UObject/ObjectKey.h"
12
15
18
19struct FGuid;
21
25
26namespace UE
27{
28namespace MovieScene
29{
30
31struct FInitialValueCache;
32struct FSystemInterrogatorEntityTracker;
33enum class EEntitySystemCategory : uint32;
34
46
73{
74public:
75
78
80
85
93
94
99
100
105
106
115
116
126
127
135
136
143
150
151
159
160public:
161
162
167 {
168 return ActiveChannelBits.Num();
169 }
170
171
179
180public:
181
189
197
204
212
213public:
214
221 MOVIESCENETRACKS_API void QueryWorldSpaceTransforms(UMovieSceneEntitySystemLinker* Linker, USceneComponent* SceneComponent, TArray<FTransform>& OutTransforms) const;
222
230
237
245
247
248private:
249
251 template<typename GetOutputForChannelType>
253
254 template<typename GetOutputForChannelType>
256
257protected:
258
261
264
267
270};
271
272
273
275 : FGCObject
277{
278public:
281
282
287
288
293
294
299 {
300 return Channels.AllocateChannel(Object, PropertyBinding);
301 }
302
303
314
315
327
328
338
339
349
350
355 {
356 for (UMovieSceneTrack* Track : Tracks)
357 {
358 ImportTrack(Track, InChannel);
359 }
360 }
361
362
367 {
368 for (UMovieSceneTrack* Track : Tracks)
369 {
370 ImportTrack(Track, ObjectBindingID, InChannel);
371 }
372 }
373
374
382
383
388
389
394
395public:
396
402
403
409
410
415 {
416 return Linker;
417 }
418
419
424 {
425 return Channels.GetNumChannels();
426 }
427
428
436
437private:
438
439 MOVIESCENETRACKS_API void FindPropertyOutputEntityIDs(const FPropertyDefinition& PropertyDefinition, FInterrogationChannel Channel, TArray<FMovieSceneEntityID>& OutEntityIDs) const;
440
441public:
442
449 void QueryLocalSpaceTransforms(USceneComponent* SceneComponent, TArray<FIntermediate3DTransform>& OutTransforms) const
450 {
451 Channels.QueryLocalSpaceTransforms(Linker, SceneComponent, OutTransforms);
452 }
453
464
474
485
486public:
487
494 void QueryWorldSpaceTransforms(USceneComponent* SceneComponent, TArray<FTransform>& OutTransforms) const
495 {
496 Channels.QueryWorldSpaceTransforms(Linker, SceneComponent, OutTransforms);
497 }
498
509
519
530
539 template<typename PropertyTraits>
544
555 template<typename PropertyTraits>
571
572
585
586public:
587
592
593 virtual const FMovieSceneSequenceHierarchy* GetHierarchy() const override
594 {
595 return Hierarchy;
596 }
597
602
603private:
604
608 MOVIESCENETRACKS_API void ImportTransformTracks(const FMovieSceneBinding& Binding, FInterrogationChannel Channel);
609
613 MOVIESCENETRACKS_API void InterrogateEntity(int32 InterrogationIndex, const FMovieSceneEvaluationFieldEntityQuery& Query);
614
615
616private:
617
618 MOVIESCENETRACKS_API virtual void AddReferencedObjects(FReferenceCollector& Collector);
619 MOVIESCENETRACKS_API virtual FString GetReferencerName() const;
620
621protected:
622
625
628
631
634
637
640
643
652};
653
654
655} // namespace MovieScene
656} // namespace UE
#define check(expr)
Definition AssertionMacros.h:314
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
TSet< FMovieSceneEvaluationFieldEntityQuery, FMovieSceneEvaluationFieldEntityKeyFuncs > FMovieSceneEvaluationFieldEntitySet
Definition MovieSceneEvaluationField.h:176
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GCObject.h:128
Definition UObjectGlobals.h:2492
Definition IMovieScenePlayer.h:90
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition Array.h:670
UE_FORCEINLINE_HINT int32 Num() const
Definition BitArray.h:1466
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SparseArray.h:524
Definition UniquePtr.h:107
Definition MovieSceneInterrogationLinker.h:73
MOVIESCENETRACKS_API void ActivateChannel(FInterrogationChannel InChannel)
Definition MovieSceneInterrogationLinker.cpp:134
const FSparseInterrogationChannelInfo & GetSparseChannelInfo() const
Definition MovieSceneInterrogationLinker.h:81
MOVIESCENETRACKS_API void Reset()
Definition MovieSceneInterrogationLinker.cpp:81
MOVIESCENETRACKS_API FInterrogationChannel AllocateUnboundChannel(FInterrogationChannel ParentChannel, const FTransform &CurrentValueLocalSpace)
FSparseInterrogationChannelInfo SparseChannelInfo
Definition MovieSceneInterrogationLinker.h:263
MOVIESCENETRACKS_API ~FInterrogationChannels()
Definition MovieSceneInterrogationLinker.cpp:78
MOVIESCENETRACKS_API FInterrogationChannel ImportTransformHierarchy(USceneComponent *SceneComponent)
MOVIESCENETRACKS_API FInterrogationChannel AllocateChannel(FInterrogationChannel ParentChannel, const FMovieScenePropertyBinding &PropertyBinding)
Definition MovieSceneInterrogationLinker.cpp:94
MOVIESCENETRACKS_API FInterrogationChannel FindChannel(UObject *Object)
Definition MovieSceneInterrogationLinker.cpp:129
MOVIESCENETRACKS_API FInterrogationChannels()
Definition MovieSceneInterrogationLinker.cpp:72
MOVIESCENETRACKS_API int32 AddInterrogation(const FInterrogationParams &Params)
Definition MovieSceneInterrogationLinker.cpp:144
int32 GetNumChannels() const
Definition MovieSceneInterrogationLinker.h:166
MOVIESCENETRACKS_API void QueryTransformOrigins(UMovieSceneEntitySystemLinker *Linker, const FMovieSceneSequenceHierarchy *Hierarchy, TArray< FTransform > &OutTransformOrigins, TArray< FMovieSceneSequenceID > &SubsequenceHierarchy, const UObject *InstanceData) const
Definition MovieSceneInterrogationLinker.cpp:616
TBitArray ActiveChannelBits
Definition MovieSceneInterrogationLinker.h:266
TArrayView< const FInterrogationParams > GetInterrogations() const
Definition MovieSceneInterrogationLinker.h:175
TArray< FInterrogationParams > Interrogations
Definition MovieSceneInterrogationLinker.h:269
MOVIESCENETRACKS_API void DeactivateChannel(FInterrogationChannel InChannel)
Definition MovieSceneInterrogationLinker.cpp:139
TMap< FObjectKey, FInterrogationChannel > ObjectToChannel
Definition MovieSceneInterrogationLinker.h:260
MOVIESCENETRACKS_API void QueryWorldSpaceTransforms(UMovieSceneEntitySystemLinker *Linker, USceneComponent *SceneComponent, TArray< FTransform > &OutTransforms) const
Definition MovieSceneInterrogationLinker.cpp:157
MOVIESCENETRACKS_API void QueryLocalSpaceTransforms(UMovieSceneEntitySystemLinker *Linker, USceneComponent *SceneComponent, TArray< FIntermediate3DTransform > &OutTransforms) const
Definition MovieSceneInterrogationLinker.cpp:166
TArrayView< const FPropertyCompositeDefinition > GetComposites(const FPropertyDefinition &Property) const
Definition MovieScenePropertyRegistry.h:247
const FPropertyDefinition & GetDefinition(FCompositePropertyTypeID PropertyID) const
Definition MovieScenePropertyRegistry.h:226
Definition MovieSceneInterrogationLinker.h:277
FMovieSceneEntityComponentField EntityComponentField
Definition MovieSceneInterrogationLinker.h:630
TObjectPtr< UMovieSceneEntitySystemLinker > Linker
Definition MovieSceneInterrogationLinker.h:636
void QueryWorldSpaceTransforms(FInterrogationChannel InChannel, TArray< FTransform > &OutTransforms) const
Definition MovieSceneInterrogationLinker.h:505
TSparseArray< FExtraMetaData > ExtraMetaData
Definition MovieSceneInterrogationLinker.h:651
void ImportTracks(TArrayView< UMovieSceneTrack *const > Tracks, FInterrogationChannel InChannel)
Definition MovieSceneInterrogationLinker.h:354
TArrayView< const FInterrogationParams > GetInterrogations() const
Definition MovieSceneInterrogationLinker.h:432
void QueryLocalSpaceTransforms(FInterrogationChannel InChannel, TArray< FIntermediate3DTransform > &OutTransforms) const
Definition MovieSceneInterrogationLinker.h:460
void QueryTransformOrigins(TArray< FTransform > &OutTransformOrigins, TArray< FMovieSceneSequenceID > &SubsequenceHierarchy, const UObject *InstanceData) const
Definition MovieSceneInterrogationLinker.h:581
MOVIESCENETRACKS_API void Reset()
Definition MovieSceneInterrogationLinker.cpp:775
void QueryLocalSpaceTransforms(TSparseArray< TArray< FIntermediate3DTransform > > &OutTransformsByChannel) const
Definition MovieSceneInterrogationLinker.h:470
TUniquePtr< FSystemInterrogatorEntityTracker > EntityTracker
Definition MovieSceneInterrogationLinker.h:633
MOVIESCENETRACKS_API ~FSystemInterrogator()
Definition MovieSceneInterrogationLinker.cpp:761
void QueryLocalSpaceTransforms(USceneComponent *SceneComponent, TArray< FIntermediate3DTransform > &OutTransforms) const
Definition MovieSceneInterrogationLinker.h:449
void QueryPropertyValues(const TPropertyComponents< PropertyTraits > &InPropertyComponents, FInterrogationChannel InChannel, TArray< typename PropertyTraits::StorageType > &OutValues) const
Definition MovieSceneInterrogationLinker.h:556
void QueryWorldSpaceTransforms(TSparseArray< TArray< FTransform > > &OutTransformsByChannel) const
Definition MovieSceneInterrogationLinker.h:515
void QueryWorldSpaceTransforms(const TBitArray<> &ChannelsToQuery, TSparseArray< TArray< FTransform > > &OutTransformsByChannel) const
Definition MovieSceneInterrogationLinker.h:526
const FSparseInterrogationChannelInfo & GetSparseChannelInfo() const override
Definition MovieSceneInterrogationLinker.h:588
MOVIESCENETRACKS_API void Update()
Definition MovieSceneInterrogationLinker.cpp:926
static MOVIESCENETRACKS_API EEntitySystemCategory GetInterrogationCategory()
Definition MovieSceneInterrogationLinker.cpp:737
void ImportTracks(TArrayView< UMovieSceneTrack *const > Tracks, const FGuid &ObjectBindingID, FInterrogationChannel InChannel)
Definition MovieSceneInterrogationLinker.h:366
FInterrogationChannels Channels
Definition MovieSceneInterrogationLinker.h:624
UMovieSceneEntitySystemLinker * GetLinker() const
Definition MovieSceneInterrogationLinker.h:414
MOVIESCENETRACKS_API FMovieSceneEntityID FindEntityFromOwner(FInterrogationKey InterrogationKey, UObject *Owner, uint32 EntityID) const
Definition MovieSceneInterrogationLinker.cpp:984
MOVIESCENETRACKS_API FInterrogationChannel ImportLocalTransforms(USceneComponent *SceneComponent, IMovieScenePlayer *InPlayer, FMovieSceneSequenceID SequenceID)
Definition MovieSceneInterrogationLinker.cpp:994
static MOVIESCENETRACKS_API EEntitySystemCategory GetExcludedFromInterrogationCategory()
Definition MovieSceneInterrogationLinker.cpp:743
FMovieSceneSequenceHierarchy * Hierarchy
Definition MovieSceneInterrogationLinker.h:642
void SetHierarchy(FMovieSceneSequenceHierarchy *InHierarchy)
Definition MovieSceneInterrogationLinker.h:598
int32 GetNumChannels() const
Definition MovieSceneInterrogationLinker.h:423
MOVIESCENETRACKS_API FSystemInterrogator()
Definition MovieSceneInterrogationLinker.cpp:749
TSharedPtr< FInitialValueCache > InitialValueCache
Definition MovieSceneInterrogationLinker.h:639
void QueryPropertyValues(const TPropertyComponents< PropertyTraits > &InPropertyComponents, TArray< typename PropertyTraits::StorageType > &OutValues) const
Definition MovieSceneInterrogationLinker.h:540
void QueryLocalSpaceTransforms(const TBitArray<> &ChannelsToQuery, TSparseArray< TArray< FIntermediate3DTransform > > &OutTransformsByChannel) const
Definition MovieSceneInterrogationLinker.h:481
MOVIESCENETRACKS_API int32 AddInterrogation(const FInterrogationParams &Params)
Definition MovieSceneInterrogationLinker.cpp:858
FInterrogationChannel AllocateChannel(UObject *Object, const FMovieScenePropertyBinding &PropertyBinding)
Definition MovieSceneInterrogationLinker.h:298
void QueryWorldSpaceTransforms(USceneComponent *SceneComponent, TArray< FTransform > &OutTransforms) const
Definition MovieSceneInterrogationLinker.h:494
MOVIESCENETRACKS_API void ImportTrack(UMovieSceneTrack *Track, FInterrogationChannel InChannel, FMovieSceneSequenceID SequenceID=MovieSceneSequenceID::Invalid)
Definition MovieSceneInterrogationLinker.cpp:791
MOVIESCENETRACKS_API FInterrogationChannel ImportTransformHierarchy(USceneComponent *SceneComponent, IMovieScenePlayer *InPlayer, FMovieSceneSequenceID SequenceID)
Definition MovieSceneInterrogationLinker.cpp:1051
FMovieSceneEvaluationFieldEntitySet EntitiesScratch
Definition MovieSceneInterrogationLinker.h:627
MOVIESCENETRACKS_API void TrackImportedEntities(bool bInTrackImportedEntities)
Definition MovieSceneInterrogationLinker.cpp:972
virtual const FMovieSceneSequenceHierarchy * GetHierarchy() const override
Definition MovieSceneInterrogationLinker.h:593
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneTrack.h:206
Definition Object.h:95
Definition Linker.cpp:38
constexpr FMovieSceneSequenceID Invalid
Definition MovieSceneSequenceID.h:97
EEntitySystemCategory
Definition MovieSceneEntitySystem.h:33
Definition AdvancedWidgetsModule.cpp:13
Definition FrameNumber.h:18
Definition FrameTime.h:16
Definition Guid.h:109
Definition MovieSceneBinding.h:25
Definition MovieSceneEvaluationField.h:226
Definition MovieSceneEvaluationField.h:165
Definition MovieScenePropertyBinding.h:17
Definition MovieSceneSequenceHierarchy.h:279
Definition MovieSceneSequenceID.h:13
Definition ObjectPtr.h:488
Definition BuiltInComponentTypes.h:578
static MOVIESCENE_API FBuiltInComponentTypes * Get()
Definition BuiltInComponentTypes.cpp:667
FPropertyRegistry PropertyRegistry
Definition BuiltInComponentTypes.h:583
Definition MovieSceneEntitySystemTypes.h:123
static FInterrogationChannel Default()
Definition MovieSceneEntitySystemTypes.h:168
Definition MovieSceneEntitySystemTypes.h:284
Definition MovieSceneEntitySystemTypes.h:237
Definition MovieSceneInterrogationLinker.h:36
FInterrogationParams(FFrameNumber InTime)
Definition MovieSceneInterrogationLinker.h:42
FInterrogationParams(FFrameTime InTime)
Definition MovieSceneInterrogationLinker.h:39
FFrameTime Time
Definition MovieSceneInterrogationLinker.h:37
Definition MovieSceneEntityIDs.h:302
Definition MovieScenePropertyRegistry.h:66
TInlineValue< IPropertyComponentHandler, 32 > Handler
Definition MovieScenePropertyRegistry.h:136
Definition MovieSceneInterrogation.h:40
Definition MovieSceneInterrogationLinker.h:646
UE::MovieScene::FInterrogationInstance InterrogationInstance
Definition MovieSceneInterrogationLinker.h:647
UE::MovieScene::FInterrogationChannel InterrogationChannel
Definition MovieSceneInterrogationLinker.h:648
FMovieSceneSequenceID InterrogationSequenceID
Definition MovieSceneInterrogationLinker.h:649
Definition MovieSceneInterrogation.h:68
Definition MovieScenePropertySystemTypes.h:299