NVIDIA IndeX API nvidia_logo_transpbg.gif Up
ivdb_subset.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_IVDB_SUBSET_H
8#define NVIDIA_INDEX_IVDB_SUBSET_H
9
10#include <mi/dice.h>
11#include <mi/base/interface_declare.h>
12#include <mi/math/vector.h>
13
15
16namespace nv {
17namespace index {
18
20class IVDB_subset;
21class IVDB_subset_device;
22
32 public mi::base::Interface_declare<0xe0555782,0x2353,0x4d3b,0xaf,0x9d,0xa4,0xbb,0xbc,0x10,0xa9,0xec,
33 IDistributed_data_subset>
34{
38public:
40 struct NVDB_version {
41 mi::Uint64 magic;
42 mi::Uint32 major;
43 mi::Uint32 minor;
44 };
45
46 struct NVDB_grid_storage {
47 mi::Size size;
48 void* data;
49 };
50
51public:
61 mi::Uint32 attribute_index,
62 mi::Size grid_memory_size,
63 NVDB_version nvdb_version) = 0;
64
71 virtual NVDB_grid_storage get_grid_storage(
72 mi::Uint32 attribute_index) const = 0;
73
80};
81
91 public mi::base::Interface_declare<0xee4883a1,0xf5d3,0x4a42,0xaa,0x81,0x37,0xdd,0xe3,0x6c,0x8e,0xc8,
92 IDistributed_data_subset_device>
93{
94public:
96
97public:
98 virtual NVDB_version nvdb_version() const = 0;
99
100 virtual void* grid_buffer(
101 mi::Uint32 attribute_index) = 0;
102
103 virtual mi::Size grid_buffer_size(
104 mi::Uint32 attribute_index) const = 0;
105 virtual bool grid_buffer_resize(
106 mi::Uint32 attribute_index,
107 const mi::Size new_size) = 0;
108
109 // #todo take ownership?
110 // - set grid_data_size to ~0x00000000u for unknown size.
111 virtual bool adopt_grid_buffer(
112 mi::Uint32 attribute_index,
113 void* grid_data,
114 mi::Size grid_data_size) = 0;
115};
116
117} // namespace index
118} // namespace nv
119
120#endif // NVIDIA_INDEX_IVDB_SUBSET_H
Distributed data storage class for VDB subsets hosted on a GPU device.
Definition: ivdb_subset.h:93
Distributed data storage class for VDB subsets.
Definition: ivdb_subset.h:34
virtual IVDB_subset_device * get_device_subset() const =0
Accessing the device VDB subset for direct access to the VDB device resources.
virtual bool generate_grid_storage(mi::Uint32 attribute_index, mi::Size grid_memory_size, NVDB_version nvdb_version)=0
Generating a grid storage.
virtual NVDB_grid_storage get_grid_storage(mi::Uint32 attribute_index) const =0
Accessing the internal grid storage.
Distributed subset interaces for a large-scale distributed datasets.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349
experimental API - subject to change! ///////////////////////////////////////////////////////////////...
Definition: ivdb_subset.h:40
mi::Uint64 magic
! Magic number.
Definition: ivdb_subset.h:41
mi::Uint32 minor
! Minor of NanoVDB version.
Definition: ivdb_subset.h:43
mi::Uint32 major
! Major of NanoVDB version.
Definition: ivdb_subset.h:42