6#include "Containers/Array.h"
21#include <initializer_list>
24namespace UE {
namespace MovieScene {
class FEntityManager; } }
35struct FReadErasedOptional;
37struct FWriteErasedOptional;
38template<
typename T>
struct TComponentLock;
39template<
typename T>
struct TRead;
40template<
typename T>
struct TReadOptional;
41template<
typename T>
struct TWrite;
42template<
typename T>
struct TWriteOptional;
212 return A.Value ==
B.Value;
217 return A.Value !=
B.Value;
222 return A.Value <
B.Value;
265 return A.Channel ==
B.Channel &&
A.InterrogationIndex ==
B.InterrogationIndex;
270 return A.Channel !=
B.Channel ||
A.InterrogationIndex !=
B.InterrogationIndex;
301 ComplexMasks.
Reset();
387 if (CombineWith.AllMask.
Num() > 0)
392 if (CombineWith.NoneMask.
Num() > 0)
397 if (CombineWith.ComplexMasks.
Num() > 0)
399 ComplexMasks.
Append(CombineWith.ComplexMasks);
418 FComponentMask AllMask;
419 FComponentMask NoneMask;
469#if UE_MOVIESCENE_ENTITY_DEBUG
494 mutable uint64 SerialNumber;
551 SerialNumber = FMath::Max(SerialNumber,
InWriteContext.GetSystemSerial());
759 return ComponentData;
788 SerialNumber = FMath::Max(SerialNumber,
InWriteContext.GetSystemSerial());
794 SerialNumber = FMath::Max(SerialNumber,
InWriteContext.GetSystemSerial());
806 return int32(NumComponents);
824 return int32(MaxCapacity);
833 return int32(Capacity);
944 uint8* ComponentData;
995 return AllocationIndex;
1018 return A.Manager ==
B.Manager &&
A.AllocationIndex ==
B.AllocationIndex;
1024 return Proxy.AllocationIndex;
1038 int32 AllocationIndex;
1080 Allocation =
nullptr;
1102 InHeader->ReadWriteLock.ReadLock();
1105 InHeader->ScheduledAccessCount.fetch_add(1, std::memory_order_relaxed);
1109 , LockMode(RHS.LockMode)
1111 RHS.Header =
nullptr;
1124 Header = RHS.Header;
1125 LockMode = RHS.LockMode;
1126 RHS.Header =
nullptr;
1155 InHeader->ReadWriteLock.WriteLock();
1164 , WriteContext(RHS.WriteContext)
1165 , LockMode(RHS.LockMode)
1167 RHS.Header =
nullptr;
1182 Header = RHS.Header;
1183 WriteContext = RHS.WriteContext;
1184 LockMode = RHS.LockMode;
1186 RHS.Header =
nullptr;
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
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
const bool
Definition NetworkReplayStreaming.h:178
#define MAX_int32
Definition NumericLimits.h:25
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
UE_FORCEINLINE_HINT ElementType & Emplace_GetRef(ArgsType &&... Args) UE_LIFETIMEBOUND
Definition Array.h:2613
void Append(const TArray< OtherElementType, OtherAllocatorType > &Source)
Definition Array.h:2412
Definition MovieSceneEntityManager.h:81
Definition MovieSceneSequence.h:73
UE_REWRITE constexpr auto FindBy(RangeType &&Range, const ValueType &Value, ProjectionType Proj) -> decltype(AlgoImpl::FindBy(Forward< RangeType >(Range), Value, MoveTemp(Proj)))
Definition Find.h:68
EComponentHeaderLockMode
Definition MovieSceneEntitySystemTypes.h:112
EMutuallyInclusiveComponentType
Definition MovieSceneEntitySystemTypes.h:100
EComplexFilterMode
Definition MovieSceneEntitySystemTypes.h:89
ESystemPhase
Definition MovieSceneEntitySystemTypes.h:45
EComponentTypeFlags
Definition MovieSceneEntitySystemTypes.h:70
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition MovieSceneEntityIDs.h:40
void SetAll(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntityIDs.h:454
FComponentMask & CombineWithBitwiseOR(const FComponentMask &Other, EBitwiseOperatorFlags InFlags)
Definition MovieSceneEntityIDs.h:76
int32 Num() const
Definition MovieSceneEntityIDs.h:147
void Set(FComponentTypeID InComponentType)
Definition MovieSceneEntityIDs.h:444
void Reset()
Definition MovieSceneEntityIDs.h:142
Definition MovieSceneEntityIDs.h:174
Definition EntityAllocationIterator.h:23
Definition MovieSceneEntitySystemTypes.h:957
FEntityAllocationMutexGuard(const FEntityAllocationMutexGuard &)=delete
void operator=(const FEntityAllocationMutexGuard &)=delete
void operator=(const FEntityAllocationMutexGuard &&)=delete
FEntityAllocationMutexGuard(FEntityAllocation *InAllocation, EComponentHeaderLockMode InLockMode)
Definition MovieSceneEntitySystemTypes.h:1069
~FEntityAllocationMutexGuard()
Definition MovieSceneEntitySystemTypes.h:1084
FEntityAllocationMutexGuard(const FEntityAllocationMutexGuard &&)=delete
Definition MovieSceneEntitySystemTypes.h:977
friend bool operator==(const FEntityAllocationProxy &A, const FEntityAllocationProxy &B)
Definition MovieSceneEntitySystemTypes.h:1016
MOVIESCENE_API const FComponentMask & GetAllocationType() const
Definition MovieSceneEntitySystemTypes.cpp:154
friend uint32 GetTypeHash(FEntityAllocationProxy Proxy)
Definition MovieSceneEntitySystemTypes.h:1022
int32 GetAllocationIndex() const
Definition MovieSceneEntitySystemTypes.h:993
static FEntityAllocationProxy MakeInstance(const FEntityManager *InManager, int32 InAllocationIndex)
Definition MovieSceneEntitySystemTypes.h:987
MOVIESCENE_API const FEntityAllocation * GetAllocation() const
Definition MovieSceneEntitySystemTypes.cpp:144
Definition MovieSceneEntitySystemTypes.h:425
static FEntityAllocationWriteContext NewAllocation()
Definition MovieSceneEntitySystemTypes.h:428
uint64 GetSystemSerial() const
Definition MovieSceneEntitySystemTypes.h:445
FEntityAllocationWriteContext Add(FEntityAllocationWriteContext InOther) const
Definition MovieSceneEntitySystemTypes.h:433
FEntityAllocationWriteContext Subtract(FEntityAllocationWriteContext InOther) const
Definition MovieSceneEntitySystemTypes.h:439
Definition MovieSceneEntitySystemTypes.h:624
TComponentLock< TRead< T > > ReadComponents(TComponentTypeID< T > ComponentType) const
Definition MovieSceneEntitySystemTypes.h:877
FComponentHeader * ComponentHeaders
Definition MovieSceneEntitySystemTypes.h:948
bool HasStructureChangedSince(uint64 InSystemVersion) const
Definition MovieSceneEntitySystemTypes.h:777
~FEntityAllocation()
Definition MovieSceneEntitySystemTypes.h:641
TComponentLock< TWrite< T > > WriteComponents(TComponentTypeID< T > ComponentType, FEntityAllocationWriteContext InWriteContext) const
Definition MovieSceneEntitySystemTypes.h:900
FEntityAllocation & operator=(const FEntityAllocation &)=delete
void PostModifyStructureExcludingHeaders(FEntityAllocationWriteContext InWriteContext)
Definition MovieSceneEntitySystemTypes.h:786
int32 GetNumComponentTypes() const
Definition MovieSceneEntitySystemTypes.h:804
const FComponentHeader & GetComponentHeaderChecked(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntitySystemTypes.h:714
int32 GetCapacity() const
Definition MovieSceneEntitySystemTypes.h:831
TComponentLock< TReadOptional< T > > TryReadComponents(TComponentTypeID< T > ComponentType) const
Definition MovieSceneEntitySystemTypes.h:887
const FComponentHeader * FindComponentHeader(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntitySystemTypes.h:690
FEntityAllocation()
Definition MovieSceneEntitySystemTypes.h:629
MOVIESCENE_API TComponentLock< FWriteErased > WriteComponentsErased(FComponentTypeID ComponentType, FEntityAllocationWriteContext InWriteContext) const
Definition MovieSceneEntitySystemTypes.cpp:118
EComponentHeaderLockMode GetCurrentLockMode() const
Definition MovieSceneEntitySystemTypes.h:848
FEntityAllocation(const FEntityAllocation &)=delete
MOVIESCENE_API TComponentLock< FReadErasedOptional > TryReadComponentsErased(FComponentTypeID ComponentType) const
Definition MovieSceneEntitySystemTypes.cpp:124
uint32 GetUniqueID() const
Definition MovieSceneEntitySystemTypes.h:767
int32 GetMaxCapacity() const
Definition MovieSceneEntitySystemTypes.h:822
TArrayView< FComponentHeader > GetComponentHeaders()
Definition MovieSceneEntitySystemTypes.h:666
TArrayView< const FComponentHeader > GetComponentHeaders() const
Definition MovieSceneEntitySystemTypes.h:657
MOVIESCENE_API TComponentLock< FWriteErasedOptional > TryWriteComponentsErased(FComponentTypeID ComponentType, FEntityAllocationWriteContext InWriteContext) const
Definition MovieSceneEntitySystemTypes.cpp:134
const void * GetComponentDataAddress() const
Definition MovieSceneEntitySystemTypes.h:757
MOVIESCENE_API TComponentLock< FReadErased > ReadComponentsErased(FComponentTypeID ComponentType) const
Definition MovieSceneEntitySystemTypes.cpp:112
int32 Num() const
Definition MovieSceneEntitySystemTypes.h:813
TComponentLock< TWriteOptional< T > > TryWriteComponents(TComponentTypeID< T > ComponentType, FEntityAllocationWriteContext InWriteContext) const
Definition MovieSceneEntitySystemTypes.h:910
const FMovieSceneEntityID * GetRawEntityIDs() const
Definition MovieSceneEntitySystemTypes.h:748
int32 GetSlack() const
Definition MovieSceneEntitySystemTypes.h:840
TArrayView< const FMovieSceneEntityID > GetEntityIDs() const
Definition MovieSceneEntitySystemTypes.h:739
bool HasComponent(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntitySystemTypes.h:678
FComponentHeader * FindComponentHeader(FComponentTypeID ComponentTypeID)
Definition MovieSceneEntitySystemTypes.h:702
void PostModifyStructure(FEntityAllocationWriteContext InWriteContext)
Definition MovieSceneEntitySystemTypes.h:792
FComponentHeader & GetComponentHeaderChecked(FComponentTypeID ComponentTypeID)
Definition MovieSceneEntitySystemTypes.h:728
Definition MovieSceneEntitySystemTypes.h:295
MOVIESCENE_API bool IsValid() const
Definition MovieSceneEntitySystemTypes.cpp:86
FEntityComponentFilter & Any(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTypes.h:332
FEntityComponentFilter & AnyLenient(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTypes.h:341
FEntityComponentFilter & Deny(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTypes.h:360
FEntityComponentFilter & Any(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTypes.h:336
FEntityComponentFilter & All(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTypes.h:308
FEntityComponentFilter & Deny(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTypes.h:355
FEntityComponentFilter & Complex(const FComponentMask &InComponentMask, EComplexFilterMode ComplexMode)
Definition MovieSceneEntitySystemTypes.h:376
FEntityComponentFilter & Combine(const FEntityComponentFilter &CombineWith)
Definition MovieSceneEntitySystemTypes.h:385
FEntityComponentFilter & None(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTypes.h:325
FEntityComponentFilter & All(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntitySystemTypes.h:313
MOVIESCENE_API bool Match(const FComponentMask &Input) const
Definition MovieSceneEntitySystemTypes.cpp:43
FEntityComponentFilter & Complex(std::initializer_list< FComponentTypeID > InComponentTypes, EComplexFilterMode ComplexMode)
Definition MovieSceneEntitySystemTypes.h:366
void Reset()
Definition MovieSceneEntitySystemTypes.h:297
FEntityComponentFilter & None(const FComponentMask &InComponentMask)
Definition MovieSceneEntitySystemTypes.h:320
Definition MovieSceneEntitySystemTypes.h:1053
FEntityRange AsRange() const
Definition MovieSceneEntitySystemTypes.h:1057
FEntityAllocation * Allocation
Definition MovieSceneEntitySystemTypes.h:1054
int32 ComponentOffset
Definition MovieSceneEntitySystemTypes.h:1055
Definition MovieSceneEntitySystemTypes.h:1064
FMovieSceneEntityID EntityID
Definition MovieSceneEntitySystemTypes.h:1066
FEntityDataLocation Data
Definition MovieSceneEntitySystemTypes.h:1065
Definition MovieSceneEntityManager.cpp:75
Definition MovieSceneEntitySystemTypes.h:1046
int32 Num
Definition MovieSceneEntitySystemTypes.h:1049
int32 ComponentStartOffset
Definition MovieSceneEntitySystemTypes.h:1048
const FEntityAllocation * Allocation
Definition MovieSceneEntitySystemTypes.h:1047
Definition MovieSceneEntitySystemTypes.h:123
friend bool operator<(FInterrogationChannel A, FInterrogationChannel B)
Definition MovieSceneEntitySystemTypes.h:220
FInterrogationChannel()
Definition MovieSceneEntitySystemTypes.h:127
int32 AsIndex() const
Definition MovieSceneEntitySystemTypes.h:159
friend bool operator==(FInterrogationChannel A, FInterrogationChannel B)
Definition MovieSceneEntitySystemTypes.h:210
static FInterrogationChannel Default()
Definition MovieSceneEntitySystemTypes.h:168
static FInterrogationChannel First()
Definition MovieSceneEntitySystemTypes.h:176
static FInterrogationChannel Invalid()
Definition MovieSceneEntitySystemTypes.h:200
friend uint32 GetTypeHash(FInterrogationChannel In)
Definition MovieSceneEntitySystemTypes.h:205
static FInterrogationChannel FromIndex(int32 InIndex)
Definition MovieSceneEntitySystemTypes.h:184
bool IsValid() const
Definition MovieSceneEntitySystemTypes.h:151
friend bool operator!=(FInterrogationChannel A, FInterrogationChannel B)
Definition MovieSceneEntitySystemTypes.h:215
FInterrogationChannel operator++()
Definition MovieSceneEntitySystemTypes.h:134
static FInterrogationChannel Last()
Definition MovieSceneEntitySystemTypes.h:192
Definition MovieSceneEntitySystemTypes.h:284
bool IsValid() const
Definition MovieSceneEntitySystemTypes.h:287
UMovieSceneSequence * Sequence
Definition MovieSceneEntitySystemTypes.h:285
Definition MovieSceneEntitySystemTypes.h:237
FInterrogationKey()
Definition MovieSceneEntitySystemTypes.h:244
bool IsValid() const
Definition MovieSceneEntitySystemTypes.h:253
FInterrogationChannel Channel
Definition MovieSceneEntitySystemTypes.h:239
friend bool operator!=(const FInterrogationKey &A, const FInterrogationKey &B)
Definition MovieSceneEntitySystemTypes.h:268
FInterrogationKey(FInterrogationChannel InChannel, int32 InInterrogationIndex)
Definition MovieSceneEntitySystemTypes.h:248
friend bool operator==(const FInterrogationKey &A, const FInterrogationKey &B)
Definition MovieSceneEntitySystemTypes.h:263
static FInterrogationKey Default(int32 InInterrogationIndex=0)
Definition MovieSceneEntitySystemTypes.h:273
friend uint32 GetTypeHash(const FInterrogationKey &In)
Definition MovieSceneEntitySystemTypes.h:258
int32 InterrogationIndex
Definition MovieSceneEntitySystemTypes.h:242
Definition MovieSceneEntityIDs.h:302
Definition MovieSceneComponentPtr.h:109
Definition MovieSceneEntityIDs.h:283