UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneEntityManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Algo/AllOf.h"
6#include "Algo/AnyOf.h"
8#include "Containers/Array.h"
10#include "Containers/BitArray.h"
11#include "Containers/Map.h"
12#include "Containers/Set.h"
15#include "CoreTypes.h"
23#include "HAL/CriticalSection.h"
24#include "HAL/PlatformCrt.h"
26#include "Misc/EnumClassFlags.h"
27#include "Misc/InlineValue.h"
32
33#include <initializer_list>
34
35class FArchive;
37class UObjectBase;
38struct FGuid;
40
41namespace UE
42{
43namespace MovieScene
44{
45
46struct FChildEntityInitializer;
47struct FComponentRegistry;
48struct FEntityAllocationIteratorProxy;
49struct FFreeEntityOperation;
51struct IComponentTypeHandler;
52struct IMovieSceneEntityMutation;
53template <typename T> struct TReadOptional;
54template <typename T> struct TWriteOptional;
55struct IMovieSceneConditionalEntityMutation;
56
58
60{
62 This = 1 << 0,
64 Children = 1 << 1,
66 Full = This | Children,
67};
69
81{
82public:
83
86
88 void operator=(const FEntityManager&) = delete;
89
91 void operator=(FEntityManager&&) = delete;
92
93
95 {
96 return ComponentRegistry;
97 }
98
100 {
101 ComponentRegistry = InComponents;
102 }
103
104public:
105
106
110 MOVIESCENE_API void Destroy();
111
112
119
120
128
129
138
139
148
149
159
160
168
169
176
177
184
185
192 bool IsAllocated(FMovieSceneEntityID EntityID) const
193 {
194 return EntityID && EntityLocations.IsValidIndex(EntityID.AsIndex());
195 }
196
197
203 MOVIESCENE_API bool IsHandleValid(FEntityHandle EntityID) const;
204
205
210
211
216
217
222
223public:
224
225
233 template<typename T, typename ValueType>
234 void AddComponent(FMovieSceneEntityID EntityID, TComponentTypeID<T> ComponentTypeID, ValueType&& InValue)
235 {
236 AddComponent(EntityID, ComponentTypeID);
237
238 FEntityInfo Entry = GetEntity(EntityID);
239 if (Entry.Data.Allocation != nullptr)
240 {
241 const FComponentHeader& Header = Entry.Data.Allocation->GetComponentHeaderChecked(ComponentTypeID);
242
244
245 T* Component = reinterpret_cast<T*>(Header.GetValuePtr(Entry.Data.ComponentOffset));
247 }
248 }
249
250
257 MOVIESCENE_API void AddComponent(FMovieSceneEntityID EntityID, FComponentTypeID ComponentTypeID);
259
260
269
270
279
280
289
290
299
300
309
310
317 MOVIESCENE_API bool HasComponent(FMovieSceneEntityID EntityID, FComponentTypeID ComponentTypeID) const;
318
319
327
328
336
337
345
346
355
356
364
365
373
374
386
391
396 {
397 InstancedChildInitializers.RemoveAt(Index);
398 }
399
404
409
410public:
411
412
421 template<typename T>
423 {
424 check(Entity);
425
426 if (!ComponentTypeID)
427 {
429 }
430
431 FEntityLocation Location = EntityLocations[Entity.AsIndex()];
432 if (!Location.IsValid() || !EntityAllocationMasks[Location.GetAllocationIndex()].Contains(ComponentTypeID))
433 {
435 }
436
437 FEntityAllocation* Allocation = EntityAllocations[Location.GetAllocationIndex()];
438 const int32 ComponentOffset = Location.GetEntryIndexWithinAllocation();
439
443
444 for (FComponentHeader& Header : Allocation->GetComponentHeaders())
445 {
446 if (Header.ComponentType == ComponentTypeID)
447 {
448 return TComponentLock<TReadOptional<T>>(&Header, LockMode, ComponentOffset);
449 }
450 }
451
453 }
454
455
464 template<typename T>
466 {
467 TComponentLock<TReadOptional<T>> Value = ReadComponent(Entity, ComponentTypeID);
468 check(Value);
469 return *Value;
470 }
471
472
481 template<typename T>
483 {
484 check(Entity);
485
486 if (!ComponentTypeID)
487 {
489 }
490
491 FEntityLocation Location = EntityLocations[Entity.AsIndex()];
492 if (!Location.IsValid() || !EntityAllocationMasks[Location.GetAllocationIndex()].Contains(ComponentTypeID))
493 {
495 }
496
497 FEntityAllocation* Allocation = EntityAllocations[Location.GetAllocationIndex()];
498 const int32 ComponentOffset = Location.GetEntryIndexWithinAllocation();
499
503
504 for (FComponentHeader& Header : Allocation->GetComponentHeaders())
505 {
506 if (Header.ComponentType == ComponentTypeID)
507 {
508 return TComponentLock<TWriteOptional<T>>(&Header, LockMode, FEntityAllocationWriteContext(*this), ComponentOffset);
509 }
510 }
511
513 }
514
515
524 template<typename T, typename ValueType>
525 void WriteComponentChecked(FMovieSceneEntityID Entity, TComponentTypeID<T> ComponentTypeID, ValueType&& Value)
526 {
527 TComponentLock<TWriteOptional<T>> ComponentPtr = WriteComponent(Entity, ComponentTypeID);
528 check(ComponentPtr);
529 *ComponentPtr = Forward<ValueType>(Value);
530 }
531
532public:
533
538
540 {
541 return GatherThread;
542 }
543
548
550 {
551 return DispatchThread;
552 }
553
557 MOVIESCENE_API void Compact();
558
559
568
569
578
579
588
589
597
598
607
608
617
618
626 template<typename IteratorType>
627 void IterateImmediateChildren(FMovieSceneEntityID ParentID, IteratorType&& Iterator) const
628 {
629 for (auto ChildIt = ParentToChild.CreateConstKeyIterator(ParentID); ChildIt; ++ChildIt)
630 {
631 Iterator(ChildIt.Value());
632 }
633 }
634
635
642 template<typename IteratorType>
643 void IterateChildren_ParentFirst(FMovieSceneEntityID ParentID, IteratorType&& Iterator) const
644 {
645 for (auto ChildIt = ParentToChild.CreateConstKeyIterator(ParentID); ChildIt; ++ChildIt)
646 {
647 Iterator(ChildIt.Value());
648 IterateChildren_ParentFirst(ChildIt.Value(), Iterator);
649 }
650 }
651
652public:
653
654
663
664
669
670public:
671
679
680
687 MOVIESCENE_API bool Contains(const FEntityComponentFilter& InFilter) const;
688
689
696 bool ContainsComponent(FComponentTypeID ComponentTypeID) const
697 {
698 return GetAccumulatedMask().Contains(ComponentTypeID);
699 }
700
701
708 bool ContainsAnyComponent(std::initializer_list<FComponentTypeID> ComponentTypeIDs) const
709 {
711 return Algo::AnyOf(ComponentTypeIDs, [&Mask](FComponentTypeID In){ return Mask.Contains(In); });
712 }
713
725
733 bool ContainsAllComponents(std::initializer_list<FComponentTypeID> ComponentTypeIDs) const
734 {
736 return Algo::AllOf(ComponentTypeIDs, [&Mask](FComponentTypeID In){ return Mask.Contains(In); });
737 }
738
739
747
748
753
754
761 MOVIESCENE_API void EnterIteration() const;
762 MOVIESCENE_API void ExitIteration() const;
763
765 {
766 checkf(IterationCount.Load(ThreadingModel) == 0, TEXT("Mutation of entities is not permissible while entities are being iterated"));
767 checkf(LockdownState == ELockdownState::Unlocked, TEXT("Structural changes to the entity manager are not permitted while it is locked down"));
768 }
769
770 bool IsLockedDown() const
771 {
772 return LockdownState == ELockdownState::Locked;
773 }
774
775 void LockDown()
776 {
777 LockdownState = ELockdownState::Locked;
778 }
779
781 {
782 LockdownState = ELockdownState::Unlocked;
783 }
784
789 {
790 return GlobalIterationFilter;
791 }
792
800 {
801 ensureMsgf(!IsLockedDown() && IterationCount.Load(ThreadingModel) == 0, TEXT("Manipulating the global iteration filter while locked down or iterating is not recommended"));
802 return GlobalIterationFilter;
803 }
804
809 {
810 SystemSerialNumber += IncAmount;
811 }
812
818 {
819 return SystemSerialNumber;
820 }
821
826 {
827 return CachedSerial == 0 || StructureMutationSystemSerialNumber > CachedSerial;
828 }
829
834 {
835 OnStructureChanged();
836 }
837
838public:
839
844 {
845 ManagerDebugName = MoveTemp(InNewDebugName);
846 }
847
848
853
854
862
864 {
865 if (bHandleGenerationStale)
866 {
867 ++CurrentHandleGeneration;
868 }
869 bHandleGenerationStale = false;
870 return CurrentHandleGeneration;
871 }
872
873private:
874 friend struct FEntityInitializer;
875
876 enum class EMemoryType
877 {
879 DefaultConstructed
880 };
881 MOVIESCENE_API void OnStructureChanged();
882
883 MOVIESCENE_API FEntityAllocation* CreateEntityAllocation(const FComponentMask& EntityComponentMask, uint16 InitialCapacity, uint16 MaxCapacity, FEntityAllocation* MigrateComponentDataFrom = nullptr);
884 MOVIESCENE_API int32 CreateEntityAllocationEntry(const FComponentMask& EntityComponentMask, uint16 InitialCapacity, uint16 MaxCapacity);
885
886 MOVIESCENE_API int32 GetOrCreateAllocationWithSlack(const FComponentMask& EntityComponentMask, int32* InOutDesiredSlack = nullptr);
887 MOVIESCENE_API int32 CreateAllocationWithSlack(const FComponentMask& EntityComponentMask, int32* InOutDesiredSlack = nullptr);
889
891
892 MOVIESCENE_API int32 AddEntityToAllocation(int32 AllocationIndex, FMovieSceneEntityID ID, EMemoryType MemoryType = EMemoryType::DefaultConstructed);
893 MOVIESCENE_API void RemoveEntityFromAllocation(int32 AllocationIndex, int32 SourceEntryIndexWithinAllocation);
894
895 MOVIESCENE_API FEntityAllocation* MigrateAllocation(int32 AllocationIndex, const FComponentMask& NewComponentMask);
896
897 MOVIESCENE_API void CombineAllocations(int32 DestinationIndex, int32 SourceIndex);
898
899 FEntityAllocation* GetAllocation(int32 AllocationIndex) const
900 {
901 return EntityAllocations[AllocationIndex];
902 }
903
904 MOVIESCENE_API int32 ReserveAllocation(int32 AllocationIndex, int32 NumToReserve);
905 MOVIESCENE_API FEntityAllocation* GrowAllocation(int32 AllocationIndex, int32 MinNumToGrowBy = 1);
906
907 MOVIESCENE_API void DestroyAllocation(FEntityAllocation* Allocation, bool bDestructComponentData = true);
908
909 MOVIESCENE_API virtual void NotifyUObjectDeleted(const UObjectBase* Object, int32 Index) override;
910 MOVIESCENE_API virtual void OnUObjectArrayShutdown() override;
911 MOVIESCENE_API virtual FString GetReferencerName() const;
912
913 MOVIESCENE_API void CheckInvariants();
914
915 virtual SIZE_T GetAllocatedSize() const override
916 {
917 return 0;
918 }
919
923
925
926 struct FEntityLocation
927 {
928 FEntityLocation()
929 : AllocationIndex(INVALID)
930 , EntryIndexWithinAllocation(0)
931 {}
932
933 void Reset()
934 {
935 AllocationIndex = INVALID;
936 EntryIndexWithinAllocation = 0;
937 }
938
940 {
941 check((InAllocationIndex & 0xFFFF0000) == 0 && (InEntryIndexWithinAllocation & 0xFFFF0000) == 0);
942 AllocationIndex = (uint16)InAllocationIndex;
943 EntryIndexWithinAllocation = (uint16)InEntryIndexWithinAllocation;
944 }
945
946 int32 GetAllocationIndex() const
947 {
948 return AllocationIndex;
949 }
950
951 int32 GetEntryIndexWithinAllocation() const
952 {
953 return EntryIndexWithinAllocation;
954 }
955
956 bool IsValid() const
957 {
958 return AllocationIndex != INVALID;
959 }
960
961 void SetParentID(FMovieSceneEntityID InParentID)
962 {
963 ParentID = InParentID;
964 }
965
966 FMovieSceneEntityID GetParentID() const
967 {
968 return ParentID;
969 }
970
971 private:
972
973 static const uint16 INVALID = ~uint16(0);
974 uint16 AllocationIndex;
975 uint16 EntryIndexWithinAllocation;
976
977 FMovieSceneEntityID ParentID;
978 };
979
981 TSparseArray<FComponentMask> EntityAllocationMasks;
982
984 TBitArray<> AllocationsWithCapacity;
985
987 TSparseArray<FEntityAllocation*> EntityAllocations;
988
990 TSparseArray<FEntityLocation> EntityLocations;
991
994
995 TSparseArray<TInlineValue<FChildEntityInitializer>> InstancedChildInitializers;
996
998 TMap<FMovieSceneEntityID, uint32> EntityGenerationMap;
999
1000 FComponentMask AccumulatedMask;
1001 FEntityComponentFilter GlobalIterationFilter;
1002
1003 FComponentRegistry* ComponentRegistry;
1004
1006 FString ManagerDebugName;
1007
1009 uint64 SystemSerialNumber;
1010
1012 uint64 StructureMutationSystemSerialNumber;
1013
1015#if UE_MOVIESCENE_ENTITY_DEBUG
1016 const bool* RichComponentDebuggingPtr;
1017#endif
1018
1020 uint32 NextAllocationID;
1021
1023 mutable uint32 CurrentHandleGeneration;
1024 mutable bool bHandleGenerationStale;
1025 mutable bool bAccumulatedMaskStale;
1026
1028 mutable FEntitySystemMaybeAtomicInt32 IterationCount;
1029
1030 ENamedThreads::Type GatherThread;
1031 ENamedThreads::Type DispatchThread;
1032 EEntityThreadingModel ThreadingModel;
1033
1034 enum class ELockdownState
1035 {
1036 Locked, Unlocked
1037 };
1038
1039 ELockdownState LockdownState;
1040};
1041
1042
1044{
1048
1049 void MarkAllocationForFree(int32 AllocationIndex);
1050
1052
1053private:
1054
1055 struct FAllocationMask
1056 {
1057 TBitArray<> Mask;
1058 bool bDestroyAllocation = false;
1059 };
1060
1061 struct FCommitData
1062 {
1064 TMap<int32, FAllocationMask> AllocationsToEntities;
1065
1067 TArray<FMovieSceneEntityID> EmptyEntities;
1068 };
1069
1070 FCommitData Commit() const;
1071
1072 friend FEntityManager;
1073
1075 TArray<int32> AllocationsToDestroy;
1076
1078 TArray<FMovieSceneEntityID> LooseEntitiesToDestroy;
1079
1080 FEntityManager* EntityManager;
1081};
1082
1084
1085
1086} // namespace MovieScene
1087} // namespace UE
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
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
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
UE_FORCEINLINE_HINT bool IsValid(const UObject *Test)
Definition Object.h:1875
void * GetAllocation(void *Target, uint32 Size, uint32 Offset, uint32 Alignment=16)
Definition OpenGLBuffer.cpp:57
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition UObjectGlobals.h:2492
Definition UObjectArray.h:984
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition Array.h:670
Definition InlineValue.h:22
Definition UnrealString.h.inl:34
bool IsValidIndex(int32 Index) const
Definition SparseArray.h:481
Definition SparseArray.h:524
Definition MovieSceneEntityManager.h:81
MOVIESCENE_API void RemoveComponent(FMovieSceneEntityID EntityID, FComponentTypeID ComponentTypeID)
Definition MovieSceneEntityManager.cpp:1331
FComponentRegistry * GetComponents() const
Definition MovieSceneEntityManager.h:94
MOVIESCENE_API void InitializeChildAllocation(const FComponentMask &ParentType, const FComponentMask &ChildType, const FEntityAllocation *ParentAllocation, TArrayView< const int32 > ParentAllocationOffsets, const FEntityRange &InChildEntityRange)
Definition MovieSceneEntityManager.cpp:1954
MOVIESCENE_API EEntityThreadingModel GetThreadingModel() const
Definition MovieSceneEntityManager.cpp:609
uint64 GetSystemSerial() const
Definition MovieSceneEntityManager.h:817
bool ContainsAllComponents(std::initializer_list< FComponentTypeID > ComponentTypeIDs) const
Definition MovieSceneEntityManager.h:733
MOVIESCENE_API void CombineComponents(FMovieSceneEntityID DestinationEntityID, FMovieSceneEntityID SourceEntityID, const FComponentMask *OptionalMask=nullptr)
Definition MovieSceneEntityManager.cpp:1623
MOVIESCENE_API bool HasComponent(FMovieSceneEntityID EntityID, FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntityManager.cpp:1271
MOVIESCENE_API void UpdateThreadingModel()
Definition MovieSceneEntityManager.cpp:614
MOVIESCENE_API void ExitIteration() const
Definition MovieSceneEntityManager.cpp:1055
T ReadComponentChecked(FMovieSceneEntityID Entity, TComponentTypeID< T > ComponentTypeID) const
Definition MovieSceneEntityManager.h:465
MOVIESCENE_API FEntityHandle GetEntityHandle(FMovieSceneEntityID EntityID)
Definition MovieSceneEntityManager.cpp:566
MOVIESCENE_API int32 MutateAll(const FEntityComponentFilter &Filter, const IMovieSceneEntityMutation &Mutation, EMutuallyInclusiveComponentType MutualTypes=EMutuallyInclusiveComponentType::Mandatory)
Definition MovieSceneEntityManager.cpp:1675
uint32 GetHandleGeneration() const
Definition MovieSceneEntityManager.h:863
MOVIESCENE_API FEntityInfo GetEntity(FMovieSceneEntityID EntityID) const
Definition MovieSceneEntityManager.cpp:552
MOVIESCENE_API void CountMemory(FArchive &Ar, FMovieSceneEntityID EntityID)
void WriteComponentChecked(FMovieSceneEntityID Entity, TComponentTypeID< T > ComponentTypeID, ValueType &&Value)
Definition MovieSceneEntityManager.h:525
MOVIESCENE_API FEntityAllocationIteratorProxy Iterate(const FEntityComponentFilter *InFilter) const
Definition MovieSceneEntityManager.cpp:1027
static MOVIESCENE_API IComponentTypeHandler * FindComponentTypeHandler(const FGuid &ComponentGuid)
MOVIESCENE_API void TouchEntity(FMovieSceneEntityID EntityID)
Definition MovieSceneEntityManager.cpp:1905
MOVIESCENE_API void CopyComponents(FMovieSceneEntityID SrcEntityID, FMovieSceneEntityID DstEntityID, const FComponentMask &ComponentsToCopy)
Definition MovieSceneEntityManager.cpp:1526
MOVIESCENE_API void FreeEntity(FMovieSceneEntityID EntityID)
Definition MovieSceneEntityManager.cpp:636
MOVIESCENE_API int32 FreeEntities(const FEntityComponentFilter &Filter, TSet< FMovieSceneEntityID > *OutFreedEntities=nullptr)
Definition MovieSceneEntityManager.cpp:648
int32 DefineInstancedChildInitializer(TInlineValue< FChildEntityInitializer > &&InInitializer)
Definition MovieSceneEntityManager.h:381
bool HasStructureChangedSince(uint64 CachedSerial) const
Definition MovieSceneEntityManager.h:825
void ReleaseLockDown()
Definition MovieSceneEntityManager.h:780
ENamedThreads::Type GetDispatchThread() const
Definition MovieSceneEntityManager.h:549
bool ContainsComponent(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntityManager.h:696
MOVIESCENE_API FEntityDataLocation AllocateContiguousEntities(const FComponentMask &EntityComponentMask, int32 *InOutNum)
Definition MovieSceneEntityManager.cpp:516
MOVIESCENE_API void AddChild(FMovieSceneEntityID ParentID, FMovieSceneEntityID ChildID)
Definition MovieSceneEntityManager.cpp:1925
void SetComponentRegistry(FComponentRegistry *InComponents)
Definition MovieSceneEntityManager.h:99
void SetDispatchThread(ENamedThreads::Type InDispatchThread)
Definition MovieSceneEntityManager.h:544
FEntityManager(FEntityManager &&)=delete
TComponentLock< TWriteOptional< T > > WriteComponent(FMovieSceneEntityID Entity, TComponentTypeID< T > ComponentTypeID)
Definition MovieSceneEntityManager.h:482
void SetGatherThread(ENamedThreads::Type InGatherThread)
Definition MovieSceneEntityManager.h:534
TComponentLock< TReadOptional< T > > ReadComponent(FMovieSceneEntityID Entity, TComponentTypeID< T > ComponentTypeID) const
Definition MovieSceneEntityManager.h:422
MOVIESCENE_API int32 MutateConditional(const FEntityComponentFilter &Filter, const IMovieSceneConditionalEntityMutation &Mutation, EMutuallyInclusiveComponentType MutualTypes=EMutuallyInclusiveComponentType::Mandatory)
Definition MovieSceneEntityManager.cpp:1757
MOVIESCENE_API void AddComponents(FMovieSceneEntityID EntityID, const FComponentMask &EntityComponentMask)
Definition MovieSceneEntityManager.cpp:1198
void IncrementSystemSerial(uint64 IncAmount=1)
Definition MovieSceneEntityManager.h:808
const FEntityComponentFilter & GetGlobalIterationFilter() const
Definition MovieSceneEntityManager.h:788
void SetDebugName(FString &&InNewDebugName)
Definition MovieSceneEntityManager.h:843
bool IsAllocated(FMovieSceneEntityID EntityID) const
Definition MovieSceneEntityManager.h:192
MOVIESCENE_API FEntityManager()
Definition MovieSceneEntityManager.cpp:402
MOVIESCENE_API void ChangeEntityType(FMovieSceneEntityID InEntity, const FComponentMask &InNewMask)
Definition MovieSceneEntityManager.cpp:1283
MOVIESCENE_API void OverwriteEntityWithDuplicate(FMovieSceneEntityID &InOutEntity, FMovieSceneEntityID InEntityToDuplicate)
Definition MovieSceneEntityManager.cpp:1010
MOVIESCENE_API ~FEntityManager()
Definition MovieSceneEntityManager.cpp:427
MOVIESCENE_API FMovieSceneEntityID DuplicateEntity(FMovieSceneEntityID InOther)
Definition MovieSceneEntityManager.cpp:977
bool ContainsAnyComponent(std::initializer_list< FComponentTypeID > ComponentTypeIDs) const
Definition MovieSceneEntityManager.h:708
bool ContainsAnyComponent(const FComponentMask &ComponentTypeIDs) const
Definition MovieSceneEntityManager.h:720
MOVIESCENE_API bool Contains(const FEntityComponentFilter &InFilter) const
Definition MovieSceneEntityManager.cpp:1033
MOVIESCENE_API bool CopyComponent(FMovieSceneEntityID SrcEntityID, FMovieSceneEntityID DstEntityID, FComponentTypeID ComponentTypeID)
Definition MovieSceneEntityManager.cpp:1458
MOVIESCENE_API void GetImmediateChildren(FMovieSceneEntityID ParentID, TArray< FMovieSceneEntityID > &OutChildren) const
Definition MovieSceneEntityManager.cpp:1937
void operator=(FEntityManager &&)=delete
MOVIESCENE_API FMovieSceneEntityID AllocateEntity()
Definition MovieSceneEntityManager.cpp:477
void IterateChildren_ParentFirst(FMovieSceneEntityID ParentID, IteratorType &&Iterator) const
Definition MovieSceneEntityManager.h:643
bool IsLockedDown() const
Definition MovieSceneEntityManager.h:770
void operator=(const FEntityManager &)=delete
MOVIESCENE_API void AddReferencedObjects(FReferenceCollector &ReferenceCollector)
Definition MovieSceneEntityManager.cpp:2102
FEntityComponentFilter & ModifyGlobalIterationFilter()
Definition MovieSceneEntityManager.h:799
MOVIESCENE_API EEntityThreadingModel ComputeThreadingModel() const
Definition MovieSceneEntityManager.cpp:598
void AddComponent(FMovieSceneEntityID EntityID, TComponentTypeID< T > ComponentTypeID, ValueType &&InValue)
Definition MovieSceneEntityManager.h:234
void LockDown()
Definition MovieSceneEntityManager.h:775
MOVIESCENE_API void ReplaceEntityID(FMovieSceneEntityID &InOutEntity, FMovieSceneEntityID EntityToDiscard)
Definition MovieSceneEntityManager.cpp:927
void CheckCanChangeStructure() const
Definition MovieSceneEntityManager.h:764
MOVIESCENE_API void Destroy()
Definition MovieSceneEntityManager.cpp:457
MOVIESCENE_API void RemoveComponents(FMovieSceneEntityID EntityID, const FComponentMask &ComponentsToRemove)
Definition MovieSceneEntityManager.cpp:1378
MOVIESCENE_API void Compact()
Definition MovieSceneEntityManager.cpp:820
MOVIESCENE_API bool IsHandleValid(FEntityHandle EntityID) const
Definition MovieSceneEntityManager.cpp:587
MOVIESCENE_API const FComponentMask & GetAccumulatedMask() const
Definition MovieSceneEntityManager.cpp:619
MOVIESCENE_API void AddMutualComponents()
Definition MovieSceneEntityManager.cpp:1967
void DestroyInstancedChildInitializer(int32 Index)
Definition MovieSceneEntityManager.h:395
void MimicStructureChanged()
Definition MovieSceneEntityManager.h:833
MOVIESCENE_API const FComponentMask & GetEntityType(FMovieSceneEntityID InEntity) const
Definition MovieSceneEntityManager.cpp:1277
MOVIESCENE_API void GetChildren_ParentFirst(FMovieSceneEntityID ParentID, TArray< FMovieSceneEntityID > &OutChildren) const
Definition MovieSceneEntityManager.cpp:1945
MOVIESCENE_API void FilterComponents(FMovieSceneEntityID EntityID, const FComponentMask &EntitiesToKeep)
Definition MovieSceneEntityManager.cpp:1586
MOVIESCENE_API void AccumulateMask(const FEntityComponentFilter &InFilter, FComponentMask &OutMask) const
Definition MovieSceneEntityManager.cpp:1039
void IterateImmediateChildren(FMovieSceneEntityID ParentID, IteratorType &&Iterator) const
Definition MovieSceneEntityManager.h:627
ENamedThreads::Type GetGatherThread() const
Definition MovieSceneEntityManager.h:539
FEntityManager(const FEntityManager &)=delete
MOVIESCENE_API void EnterIteration() const
Definition MovieSceneEntityManager.cpp:1050
Definition UObjectBase.h:59
UE_REWRITE bool AnyOf(const RangeType &Range)
Definition AnyOf.h:20
bool AllOf(const RangeType &Range)
Definition AllOf.h:19
Type
Definition TaskGraphInterfaces.h:57
EComponentHeaderLockMode
Definition MovieSceneEntitySystemTypes.h:112
EMutuallyInclusiveComponentType
Definition MovieSceneEntitySystemTypes.h:100
FEntityManager * GEntityManagerForDebuggingVisualizers
Definition MovieSceneEntityManager.cpp:67
EEntityThreadingModel
Definition MovieSceneMaybeAtomic.h:17
EEntityRecursion
Definition MovieSceneEntityManager.h:60
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition Guid.h:109
Definition MovieSceneEntitySystemTypes.h:460
Definition MovieSceneEntityIDs.h:40
FComponentTypeID First() const
Definition MovieSceneEntityIDs.h:490
static FComponentMask BitwiseAND(const FComponentMask &A, const FComponentMask &B, EBitwiseOperatorFlags InFlags)
Definition MovieSceneEntityIDs.h:94
bool Contains(FComponentTypeID InComponentType) const
Definition MovieSceneEntityIDs.h:429
Definition MovieSceneComponentRegistry.h:46
Definition MovieSceneEntityIDs.h:174
static FComponentTypeID Invalid()
Definition MovieSceneEntityIDs.h:179
Definition EntityAllocationIterator.h:85
Definition EntityAllocationIterator.h:23
Definition MovieSceneEntitySystemTypes.h:977
Definition MovieSceneEntitySystemTypes.h:425
static FEntityAllocationWriteContext NewAllocation()
Definition MovieSceneEntitySystemTypes.h:428
Definition MovieSceneEntitySystemTypes.h:624
const FComponentHeader & GetComponentHeaderChecked(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntitySystemTypes.h:714
EComponentHeaderLockMode GetCurrentLockMode() const
Definition MovieSceneEntitySystemTypes.h:848
TArrayView< const FComponentHeader > GetComponentHeaders() const
Definition MovieSceneEntitySystemTypes.h:657
Definition MovieSceneEntitySystemTypes.h:295
Definition MovieSceneEntitySystemTypes.h:1053
FEntityAllocation * Allocation
Definition MovieSceneEntitySystemTypes.h:1054
int32 ComponentOffset
Definition MovieSceneEntitySystemTypes.h:1055
Definition MovieSceneEntityIDs.h:371
Definition MovieSceneEntitySystemTypes.h:1064
FEntityDataLocation Data
Definition MovieSceneEntitySystemTypes.h:1065
Definition MovieSceneEntityManager.cpp:75
Definition MovieSceneEntitySystemTypes.h:1046
int32 Load(EEntityThreadingModel ThreadingModel) const
Definition MovieSceneMaybeAtomic.h:35
Definition MovieSceneEntityManager.h:1044
void MarkEntityForFree(FMovieSceneEntityID EntityID)
Definition MovieSceneEntityManager.cpp:304
FFreeEntityOperation(FEntityManager *InEntityManager)
Definition MovieSceneEntityManager.h:1045
void MarkAllocationForFree(int32 AllocationIndex)
Definition MovieSceneEntityManager.cpp:299
Definition MovieSceneEntityIDs.h:302
int32 AsIndex() const
Definition MovieSceneEntityIDs.h:348
Definition MovieSceneEntitySystemTypes.h:587
Definition MovieSceneComponentTypeHandler.h:21
Definition MovieSceneEntityMutations.h:35
Definition MovieSceneEntityMutations.h:19
Definition MovieSceneComponentPtr.h:109
Definition MovieSceneEntityIDs.h:283