Iray SDK API nvidia_logo_transpbg.gif Up
ivolume.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IVOLUME_H
8#define MI_NEURAYLIB_IVOLUME_H
9
12
13namespace mi {
14
19
20class IArray;
21
22namespace neuraylib {
23
24class IReader;
25
34class IVolume :
35 public base::Interface_declare<0xdc35e746,0x3410,0x46b4,0x91,0x31,0xba,0xde,0x70,0x7d,0xa1,0xe3,
36 neuraylib::IScene_element>
37{
38public:
47 virtual void set_bounds(
48 const Bbox3_struct& box,
49 const Float32_4_4_struct& tf=Float32_4_4(1)) = 0;
50
56 virtual Bbox3_struct get_bounds() const = 0;
57
63 virtual Float32_4_4_struct get_transform() const = 0;
64
67 inline void set_bounds(
68 const Bbox3& box,
70 {
71 const Bbox3_struct box_struct = box;
72 set_bounds( box_struct, tf);
73 }
74};
75 // end group mi_neuray_leaf_nodes
77
87 public base::Interface_declare<0xe0ce059f,0x51cf,0x4fef,0x8c,0x87,0x91,0x93,0x16,0x59,0xa5,0x44,
88 neuraylib::IScene_element>
89{
90public:
91
104 virtual Sint32 reset_file( const char* filename, const char* selector=0) = 0;
105
120 IReader* reader, const char* format, const char* selector = 0) = 0;
121
128 virtual const char* get_filename() const = 0;
129
135 virtual const char* get_original_filename() const = 0;
136
140 virtual const char* get_selector() const = 0;
141
142#ifdef MI_NEURAYLIB_DEPRECATED_12_1
143 inline const char* get_channel_name() const { return get_selector(); }
144#endif // MI_NEURAYLIB_DEPRECATED_12_1
145
157
165
173 virtual const IArray* list_contents(const char* path) = 0;
174
181 virtual const IArray* list_contents(IReader* reader, const char* format) = 0;
182
193 virtual Sint32 export_file(const char* filename, const char* selector = 0) const = 0;
194};
195
196
201 public base::Interface_declare<0xe0ce059f,0x51cf,0x4fef,0x8c,0x87,0x91,0x93,0x16,0x59,0xa5,0x45>
202{
203public:
208 virtual const char* get_name() const = 0;
209
211 virtual const char* get_value_type() const = 0;
212
216 virtual const Voxel_block_struct& get_data_bounds() const = 0;
217
221 virtual const Float32_4_4_struct& get_transform() const = 0;
222};
223
224 // end group mi_neuray_misc
226
227} // namespace neuraylib
228
229} // namespace mi
230
231#endif // MI_NEURAYLIB_IVOLUME_H
This interface represents static arrays, i.e., arrays with a fixed number of elements.
Definition: iarray.h:37
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Axis-aligned N-dimensional bounding box class template of fixed dimension.
Definition: bbox.h:74
A reader supports binary block reads and string-oriented line reads that zero-terminate the result.
Definition: ireader.h:27
Interface representing a volume data set.
Definition: ivolume.h:89
virtual Sint32 export_file(const char *filename, const char *selector=0) const =0
Writes the loaded data set to the provided path.
virtual const char * get_selector() const =0
Returns the name of the file's data selector selected via reset_file().
virtual Sint32 reset_reader(IReader *reader, const char *format, const char *selector=0)=0
Sets the volume data to the data provided by a reader.
virtual const char * get_filename() const =0
Returns the resolved file name of the file containing the volume data.
virtual Sint32 reset_file(const char *filename, const char *selector=0)=0
Sets the volume data to a file identified by filename.
virtual Voxel_block_struct get_data_bounds() const =0
Returns the bounding box stored in the current data set.
virtual const IArray * list_contents(IReader *reader, const char *format)=0
Lists the data sets contained in a file.
virtual const IArray * list_contents(const char *path)=0
Lists the data sets contained in a file.
virtual Float32_4_4_struct get_transform() const =0
Returns the internal transformation from voxel space to world space.
virtual const char * get_original_filename() const =0
Returns the unresolved file as passed to reset_file().
Basic information about one of the data sets contained in a volume data file.
Definition: ivolume.h:202
virtual const char * get_name() const =0
Retrieves the name of the data set.
virtual const char * get_value_type() const =0
Retrieves the type of each data element.
virtual const Voxel_block_struct & get_data_bounds() const =0
Retrieves the internal bounds of the data set.
virtual const Float32_4_4_struct & get_transform() const =0
Retrieves the transformation associated with the data set.
Interface representing a top-level volume.
Definition: ivolume.h:37
virtual Bbox3_struct get_bounds() const =0
Retrieves the bounds of this object.
void set_bounds(const Bbox3 &box, const Float32_4_4_struct &tf=Float32_4_4(1))
This inline method exists for the user's convenience since mi::math::Bbox is not derived from mi::mat...
Definition: ivolume.h:67
virtual void set_bounds(const Bbox3_struct &box, const Float32_4_4_struct &tf=Float32_4_4(1))=0
Sets the bounds of this object.
virtual Float32_4_4_struct get_transform() const =0
Retrieves the bounds transform of this object.
signed int Sint32
32-bit signed integer.
Definition: types.h:46
math::Matrix<Float32, 4, 4> Float32_4_4
4 x 4 matrix of Float32.
Definition: matrix_typedefs.h:265
Base class for all scene elements.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179
math::Bbox<Sint32, 3> Voxel_block
Integer bounding box for voxel grids.
Definition: ivolume.h:18
math::Bbox_struct<Sint32, 3> Voxel_block_struct
Storage format for grid space volume bounding boxes.
Definition: ivolume.h:16
Storage class for an axis-aligned N-dimensional bounding box class template of fixed dimension.
Definition: bbox.h:47
Storage class for a NxM-dimensional matrix class template of fixed dimensions.
Definition: matrix.h:90
Typedefs for types from the math API.