IVSmoke 1.0
Loading...
Searching...
No Matches
UIVSmokeGridLibrary Class Reference

#include <IVSmokeGridLibrary.h>

Inheritance diagram for UIVSmokeGridLibrary:
Inheritance graph
Collaboration diagram for UIVSmokeGridLibrary:
Collaboration graph

Static Public Member Functions

static FORCEINLINE int32 GridToIndex (const FIntVector &GridPos, const FIntVector &Resolution)
 
static FORCEINLINE FIntVector IndexToGrid (int32 Index, const FIntVector &Resolution)
 
static FORCEINLINE FVector GridToLocal (const FIntVector &GridPos, float VoxelSize, const FIntVector &CenterOffset)
 
static FORCEINLINE FIntVector LocalToGrid (const FVector &LocalPos, float VoxelSize, const FIntVector &CenterOffset, const FIntVector &Resolution)
 
static FORCEINLINE int32 GridToVoxelBitIndex (const FIntVector &GridPos, const FIntVector &Resolution)
 
static FORCEINLINE int32 GridToVoxelBitIndex (int32 Y, int32 Z, int32 ResolutionY)
 
static FORCEINLINE bool IsVoxelBitSet (const TArray< uint64 > &VoxelBitArray, const FIntVector &GridPos, const FIntVector &Resolution)
 
static FORCEINLINE void SetVoxelBit (TArray< uint64 > &VoxelBitArray, int32 Index, const FIntVector &Resolution, bool bValue)
 
static FORCEINLINE void SetVoxelBit (TArray< uint64 > &VoxelBitArray, const FIntVector &GridPos, const FIntVector &Resolution, bool bValue)
 
static FORCEINLINE void ToggleVoxelBit (TArray< uint64 > &VoxelBitArray, int32 Index, const FIntVector &Resolution)
 
static FORCEINLINE void ToggleVoxelBit (TArray< uint64 > &VoxelBitArray, const FIntVector &GridPos, const FIntVector &Resolution)
 

Static Public Attributes

static const FIntVector InvalidGridPos
 

Detailed Description

Utility library for smoke grid calculations and voxel bit operations.

Definition at line 13 of file IVSmokeGridLibrary.h.

Member Function Documentation

◆ GridToIndex()

static FORCEINLINE int32 UIVSmokeGridLibrary::GridToIndex ( const FIntVector &  GridPos,
const FIntVector &  Resolution 
)
inlinestatic

3D grid coordinate to 1D index.

Parameters
GridPos3D grid coordinate.
Resolution3D grid resolution.
Returns
1D flattened index

Definition at line 29 of file IVSmokeGridLibrary.h.

◆ GridToLocal()

static FORCEINLINE FVector UIVSmokeGridLibrary::GridToLocal ( const FIntVector &  GridPos,
float  VoxelSize,
const FIntVector &  CenterOffset 
)
inlinestatic

Converts 3D grid coordinate to local space position.

Parameters
GridPos3D grid coordinate.
VoxelSizeSize of each voxel.
CenterOffsetGrid center offset.
Returns
Local space position.

Definition at line 67 of file IVSmokeGridLibrary.h.

◆ GridToVoxelBitIndex() [1/2]

static FORCEINLINE int32 UIVSmokeGridLibrary::GridToVoxelBitIndex ( const FIntVector &  GridPos,
const FIntVector &  Resolution 
)
inlinestatic

Converts 3D grid coordinate to voxel bit index.

Parameters
GridPos3D grid coordinate.
Resolution3D grid resolution.
Returns
Voxel bit index.

Definition at line 117 of file IVSmokeGridLibrary.h.

◆ GridToVoxelBitIndex() [2/2]

static FORCEINLINE int32 UIVSmokeGridLibrary::GridToVoxelBitIndex ( int32  Y,
int32  Z,
int32  ResolutionY 
)
inlinestatic

Converts Y and Z coordinates to voxel bit index.

Parameters
YY coordinate.
ZZ coordinate.
ResolutionYY resolution.
Returns
Voxel bit index.

Definition at line 130 of file IVSmokeGridLibrary.h.

◆ IndexToGrid()

static FORCEINLINE FIntVector UIVSmokeGridLibrary::IndexToGrid ( int32  Index,
const FIntVector &  Resolution 
)
inlinestatic

1D flattened index to 3D grid coordinate.

Parameters
Index1D flattened index.
Resolution3D grid resolution.
Returns
3D grid coordinate.

Definition at line 42 of file IVSmokeGridLibrary.h.

◆ IsVoxelBitSet()

static FORCEINLINE bool UIVSmokeGridLibrary::IsVoxelBitSet ( const TArray< uint64 > &  VoxelBitArray,
const FIntVector &  GridPos,
const FIntVector &  Resolution 
)
inlinestatic

Checks if a voxel occupancy bit is set at the given 3D grid position. Internally, X is stored as a bit index in a uint64, while Y and Z are mapped to the array index.

Parameters
VoxelBitArrayBit-packed voxel occupancy array (uint64 per YZ slice).
GridPos3D grid coordinate.
Resolution3D grid resolution (each axis < 64).
Returns
True if the voxel bit is set, false otherwise.

Definition at line 144 of file IVSmokeGridLibrary.h.

◆ LocalToGrid()

static FORCEINLINE FIntVector UIVSmokeGridLibrary::LocalToGrid ( const FVector &  LocalPos,
float  VoxelSize,
const FIntVector &  CenterOffset,
const FIntVector &  Resolution 
)
inlinestatic

Converts local space position to 3D grid coordinate.

Parameters
LocalPosLocal space position.
VoxelSizeSize of each voxel.
CenterOffsetGrid center offset.
Resolution3D grid resolution.
Returns
3D grid coordinate, or InvalidGridPos if out of bounds.

Definition at line 86 of file IVSmokeGridLibrary.h.

◆ SetVoxelBit() [1/2]

static FORCEINLINE void UIVSmokeGridLibrary::SetVoxelBit ( TArray< uint64 > &  VoxelBitArray,
const FIntVector &  GridPos,
const FIntVector &  Resolution,
bool  bValue 
)
inlinestatic

Sets a voxel bit value at the given 3D grid position. Internally, X is stored as a bit index in a uint64, while Y and Z are mapped to the array index.

Parameters
VoxelBitArrayBit-packed voxel occupancy array (uint64 per YZ slice).
GridPos3D grid coordinate.
Resolution3D grid resolution (each axis < 64).
bValueValue to set (true or false).

Definition at line 184 of file IVSmokeGridLibrary.h.

◆ SetVoxelBit() [2/2]

static FORCEINLINE void UIVSmokeGridLibrary::SetVoxelBit ( TArray< uint64 > &  VoxelBitArray,
int32  Index,
const FIntVector &  Resolution,
bool  bValue 
)
inlinestatic

Sets a voxel bit value at the given 1D index.

Parameters
VoxelBitArrayBit-packed voxel occupancy array (uint64 per YZ slice).
Index1D flattened index.
Resolution3D grid resolution (each axis < 64).
bValueValue to set (true or false).

Definition at line 169 of file IVSmokeGridLibrary.h.

◆ ToggleVoxelBit() [1/2]

static FORCEINLINE void UIVSmokeGridLibrary::ToggleVoxelBit ( TArray< uint64 > &  VoxelBitArray,
const FIntVector &  GridPos,
const FIntVector &  Resolution 
)
inlinestatic

Toggles a voxel bit value at the given 3D grid position. Internally, X is stored as a bit index in a uint64, while Y and Z are mapped to the array index.

Parameters
VoxelBitArrayBit-packed voxel occupancy array (uint64 per YZ slice).
GridPos3D grid coordinate.
Resolution3D grid resolution (each axis < 64).

Definition at line 229 of file IVSmokeGridLibrary.h.

◆ ToggleVoxelBit() [2/2]

static FORCEINLINE void UIVSmokeGridLibrary::ToggleVoxelBit ( TArray< uint64 > &  VoxelBitArray,
int32  Index,
const FIntVector &  Resolution 
)
inlinestatic

Toggles a voxel bit value at the given 1D index.

Parameters
VoxelBitArrayBit-packed voxel occupancy array (uint64 per YZ slice).
Index1D flattened index.
Resolution3D grid resolution (each axis < 64).

Definition at line 215 of file IVSmokeGridLibrary.h.

Member Data Documentation

◆ InvalidGridPos

const FIntVector UIVSmokeGridLibrary::InvalidGridPos
static

Invalid grid pos (-1, -1, -1)

Definition at line 19 of file IVSmokeGridLibrary.h.


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