NVIDIA IndeX API nvidia_logo_transpbg.gif Up
iirregular_volume_subset.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_IIRREGULAR_VOLUME_SUBSET_H
8#define NVIDIA_INDEX_IIRREGULAR_VOLUME_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
37 public mi::base::Interface_declare<0xac50a241,0x2b4a,0x4e07,0x98,0x9e,0x04,0xa3,0x21,0x95,0x31,0x2f,
38 IDistributed_data_subset>
39{
40public:
47 struct Cell
48 {
49 mi::Uint32 nb_faces;
50 mi::Uint32 start_face_index;
51 };
52
59 struct Face
60 {
61 mi::Uint32 nb_vertices;
62 mi::Uint32 start_vertex_index;
63 };
64
75 {
76 // mesh geometry and topology info
77 mi::Uint32 nb_vertices;
79 mi::Uint32 nb_faces;
81 mi::Uint32 nb_cells;
82
83 // mesh geometry traits
85 };
86
94 {
95 mi::math::Vector_struct<mi::Float32, 3>* vertices;
96 mi::Uint32* face_vtx_indices;
98 mi::Uint32* cell_face_indices;
100 };
101
105 {
108 };
109
113 {
126 };
127
133 {
136 mi::Uint32 nb_attrib_values;
137 };
138
146 {
148 };
149
164 const Mesh_parameters& mesh_params,
165 Mesh_storage& mesh_storage) = 0;
166
183 mi::Uint32 attrib_index,
184 const Attribute_parameters& attrib_params,
185 Attribute_storage& attrib_storage) = 0;
186
195
203 virtual Mesh_storage get_mesh() const = 0;
204
209 virtual mi::Uint32 get_nb_attributes() const = 0;
210
219 mi::Uint32 attrib_index,
220 Attribute_parameters& attrib_params) const = 0;
221
228 //
229 virtual bool get_attribute(
230 mi::Uint32 attrib_index,
231 Attribute_storage& attrib_storage) const = 0;
232
239 virtual mi::Sint32 get_gpu_device_id() const = 0;
240
251 mi::Uint32 attrib_index,
252 Attribute_storage& attrib_storage) const = 0;
253
256 mi::Uint32 attrib_index,
257 Attribute_storage& attrib_storage) const = 0;
258
261
262
267 virtual bool use_cache_file(
268 const char* filename,
269 mi::Uint32 mode,
270 mi::Uint32 flags) = 0;
271};
272
273} // namespace index
274} // namespace nv
275
276#endif // NVIDIA_INDEX_IIRREGULAR_VOLUME_SUBSET_H
Distributed data storage class for irregular volume subsets.
Definition: iirregular_volume_subset.h:39
virtual bool use_cache_file(const char *filename, mi::Uint32 mode, mi::Uint32 flags)=0
Caching interface (preliminary).
virtual bool get_attribute_parameters(mi::Uint32 attrib_index, Attribute_parameters &attrib_params) const =0
Get the attribute parameters of a currently valid attribute set for a given index.
virtual bool generate_attribute_storage(mi::Uint32 attrib_index, const Attribute_parameters &attrib_params, Attribute_storage &attrib_storage)=0
Generate and initialize an instance of irregular volume attribute set storage.
virtual Mesh_storage get_mesh() const =0
Get the current valid irregular volume mesh storage.
virtual bool get_attribute(mi::Uint32 attrib_index, Attribute_storage &attrib_storage) const =0
Get the currently valid attribute set storage for a given attribute index.
virtual mi::Uint32 get_nb_attributes() const =0
Get the current number of valid attribute sets.
virtual Mesh_parameters get_mesh_parameters() const =0
Get the irregular volume mesh parameters of the currently valid mesh storage.
virtual mi::Sint32 get_gpu_device_id() const =0
GPU device id if the buffer is located on a GPU device.
virtual bool get_backup_attribute_device_storage(mi::Uint32 attrib_index, Attribute_storage &attrib_storage) const =0
Attribute_type
Types of attribute set values.
Definition: iirregular_volume_subset.h:113
@ ATTRIB_TYPE_UINT16_3
16bit unsigned integer vector attribute type with three components.
Definition: iirregular_volume_subset.h:120
@ ATTRIB_TYPE_UINT8
8bit unsigned integer scalar attribute type.
Definition: iirregular_volume_subset.h:114
@ ATTRIB_TYPE_UINT8_3
8bit unsigned integer vector attribute type with three components.
Definition: iirregular_volume_subset.h:116
@ ATTRIB_TYPE_FLOAT32_4
32bit floating point vector attribute type with four components.
Definition: iirregular_volume_subset.h:125
@ ATTRIB_TYPE_FLOAT32_3
32bit floating point vector attribute type with three components.
Definition: iirregular_volume_subset.h:124
@ ATTRIB_TYPE_FLOAT32
32bit floating point scalar attribute type.
Definition: iirregular_volume_subset.h:122
@ ATTRIB_TYPE_FLOAT32_2
32bit floating point vector attribute type with two components.
Definition: iirregular_volume_subset.h:123
@ ATTRIB_TYPE_UINT16
16bit unsigned integer scalar attribute type.
Definition: iirregular_volume_subset.h:118
@ ATTRIB_TYPE_UINT16_4
16bit unsigned integer vector attribute type with four components.
Definition: iirregular_volume_subset.h:121
@ ATTRIB_TYPE_UINT8_4
8bit unsigned integer vector attribute type with four components.
Definition: iirregular_volume_subset.h:117
@ ATTRIB_TYPE_UINT8_2
8bit unsigned integer vector attribute type with two components.
Definition: iirregular_volume_subset.h:115
@ ATTRIB_TYPE_UINT16_2
16bit unsigned integer vector attribute type with two components.
Definition: iirregular_volume_subset.h:119
virtual bool swap_active_attribute_storage()=0
Attribute_affiliation
Types of attribute set affiliations.
Definition: iirregular_volume_subset.h:105
@ ATTRIB_AFFIL_PER_CELL
Per irregular volume mesh-cell attribute.
Definition: iirregular_volume_subset.h:107
@ ATTRIB_AFFIL_PER_VERTEX
Per irregular volume mesh-vertex attribute.
Definition: iirregular_volume_subset.h:106
virtual bool get_active_attribute_device_storage(mi::Uint32 attrib_index, Attribute_storage &attrib_storage) const =0
Get the currently valid attribute set device-storage for a given attribute index.
virtual bool generate_mesh_storage(const Mesh_parameters &mesh_params, Mesh_storage &mesh_storage)=0
Generate and initialize an instance of irregular volume mesh storage.
Distributed subset interaces for a large-scale distributed datasets.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349
Irregular volume attribute parameters.
Definition: iirregular_volume_subset.h:133
mi::Uint32 nb_attrib_values
Number of attribute values in number of elements.
Definition: iirregular_volume_subset.h:136
Attribute_type type
Attribute type. See Attribute_type.
Definition: iirregular_volume_subset.h:135
Attribute_affiliation affiliation
Attribute affiliation. See Attribute_affiliation.
Definition: iirregular_volume_subset.h:134
Attribute storage.
Definition: iirregular_volume_subset.h:146
void * attrib_values
The attribute array.
Definition: iirregular_volume_subset.h:147
Irregular volume cell definition.
Definition: iirregular_volume_subset.h:48
mi::Uint32 start_face_index
Starting index into the cell-face index array.
Definition: iirregular_volume_subset.h:50
mi::Uint32 nb_faces
Number of faces compounding this cell.
Definition: iirregular_volume_subset.h:49
Irregular volume cell-face definition.
Definition: iirregular_volume_subset.h:60
mi::Uint32 start_vertex_index
Starting index into the face-vertex index array.
Definition: iirregular_volume_subset.h:62
mi::Uint32 nb_vertices
Number of vertices in the face.
Definition: iirregular_volume_subset.h:61
Irregular volume mesh storage parameters.
Definition: iirregular_volume_subset.h:75
mi::Uint32 nb_face_vtx_indices
Size of the face vertex index array in number of elements.
Definition: iirregular_volume_subset.h:78
mi::Uint32 nb_vertices
Size of the vertex array in number of vertices.
Definition: iirregular_volume_subset.h:77
mi::Float32 global_max_edge_length
The length of the longest edge in the irregular volume mesh.
Definition: iirregular_volume_subset.h:84
mi::Uint32 nb_faces
Size of the face array in number of faces.
Definition: iirregular_volume_subset.h:79
mi::Uint32 nb_cells
Size of the cell array in number of faces.
Definition: iirregular_volume_subset.h:81
mi::Uint32 nb_cell_face_indices
Size of the cell face index array in number of elements.
Definition: iirregular_volume_subset.h:80
Irregular volume mesh storage.
Definition: iirregular_volume_subset.h:94
mi::Uint32 * cell_face_indices
The cell-face index array.
Definition: iirregular_volume_subset.h:98
Cell * cells
The cell array.
Definition: iirregular_volume_subset.h:99
mi::Uint32 * face_vtx_indices
The face-vertex index array.
Definition: iirregular_volume_subset.h:96
mi::math::Vector_struct< mi::Float32, 3 > * vertices
The vertex array.
Definition: iirregular_volume_subset.h:95
Face * faces
The face array.
Definition: iirregular_volume_subset.h:97