Navigation
API > API/Runtime > API/Runtime/GeometryCore > API/Runtime/GeometryCore/Spatial
Inheritance Hierarchy
- TBlockedGrid3Layout
- TBasicBlockedDenseGrid3
- TBlockedGrid3
References
| Module | GeometryCore |
| Header | /Engine/Source/Runtime/GeometryCore/Public/Spatial/BlockedDenseGrid3.h |
| Include | #include "Spatial/BlockedDenseGrid3.h" |
Syntax
template<typename ElemType, int32 BlockSize_>
class TBlockedGrid3 : public UE::Geometry::TBasicBlockedDenseGrid3< ElemType, BlockSize_ >
Remarks
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.
Constructors
| Type | Name | Description | |
|---|---|---|---|
| Create empty grid | |||
TBlockedGrid3
(
int32 DimI, |
Create grid with specified domain. |
Functions
| Type | Name | Description | |
|---|---|---|---|
| TArray< const BlockData3Type * > | |||
| TArray< BlockData3Type * > | |||
| TArray< const BlockData3Type * > | |||
| const TUniquePtr< BlockData3Type > & | GetBlockData
(
int32 BlockIndex |
||
| TUniquePtr< BlockData3Type > & | GetBlockData
(
int32 BlockIndex |
||
| TUniquePtr< BlockData3Type > & | GetBlockData
(
const FVector3i& BlockIJK |
||
| const TUniquePtr< BlockData3Type > & | GetBlockData
(
const FVector3i& BlockIJK |
||
| ElemType | GetBlockDefaultValue
(
const FVector3i& BlockIJK |
Methods on the block's default values. | |
| int32 | GetNumBlocks () |
||
| bool | IsBlockAllocated
(
const FVector3i& BlockIJK |
||
| void | ProcessBlockDefaultValue
(
const FVector3i& BlockIJK, |
Update the default value for the specified block using a functor | |
| void | ProcessValueWithLock
(
int32 I, |
Call an external lambda with a reference to the grid value at (I,J,K). | |
| void | ProcessValueWithLock
(
const FVector3i& CellIJK, |
Call an external lambda with a reference to the grid value at CellIJK. | |
| ElemType | ReadBlockDefaultValue
(
const int32& BlockIndex |
||
| ElemType | ReadBlockDefaultValue
(
const FVector3i& BlockIJK |
||
| void | SetBlockDefaultValue
(
const FVector3i& BlockIJK, |
Update the default value for the specified block. | |
| void | SetValueWithLock
(
const FVector3i& CellIJK, |
Set the grid value at CellIJK, with user supplied locking in the form of a function of the form FCriticalSection& CriticalSectionProvider(id) | |
| void | SetValueWithLock
(
int32 I, |
Set the grid value at (I,J,K), with user supplied locking in the form of a function of the form FCriticalSection& CriticalSectionProvider(id) | |
| BlockData3Type & | TouchBlockData
(
const FVector3i& BlockIJK |
||
| void | WriteBlockDefaultValue
(
const FVector3i& BlockIJK, |
||
| void | WriteBlockDefaultValue
(
const int32 BlockIndex, |
||
| void | WriteBlockDefaultValueWithLock
(
const int32 BlockIndex, |
Typedefs
| Name | Description |
|---|---|
| BlockData3Type | |
| BlockedDenseGridType | |
| BlockedGrid3LayoutType | |
| FBlock3 |
Constants
| Name | Description |
|---|---|
| BlockElemCount | |
| BlockSize |