UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneComponentAccessors.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
14#include "HAL/Platform.h"
16#include "MovieSceneEntityIDs.h"
17#include "Templates/Tuple.h"
18
19
20#include <initializer_list>
21
22namespace UE
23{
24namespace MovieScene
25{
26
27class FEntityManager;
29
31{
33
35 {
36 // Always relative to the component data which is a separate allocation
38 PrelockedComponentData->Reset(Allocation->GetComponentDataAddress(), Header.Components);
39 }
40};
49
50
52{
55
57 {
59 {
60 return;
61 }
62
63 const FEntityAllocation* Allocation = Item.GetAllocation();
64
66 if (Header)
67 {
68 // Always relative to the component data which is a separate allocation
69 PrelockedComponentData->Reset(Allocation->GetComponentDataAddress(), Header->Components);
70 }
71 }
72};
81
82
84{
86 static constexpr int32 PreLockedDataNum = 1;
87
88
90 {
91 // Must be relative to the base allocation ptr
92 PrelockedComponentData->Reset(Allocation, Allocation->GetRawEntityIDs());
93 }
95 {
96 // Resolve using the same base ptr as PreLockComponentData
98 }
99
101 {
102 return TRead<FMovieSceneEntityID>(Allocation->GetRawEntityIDs());
103 }
104};
105
107{
109 //static constexpr int32 PreLockedDataNum = 1;
110
112 {
113 // Must be relative to the base allocation ptr
114 const bool bFilterMatch = Filter.Match(Item.GetAllocationType());
115
116 // We abuse the pointer here by using either the allocation ptr itself as 'true' and a nullptr as 'false'
117 if (bFilterMatch)
118 {
119 PrelockedComponentData->Reset(nullptr);
120 }
121 else
122 {
123 const FEntityAllocation* Allocation = Item.GetAllocation();
124 PrelockedComponentData->Reset(Allocation, Allocation);
125 }
126 }
127 inline bool ResolvePreLockedComponentData(const FEntityAllocation* Allocation, const FPreLockedDataPtr* Ptr, FEntityAllocationWriteContext WriteContext) const
128 {
129 return Ptr->Resolve<FEntityAllocation>(Allocation) != nullptr;
130 }
131
133 {
134 return Filter.Match(Item.GetAllocationType());
135 }
136
138};
139
140template<typename T>
142{
143 using AccessType = const T;
144 static constexpr int32 PreLockedDataNum = 1;
145
149
151 {
152 // Resolve using the same base ptr as PreLockComponentData
153 return TRead<T>(Ptr->Resolve<const T>(Allocation->GetComponentDataAddress()));
154 }
156 {
157 return Allocation->ReadComponents(ComponentType.ReinterpretCast<T>());
158 }
159};
160
161
163{
164 static constexpr int32 PreLockedDataNum = 1;
165
169
171 {
172 // Erased reads always pass the header since they need the size information
174 PrelockedComponentData->Reset(Allocation, &Header);
175 }
177 {
178 // Resolve using the same base ptr as PreLockComponentData
179 return FReadErased(Ptr->Resolve<const FComponentHeader>(Allocation));
180 }
182 {
183 return Allocation->ReadComponentsErased(ComponentType);
184 }
185};
187{
188 static constexpr int32 PreLockedDataNum = 1;
189
191
196
198 {
200 {
201 return;
202 }
203
204 const FEntityAllocation* Allocation = Item.GetAllocation();
206 if (Header)
207 {
208 // Erased reads always pass the header since they need the size information
209 PrelockedComponentData->Reset(Allocation, Header);
210 }
211 }
213 {
214 // Resolve using the same base ptr as PreLockComponentData
215 return FReadErasedOptional(Ptr->Resolve<const FComponentHeader>(Allocation));
216 }
226};
227
229{
230 static constexpr int32 PreLockedDataNum = 1;
231
235
237 {
239 // Erased writes always pass the header since they need the size information
240 PrelockedComponentData->Reset(Allocation, &Header);
241 }
243 {
244 // Resolve using the same base ptr as PreLockComponentData
245 return FWriteErased(Ptr->Resolve<FComponentHeader>(Allocation));
246 }
248 {
249 return Allocation->WriteComponentsErased(ComponentType, WriteContext);
250 }
251};
252
253
254
255
256template<typename T>
258{
259 using AccessType = T;
260 static constexpr int32 PreLockedDataNum = 1;
261
265
267 {
268 // Resolve using the same base ptr as PreLockComponentData
269 return TWrite<T>(Ptr->Resolve<T>(Allocation->GetComponentDataAddress()));
270 }
272 {
273 return Allocation->WriteComponents(ComponentType.ReinterpretCast<T>(), WriteContext);
274 }
275};
276
277
278
279
280template<typename T>
282{
283 using AccessType = const T;
284 static constexpr int32 PreLockedDataNum = 1;
285
289
291 {
292 // Resolve using the same base ptr as PreLockComponentData
293 return TReadOptional<T>(Ptr->Resolve<T>(Allocation->GetComponentDataAddress()));
294 }
296 {
297 return Allocation->TryReadComponents(ComponentType.ReinterpretCast<T>());
298 }
299};
300
301
302
303
304template<typename T>
306{
307 using AccessType = T;
308 static constexpr int32 PreLockedDataNum = 1;
309
313
315 {
316 // Resolve using the same base ptr as PreLockComponentData
317 return TWriteOptional<T>(Ptr->Resolve<T>(Allocation->GetComponentDataAddress()));
318 }
320 {
321 return Allocation->TryWriteComponents(ComponentType.ReinterpretCast<T>(), WriteContext);
322 }
323};
324
325
326template<typename...>
328
329template<typename ...T, int ...Indices>
330struct TUnpackMultiComponentData<TIntegerSequence<int, Indices...>, T...>
331{
333 {
335 TOptionalReadAccess<T>(ComponentTypes[Indices].ComponentType).ResolvePreLockedComponentData(Allocation, &PrelockedComponentData[Indices], WriteContext)...
336 );
337 }
339 {
341 TOptionalReadAccess<T>(ComponentTypes[Indices].ComponentType).LockComponentData(Allocation, WriteContext)...
342 );
343 }
344};
345
346template<typename... T>
378
379
380
381
382template<typename... T>
414
415
430template<typename... T>
432{
434 for (int32 Index = 0; Index < sizeof...(T); ++Index)
435 {
437 if (Component)
438 {
439 Mask.Set(Component);
440 }
441 }
442
443 check(Mask.NumComponents() != 0);
445}
446template<typename... T>
448{
450 for (int32 Index = 0; Index < sizeof...(T); ++Index)
451 {
453 if (Component)
454 {
455 Mask.Set(Component);
456 }
457 }
458
459 check(Mask.NumComponents() != 0);
461}
462
463
480template<typename... T>
488template<typename... T>
496
497
498
505{
506 if (In->ComponentType)
507 {
508 OutSubsequents.AddComponentTask(In->ComponentType, InEvent);
509 }
510}
514
515
516
544template<typename... T>
552template<typename... T>
560
561
562
564{
565 return Allocation->HasStructureChangedSince(InSystemSerial);
566}
572{
574 {
575 return Header->HasBeenWrittenToSince(InSystemSerial);
576 }
577 return false;
578}
579template<typename... T>
581{
582 bool bAnyWrittenTo = false;
583 for (int32 Index = 0; Index < sizeof...(T); ++Index)
584 {
586 }
587 return bAnyWrittenTo;
588}
589template<typename... T>
591{
592 bool bAnyWrittenTo = false;
593 for (int32 Index = 0; Index < sizeof...(T); ++Index)
594 {
596 }
597 return bAnyWrittenTo;
598}
599
600template<typename T>
602 -> decltype(DeclVal<T>().ComponentAtIndex(0))
603{
604 return InAccessor->ComponentAtIndex(Index);
605}
606
608{
609 return *BoolPassthrough;
610}
611
613{
614 return true;
615}
617{
618 return true;
619}
620inline bool IsAccessorValid(const FComponentAccess* In)
621{
623}
625{
626 return true;
627}
628template<typename... T>
630{
631 bool bValid = false;
632 for (int32 Index = 0; Index < sizeof...(T); ++Index)
633 {
634 bValid |= IsAccessorValid(&In->ComponentTypes[Index]);
635 }
636 return bValid;
637}
638template<typename... T>
640{
641 bool bValid = false;
642 for (int32 Index = 0; Index < sizeof...(T); ++Index)
643 {
644 bValid |= IsAccessorValid(&In->ComponentTypes[Index]);
645 }
646 return bValid;
647}
648
649
650
652{
653 return true;
654}
655inline bool HasAccessorWork(const FEntityManager* EntityManager, const FComponentAccess* In)
656{
657 return EntityManager->ContainsComponent(In->ComponentType);
658}
659inline bool HasAccessorWork(const FEntityManager* EntityManager, const FOptionalComponentAccess* In)
660{
661 return true;
662}
663template<typename... T>
664inline bool HasAccessorWork(const FEntityManager* EntityManager, const TReadOneOfAccessor<T...>* In)
665{
666 bool bAnyWork = false;
667 for (int32 Index = 0; Index < sizeof...(T); ++Index)
668 {
669 bAnyWork |= HasAccessorWork(EntityManager, &In->ComponentTypes[Index]);
670 }
671 return bAnyWork;
672}
673template<typename... T>
674inline bool HasAccessorWork(const FEntityManager* EntityManager, const TReadOneOrMoreOfAccessor<T...>* In)
675{
676 bool bAnyWork = false;
677 for (int32 Index = 0; Index < sizeof...(T); ++Index)
678 {
679 bAnyWork |= HasAccessorWork(EntityManager, &In->ComponentTypes[Index]);
680 }
681 return bAnyWork;
682}
683
684#if UE_MOVIESCENE_ENTITY_DEBUG
685
686 MOVIESCENE_API void AccessorToString(const FReadAccess* In, FEntityManager* EntityManager, FString& OutString);
687 MOVIESCENE_API void AccessorToString(const FWriteAccess* In, FEntityManager* EntityManager, FString& OutString);
688 MOVIESCENE_API void AccessorToString(const FOptionalReadAccess* In, FEntityManager* EntityManager, FString& OutString);
689 MOVIESCENE_API void AccessorToString(const FOptionalWriteAccess* In, FEntityManager* EntityManager, FString& OutString);
690 MOVIESCENE_API void AccessorToString(const FEntityIDAccess*, FEntityManager* EntityManager, FString& OutString);
691 MOVIESCENE_API void OneOfAccessorToString(const FOptionalReadAccess* In, FEntityManager* EntityManager, FString& OutString);
692
693 template<typename... T>
694 void AccessorToString(const TReadOneOfAccessor<T...>* In, FEntityManager* EntityManager, FString& OutString)
695 {
696 TArray<FString> Strings;
697
698 for (int32 Index = 0; Index < sizeof...(T); ++Index)
699 {
700 OneOfAccessorToString(&In->ComponentTypes[Index], EntityManager, Strings.Emplace_GetRef());
701 }
702
703 OutString += FString::Printf(TEXT("\n\tRead One Of: [ %s ]"), *FString::Join(Strings, TEXT(",")));
704 }
705
706 template<typename... T>
707 void AccessorToString(const TReadOneOrMoreOfAccessor<T...>* In, FEntityManager* EntityManager, FString& OutString)
708 {
709 TArray<FString> Strings;
710
711 for (int32 Index = 0; Index < sizeof...(T); ++Index)
712 {
713 OneOfAccessorToString(&In->ComponentTypes[Index], EntityManager, Strings.Emplace_GetRef());
714 }
715
716 OutString += FString::Printf(TEXT("\n\tRead One Or More Of: [ %s ]"), *FString::Join(Strings, TEXT(",")));
717 }
718
719#endif // UE_MOVIESCENE_ENTITY_DEBUG
720
721
722} // namespace MovieScene
723} // namespace UE
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename UE4IntegerSequence_Private::TMakeIntegerSequenceImpl< T, N >::Type TMakeIntegerSequence
Definition IntegerSequence.h:31
const bool
Definition NetworkReplayStreaming.h:178
Definition MovieScene.Build.cs:6
UE_FORCEINLINE_HINT ElementType & Emplace_GetRef(ArgsType &&... Args) UE_LIFETIMEBOUND
Definition Array.h:2613
Definition MovieSceneEntityManager.h:81
TRelativePtr< void, uint32 > FPreLockedDataPtr
Definition IMovieSceneTaskScheduler.h:18
bool IsAccessorValid(const FEntityIDAccess *)
Definition MovieSceneComponentAccessors.h:612
auto GetComponentAtIndex(T *InAccessor, int32 Index) -> decltype(DeclVal< T >().ComponentAtIndex(0))
Definition MovieSceneComponentAccessors.h:601
void PopulatePrerequisites(const FEntityIDAccess *, const FSystemTaskPrerequisites &InPrerequisites, FGraphEventArray *OutGatheredPrereqs)
Definition MovieSceneComponentAccessors.h:464
void AddAccessorToFilter(const FEntityIDAccess *, FEntityComponentFilter *OutFilter)
Definition MovieSceneComponentAccessors.h:416
bool HasAccessorWork(const FEntityManager *, const FEntityIDAccess *)
Definition MovieSceneComponentAccessors.h:651
TComponentLock< FReadErasedOptional > FOptionalComponentReader
Definition MovieSceneComponentPtr.h:426
bool HasBeenWrittenToSince(const FEntityIDAccess *In, FEntityAllocation *Allocation, uint64 InSystemSerial)
Definition MovieSceneComponentAccessors.h:563
void PopulateReadWriteDependencies(const FEntityIDAccess *, FComponentMask &OutReadDependencies, FComponentMask &OutWriteDependencies)
Definition MovieSceneComponentAccessors.h:517
void PopulateSubsequents(const FWriteAccess *In, const FGraphEventRef &InEvent, FSystemSubsequentTasks &OutSubsequents)
Definition MovieSceneComponentAccessors.h:499
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition IntegerSequence.h:9
Definition RelativePtr.h:11
T * Resolve(const void *BasePtr) const
Definition RelativePtr.h:34
Definition Tuple.h:652
Definition MovieSceneComponentAccessors.h:31
FComponentTypeID ComponentType
Definition MovieSceneComponentAccessors.h:32
void PreLockComponentData(const FEntityAllocation *Allocation, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:34
Definition MovieSceneEntitySystemTypes.h:460
bool HasBeenWrittenToSince(uint64 InSystemSerial) const
Definition MovieSceneEntitySystemTypes.h:554
Definition MovieSceneEntityIDs.h:40
Definition MovieSceneEntityIDs.h:251
MOVIESCENE_API bool Passes(const FComponentMask &Type) const
Definition MovieSceneEntityIDs.cpp:16
Definition MovieSceneEntityIDs.h:174
TComponentTypeID< T > ReinterpretCast() const
Definition MovieSceneEntityIDs.h:501
static FComponentTypeID Invalid()
Definition MovieSceneEntityIDs.h:179
Definition MovieSceneEntitySystemTypes.h:977
MOVIESCENE_API const FComponentMask & GetAllocationType() const
Definition MovieSceneEntitySystemTypes.cpp:154
MOVIESCENE_API const FEntityAllocation * GetAllocation() const
Definition MovieSceneEntitySystemTypes.cpp:144
Definition MovieSceneEntitySystemTypes.h:425
Definition MovieSceneEntitySystemTypes.h:624
TComponentLock< TRead< T > > ReadComponents(TComponentTypeID< T > ComponentType) const
Definition MovieSceneEntitySystemTypes.h:877
bool HasStructureChangedSince(uint64 InSystemVersion) const
Definition MovieSceneEntitySystemTypes.h:777
TComponentLock< TWrite< T > > WriteComponents(TComponentTypeID< T > ComponentType, FEntityAllocationWriteContext InWriteContext) const
Definition MovieSceneEntitySystemTypes.h:900
const FComponentHeader & GetComponentHeaderChecked(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntitySystemTypes.h:714
TComponentLock< TReadOptional< T > > TryReadComponents(TComponentTypeID< T > ComponentType) const
Definition MovieSceneEntitySystemTypes.h:887
const FComponentHeader * FindComponentHeader(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntitySystemTypes.h:690
MOVIESCENE_API TComponentLock< FWriteErased > WriteComponentsErased(FComponentTypeID ComponentType, FEntityAllocationWriteContext InWriteContext) const
Definition MovieSceneEntitySystemTypes.cpp:118
MOVIESCENE_API TComponentLock< FReadErasedOptional > TryReadComponentsErased(FComponentTypeID ComponentType) const
Definition MovieSceneEntitySystemTypes.cpp:124
const void * GetComponentDataAddress() const
Definition MovieSceneEntitySystemTypes.h:757
MOVIESCENE_API TComponentLock< FReadErased > ReadComponentsErased(FComponentTypeID ComponentType) const
Definition MovieSceneEntitySystemTypes.cpp:112
TComponentLock< TWriteOptional< T > > TryWriteComponents(TComponentTypeID< T > ComponentType, FEntityAllocationWriteContext InWriteContext) const
Definition MovieSceneEntitySystemTypes.h:910
const FMovieSceneEntityID * GetRawEntityIDs() const
Definition MovieSceneEntitySystemTypes.h:748
Definition MovieSceneEntitySystemTypes.h:295
MOVIESCENE_API bool Match(const FComponentMask &Input) const
Definition MovieSceneEntitySystemTypes.cpp:43
Definition MovieSceneComponentAccessors.h:84
TRead< FMovieSceneEntityID > LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:100
void PreLockComponentData(const FEntityAllocation *Allocation, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:89
TRead< FMovieSceneEntityID > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:94
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:86
Definition MovieSceneComponentAccessors.h:187
FErasedOptionalReadAccess(FComponentTypeID InComponentTypeID, FComponentTypeIDFilter InCondition)
Definition MovieSceneComponentAccessors.h:192
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:188
FReadErasedOptional ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:212
FComponentTypeIDFilter Condition
Definition MovieSceneComponentAccessors.h:190
FOptionalComponentReader LockComponentData(FEntityAllocationIteratorItem Item, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:217
void PreLockComponentData(FEntityAllocationIteratorItem Item, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:197
Definition MovieSceneComponentAccessors.h:163
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:164
FComponentReader LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:181
void PreLockComponentData(const FEntityAllocation *Allocation, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:170
FErasedReadAccess(FComponentTypeID InComponentTypeID)
Definition MovieSceneComponentAccessors.h:166
FReadErased ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:176
Definition MovieSceneComponentAccessors.h:229
FWriteErased ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:242
FComponentWriter LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:247
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:230
void PreLockComponentData(const FEntityAllocation *Allocation, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:236
FErasedWriteAccess(FComponentTypeID InComponentTypeID)
Definition MovieSceneComponentAccessors.h:232
Definition MovieSceneComponentAccessors.h:107
bool ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:127
FEntityComponentFilter Filter
Definition MovieSceneComponentAccessors.h:137
bool AccessType
Definition MovieSceneComponentAccessors.h:108
bool LockComponentData(FEntityAllocationIteratorItem Item, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:132
void PreLockComponentData(FEntityAllocationIteratorItem Item, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:111
Definition MovieSceneEntityIDs.h:302
Definition MovieSceneComponentAccessors.h:52
void PreLockComponentData(FEntityAllocationIteratorItem Item, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:56
FComponentTypeID ComponentType
Definition MovieSceneComponentAccessors.h:53
FComponentTypeIDFilter Condition
Definition MovieSceneComponentAccessors.h:54
Definition MovieSceneComponentAccessors.h:74
FOptionalReadAccess(FComponentTypeID InComponentType, FComponentTypeIDFilter InConditionType=FComponentTypeIDFilter())
Definition MovieSceneComponentAccessors.h:75
Definition MovieSceneComponentAccessors.h:78
FOptionalWriteAccess(FComponentTypeID InComponentType, FComponentTypeIDFilter InConditionType=FComponentTypeIDFilter())
Definition MovieSceneComponentAccessors.h:79
Definition MovieSceneComponentAccessors.h:42
FReadAccess(FComponentTypeID InComponentType)
Definition MovieSceneComponentAccessors.h:43
Definition MovieSceneComponentPtr.h:171
Definition MovieSceneComponentPtr.h:137
Definition MovieSceneSystemTaskDependencies.h:98
Definition MovieSceneSystemTaskDependencies.h:29
Definition MovieSceneComponentAccessors.h:46
FWriteAccess(FComponentTypeID InComponentType)
Definition MovieSceneComponentAccessors.h:47
Definition MovieSceneComponentPtr.h:233
Definition MovieSceneComponentPtr.h:342
Definition MovieSceneComponentPtr.h:329
Definition MovieSceneComponentPtr.h:360
Definition MovieSceneComponentPtr.h:109
Definition MovieSceneEntityIDs.h:283
Definition MovieSceneComponentPtr.h:439
Definition MovieSceneComponentAccessors.h:282
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:284
TComponentLock< TReadOptional< T > > LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:295
const T AccessType
Definition MovieSceneComponentAccessors.h:283
TReadOptional< T > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:290
TOptionalReadAccess(FComponentTypeID InComponentTypeID, FComponentTypeIDFilter InConditionType=FComponentTypeIDFilter())
Definition MovieSceneComponentAccessors.h:286
Definition MovieSceneComponentAccessors.h:306
T AccessType
Definition MovieSceneComponentAccessors.h:307
TWriteOptional< T > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:314
TComponentLock< TWriteOptional< T > > LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:319
TOptionalWriteAccess(FComponentTypeID InComponentTypeID, FComponentTypeIDFilter InConditionType=FComponentTypeIDFilter())
Definition MovieSceneComponentAccessors.h:310
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:308
Definition MovieSceneComponentAccessors.h:142
TComponentLock< TRead< T > > LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:155
TRead< T > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:150
TReadAccess(FComponentTypeID InComponentTypeID)
Definition MovieSceneComponentAccessors.h:146
const T AccessType
Definition MovieSceneComponentAccessors.h:143
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:144
Definition MovieSceneComponentAccessors.h:348
void PreLockComponentData(FEntityAllocationIteratorItem Item, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:356
TReadOneOfAccessor(TComponentTypeID< T >... InComponentTypeIDs)
Definition MovieSceneComponentAccessors.h:352
FOptionalReadAccess ComponentTypes[sizeof...(T)]
Definition MovieSceneComponentAccessors.h:376
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:350
TMultiComponentLock< TReadOptional< T >... > LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:370
TMultiComponentData< TReadOptional< T >... > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *PrelockedComponentData, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:364
Definition MovieSceneComponentAccessors.h:384
TMultiComponentLock< TReadOptional< T >... > LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:406
FOptionalReadAccess ComponentTypes[sizeof...(T)]
Definition MovieSceneComponentAccessors.h:412
TReadOneOrMoreOfAccessor(TComponentTypeID< T >... InComponentTypeIDs)
Definition MovieSceneComponentAccessors.h:388
void PreLockComponentData(FEntityAllocationIteratorItem Item, FPreLockedDataPtr *PrelockedComponentData) const
Definition MovieSceneComponentAccessors.h:392
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:386
TMultiComponentData< TReadOptional< T >... > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *PrelockedComponentData, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:400
Definition MovieSceneComponentPtr.h:208
Definition MovieSceneComponentPtr.h:195
static TMultiComponentLock< TReadOptional< T >... > LockComponentData(const FEntityAllocation *Allocation, const FOptionalReadAccess *ComponentTypes, FEntityAllocationWriteContext WriteContext)
Definition MovieSceneComponentAccessors.h:338
static TMultiComponentData< TReadOptional< T >... > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FOptionalReadAccess *ComponentTypes, const FPreLockedDataPtr *PrelockedComponentData, FEntityAllocationWriteContext WriteContext)
Definition MovieSceneComponentAccessors.h:332
Definition MovieSceneComponentAccessors.h:327
Definition MovieSceneComponentAccessors.h:258
TWrite< T > ResolvePreLockedComponentData(const FEntityAllocation *Allocation, const FPreLockedDataPtr *Ptr, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:266
TWriteAccess(FComponentTypeID InComponentTypeID)
Definition MovieSceneComponentAccessors.h:262
TComponentLock< TWrite< T > > LockComponentData(const FEntityAllocation *Allocation, FEntityAllocationWriteContext WriteContext) const
Definition MovieSceneComponentAccessors.h:271
T AccessType
Definition MovieSceneComponentAccessors.h:259
static constexpr int32 PreLockedDataNum
Definition MovieSceneComponentAccessors.h:260
Definition MovieSceneComponentPtr.h:300
Definition MovieSceneComponentPtr.h:288