Data structure

Handling huge matrices/arrays gives some challenges:

  • Memory allocations - huge matrices/arrays in and out of functions
  • Memory - CPU - GPU bandwith
  • Calculation speed

Main variables

  • vM - "voxelMatrix" - normally representing the "world"
    • 3D matrix where the indexes x,y,z corresponds to x,y,z dimensions in R3. Each element value symbolize if a voxel is present, and can also represent FEM stress, color, etc.
    • Voxel neighbor information is easy accessible
    • If sparse - time consuming to iterate
    • x,y,z can not be negative
    • int8
  • vA - "voxelArray" - alternative representation of vM
    • Array of voxel positions x,y,z
    • If vM is sparse - vA is much faster to iterate as it only contains present voxels
    • Voxels can be located at negative positions - easy to do matrix rotation
    • Double precision - voxels may be located "off grid"
1:21 - RobinGen