@@ -1124,8 +1124,9 @@ PNANOVDB_FORCE_INLINE void pnanovdb_write_vec3(pnanovdb_buf_t buf, pnanovdb_addr
1124
1124
#define PNANOVDB_GRID_TYPE_VEC3U8 24
1125
1125
#define PNANOVDB_GRID_TYPE_VEC3U16 25
1126
1126
#define PNANOVDB_GRID_TYPE_UINT8 26
1127
- #define PNANOVDB_GRID_TYPE_NODE2 27
1128
- #define PNANOVDB_GRID_TYPE_END 28
1127
+ #define PNANOVDB_GRID_TYPE_END 27
1128
+
1129
+ #define PNANOVDB_GRID_TYPE_CAP 32
1129
1130
1130
1131
#define PNANOVDB_GRID_CLASS_UNKNOWN 0
1131
1132
#define PNANOVDB_GRID_CLASS_LEVEL_SET 1 // narrow band level set, e.g. SDF
@@ -1156,17 +1157,17 @@ PNANOVDB_FORCE_INLINE void pnanovdb_write_vec3(pnanovdb_buf_t buf, pnanovdb_addr
1156
1157
1157
1158
// BuildType = Unknown, float, double, int16_t, int32_t, int64_t, Vec3f, Vec3d, Mask, ...
1158
1159
// bit count of values in leaf nodes, i.e. 8*sizeof(*nanovdb::LeafNode<BuildType>::mValues) or zero if no values are stored
1159
- PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_value_strides_bits [PNANOVDB_GRID_TYPE_END ] = { 0 , 32 , 64 , 16 , 32 , 64 , 96 , 192 , 0 , 16 , 32 , 1 , 32 , 4 , 8 , 16 , 0 , 128 , 256 , 0 , 0 , 0 , 0 , 16 , 24 , 48 , 8 , 0 };
1160
+ PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_value_strides_bits [PNANOVDB_GRID_TYPE_CAP ] = { 0 , 32 , 64 , 16 , 32 , 64 , 96 , 192 , 0 , 16 , 32 , 1 , 32 , 4 , 8 , 16 , 0 , 128 , 256 , 0 , 0 , 0 , 0 , 16 , 24 , 48 , 8 , 0 };
1160
1161
// bit count of the Tile union in InternalNodes, i.e. 8*sizeof(nanovdb::InternalData::Tile)
1161
- PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_table_strides_bits [PNANOVDB_GRID_TYPE_END ] = { 64 , 64 , 64 , 64 , 64 , 64 , 128 , 192 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 128 , 256 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 };
1162
+ PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_table_strides_bits [PNANOVDB_GRID_TYPE_CAP ] = { 64 , 64 , 64 , 64 , 64 , 64 , 128 , 192 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 128 , 256 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 };
1162
1163
// bit count of min/max values, i.e. 8*sizeof(nanovdb::LeafData::mMinimum) or zero if no min/max exists
1163
- PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_minmax_strides_bits [PNANOVDB_GRID_TYPE_END ] = { 0 , 32 , 64 , 16 , 32 , 64 , 96 , 192 , 8 , 16 , 32 , 8 , 32 , 32 , 32 , 32 , 32 , 128 , 256 , 64 , 64 , 64 , 64 , 64 , 24 , 48 , 8 , 0 };
1164
+ PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_minmax_strides_bits [PNANOVDB_GRID_TYPE_CAP ] = { 0 , 32 , 64 , 16 , 32 , 64 , 96 , 192 , 8 , 16 , 32 , 8 , 32 , 32 , 32 , 32 , 32 , 128 , 256 , 64 , 64 , 64 , 64 , 64 , 24 , 48 , 8 , 0 };
1164
1165
// bit alignment of the value type, controlled by the smallest native type, which is why it is always 0, 8, 16, 32, or 64, e.g. for Vec3f it is 32
1165
- PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_minmax_aligns_bits [PNANOVDB_GRID_TYPE_END ] = { 0 , 32 , 64 , 16 , 32 , 64 , 32 , 64 , 8 , 16 , 32 , 8 , 32 , 32 , 32 , 32 , 32 , 32 , 64 , 64 , 64 , 64 , 64 , 64 , 8 , 16 , 8 , 0 };
1166
+ PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_minmax_aligns_bits [PNANOVDB_GRID_TYPE_CAP ] = { 0 , 32 , 64 , 16 , 32 , 64 , 32 , 64 , 8 , 16 , 32 , 8 , 32 , 32 , 32 , 32 , 32 , 32 , 64 , 64 , 64 , 64 , 64 , 64 , 8 , 16 , 8 , 0 };
1166
1167
// bit alignment of the stats (avg/std-dev) types, e.g. 8*sizeof(nanovdb::LeafData::mAverage)
1167
- PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_stat_strides_bits [PNANOVDB_GRID_TYPE_END ] = { 0 , 32 , 64 , 32 , 32 , 64 , 32 , 64 , 8 , 32 , 32 , 8 , 32 , 32 , 32 , 32 , 32 , 32 , 64 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 0 };
1168
+ PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_stat_strides_bits [PNANOVDB_GRID_TYPE_CAP ] = { 0 , 32 , 64 , 32 , 32 , 64 , 32 , 64 , 8 , 32 , 32 , 8 , 32 , 32 , 32 , 32 , 32 , 32 , 64 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 0 };
1168
1169
// one of the 4 leaf types defined above, e.g. PNANOVDB_LEAF_TYPE_INDEX = 3
1169
- PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_leaf_type [PNANOVDB_GRID_TYPE_END ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 2 , 2 , 2 , 2 , 0 , 0 , 3 , 3 , 4 , 4 , 5 , 0 , 0 , 0 , 0 };
1170
+ PNANOVDB_STATIC_CONST pnanovdb_uint32_t pnanovdb_grid_type_leaf_type [PNANOVDB_GRID_TYPE_CAP ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 2 , 2 , 2 , 2 , 0 , 0 , 3 , 3 , 4 , 4 , 5 , 0 , 0 , 0 , 0 };
1170
1171
1171
1172
struct pnanovdb_map_t
1172
1173
{
@@ -1886,7 +1887,7 @@ struct pnanovdb_grid_type_constants_t
1886
1887
PNANOVDB_STRUCT_TYPEDEF (pnanovdb_grid_type_constants_t )
1887
1888
1888
1889
// The following table with offsets will nedd to be updates as new GridTypes are added in NanoVDB.h
1889
- PNANOVDB_STATIC_CONST pnanovdb_grid_type_constants_t pnanovdb_grid_type_constants [PNANOVDB_GRID_TYPE_END ] =
1890
+ PNANOVDB_STATIC_CONST pnanovdb_grid_type_constants_t pnanovdb_grid_type_constants [PNANOVDB_GRID_TYPE_CAP ] =
1890
1891
{
1891
1892
{28 , 28 , 28 , 28 , 28 , 32 , 0 , 8 , 20 , 32 , 8224 , 8224 , 8224 , 8224 , 8224 , 270368 , 1056 , 1056 , 1056 , 1056 , 1056 , 33824 , 80 , 80 , 80 , 80 , 96 , 96 },
1892
1893
{28 , 32 , 36 , 40 , 44 , 64 , 32 , 8 , 20 , 32 , 8224 , 8228 , 8232 , 8236 , 8256 , 270400 , 1056 , 1060 , 1064 , 1068 , 1088 , 33856 , 80 , 84 , 88 , 92 , 96 , 2144 },
0 commit comments