UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::TBlockedGrid3Layout< BlockSize_ > Class Template Reference

#include <BlockedLayout3.h>

+ Inheritance diagram for UE::Geometry::TBlockedGrid3Layout< BlockSize_ >:

Public Types

typedef TBlockData3Layout< BlockSize_FBlockData3Layout
 

Public Member Functions

 TBlockedGrid3Layout ()
 
 TBlockedGrid3Layout (int32 DimI, int32 DimJ, int32 DimK)
 
 TBlockedGrid3Layout (FVector3i Dims)
 
void Resize (int32 DimI, int32 DimJ, int32 DimK)
 
const FVector3iGetDimensions () const
 
const FVector3iGetBlockDimensions () 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
 

Static Public Attributes

static constexpr int32 BlockSize = BlockSize_
 
static constexpr int32 BlockElemCount = BlockSize * BlockSize * BlockSize
 

Protected Attributes

FVector3i BlockDimensions
 
FVector3i Dimensions
 

Member Typedef Documentation

◆ FBlockData3Layout

Constructor & Destructor Documentation

◆ TBlockedGrid3Layout() [1/3]

template<int32 BlockSize_>
UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::TBlockedGrid3Layout ( )
inline

◆ TBlockedGrid3Layout() [2/3]

template<int32 BlockSize_>
UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::TBlockedGrid3Layout ( int32  DimI,
int32  DimJ,
int32  DimK 
)
inline

◆ TBlockedGrid3Layout() [3/3]

template<int32 BlockSize_>
UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::TBlockedGrid3Layout ( FVector3i  Dims)
inline

Member Function Documentation

◆ BlockIJKToBlockIndex()

template<int32 BlockSize_>
int32 UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::BlockIJKToBlockIndex ( const FVector3i BlockIJK) const
inline
Returns
the block index for the specified block (BlockIJK) in a linearization of the 3d block space.

◆ BlockIndexToBlockIJK()

template<int32 BlockSize_>
FVector3i UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::BlockIndexToBlockIJK ( const int32  BlockIndex) const
inline
Returns
the 3-d coordinates of the block specified by an index in a linearization of the blocks. BlockIJK is the lattice address of the block in terms of block units ( e.g. the location in a grid of blocks).

◆ Bounds()

template<int32 BlockSize_>
FAxisAlignedBox3i UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::Bounds ( ) const
inline

◆ BoundsInclusive()

template<int32 BlockSize_>
FAxisAlignedBox3i UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::BoundsInclusive ( ) const
inline

◆ GetBlockAndLocalIndex() [1/2]

template<int32 BlockSize_>
void UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::GetBlockAndLocalIndex ( const FVector3i IJK,
int32 BlockIndexOut,
int32 LocalIndexOut 
) const
inline

return the block index and local index of the cell at (I,J,K).

◆ GetBlockAndLocalIndex() [2/2]

template<int32 BlockSize_>
void UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::GetBlockAndLocalIndex ( int32  I,
int32  J,
int32  K,
int32 BlockIndexOut,
int32 LocalIndexOut 
) const
inline

◆ GetBlockDimensions()

template<int32 BlockSize_>
const FVector3i & UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::GetBlockDimensions ( ) const
inline
Returns
the dimensions of this layout in terms of blocks.

◆ GetDimensions()

template<int32 BlockSize_>
const FVector3i & UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::GetDimensions ( ) const
inline
Returns
the dimensions of this layout in terms of cell ijks.

◆ IJKtoBlockIndex()

template<int32 BlockSize_>
int32 UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::IJKtoBlockIndex ( const FVector3i IJK) const
inline
Returns
the index of the block that holds the cell indicated by IJK.

◆ IsValidBlockIJK()

template<int32 BlockSize_>
bool UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::IsValidBlockIJK ( const FVector3i BlockIJK)
inline
Returns
true if the specified block IJK is within the bounds of the block dimensions.

◆ IsValidIJK()

template<int32 BlockSize_>
bool UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::IsValidIJK ( const FVector3i IJK) const
inline
Returns
true if the specified cell IJK is within the bounds of the dimensions.

◆ Resize()

template<int32 BlockSize_>
void UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::Resize ( int32  DimI,
int32  DimJ,
int32  DimK 
)
inline

Recompute the block dimensions required to cover the requested cell dimensions.

◆ Size()

template<int32 BlockSize_>
int64 UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::Size ( ) const
inline
Returns
the number of ijk cells in contained within this grid layout. note: because blocks are 3d pages of fixed size so the number of Blocks X Cells in Block might actually be a larger.

Member Data Documentation

◆ BlockDimensions

template<int32 BlockSize_>
FVector3i UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::BlockDimensions
protected

◆ BlockElemCount

template<int32 BlockSize_>
constexpr int32 UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::BlockElemCount = BlockSize * BlockSize * BlockSize
staticconstexpr

◆ BlockSize

template<int32 BlockSize_>
constexpr int32 UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::BlockSize = BlockSize_
staticconstexpr

◆ Dimensions

template<int32 BlockSize_>
FVector3i UE::Geometry::TBlockedGrid3Layout< BlockSize_ >::Dimensions
protected

The documentation for this class was generated from the following file: