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... | |
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.
|
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.
[in] | query_bbox | Defines 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_transaction | The DiCE transaction that the data access runs in. |
|
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.
|
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.
|
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.
|
pure virtual |
The scene element that corresponds to the accessed data.