NVIDIA IndeX API nvidia_logo_transpbg.gif Up
idistributed_data_edit.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_PROCESSING_H
8#define NVIDIA_INDEX_IDISTRIBUTED_DATA_PROCESSING_H
9
10#include <mi/base/types.h>
11#include <mi/math/vector.h>
12#include <mi/math/bbox.h>
13
14#include <mi/neuraylib/dice.h>
15
16namespace nv
17{
18namespace index
19{
20
48 public mi::base::Interface_declare<0x4b47717d,0x4860,0x4340,0x90,0x53,0xb4,0x68,0x2b,0x00,0x50,0x30>
49{
50public:
51};
52
81 public mi::base::Interface_declare<0x27ff87c3,0xacc3,0x4466,0x8b,0x0c,0x61,0x39,0xe8,0x59,0x61,0xb6>
82{
83public:
95 const IData_subset_processing_task* compute_task,
96 mi::neuraylib::IDice_transaction* dice_transaction) const = 0;
97};
98
99
120 public mi::base::Interface_declare<0xe236fc25,0x8491,0x48fa,0xb4,0x0f,0xfc,0xad,0xeb,0x22,0x51,0x04,IData_subset_processing_task>
121{
122public:
134 mi::math::Bbox_struct<mi::Sint32, 2>& roi) const = 0;
135
158 virtual bool compute(
159 const mi::math::Bbox_struct<mi::Sint32, 2>& ij_patch_range,
160 mi::Float32* elevation_values,
161 mi::neuraylib::IDice_transaction* dice_transaction) const = 0;
162
195 virtual bool compute(
196 const mi::math::Bbox_struct<mi::Sint32, 2>& ij_patch_range,
197 mi::Float32* elevation_values,
198 mi::math::Vector_struct<mi::Float32, 3>* normal_values,
199 mi::neuraylib::IDice_transaction* dice_transaction) const
200 {
201 (void)ij_patch_range; // avoid unused warnings
202 (void)elevation_values; // avoid unused warnings
203 (void)normal_values; // avoid unused warnings
204 (void)dice_transaction; // avoid unused warnings
205
206 return false;
207 }
208
218 virtual bool user_defined_normal_computation() const { return false; }
219};
220
244 public mi::base::Interface_declare<0x5b1758d2,0x8527,0x4a2b,0xa1,0x55,0x4f,0xa6,0x78,0x2e,0xc5,0xfb,IData_subset_compute_task_processing>
245{
246public:
254 virtual void edit(
256 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
257
267 mi::math::Bbox_struct<mi::Float32, 3>& bbox) = 0;
268
277 const IData_subset_processing_task* compute_task,
278 mi::neuraylib::IDice_transaction* dice_transaction) const = 0;
279};
280
281
282}} // namespace index / nv
283
284#endif // NVIDIA_INDEX_IDISTRIBUTED_DATA_PROCESSING_H
Receives user-implemented compute tasks and applies them to distributed data subsets.
Definition: idistributed_data_edit.h:82
virtual void execute_compute_task(const IData_subset_processing_task *compute_task, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Applies the passed user-implemented compute task to a subset of the distribute dataset.
Base interface for distributed datatype specific subset data processing.
Definition: idistributed_data_edit.h:49
Heightfield data specific compute tasks that operate on the values of a heightfield's patch.
Definition: idistributed_data_edit.h:121
virtual bool compute(const mi::math::Bbox_struct< mi::Sint32, 2 > &ij_patch_range, mi::Float32 *elevation_values, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Apply user-defined operations on the heightfield data set's elevation values.
virtual void get_region_of_interest_for_compute(mi::math::Bbox_struct< mi::Sint32, 2 > &roi) const =0
The region of interest defines the 2D area in which the compute operation shall take place.
virtual bool user_defined_normal_computation() const
The compute tasks allows for user-defined elevation modifications for both user-defined elevation and...
Definition: idistributed_data_edit.h:218
virtual bool compute(const mi::math::Bbox_struct< mi::Sint32, 2 > &ij_patch_range, mi::Float32 *elevation_values, mi::math::Vector_struct< mi::Float32, 3 > *normal_values, mi::neuraylib::IDice_transaction *dice_transaction) const
This compute method enables user-defined operations on both the height field's 'elevation and the nor...
Definition: idistributed_data_edit.h:195
This interface class represents an entry point for user-defined editing tasks that operate on the hei...
Definition: idistributed_data_edit.h:245
virtual void get_updated_bounding_box(mi::math::Bbox_struct< mi::Float32, 3 > &bbox)=0
Returns the updated bounding box of the heightfield patch data associated with the compute task.
virtual void edit(IRegular_heightfield_compute_task *compute_task, mi::neuraylib::IDice_transaction *dice_transaction)=0
Applies the given compute task on the current heightfield patch with a given bounding box.
virtual void execute_compute_task(const IData_subset_processing_task *compute_task, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Applies the given compute task on the current sparse-volume subset.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349