7#ifndef NVIDIA_INDEX_IHEIGHT_FIELD_SUBSET_H
8#define NVIDIA_INDEX_IHEIGHT_FIELD_SUBSET_H
11#include <mi/math/vector.h>
29 public mi::base::Interface_declare<0x88014528,0xd6b8,0x4b17,0x9d,0x12,0x74,0x9c,0xe2,0x88,0x46,0x6b,
30 IDistributed_data_subset_data_descriptor>
109 public mi::base::Interface_declare<0xe6fc895a,0xdd21,0x4f63,0xac,0x99,0x78,0xe3,0x4a,0x95,0x68,0x26,
110 IDistributed_data_subset>
129 mi::math::Vector_struct<mi::Float32, 3>*
normals;
164 mi::Uint32 tile_subset_idx,
165 const void* src_values,
166 mi::Sint32 gpu_device_id,
182 mi::Uint32 tile_subset_idx,
183 const mi::neuraylib::IRDMA_buffer* src_rdma_buffer,
209 const mi::Uint32* tile_subset_indices,
210 mi::Uint32 nb_input_tiles,
211 const mi::Size* src_rdma_buffer_offsets,
212 const mi::neuraylib::IRDMA_buffer* src_rdma_buffer,
248 mi::neuraylib::IRDMA_context* rdma_ctx,
249 mi::Uint32 tile_subset_idx) = 0;
261 return mi::base::numeric_traits<mi::Float32>::quiet_NaN();
270 static inline bool is_hole(mi::Float32 height)
274 const mi::Uint32 height_bin = mi::base::binary_cast<mi::Uint32>(height);
275 const mi::Uint32 hole_bin = mi::base::binary_cast<mi::Uint32>(
get_hole_value());
277 return height_bin == hole_bin;
Subset-data descriptor for tiled height-field subsets.
Definition: iheight_field_subset.h:31
virtual mi::Uint32 get_subset_data_tile_shared_border_size() const =0
Returns the size of the shared height-field data tile boundary.
virtual mi::math::Bbox_struct< mi::Sint32, 3 > get_subset_lod_data_bounds(mi::Uint32 lod_level) const =0
Returns the data bounds covering all height-field data tiles required for the subset on a particular ...
virtual mi::Uint32 get_subset_number_of_data_tiles() const =0
Returns the number of height-field data-tiles available in the height-field data subset.
virtual mi::math::Bbox_struct< mi::Sint32, 3 > get_dataset_lod_level_box(mi::Uint32 lod_level) const =0
Returns the bounding box of the requested level-of-detail in local pixel coordinates.
virtual mi::math::Vector_struct< mi::Uint32, 2 > get_dataset_lod_level_resolution(mi::Uint32 lod_level) const =0
Returns the data resolution of the requested level-of-detail in 2d coordinates.
virtual mi::Uint32 get_dataset_number_of_lod_levels() const =0
Returns the number of levels-of-detail in the height-field dataset.
virtual mi::math::Vector_struct< mi::Uint32, 2 > get_subset_data_tile_dimensions() const =0
Returns the dimensions of the height-field data tiles.
virtual mi::math::Vector_struct< mi::Uint32, 2 > get_subset_lod_level_range() const =0
Returns the level-of-detail range used by the subset.
virtual const Data_tile_info get_subset_data_tile_info(mi::Uint32 tile_index) const =0
Returns the height-field data tile information for a selected data tile.
Distributed data storage class for height-field subsets.
Definition: iheight_field_subset.h:111
virtual const Data_tile_buffer_info access_tile_data_buffer(mi::Uint32 tile_subset_idx) const =0
Query the internal buffer information of the data-subset instance for a height-field data tile in otd...
virtual const Data_tile_buffer_info access_tile_data_buffer(mi::Uint32 tile_subset_idx)=0
Query the internal buffer information of the data-subset instance for a height-field data tile in otd...
virtual const IHeight_field_subset_data_descriptor * get_subset_data_descriptor() const =0
Returns the data descriptor of the subset.
virtual mi::neuraylib::IRDMA_buffer * access_tile_data_buffer_rdma(mi::neuraylib::IRDMA_context *rdma_ctx, mi::Uint32 tile_subset_idx)=0
Creates an RDMA buffer that is a wrapper for of the internal buffer.
virtual bool write_tile_data(mi::Uint32 tile_subset_idx, const void *src_values, mi::Sint32 gpu_device_id, Data_transformation tile_data_transform=DATA_TRANSFORMATION_NONE)=0
Write a height-field data tile to the subset from a memory block in main memory.
static bool is_hole(mi::Float32 height)
Returns whether the given height value represent a hole in the heightfield.
Definition: iheight_field_subset.h:270
virtual bool store_internal_data_representation(const char *output_filename) const =0
This method allows to write a compact cache file of successfully loaded subset data to the file syste...
Data_transformation
Transformation that should be applied on the written data.
Definition: iheight_field_subset.h:143
@ DATA_TRANSFORMATION_NONE
Pass through unchanged.
Definition: iheight_field_subset.h:144
static mi::Float32 get_hole_value()
Returns the height value that encodes a hole in the heightfield data.
Definition: iheight_field_subset.h:259
virtual bool load_internal_data_representation(const char *input_filename)=0
This method allows to load a compact cache file of successfully loaded subset data to the file system...
virtual bool write_tile_data_multiple(const mi::Uint32 *tile_subset_indices, mi::Uint32 nb_input_tiles, const mi::Size *src_rdma_buffer_offsets, const mi::neuraylib::IRDMA_buffer *src_rdma_buffer, Data_transformation tile_data_transform=DATA_TRANSFORMATION_NONE)=0
Write multiple height-field data tiles to the subset from a single IRDMA_buffer.
virtual bool write_tile_data(mi::Uint32 tile_subset_idx, const mi::neuraylib::IRDMA_buffer *src_rdma_buffer, Data_transformation tile_data_transform=DATA_TRANSFORMATION_NONE)=0
Write a height-field data tile to the subset from a IRDMA_buffer.
Distributed subset interaces for a large-scale distributed datasets.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349
Definition of internal buffer information.
Definition: iheight_field_subset.h:124
mi::Float32 * data
Raw memory pointer to internal elevation values.
Definition: iheight_field_subset.h:126
mi::Sint32 gpu_device_id
GPU device id if the buffer is located on a GPU device, -1 to indicate a host buffer.
Definition: iheight_field_subset.h:135
mi::math::Vector_struct< mi::Float32, 3 > * normals
Raw memory pointer to internal normals values.
Definition: iheight_field_subset.h:129
mi::Size size
Number of values in tile.
Definition: iheight_field_subset.h:132
Structual information regarding internal tile data representations.
Definition: iheight_field_subset.h:35
mi::math::Vector_struct< mi::Sint32, 2 > tile_position
Position in tile local space of the the particular tile (on its level-of-detail).
Definition: iheight_field_subset.h:36
mi::Uint32 tile_lod_level
Level-of-detail of the particular tile.
Definition: iheight_field_subset.h:38