Skip to content

Commit afdc550

Browse files
committed
Updated OpenVDB to 8.0.1 (Mac/Win/Linux)
1 parent b09baf9 commit afdc550

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+11586
-4702
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Nuparu currently consists of:
2424
* [TBB](https://www.threadingbuildingblocks.org/) 2020.3 (Mac/Win/Linux)
2525
* [Boost](http://www.boost.org) 1.75.0 (Mac/Win/Linux)
2626
* [OpenSubdiv](http://graphics.pixar.com/opensubdiv/docs/intro.html) 3.4.4 (Mac/Win/Linux)
27-
* [OpenVDB](http://www.openvdb.org/) 7.1.0 (Mac/Win/Linux)
27+
* [OpenVDB](http://www.openvdb.org/) 8.0.1 (Mac/Win/Linux)
2828
* [blosc](https://github.com/Blosc) 1.21.0 (Mac/Win/Linux)
2929
* [Protobuf](https://developers.google.com/protocol-buffers/) 3.15.3 (Mac/Win/Linux)
3030
* [ispc](https://ispc.github.io) 1.15 (Mac/Win/Linux)

include/nanovdb/CNanoVDB.h

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ typedef struct
213213
{
214214
uint64_t mMagic; // 8B magic to validate it is valid grid data.
215215
uint64_t mChecksum; // 8B. Checksum of grid buffer.
216-
uint32_t mMajor;// 4B. major version number.
216+
uint32_t mVersion;// 4B. compacted major.minor.path version number.
217217
uint32_t mFlags; // 4B. flags for grid.
218218
uint64_t mGridSize; // 8B. byte count of entire grid buffer.
219219
char mGridName[256]; // 256B
@@ -294,16 +294,18 @@ cnanovdb_readaccessor_insert(cnanovdb_readaccessor *RESTRICT acc, int childlevel
294294
acc->mKey.mVec[2] = ijk->mVec[2];
295295
}
296296

297-
#define CREATE_LEAF_NODE_int(LEVEL, LOG2DIM, CHILDTOTAL, TOTAL, MASK, VALUETYPE, SUFFIX) \
297+
#define CREATE_LEAF_NODE_int(LEVEL, LOG2DIM, CHILDTOTAL, TOTAL, MASK, VALUETYPE, STATSTYPE, SUFFIX) \
298298
typedef struct \
299299
{ \
300300
cnanovdb_coord mBBox_min; \
301301
uint8_t mBBoxDif[3]; \
302302
uint8_t mFlags; \
303303
cnanovdb_mask##LOG2DIM mValueMask; \
304-
VALUETYPE mValueMin; \
305-
VALUETYPE mValueMax; \
306-
uint32_t _reserved[ CNANOVDB_ALIGNMENT_PADDING(sizeof(cnanovdb_mask##LOG2DIM)+2*sizeof(VALUETYPE)+sizeof(cnanovdb_coord)+sizeof(uint8_t[3])+sizeof(uint8_t), CNANOVDB_DATA_ALIGNMENT)/4]; \
304+
VALUETYPE mMinimum; \
305+
VALUETYPE mMaximum; \
306+
STATSTYPE mAverage; \
307+
STATSTYPE mStdDevi; \
308+
uint32_t _reserved[ CNANOVDB_ALIGNMENT_PADDING(sizeof(cnanovdb_mask##LOG2DIM)+2*sizeof(VALUETYPE)+2*sizeof(STATSTYPE)+sizeof(cnanovdb_coord)+sizeof(uint8_t[3])+sizeof(uint8_t), CNANOVDB_DATA_ALIGNMENT)/4]; \
307309
VALUETYPE mVoxels[1u << (3*LOG2DIM)]; \
308310
} cnanovdb_node##LEVEL##SUFFIX; \
309311
\
@@ -325,6 +327,7 @@ cnanovdb_node##LEVEL##SUFFIX##_getValue(const CNANOVDB_GLOBAL cnanovdb_node##LEV
325327
VALUETYPE \
326328
cnanovdb_node##LEVEL##SUFFIX##_getValueAndCache(const CNANOVDB_GLOBAL cnanovdb_node##LEVEL##SUFFIX *RESTRICT node, const cnanovdb_coord *RESTRICT ijk, cnanovdb_readaccessor *RESTRICT /* DO NOT REMOVE: Required for C99 compliance */ acc) \
327329
{ \
330+
(void)(acc); \
328331
uint32_t n = cnanovdb_node##LEVEL##SUFFIX##_CoordToOffset(ijk); \
329332
return node->mVoxels[n]; \
330333
} \
@@ -338,18 +341,19 @@ cnanovdb_tree_getNode##LEVEL##SUFFIX(const CNANOVDB_GLOBAL cnanovdb_treedata *RE
338341
\
339342
/**/
340343

341-
#define CREATE_LEAF_NODE(LEVEL, LOG2DIM, TOTAL, VALUETYPE, SUFFIX) \
342-
CREATE_LEAF_NODE_int(LEVEL, LOG2DIM, (TOTAL-LOG2DIM), TOTAL, ((1u << TOTAL) - 1u), VALUETYPE, SUFFIX)
344+
#define CREATE_LEAF_NODE(LEVEL, LOG2DIM, TOTAL, VALUETYPE, STATSTYPE, SUFFIX) \
345+
CREATE_LEAF_NODE_int(LEVEL, LOG2DIM, (TOTAL-LOG2DIM), TOTAL, ((1u << TOTAL) - 1u), VALUETYPE, STATSTYPE, SUFFIX)
343346

344-
#define CREATE_INTERNAL_NODE_int(CHILDLEVEL, LEVEL, LOG2DIM, CHILDTOTAL, TOTAL, MASK, VALUETYPE, SUFFIX) \
347+
#define CREATE_INTERNAL_NODE_int(CHILDLEVEL, LEVEL, LOG2DIM, CHILDTOTAL, TOTAL, MASK, VALUETYPE, STATSTYPE, SUFFIX) \
345348
typedef struct \
346349
{ \
347350
cnanovdb_coord mBBox_min, mBBox_max; \
348351
int32_t mOffset; \
349352
uint32_t mFlags; \
350353
cnanovdb_mask##LOG2DIM mValueMask, mChildMask; \
351-
VALUETYPE mValueMin, mValueMax; \
352-
uint8_t _reserved[CNANOVDB_ALIGNMENT_PADDING(sizeof(cnanovdb_mask##LOG2DIM)+sizeof(VALUETYPE)*2+sizeof(cnanovdb_coord)*2+sizeof(int32_t)+sizeof(uint32_t), CNANOVDB_DATA_ALIGNMENT)]; \
354+
VALUETYPE mMinimum, mMaximum; \
355+
STATSTYPE mAverage, mStdDevi; \
356+
uint8_t _reserved[CNANOVDB_ALIGNMENT_PADDING(sizeof(cnanovdb_mask##LOG2DIM)+sizeof(VALUETYPE)*2+sizeof(STATSTYPE)*2+sizeof(cnanovdb_coord)*2+sizeof(int32_t)+sizeof(uint32_t), CNANOVDB_DATA_ALIGNMENT)]; \
353357
cnanovdb_tileentry##SUFFIX mTable[1u << (3*LOG2DIM)]; \
354358
} cnanovdb_node##LEVEL##SUFFIX; \
355359
\
@@ -402,8 +406,8 @@ cnanovdb_tree_getNode##LEVEL##SUFFIX(const CNANOVDB_GLOBAL cnanovdb_treedata *RE
402406
\
403407
/**/
404408

405-
#define CREATE_INTERNAL_NODE(CHILDLEVEL, LEVEL, LOG2DIM, TOTAL, VALUETYPE, SUFFIX) \
406-
CREATE_INTERNAL_NODE_int(CHILDLEVEL, LEVEL, LOG2DIM, (TOTAL-LOG2DIM), TOTAL, ((1u << TOTAL) - 1u), VALUETYPE, SUFFIX)
409+
#define CREATE_INTERNAL_NODE(CHILDLEVEL, LEVEL, LOG2DIM, TOTAL, VALUETYPE, STATSTYPE, SUFFIX) \
410+
CREATE_INTERNAL_NODE_int(CHILDLEVEL, LEVEL, LOG2DIM, (TOTAL-LOG2DIM), TOTAL, ((1u << TOTAL) - 1u), VALUETYPE, STATSTYPE, SUFFIX)
407411

408412

409413
#ifdef USE_SINGLE_ROOT_KEY
@@ -450,7 +454,7 @@ CREATE_INTERNAL_NODE_int(CHILDLEVEL, LEVEL, LOG2DIM, (TOTAL-LOG2DIM), TOTAL, ((1
450454
#endif
451455

452456

453-
#define CREATE_ROOTDATA(VALUETYPE, SUFFIX) \
457+
#define CREATE_ROOTDATA(VALUETYPE, STATSTYPE, SUFFIX) \
454458
typedef struct \
455459
{ \
456460
DEFINE_KEY(key); \
@@ -465,8 +469,10 @@ typedef struct \
465469
cnanovdb_coord mBBox_min, mBBox_max; \
466470
uint64_t mActiveVoxelCount; \
467471
uint32_t mTileCount; \
468-
VALUETYPE mBackground, mValueMin, mValueMax; \
469-
uint32_t _reserved[CNANOVDB_ALIGNMENT_PADDING(sizeof(cnanovdb_coord)*2+sizeof(uint64_t)+sizeof(uint32_t)+sizeof(VALUETYPE)*3, CNANOVDB_DATA_ALIGNMENT)/4]; \
472+
VALUETYPE mBackground; \
473+
VALUETYPE mMinimum, mMaximum; \
474+
STATSTYPE mAverage, mStdDevi; \
475+
uint32_t _reserved[CNANOVDB_ALIGNMENT_PADDING(sizeof(cnanovdb_coord)*2+sizeof(uint64_t)+sizeof(uint32_t)+sizeof(VALUETYPE)*3+sizeof(STATSTYPE)*2, CNANOVDB_DATA_ALIGNMENT)/4]; \
470476
} cnanovdb_rootdata##SUFFIX; \
471477
\
472478
const CNANOVDB_GLOBAL cnanovdb_rootdata##SUFFIX * \
@@ -579,17 +585,17 @@ cnanovdb_readaccessor_getValue##SUFFIX(cnanovdb_readaccessor *RESTRICT acc, cons
579585
/**/
580586

581587

582-
#define CREATE_GRIDTYPE(VALUETYPE, SUFFIX) \
588+
#define CREATE_GRIDTYPE(VALUETYPE, STATSTYPE, SUFFIX) \
583589
CREATE_TILEENTRY(VALUETYPE, SUFFIX) \
584-
CREATE_LEAF_NODE(0, 3, 3, VALUETYPE, SUFFIX) \
585-
CREATE_INTERNAL_NODE(0, 1, 4, 7, VALUETYPE, SUFFIX) \
586-
CREATE_INTERNAL_NODE(1, 2, 5, 12, VALUETYPE, SUFFIX) \
587-
CREATE_ROOTDATA(VALUETYPE, SUFFIX) \
590+
CREATE_LEAF_NODE(0, 3, 3, VALUETYPE, STATSTYPE, SUFFIX) \
591+
CREATE_INTERNAL_NODE(0, 1, 4, 7, VALUETYPE, STATSTYPE, SUFFIX) \
592+
CREATE_INTERNAL_NODE(1, 2, 5, 12, VALUETYPE, STATSTYPE, SUFFIX) \
593+
CREATE_ROOTDATA(VALUETYPE, STATSTYPE, SUFFIX) \
588594
CREATE_ACCESSOR(VALUETYPE, SUFFIX) \
589595
/**/
590596

591-
CREATE_GRIDTYPE(float, F)
592-
CREATE_GRIDTYPE(cnanovdb_Vec3F, F3)
597+
CREATE_GRIDTYPE(float, float, F)
598+
CREATE_GRIDTYPE(cnanovdb_Vec3F, float, F3)
593599

594600
int
595601
cnanovdb_griddata_valid(const CNANOVDB_GLOBAL cnanovdb_griddata *RESTRICT grid)

0 commit comments

Comments
 (0)