7#ifndef NVIDIA_INDEX_IDISTRIBUTED_DATA_IMPORT_CALLBACK_H
8#define NVIDIA_INDEX_IDISTRIBUTED_DATA_IMPORT_CALLBACK_H
11#include <mi/base/interface_declare.h>
32 public mi::base::Interface_declare<0x78a31b0c,0x5691,0x4278,0x98,0xba,0xa6,0x82,0xab,0xd7,0x31,0xdf,
33 mi::neuraylib::ISerializable>
46 virtual mi::math::Matrix_struct<mi::Float32, 4, 4>
get_transform()
const = 0;
80 public mi::base::Interface_declare<0x61a87e48,0x910a,0x4f48,0xba,0xca,0x04,0x3b,0x9b,0xe2,0x62,0xec,
81 mi::neuraylib::ISerializable>
95 const mi::math::Bbox_struct<mi::Float32, 3>& bounding_box,
96 mi::neuraylib::IDice_transaction* dice_transaction)
const = 0;
112 const mi::math::Bbox_struct<mi::Float32, 3>& bounding_box,
114 mi::neuraylib::IDice_transaction* dice_transaction)
const = 0;
131 const mi::math::Bbox_struct<mi::Float32, 3>& bounding_box,
132 mi::Uint32 time_step,
134 mi::neuraylib::IDice_transaction* dice_transaction)
const = 0;
185template <mi::Uint32 id1, mi::Uint16 id2, mi::Uint16 id3,
186 mi::Uint8 id4, mi::Uint8 id5, mi::Uint8 id6, mi::Uint8 id7,
187 mi::Uint8 id8, mi::Uint8 id9, mi::Uint8 id10, mi::Uint8 id11,
190 public mi::neuraylib::Base<id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,I>
204 const mi::math::Bbox_struct<mi::Sint32, 3>& bounding_box,
205 mi::neuraylib::IDice_transaction* dice_transaction)
const = 0;
217 const mi::math::Bbox_struct<mi::Float32, 3>& bounding_box,
218 mi::neuraylib::IDice_transaction* dice_transaction)
const
220 mi::math::Bbox_struct<mi::Sint32, 3> bbox;
221 bbox.min.x =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.x));
222 bbox.min.y =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.y));
223 bbox.min.z =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.z));
224 bbox.max.x =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.x));
225 bbox.max.y =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.y));
226 bbox.max.z =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.z));
227 return estimate(bbox, dice_transaction);
230 using mi::neuraylib::Base<id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, I>
::create;
246 const mi::math::Bbox_struct<mi::Sint32, 3>& bounding_box,
248 mi::neuraylib::IDice_transaction* dice_transaction)
const = 0;
264 const mi::math::Bbox_struct<mi::Float32, 3>& bounding_box,
266 mi::neuraylib::IDice_transaction* dice_transaction)
const
268 mi::math::Bbox_struct<mi::Sint32, 3> bbox;
269 bbox.min.x =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.x));
270 bbox.min.y =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.y));
271 bbox.min.z =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.z));
272 bbox.max.x =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.x));
273 bbox.max.y =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.y));
274 bbox.max.z =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.z));
275 return create(bbox, factory, dice_transaction);
293 const mi::math::Bbox_struct<mi::Sint32, 3>& bounding_box,
294 mi::Uint32 time_step,
296 mi::neuraylib::IDice_transaction* dice_transaction)
const
301 (void) dice_transaction;
321 const mi::math::Bbox_struct<mi::Float32, 3>& bounding_box,
322 mi::Uint32 time_step,
324 mi::neuraylib::IDice_transaction* dice_transaction)
const
326 mi::math::Bbox_struct<mi::Sint32, 3> bbox;
327 bbox.min.x =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.x));
328 bbox.min.y =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.y));
329 bbox.min.z =
static_cast<mi::Sint32
>(mi::math::floor(bounding_box.min.z));
330 bbox.max.x =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.x));
331 bbox.max.y =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.y));
332 bbox.max.z =
static_cast<mi::Sint32
>(mi::math::ceil(bounding_box.max.z));
333 return create(bbox, time_step, factory, dice_transaction);
338 virtual void serialize( mi::neuraylib::ISerializer* serializer)
const
346 virtual void deserialize( mi::neuraylib::IDeserializer* deserializer)
369template <mi::Uint32 id1, mi::Uint16 id2, mi::Uint16 id3,
370 mi::Uint8 id4, mi::Uint8 id5, mi::Uint8 id6, mi::Uint8 id7,
371 mi::Uint8 id8, mi::Uint8 id9, mi::Uint8 id10, mi::Uint8 id11,
372 class I = IDistributed_data_import_callback>
374 public mi::neuraylib::Base<id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,I>
377 using mi::neuraylib::Base<id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, I>
::create;
386 const mi::math::Bbox_struct<mi::Float32, 3>& bbox,
387 mi::Uint32 time_step,
389 mi::neuraylib::IDice_transaction* dice_transaction)
const
394 (void)dice_transaction;
401 virtual void serialize(mi::neuraylib::ISerializer* serializer)
const
409 virtual void deserialize(mi::neuraylib::IDeserializer* deserializer)
This mixin class can be used to implement the IDistributed_data_import_callback interface.
Definition: idistributed_data_import_callback.h:375
virtual void serialize(mi::neuraylib::ISerializer *serializer) const
Empty body, i.e., no member data is serialized.
Definition: idistributed_data_import_callback.h:401
virtual IDistributed_data_subset * create(const mi::math::Bbox_struct< mi::Float32, 3 > &bbox, mi::Uint32 time_step, IData_subset_factory *factory, mi::neuraylib::IDice_transaction *dice_transaction) const
Empty body, i.e., no data import required based on floating-point bounding boxes.
Definition: idistributed_data_import_callback.h:385
virtual const char * get_configuration() const
Empty body, i.e., no configuration for the session exporter given.
Definition: idistributed_data_import_callback.h:419
virtual void deserialize(mi::neuraylib::IDeserializer *deserializer)
Empty body, i.e., no member data is deserialized.
Definition: idistributed_data_import_callback.h:409
const IDistributed_data_properties * get_dataset_properties() const
Empty body, i.e., no data properties exposed.
Definition: idistributed_data_import_callback.h:416
This mixin class can be used to implement the IDistributed_data_import_callback interface.
Definition: idistributed_data_import_callback.h:191
virtual IDistributed_data_subset * create(const mi::math::Bbox_struct< mi::Float32, 3 > &bounding_box, mi::Uint32 time_step, IData_subset_factory *factory, mi::neuraylib::IDice_transaction *dice_transaction) const
Implementation maps floating-point bounding box to a signed integer bounding box and call respective ...
Definition: idistributed_data_import_callback.h:320
virtual mi::Size estimate(const mi::math::Bbox_struct< mi::Float32, 3 > &bounding_box, mi::neuraylib::IDice_transaction *dice_transaction) const
Implementation maps floating-point bounding box to a signed integer bounding box and call respective ...
Definition: idistributed_data_import_callback.h:216
virtual void serialize(mi::neuraylib::ISerializer *serializer) const
Empty body, i.e., no member data is serialized.
Definition: idistributed_data_import_callback.h:338
virtual IDistributed_data_subset * create(const mi::math::Bbox_struct< mi::Float32, 3 > &bounding_box, IData_subset_factory *factory, mi::neuraylib::IDice_transaction *dice_transaction) const
Implementation maps floating-point bounding box to a signed integer bounding box and call respective ...
Definition: idistributed_data_import_callback.h:263
virtual IDistributed_data_subset * create(const mi::math::Bbox_struct< mi::Sint32, 3 > &bounding_box, mi::Uint32 time_step, IData_subset_factory *factory, mi::neuraylib::IDice_transaction *dice_transaction) const
Shall create and provide the dataset subset contained in the given bounding box for a given time step...
Definition: idistributed_data_import_callback.h:292
const IDistributed_data_properties * get_dataset_properties() const
Empty body, i.e., no data properties exposed.
Definition: idistributed_data_import_callback.h:353
virtual IDistributed_data_subset * create(const mi::math::Bbox_struct< mi::Sint32, 3 > &bounding_box, IData_subset_factory *factory, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Shall create and provide the dataset subset contained in the given bounding box.
virtual void deserialize(mi::neuraylib::IDeserializer *deserializer)
Empty body, i.e., no member data is deserialized.
Definition: idistributed_data_import_callback.h:346
virtual const char * get_configuration() const
Empty body, i.e., no configuration for the session exporter given.
Definition: idistributed_data_import_callback.h:356
virtual mi::Size estimate(const mi::math::Bbox_struct< mi::Sint32, 3 > &bounding_box, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Shall provide the size of the dataset that is contained in the given bounding box.
Factory for creating an empty data subset for a specific distributed dataset type.
Definition: idistributed_data_subset.h:259
Import callback mechanism for implementing distributed and parallel data loading from arbitrary sourc...
Definition: idistributed_data_import_callback.h:82
virtual IDistributed_data_subset * create(const mi::math::Bbox_struct< mi::Float32, 3 > &bounding_box, IData_subset_factory *factory, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Shall create and provide the dataset subset contained in the given bounding box.
virtual mi::base::Uuid subset_id() const =0
Shall provide the interface id that tells the NVIDIA IndeX library the kind of IDistributed_data_subs...
virtual mi::Size estimate(const mi::math::Bbox_struct< mi::Float32, 3 > &bounding_box, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Shall provide the size of the dataset that is contained in the given bounding box.
virtual IDistributed_data_subset * create(const mi::math::Bbox_struct< mi::Float32, 3 > &bounding_box, mi::Uint32 time_step, IData_subset_factory *factory, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Shall create and provide the dataset subset contained in the given bounding box for a given time step...
virtual const char * get_configuration() const =0
Returns optional configuration settings that may be used by the library for the session export mechan...
virtual const IDistributed_data_properties * get_dataset_properties() const =0
Shall provide an instance of IDistributed_data_properties giving basic property information about the...
This class gives basic properties of distributed datasets imported using the parallel data loading of...
Definition: idistributed_data_import_callback.h:34
virtual mi::math::Matrix_struct< mi::Float32, 4, 4 > get_transform() const =0
Returns an optional transformation inherently attached to the dataset.
virtual mi::math::Bbox_struct< mi::Float32, 3 > get_bounding_box() const =0
Returns the axis-aligned bounding box of the dataset in its local object space.
A data subset represent the unique entity representing a distributed dataset inside a single subregio...
Definition: idistributed_data_subset.h:157
Distributed subset interaces for a large-scale distributed datasets.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349