NVIDIA IndeX API nvidia_logo_transpbg.gif Up
nv::index::IRegular_heightfield_data_access Class Referenceabstract

Interface class for accessing the distributed heightfield data. More...

#include <idistributed_data_access.h>

Inherits mi::base::Interface_declare< 0x5f7ac66c, ... >.

Public Member Functions

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. More...
 
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. More...
 
virtual mi::neuraylib::Tag_struct get_scene_element () const =0
 The scene element that corresponds to the accessed data. More...
 
virtual mi::Float32 * get_elevation_values () const =0
 The accessed heightfield elevation values stored locally. More...
 
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. More...
 

Detailed Description

Interface class for accessing the distributed heightfield data.

The access functionality, for instance, allows implementing user-defined computing algorithms operating on the distributed elevation data to facilitate today's and future workflow functionalities.

The amount of elevation values queried from the cluster environment relies on the 2D bounding box or patch given by the user. The NVIDIA IndeX library then manages the cluster-wide data access and returns a local copy of the heightfield's elevation values inside the requested extent. The size of the bounding box affects the amount of elevation values that needs to be routed through the network and the size of the memory allocated for the local data copy. Since network bandwidth is limited and main memory is a scarce resource care needs to be taken when using the access functionality. The elevation export functionalities, which also rely on the access functionality, query multiple smaller sized data chucks in sequential order rather than accessing large amounts of data at once.

The interface class IDistributed_data_access_factory returns an interface specific to a regular heightfield referred to by the scene element's tag.

Deprecated:
This class shall be removed as the deprecated regular height field data shall be removed as well.

Member Function Documentation

 access()

virtual mi::Sint32 nv::index::IRegular_heightfield_data_access::access ( const mi::math::Bbox_struct< mi::Uint32, 2 > &  query_bbox,
mi::neuraylib::IDice_transaction *  dice_transaction 
)
pure virtual

Querying the elevation values of a heightfield dataset.

The query relies on the user-defined 2D bounding box and creates a local copy of the height data. The bounding box may be larger than the height data uploaded to the cluster. In such a case, the access returns the data contained in the both the user-defined bounding box and extent that bounds the uploaded heightfield.

Parameters
[in]query_bboxDefines the 2D bounding box to perform the heightfield data access query. The bounding box is defined in the scene element's local 3D space.
[in]dice_transactionThe DiCE transaction that the data access runs in.
Returns
a negative value on error.

 get_elevation_values()

virtual mi::Float32 * nv::index::IRegular_heightfield_data_access::get_elevation_values ( ) const
pure virtual

The accessed heightfield elevation values stored locally.

The extent of the stored values is defined by the computed 2D bounding box. The method returns the pointer to the elevation value array. The interface class 'owns' the elevation values, i.e., the destructor of the implemented interface class deletes the local data.

Returns
The pointer to the first element of the accessed elevation values. The height values are defined in J-first and I-last order.

 get_normal_values()

virtual mi::math::Vector_struct< mi::Float32, 3 > * nv::index::IRegular_heightfield_data_access::get_normal_values ( ) const
pure virtual

The accessed heightfield normal vector values that correspond to the heightfield's elevation values.

The normal vector values are stored locally. The extent of the stored values is defined by the computed 2D bounding box. The method returns the pointer to the normal vector value array. The interface class 'owns' the normal values, i.e., the destructor of the implemented interface class deletes the local data.

Returns
The pointer to the first element of the accessed normal values. Each normal corresponds to a height value, i.e., the normal values are defined in J-first and I-last order.

 get_patch_bounding_box()

virtual const mi::math::Bbox_struct< mi::Uint32, 2 > & nv::index::IRegular_heightfield_data_access::get_patch_bounding_box ( ) const
pure virtual

Getting the computed 2D bounding box in which the accessed elevation data is defined.

The computed bounding box may be different from the bounding box used to query the heightfield data if, for instance, all or part uploaded data lies outside the user-defined bounding box.

Returns
The bounding box of the accessed data. The bounding box is defined in the scene element's local 3D space.

 get_scene_element()

virtual mi::neuraylib::Tag_struct nv::index::IRegular_heightfield_data_access::get_scene_element ( ) const
pure virtual

The scene element that corresponds to the accessed data.

Returns
The unique tag that references the heightfield scene element.

The documentation for this class was generated from the following file: