NVIDIA IndeX API nvidia_logo_transpbg.gif Up
idistributed_data_access.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_IDISTRIBUTED_DATA_ACCESS_H
8#define NVIDIA_INDEX_IDISTRIBUTED_DATA_ACCESS_H
9
10#include <mi/dice.h>
11#include <mi/base/interface_declare.h>
12
13#include <nv/index/iheight_field_subset.h> // required by deprecated interface classes
14
16
17namespace nv
18{
19namespace index
20{
21
58 public mi::base::Interface_declare<0xd9ff4bf,0xa458,0x44f4,0x8f,0x44,0xd4,0x16,0x4c,0x14,0x4d,0x99>
59{
60public:
79 virtual mi::Sint32 access(
80 const mi::math::Bbox_struct<mi::Float32, 3>& query_bbox,
81 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
82
94 virtual const mi::math::Bbox_struct<mi::Float32, 3>& get_bounding_box() const = 0;
95
101 virtual mi::neuraylib::Tag_struct get_scene_element() const = 0;
102
103
121};
122
156 public mi::base::Interface_declare<0x5f7ac66c,0x5af7,0x4af9,0xa3,0xe8,0x8f,0xac,0xf0,0x08,0x9f,0x4c>
157{
158public:
176 virtual mi::Sint32 access(
177 const mi::math::Bbox_struct<mi::Uint32, 2>& query_bbox,
178 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
179
190 virtual const mi::math::Bbox_struct<mi::Uint32, 2>& get_patch_bounding_box() const = 0;
191
197 virtual mi::neuraylib::Tag_struct get_scene_element() const = 0;
198
210 virtual mi::Float32* get_elevation_values() const = 0;
211
225 virtual mi::math::Vector_struct<mi::Float32, 3>* get_normal_values() const = 0;
226};
227//
228//
229// -------------------------------------------------------------------
230
239 public mi::base::Interface_declare<0xc77ead83,0xf351,0x4160,0x8c,0x15,0x40,0xbc,0x86,0x21,0x4e,0xf0,
240 mi::neuraylib::IElement>
241{
242public:
257 mi::neuraylib::Tag_struct scene_element_tag) const = 0;
258
276 const mi::base::Uuid& dataset_type,
277 mi::neuraylib::Tag_struct scene_element_tag) const = 0;
278
301 template <class T>
303 mi::neuraylib::Tag_struct scene_element_tag) const
304 {
305 IDistributed_data_access* t = static_cast<IDistributed_data_access*>(create_distributed_data_access(typename T::IID(), scene_element_tag));
306 return t;
307 }
308};
309
310}} // namespace index / nv
311
312#endif // NVIDIA_INDEX_IDISTRIBUTED_DATA_ACCESS_H
Interface class that exposes distributed data access interfaces for specific scene element.
Definition: idistributed_data_access.h:241
virtual IRegular_heightfield_data_access * create_regular_heightfield_data_access(mi::neuraylib::Tag_struct scene_element_tag) const =0
Exposes an interface class that allows accessing distributed heightfield data.
virtual IDistributed_data_access * create_distributed_data_access(const mi::base::Uuid &dataset_type, mi::neuraylib::Tag_struct scene_element_tag) const =0
Creates an data access functionality specific for a distributed data type.
IDistributed_data_access * create_distributed_data_access(mi::neuraylib::Tag_struct scene_element_tag) const
Convenience function for creating data access for a given distributed dataset type.
Definition: idistributed_data_access.h:302
Interface class enabling custom distributed data accesses.
Definition: idistributed_data_access.h:59
virtual const IDistributed_data_subset * get_distributed_data_subset() const =0
Returns the accessed and assembled distributed data subset.
virtual const mi::math::Bbox_struct< mi::Float32, 3 > & get_bounding_box() const =0
Get the determined bounding box that bounds the accessed distributed data.
virtual mi::neuraylib::Tag_struct get_scene_element() const =0
The volume scene element that corresponds to the accessed distributed dataset.
virtual mi::Sint32 access(const mi::math::Bbox_struct< mi::Float32, 3 > &query_bbox, mi::neuraylib::IDice_transaction *dice_transaction)=0
Accessing a subset of a distributed dataset.
A data subset represent the unique entity representing a distributed dataset inside a single subregio...
Definition: idistributed_data_subset.h:157
Interface class for accessing the distributed heightfield data.
Definition: idistributed_data_access.h:157
virtual mi::neuraylib::Tag_struct get_scene_element() const =0
The scene element that corresponds to the accessed data.
virtual mi::math::Vector_struct< mi::Float32, 3 > * get_normal_values() const =0
The accessed heightfield normal vector values that correspond to the heightfield's elevation values.
virtual mi::Sint32 access(const mi::math::Bbox_struct< mi::Uint32, 2 > &query_bbox, mi::neuraylib::IDice_transaction *dice_transaction)=0
Querying the elevation values of a heightfield dataset.
virtual mi::Float32 * get_elevation_values() const =0
The accessed heightfield elevation values stored locally.
virtual const mi::math::Bbox_struct< mi::Uint32, 2 > & get_patch_bounding_box() const =0
Getting the computed 2D bounding box in which the accessed elevation data is defined.
Distributed subset interaces for a large-scale distributed datasets.
Distributed subsets of height fields.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349