|
| | TBlockedGrid3 () |
| |
| | TBlockedGrid3 (int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue) |
| |
| template<typename CriticalSectionProviderType > |
| void | SetValueWithLock (int32 I, int32 J, int32 K, ElemType NewValue, CriticalSectionProviderType &CriticalSectionProvider) |
| |
| template<typename CriticalSectionProviderType > |
| void | SetValueWithLock (const FVector3i &CellIJK, ElemType NewValue, CriticalSectionProviderType CriticalSectionProvider) |
| |
| template<typename ProcessFunc , typename CriticalSectionProviderType > |
| void | ProcessValueWithLock (int32 I, int32 J, int32 K, ProcessFunc Func, CriticalSectionProviderType CriticalSectionProvider) |
| |
| template<typename ProcessFunc , typename CriticalSectionProviderType > |
| void | ProcessValueWithLock (const FVector3i &CellIJK, ProcessFunc Func, CriticalSectionProviderType CriticalSectionProvider) |
| |
| int32 | GetNumBlocks () const |
| |
| TArray< const BlockData3Type * > | GetAllocatedConstBlocks () const |
| |
| TArray< BlockData3Type * > | GetAllocatedBlocks () |
| |
| TArray< const BlockData3Type * > | GetAllocatedBlocks () const |
| |
| bool | IsBlockAllocated (const FVector3i &BlockIJK) const |
| |
| BlockData3Type & | TouchBlockData (const FVector3i &BlockIJK) |
| |
| TUniquePtr< BlockData3Type > & | GetBlockData (const FVector3i &BlockIJK) |
| |
| const TUniquePtr< BlockData3Type > & | GetBlockData (const FVector3i &BlockIJK) const |
| |
| TUniquePtr< BlockData3Type > & | GetBlockData (int32 BlockIndex) |
| |
| const TUniquePtr< BlockData3Type > & | GetBlockData (int32 BlockIndex) const |
| |
| ElemType | GetBlockDefaultValue (const FVector3i &BlockIJK) const |
| |
| void | SetBlockDefaultValue (const FVector3i &BlockIJK, const ElemType &Value, bool bPruneBlock=true) |
| |
| template<typename ProcessFunc > |
| void | ProcessBlockDefaultValue (const FVector3i &BlockIJK, ProcessFunc Func, bool bPruneBlock=true) |
| |
| | TBasicBlockedDenseGrid3 () |
| |
| | TBasicBlockedDenseGrid3 (int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue) |
| |
| void | Resize (int32 DimI, int32 DimJ, int32 DimK) |
| |
| void | Reset () |
| |
| void | Reset (int32 DimI, int32 DimJ, int32 DimK, ElemType InitialValue) |
| |
| ElemType | GetValue (int32 I, int32 J, int32 K) const |
| |
| ElemType | GetValue (const FVector3i &CellIJK) const |
| |
| void | SetValue (int32 I, int32 J, int32 K, ElemType NewValue) |
| |
| void | SetValue (const FVector3i &CellIJK, ElemType NewValue) |
| |
| template<typename ProcessFunc > |
| void | ProcessValue (int32 I, int32 J, int32 K, ProcessFunc Func) |
| |
| template<typename ProcessFunc > |
| void | ProcessValue (const FVector3i &CellIJK, ProcessFunc Func) |
| |
| template<typename OtherElemType > |
| bool | PreAllocateFromSourceGrid (const TBasicBlockedDenseGrid3< OtherElemType, BlockSize > &SourceGrid) |
| |
| int32 | GetNumBlocks () const |
| |
| | TBlockedGrid3Layout () |
| |
| | TBlockedGrid3Layout (int32 DimI, int32 DimJ, int32 DimK) |
| |
| | TBlockedGrid3Layout (FVector3i Dims) |
| |
| void | Resize (int32 DimI, int32 DimJ, int32 DimK) |
| |
| const FVector3i & | GetDimensions () const |
| |
| const FVector3i & | GetBlockDimensions () const |
| |
| FAxisAlignedBox3i | Bounds () const |
| |
| FAxisAlignedBox3i | BoundsInclusive () const |
| |
| int64 | Size () const |
| |
| bool | IsValidIJK (const FVector3i &IJK) const |
| |
| bool | IsValidBlockIJK (const FVector3i &BlockIJK) |
| |
| int32 | IJKtoBlockIndex (const FVector3i &IJK) const |
| |
| void | GetBlockAndLocalIndex (const FVector3i &IJK, int32 &BlockIndexOut, int32 &LocalIndexOut) const |
| |
| void | GetBlockAndLocalIndex (int32 I, int32 J, int32 K, int32 &BlockIndexOut, int32 &LocalIndexOut) const |
| |
| FVector3i | BlockIndexToBlockIJK (const int32 BlockIndex) const |
| |
| int32 | BlockIJKToBlockIndex (const FVector3i &BlockIJK) const |
| |
|
| template<typename FuncType > |
| void | WriteBlockDefaultValue (const int32 BlockIndex, FuncType Func, bool bDeallocateBock=true) |
| |
| template<typename FuncType > |
| void | WriteBlockDefaultValue (const FVector3i &BlockIJK, FuncType Func, bool bDeallocateBock=true) |
| |
| template<typename FuncType > |
| void | WriteBlockDefaultValueWithLock (const int32 BlockIndex, FuncType Func, FCriticalSection *CriticalSection, bool bDeallocateBock=true) |
| |
| ElemType | ReadBlockDefaultValue (const int32 &BlockIndex) const |
| |
| ElemType | ReadBlockDefaultValue (const FVector3i &BlockIJK) const |
| |
| FBlock3 & | GetBlock (int32 Index) |
| |
| const FBlock3 & | GetBlock (int32 Index) const |
| |
| bool | IsBlockAllocated (const FBlock3 &Block) const |
| |
| bool | IsBlockAllocated (const int32 BlockIndex) const |
| |
| BlockData3Type & | TouchBlockData (const int32 BlockIndex) |
| |
| template<typename FuncType > |
| void | WriteValue (const int32 &BlockIndex, const int32 &LocalIndex, FuncType Func) |
| |
| template<typename FuncType > |
| void | WriteValue (int32 I, int32 J, int32 K, FuncType Func) |
| |
| template<typename FuncType > |
| void | WriteValueWithLock (const int32 &BlockIndex, const int32 &LocalIndex, FuncType Func, FCriticalSection *CriticalSection) |
| |
| ElemType | ReadValue (const int32 &BlockIndex, const int32 &LocalIndex) const |
| |
| ElemType | ReadValue (int32 I, int32 J, int32 K) const |
| |
| ElemType | ReadValueWithLock (const int32 &BlockIndex, const int32 &LocalIndex, FCriticalSection *CriticalSection) |
| |
| template<typename OtherGridType > |
| bool | AllocateTopologyUnionImpl (const OtherGridType &OtherGrid) |
| |
template<
typename ElemType,
int32 BlockSize_>
class UE::Geometry::TBlockedGrid3< ElemType, BlockSize_ >
TBlockedGrid3 represents a 3D uniform grid.
The grid is allocated in BlockSize^3 blocks on-demand (BlockSize is a compile-time constant) allowing very large grids to be used without having to pre-allocate all the memory, eg for sparse/narrow-band use cases.
Block-level default values are returned when querying a grid cell in an unallocated block.,
Block-level access is provided to facilitate parallel algorithms. Additionally, 'Set' methods are provided that utilize critical sections provided by the caller.