22template <
typename ElemType_,
int32 BlockSize_>
62 template <
typename FuncType>
75template <
int32 BlockSize_>
99 return BitArray[LocalIndex];
105 return BitArray[LocalIndex];
108 template <
typename FuncType>
139template<
typename ElemType,
int32 BlockSize_>
198 return Block.BlockDataPtr.IsValid();
216 return *
Block.BlockDataPtr;
220 template <
typename FuncType>
227 template<
typename FuncType>
235 template <
typename FuncType>
292 for (
int32 k = 0; k < NumBlocks; ++k)
356 template<
typename ProcessFunc>
368 template<
typename ProcessFunc>
382 template <
typename OtherElemType>
396 template <
typename OtherGr
idType >
408 for (
int32 k = 0; k < NumBlocks; ++k)
430template<
typename ElemType,
int32 BlockSize_>
448 template<
typename FuncType>
452 Func(
Block.DefaultValue);
455 Block.BlockDataPtr.Reset();
459 template <
typename FuncType>
466 template<
typename FuncType>
514 template <
typename CriticalSectionProv
iderType>
531 template <
typename CriticalSectionProv
iderType>
543 template<
typename ProcessFunc,
typename CriticalSectionProv
iderType>
558 template<
typename ProcessFunc,
typename CriticalSectionProv
iderType>
578 for (
int32 i = 0; i < NumBlocks; ++i)
593 for (
int32 i = 0; i < NumBlocks; ++i)
704 template<
typename ProcessFunc>
730template<
typename ElemType>
757 template<
typename FuncType>
868 template<
typename ProcessFunc>
878 template<
typename ProcessFunc>
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
const bool
Definition NetworkReplayStreaming.h:178
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
int BlockIndex
Definition binka_ue_decode_test.cpp:38
Definition BitArray.h:189
Definition ScopeLock.h:141
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
Definition BitArray.h:350
Definition BitArray.h:1944
Definition ContainerAllocationPolicies.h:894
Definition StaticArray.h:26
Definition UniquePtr.h:107
Definition BlockedDenseGrid3.h:141
TBasicBlockedDenseGrid3(int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue)
Definition BlockedDenseGrid3.h:275
TArray< FBlock3 > Blocks
Definition BlockedDenseGrid3.h:176
void WriteValue(int32 I, int32 J, int32 K, FuncType Func)
Definition BlockedDenseGrid3.h:228
void SetValue(int32 I, int32 J, int32 K, ElemType NewValue)
Definition BlockedDenseGrid3.h:336
void ProcessValue(const FVector3i &CellIJK, ProcessFunc Func)
Definition BlockedDenseGrid3.h:369
void ProcessValue(int32 I, int32 J, int32 K, ProcessFunc Func)
Definition BlockedDenseGrid3.h:357
ElemType ReadValue(const int32 &BlockIndex, const int32 &LocalIndex) const
Definition BlockedDenseGrid3.h:244
bool PreAllocateFromSourceGrid(const TBasicBlockedDenseGrid3< OtherElemType, BlockSize > &SourceGrid)
Definition BlockedDenseGrid3.h:383
ElemType DefaultValue
Definition BlockedDenseGrid3.h:152
ElemType ReadValueWithLock(const int32 &BlockIndex, const int32 &LocalIndex, FCriticalSection *CriticalSection)
Definition BlockedDenseGrid3.h:256
ElemType GetValue(int32 I, int32 J, int32 K) const
Definition BlockedDenseGrid3.h:319
void SetValue(const FVector3i &CellIJK, ElemType NewValue)
Definition BlockedDenseGrid3.h:344
ElemType GetValue(const FVector3i &CellIJK) const
Definition BlockedDenseGrid3.h:327
BlockData3Type & TouchBlockData(const int32 BlockIndex)
Definition BlockedDenseGrid3.h:208
int32 GetNumBlocks() const
Definition BlockedDenseGrid3.h:389
TBasicBlockedDenseGrid3()
Definition BlockedDenseGrid3.h:268
static constexpr int32 BlockElemCount
Definition BlockedDenseGrid3.h:148
static constexpr int32 BlockSize
Definition BlockedDenseGrid3.h:147
TBlockData3< ElemType, BlockSize_ > BlockData3Type
Definition BlockedDenseGrid3.h:144
bool IsBlockAllocated(const int32 BlockIndex) const
Definition BlockedDenseGrid3.h:201
FBlock3 & GetBlock(int32 Index)
Definition BlockedDenseGrid3.h:191
bool AllocateTopologyUnionImpl(const OtherGridType &OtherGrid)
Definition BlockedDenseGrid3.h:397
ElemType ReadValue(int32 I, int32 J, int32 K) const
Definition BlockedDenseGrid3.h:249
bool IsBlockAllocated(const FBlock3 &Block) const
Definition BlockedDenseGrid3.h:196
void WriteValueWithLock(const int32 &BlockIndex, const int32 &LocalIndex, FuncType Func, FCriticalSection *CriticalSection)
Definition BlockedDenseGrid3.h:236
void Reset()
Definition BlockedDenseGrid3.h:301
const FBlock3 & GetBlock(int32 Index) const
Definition BlockedDenseGrid3.h:192
void WriteValue(const int32 &BlockIndex, const int32 &LocalIndex, FuncType Func)
Definition BlockedDenseGrid3.h:221
void Reset(int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue)
Definition BlockedDenseGrid3.h:310
TBlockedGrid3Layout< BlockSize_ > BlockedGrid3LayoutType
Definition BlockedDenseGrid3.h:143
void Resize(int32 DimI, int32 DimJ, int32 DimK)
Definition BlockedDenseGrid3.h:285
TBitArray< AllocatorType > BlockDataBitMask
Definition BlockedDenseGrid3.h:82
int32 Id
Definition BlockedDenseGrid3.h:123
TBlockData3Layout< BlockSize_ > DataLayout
Definition BlockedDenseGrid3.h:79
BlockDataBitMask BitArray
Definition BlockedDenseGrid3.h:124
TBlockData3(const ElemType &Value, const int32 ID)
Definition BlockedDenseGrid3.h:85
TConstSetBitIterator< AllocatorType > BitArrayConstIterator
Definition BlockedDenseGrid3.h:83
FBitReference At(int32 LocalIndex)
Definition BlockedDenseGrid3.h:96
void Reset(const ElemType &Value)
Definition BlockedDenseGrid3.h:91
void TopologyUnion(const TBlockData3< bool, BlockSize_ > &OtherBlockData)
Definition BlockedDenseGrid3.h:117
bool At(int32 LocalIndex) const
Definition BlockedDenseGrid3.h:102
void ModifyValue(const int32 Index, FuncType Func)
Definition BlockedDenseGrid3.h:109
TInlineAllocator< DataLayout::ElemCount > AllocatorType
Definition BlockedDenseGrid3.h:81
bool ElemType
Definition BlockedDenseGrid3.h:80
Definition BlockedDenseGrid3.h:24
TStaticArray< ElemType, DataLayout::ElemCount > LinearDataStorageType
Definition BlockedDenseGrid3.h:28
LinearDataStorageType Data
Definition BlockedDenseGrid3.h:70
TBlockData3Layout< BlockSize_ > DataLayout
Definition BlockedDenseGrid3.h:26
ElemType & At(const int32 Index)
Definition BlockedDenseGrid3.h:50
TBlockData3(const ElemType &Value, const int32 ID)
Definition BlockedDenseGrid3.h:34
void ModifyValue(const int32 Index, FuncType Func)
Definition BlockedDenseGrid3.h:63
ElemType_ ElemType
Definition BlockedDenseGrid3.h:27
TBlockData3()
Definition BlockedDenseGrid3.h:30
ElemType At(const int32 Index) const
Definition BlockedDenseGrid3.h:56
int32 Id
Definition BlockedDenseGrid3.h:69
void Reset(const ElemType &Value)
Definition BlockedDenseGrid3.h:41
Definition BlockedDenseGrid3.h:732
ElemType ReadValueThreadSafe(int32 I, int32 J, int32 K)
Definition BlockedDenseGrid3.h:766
int64 ToLinear(const FVector3i &IJK) const
Definition BlockedDenseGrid3.h:898
TBlockData3< ElemType, BlockSize > BlockData3Type
Definition BlockedDenseGrid3.h:740
TBlockedDenseGrid3()
Definition BlockedDenseGrid3.h:778
void Resize(int32 DimI, int32 DimJ, int32 DimK)
Definition BlockedDenseGrid3.h:795
void Reset()
Definition BlockedDenseGrid3.h:807
void SetValueThreadSafe(int32 I, int32 J, int32 K, ElemType NewValue)
Definition BlockedDenseGrid3.h:848
void ProcessValueThreadSafe(const FVector3i &CellIJK, ProcessFunc Func)
Definition BlockedDenseGrid3.h:879
ElemType GetValueThreadSafe(int32 I, int32 J, int32 K)
Definition BlockedDenseGrid3.h:832
TBlockedGrid3Layout< BlockSize > BlockedGrid3LayoutType
Definition BlockedDenseGrid3.h:739
TArray< FCriticalSection > BlockLocks
Definition BlockedDenseGrid3.h:747
void Reset(int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue)
Definition BlockedDenseGrid3.h:816
TBlockedDenseGrid3(int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue)
Definition BlockedDenseGrid3.h:785
ElemType GetValueThreadSafe(const FVector3i &CellIJK)
Definition BlockedDenseGrid3.h:840
static constexpr int32 BlockElemCount
Definition BlockedDenseGrid3.h:736
FVector3i ToIndex(int64 LinearIndex) const
Definition BlockedDenseGrid3.h:885
bool IsValidIndex(FVector3i CellIJK) const
Definition BlockedDenseGrid3.h:825
void ProcessValueThreadSafe(int32 I, int32 J, int32 K, ProcessFunc Func)
Definition BlockedDenseGrid3.h:869
FCriticalSection * GetBlockLock(int32 Index)
Definition BlockedDenseGrid3.h:754
void WriteValueThreadSafe(int32 I, int32 J, int32 K, FuncType Func)
Definition BlockedDenseGrid3.h:758
TBasicBlockedDenseGrid3< ElemType, BlockSize > BlockedDenseGridType
Definition BlockedDenseGrid3.h:738
static constexpr int32 BlockSize
Definition BlockedDenseGrid3.h:735
int64 ToLinear(int32 X, int32 Y, int32 Z) const
Definition BlockedDenseGrid3.h:893
void SetValueThreadSafe(const FVector3i &CellIJK, ElemType NewValue)
Definition BlockedDenseGrid3.h:856
Definition BlockedLayout3.h:50
bool IsValidIJK(const FVector3i &IJK) const
Definition BlockedLayout3.h:131
const FVector3i & GetDimensions() const
Definition BlockedLayout3.h:89
const FVector3i & GetBlockDimensions() const
Definition BlockedLayout3.h:97
void GetBlockAndLocalIndex(const FVector3i &IJK, int32 &BlockIndexOut, int32 &LocalIndexOut) const
Definition BlockedLayout3.h:158
void Resize(int32 DimI, int32 DimJ, int32 DimK)
Definition BlockedLayout3.h:75
int32 BlockIJKToBlockIndex(const FVector3i &BlockIJK) const
Definition BlockedLayout3.h:189
FVector3i Dimensions
Definition BlockedLayout3.h:197
Definition BlockedDenseGrid3.h:432
void WriteBlockDefaultValueWithLock(const int32 BlockIndex, FuncType Func, FCriticalSection *CriticalSection, bool bDeallocateBock=true)
Definition BlockedDenseGrid3.h:467
const TUniquePtr< BlockData3Type > & GetBlockData(const FVector3i &BlockIJK) const
Definition BlockedDenseGrid3.h:642
const TUniquePtr< BlockData3Type > & GetBlockData(int32 BlockIndex) const
Definition BlockedDenseGrid3.h:663
void WriteBlockDefaultValue(const FVector3i &BlockIJK, FuncType Func, bool bDeallocateBock=true)
Definition BlockedDenseGrid3.h:460
ElemType ReadBlockDefaultValue(const int32 &BlockIndex) const
Definition BlockedDenseGrid3.h:476
TArray< BlockData3Type * > GetAllocatedBlocks()
Definition BlockedDenseGrid3.h:589
int32 GetNumBlocks() const
Definition BlockedDenseGrid3.h:567
TBasicBlockedDenseGrid3< ElemType, BlockSize_ >::FBlock3 FBlock3
Definition BlockedDenseGrid3.h:445
ElemType ReadBlockDefaultValue(const FVector3i &BlockIJK) const
Definition BlockedDenseGrid3.h:481
void SetBlockDefaultValue(const FVector3i &BlockIJK, const ElemType &Value, bool bPruneBlock=true)
Definition BlockedDenseGrid3.h:690
bool IsBlockAllocated(const FVector3i &BlockIJK) const
Definition BlockedDenseGrid3.h:613
TUniquePtr< BlockData3Type > & GetBlockData(const FVector3i &BlockIJK)
Definition BlockedDenseGrid3.h:632
void WriteBlockDefaultValue(const int32 BlockIndex, FuncType Func, bool bDeallocateBock=true)
Definition BlockedDenseGrid3.h:449
void SetValueWithLock(int32 I, int32 J, int32 K, ElemType NewValue, CriticalSectionProviderType &CriticalSectionProvider)
Definition BlockedDenseGrid3.h:515
TUniquePtr< BlockData3Type > & GetBlockData(int32 BlockIndex)
Definition BlockedDenseGrid3.h:653
TBlockedGrid3(int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue)
Definition BlockedDenseGrid3.h:498
ElemType GetBlockDefaultValue(const FVector3i &BlockIJK) const
Definition BlockedDenseGrid3.h:676
TBlockedGrid3()
Definition BlockedDenseGrid3.h:491
TArray< const BlockData3Type * > GetAllocatedConstBlocks() const
Definition BlockedDenseGrid3.h:574
TBasicBlockedDenseGrid3< ElemType, BlockSize_ > BlockedDenseGridType
Definition BlockedDenseGrid3.h:434
TArray< const BlockData3Type * > GetAllocatedBlocks() const
Definition BlockedDenseGrid3.h:604
BlockData3Type & TouchBlockData(const FVector3i &BlockIJK)
Definition BlockedDenseGrid3.h:622
TBlockedGrid3Layout< BlockSize_ > BlockedGrid3LayoutType
Definition BlockedDenseGrid3.h:435
void ProcessBlockDefaultValue(const FVector3i &BlockIJK, ProcessFunc Func, bool bPruneBlock=true)
Definition BlockedDenseGrid3.h:705
void ProcessValueWithLock(int32 I, int32 J, int32 K, ProcessFunc Func, CriticalSectionProviderType CriticalSectionProvider)
Definition BlockedDenseGrid3.h:544
void SetValueWithLock(const FVector3i &CellIJK, ElemType NewValue, CriticalSectionProviderType CriticalSectionProvider)
Definition BlockedDenseGrid3.h:532
TBlockData3< ElemType, BlockSize_ > BlockData3Type
Definition BlockedDenseGrid3.h:436
static constexpr int32 BlockSize
Definition BlockedDenseGrid3.h:439
static constexpr int32 BlockElemCount
Definition BlockedDenseGrid3.h:440
void ProcessValueWithLock(const FVector3i &CellIJK, ProcessFunc Func, CriticalSectionProviderType CriticalSectionProvider)
Definition BlockedDenseGrid3.h:559
TBlockedDenseGrid3< int > FBlockedDenseGrid3i
Definition BlockedDenseGrid3.h:908
TBlockedGrid3< bool, 8 > FBlockedGrid3b
Definition BlockedDenseGrid3.h:718
TBlockedGrid3< int, 8 > FBlockedGrid3i
Definition BlockedDenseGrid3.h:715
TBlockedDenseGrid3< double > FBlockedDenseGrid3d
Definition BlockedDenseGrid3.h:907
TBlockedGrid3< double, 8 > FBlockedGrid3d
Definition BlockedDenseGrid3.h:714
TBlockedDenseGrid3< float > FBlockedDenseGrid3f
Definition BlockedDenseGrid3.h:906
TBlockedGrid3< float, 8 > FBlockedGrid3f
Definition BlockedDenseGrid3.h:713
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition IntVectorTypes.h:252
int32 Z
Definition IntVectorTypes.h:257
int32 X
Definition IntVectorTypes.h:257
int32 Y
Definition IntVectorTypes.h:257
Definition BlockedDenseGrid3.h:157
void Reset(const ElemType &DefaultIn=(ElemType) 0)
Definition BlockedDenseGrid3.h:159
ElemType GetValue(const int32 &LocalIndex) const
Definition BlockedDenseGrid3.h:166
ElemType DefaultValue
Definition BlockedDenseGrid3.h:172
TUniquePtr< BlockData3Type > BlockDataPtr
Definition BlockedDenseGrid3.h:171
Definition BlockedLayout3.h:19
static constexpr int32 ElemCount
Definition BlockedLayout3.h:21