7#ifndef MI_NEURAYLIB_IVALUE_H
8#define MI_NEURAYLIB_IVALUE_H
27class IAnnotation_block;
33 mi::base::Interface_declare<0xbf837f4a,0x9034,0x4f32,0xaf,0x5c,0x75,0xb3,0x67,0x64,0x53,0x23>
68 MI_NEURAYLIB_DEPRECATED_ENUM_VALUE(VK_FORCE_32_BIT, 0xffffffffU)
84 const T* ptr_T =
static_cast<const T*
>( ptr_type->
get_interface(
typename T::IID()));
92 mi::base::Interface_declare<0xf2413c80,0x8e71,0x4974,0xaa,0xf2,0x60,0xd5,0xe2,0x94,0x9d,0x3e,
102 mi::base::Interface_declare<0xaf253a14,0x1f04,0x4b67,0xba,0x70,0x7b,0x01,0x05,0xfb,0xc8,0xf5,
103 neuraylib::IValue_atomic>
121 mi::base::Interface_declare<0x91e6f145,0x280d,0x4d68,0x95,0x57,0xe1,0xd0,0x9c,0xd2,0x5c,0x74,
122 neuraylib::IValue_atomic>
140 mi::base::Interface_declare<0xdc876204,0x8a97,0x40e9,0xb9,0xb6,0xca,0xdc,0xdd,0x60,0x1f,0xbf,
141 neuraylib::IValue_atomic>
179 mi::base::Interface_declare<0x21f07151,0x74b5,0x4296,0x90,0x29,0xc7,0xde,0x49,0x38,0x2a,0xbc,
180 neuraylib::IValue_atomic>
198 mi::base::Interface_declare<0xbdc84417,0x3e83,0x4bab,0x90,0xb1,0x9f,0x57,0xed,0x7b,0x15,0x03,
199 neuraylib::IValue_atomic>
217 mi::base::Interface_declare<0x64b28506,0x8675,0x4724,0xa1,0x0d,0xc6,0xf2,0x35,0x46,0x26,0x39,
218 neuraylib::IValue_atomic>
237 mi::base::Interface_declare<0x1fe80d3d,0xe79e,0x4bdb,0xb6,0x30,0xe3,0x36,0x31,0xa4,0x1e,0x39,
238 neuraylib::IValue_string>
248 mi::base::Interface_declare<0xdabc8fe3,0x5c70,0x4ef0,0xa2,0xf7,0x34,0x30,0xb5,0x67,0xdc,0x75,
268 const T* ptr_T =
static_cast<const T*
>( ptr_value->
get_interface(
typename T::IID()));
283 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
305 mi::base::Interface_declare<0xf5d09fc3,0xd783,0x4571,0x8d,0x59,0x41,0xb1,0xff,0xd3,0x91,0x49,
306 neuraylib::IValue_compound>
325 const T* ptr_T =
static_cast<const T*
>( ptr_value->
get_interface(
typename T::IID()));
340 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
351 mi::base::Interface_declare<0x9ee95da6,0x2cd6,0x4168,0x89,0xea,0x92,0x10,0x57,0xda,0xe6,0xdc,
352 neuraylib::IValue_compound>
370 mi::base::Interface_declare<0x3bb9bf46,0x1cbb,0x4460,0xbe,0x27,0x10,0xf5,0x71,0x61,0x96,0xa2,
371 neuraylib::IValue_compound>
399 mi::base::Interface_declare<0xa17c5f57,0xa647,0x41c4,0x86,0x2f,0x4c,0x0d,0xe1,0x30,0x08,0xfc,
400 neuraylib::IValue_compound>
420 mi::base::Interface_declare<0xcbe089ce,0x4aea,0x474d,0x94,0x5f,0x52,0x13,0xef,0x01,0xce,0x81,
421 neuraylib::IValue_compound>
446 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
467 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
486 mi::base::Interface_declare<0x479bb10c,0xd444,0x426c,0x83,0xab,0x26,0xdf,0xf6,0x1d,0x6f,0xd7,
516 virtual const char* get_owner_module()
const = 0;
521 mi::base::Interface_declare<0xf2a03651,0x8883,0x4ba4,0xb9,0xa9,0xe6,0x87,0x34,0x3a,0xb3,0xb8,
522 neuraylib::IValue_resource>
543 mi::base::Interface_declare<0xd7c9ffbd,0xb5e4,0x4bf4,0x90,0xd0,0xe9,0x75,0x4d,0x6d,0x49,0x07,
544 neuraylib::IValue_resource>
556 mi::base::Interface_declare<0x31a55244,0x415c,0x4b4d,0xa7,0x86,0x2f,0x21,0x9c,0xb8,0xb9,0xff,
557 neuraylib::IValue_resource>
569 mi::base::Interface_declare<0x1588b6fa,0xa143,0x4bac,0xa0,0x32,0x06,0xbd,0x9e,0x7f,0xb6,0xe5,
584 mi::base::Interface_declare<0x8027a5e5,0x4e25,0x410c,0xbb,0xce,0x84,0xb4,0x88,0x8b,0x03,0x46>
606 const T* ptr_T =
static_cast<const T*
>( ptr_value->
get_interface(
typename T::IID()));
621 const T* ptr_T =
static_cast<const T*
>( ptr_value->
get_interface(
typename T::IID()));
657 mi::base::Interface_declare<0x82595c0d,0x3687,0x4b45,0xa3,0x38,0x42,0x20,0x02,0xea,0x3f,0x9b>
700 Float32 blue = 0.0f)
const = 0;
730 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
751 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
780 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
806 T* ptr_T =
static_cast<T*
>( ptr_value->
get_interface(
typename T::IID()));
929 value_int->set_value( v);
936 if( value_enum->set_value( v) != 0)
952 value_bool->set_value( v);
967 value_float->set_value( v);
974 value_double->set_value( v);
989 value_float->set_value(
static_cast<mi::Float32>( v));
996 value_double->set_value( v);
1012 if( value_enum->set_name( v) != 0)
1020 value_string->set_value( v);
1026 if( value_resource) {
1027 if( value_resource->set_value( v) != 0)
1039template<
class T, Size DIM>
1045 if( value_vector->get_size() != DIM)
1047 for(
Size i = 0; i < DIM; ++i) {
1068template<
class T, Size ROW, Size COL>
1074 if( value_matrix->get_size() != ROW)
1076 for(
Size i = 0; i < ROW; ++i) {
1078 if( column->get_size() != COL)
1080 for(
Size j = 0; j < COL; ++j) {
1102 red ->set_value( v.
r);
1104 green->set_value( v.
g);
1106 blue ->set_value( v.
b);
1123 red ->set_value( v[0]);
1125 green->set_value( v[1]);
1127 blue ->set_value( v[2]);
1152 if( value_compound) {
1209 if( value_array->get_size() != n)
1258 v = value_int->get_value();
1265 v = value_enum->get_value();
1280 v = value_bool->get_value();
1295 v = value_float->get_value();
1302 v =
static_cast<mi::Float32>( value_double->get_value());
1317 v = value_float->get_value();
1324 v = value_double->get_value();
1340 v = value_enum->get_name();
1347 v = value_string->get_value();
1353 if( value_resource) {
1354 v = value_resource->get_value();
1365template <
class T, Size DIM>
1371 if( value_vector->get_size() != DIM)
1373 for(
Size i = 0; i < DIM; ++i) {
1394template <
class T, Size ROW, Size COL>
1400 if( value_matrix->get_size() != ROW)
1402 for(
Size i = 0; i < ROW; ++i) {
1404 value_matrix->get_value( i));
1405 if( column->get_size() != COL)
1407 for(
Size j = 0; j < COL; ++j) {
1429 v.
r = red ->get_value();
1431 v.
g = green->get_value();
1433 v.
b = blue ->get_value();
1451 v[0] = red ->get_value();
1453 v[1] = green->get_value();
1455 v[2] = blue ->get_value();
1479 if( value_compound) {
1534 if( value_array->get_size() != n)
A simple string class.
Definition: istring.h:22
Handle class template for interfaces, automatizing the lifetime control via reference counting.
Definition: handle.h:112
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Standard RGBA color class with floating point elements and operations.
Definition: color.h:81
NxM-dimensional matrix class template of fixed dimensions.
Definition: matrix.h:367
Spectrum with floating point elements and operations.
Definition: spectrum.h:53
Fixed-size math vector class template with generic operations.
Definition: vector.h:286
An annotation block is an array of annotations.
Definition: iexpression.h:575
An annotation is similar to a direct call expression, but without return type.
Definition: iexpression.h:552
The type of kind array.
Definition: itype.h:449
An atomic type.
Definition: itype.h:255
The type of kind bool.
Definition: itype.h:262
The type of kind bsdf_measurement.
Definition: itype.h:580
The type of kind color.
Definition: itype.h:439
A compound type.
Definition: itype.h:380
The type of kind double.
Definition: itype.h:360
A type of kind enum.
Definition: itype.h:282
The interface for creating types.
Definition: itype.h:711
The type of kind float.
Definition: itype.h:350
The type of kind int.
Definition: itype.h:272
The type of kind light_profile.
Definition: itype.h:570
The type of kind matrix.
Definition: itype.h:424
The reference types.
Definition: itype.h:533
A string valued resource type.
Definition: itype.h:540
The type of kind string.
Definition: itype.h:370
The type of kind struct.
Definition: itype.h:472
The type of kind texture.
Definition: itype.h:547
The type of kind vector.
Definition: itype.h:396
The interface to MDL types.
Definition: itype.h:153
A value of type array.
Definition: ivalue.h:401
virtual Sint32 set_size(Size size)=0
Sets the size for deferred-sized arrays.
virtual const IType_array * get_type() const =0
Returns the type of this value.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:404
An atomic value.
Definition: ivalue.h:94
virtual const IType_atomic * get_type() const =0
Returns the type of this value.
A value of type boolean.
Definition: ivalue.h:104
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:107
virtual const IType_bool * get_type() const =0
Returns the type of this value.
virtual bool get_value() const =0
Returns the value.
virtual void set_value(bool value)=0
Sets the value.
A BSDF measurement value.
Definition: ivalue.h:558
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:561
virtual const IType_bsdf_measurement * get_type() const =0
Returns the type of this value.
A value of type color.
Definition: ivalue.h:372
virtual const IValue_float * get_value(Size index) const =0
Returns the value at index, or nullptr if index is out of bounds.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:375
virtual IValue_float * get_value(Size index)=0
Returns the value at index, or nullptr if index is out of bounds.
virtual Sint32 set_value(Size index, IValue_float *value)=0
Sets the value at index.
virtual const IType_color * get_type() const =0
Returns the type of this value.
A compound value.
Definition: ivalue.h:250
virtual Size get_size() const =0
Returns the number of components in this compound value.
virtual const IValue * get_value(Size index) const =0
Returns the value at index, or nullptr if index is out of bounds.
virtual IValue * get_value(Size index)=0
Returns the value at index, or nullptr if index is out of bounds.
T * get_value(Size index)
Returns the value at index, or nullptr if index is out of bounds.
Definition: ivalue.h:278
virtual const IType_compound * get_type() const =0
Returns the type of this value.
const T * get_value(Size index) const
Returns the value at index, or nullptr if index is out of bounds.
Definition: ivalue.h:263
virtual Sint32 set_value(Size index, IValue *value)=0
Sets the value at index.
A value of type double.
Definition: ivalue.h:200
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:203
virtual Float64 get_value() const =0
Returns the value.
virtual void set_value(Float64 value)=0
Sets the value.
virtual const IType_double * get_type() const =0
Returns the type of this value.
A value of type enum.
Definition: ivalue.h:142
virtual const IType_enum * get_type() const =0
Returns the type of this value.
virtual Sint32 set_name(const char *name)=0
Sets the enum value by string representation in linear time.
virtual Sint32 set_value(Sint32 value)=0
Sets the enum value by integer in linear time.
virtual Sint32 get_value() const =0
Returns the (integer) value of this enum value.
virtual const char * get_name() const =0
Returns the string representation of this enum value.
virtual Sint32 set_index(Size index)=0
Sets the enum value by index.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:145
virtual Size get_index() const =0
Returns the index of this enum value.
The interface for creating values.
Definition: ivalue.h:658
virtual IValue_texture * create_texture(const IType_texture *type, const char *value) const =0
Creates a new texture value, or returns nullptr in case of errors.
virtual IValue_matrix * create_matrix(const IType_matrix *type) const =0
Creates a new value of type matrix, or returns nullptr in case of errors.
virtual const IString * dump(const IValue *value, const char *name, Size depth=0) const =0
Returns a textual representation of a value.
virtual const IString * dump(const IValue_list *list, const char *name, Size depth=0) const =0
Returns a textual representation of a value list.
virtual IValue * create(const IType *type, const IAnnotation_block *annotation_block) const =0
Creates a value observing a potentially present range annotation.
virtual IValue_list * clone(const IValue_list *value_list) const =0
Clones the given value list.
virtual IValue_string * create_string(const char *value="") const =0
Creates a new value of type string.
virtual Sint32 compare(const IValue_list *lhs, const IValue_list *rhs, Float64 epsilon=0.0) const =0
Compares two instances of mi::neuraylib::IValue_list.
virtual IValue_struct * create_struct(const IType_struct *type) const =0
Creates a new value of type struct, or returns nullptr in case of errors.
virtual IValue_invalid_df * create_invalid_df(const IType_reference *type) const =0
Creates a new invalid distribution function value.
T * create(const IType *type) const
Creates a default-constructed value of the given type.
Definition: ivalue.h:725
virtual IValue * clone(const IValue *value) const =0
Clones the given value.
virtual IValue * create(const IAnnotation *annotation) const =0
Creates a value observing the range of an "::anno::soft_range()" or an "::anno::hard_range()" annotat...
virtual Sint32 compare(const IValue *lhs, const IValue *rhs, Float64 epsilon=0.0) const =0
Compares two instances of mi::neuraylib::IValue.
T * clone(const T *value) const
Clones the given value.
Definition: ivalue.h:801
T * create(const IType *type, const IAnnotation_block *annotation_block) const
Creates a value observing a potentially present range annotation.
Definition: ivalue.h:775
virtual IValue_bool * create_bool(bool value=false) const =0
Creates a new value of type boolean.
virtual IValue_list * create_value_list() const =0
Creates a new value list.
virtual IValue_enum * create_enum(const IType_enum *type, Size index=0) const =0
Creates a new value of type enum, or returns nullptr in case of errors.
virtual IValue_bsdf_measurement * create_bsdf_measurement(const char *value) const =0
Creates a new BSDF measurement value, or returns nullptr in case of errors.
virtual IValue_vector * create_vector(const IType_vector *type) const =0
Creates a new value of type vector, or returns nullptr in case of errors.
virtual IValue_array * create_array(const IType_array *type) const =0
Creates a new value of type array, or returns nullptr in case of errors.
virtual IValue_int * create_int(Sint32 value=0) const =0
Creates a new value of type integer.
virtual IValue_float * create_float(Float32 value=0.0f) const =0
Creates a new value of type float.
virtual IValue_light_profile * create_light_profile(const char *value) const =0
Creates a new light profile value, or returns nullptr in case of errors.
virtual IType_factory * get_type_factory() const =0
Returns the type factory associated with this value factory.
T * create(const IAnnotation *annotation) const
Creates a value observing the range of an "::anno::soft_range()" or an "::anno::hard_range()" annotat...
Definition: ivalue.h:746
virtual IValue * create(const IType *type) const =0
Creates a default-constructed value of the given type.
virtual IValue_color * create_color(Float32 red=0.0f, Float32 green=0.0f, Float32 blue=0.0f) const =0
Creates a new value of type color.
virtual IValue_double * create_double(Float64 value=0.0) const =0
Creates a new value of type double.
A value of type float.
Definition: ivalue.h:181
virtual const IType_float * get_type() const =0
Returns the type of this value.
virtual Float32 get_value() const =0
Returns the value.
virtual void set_value(Float32 value)=0
Sets the value.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:184
A value of type integer.
Definition: ivalue.h:123
virtual const IType_int * get_type() const =0
Returns the type of this value.
virtual Sint32 get_value() const =0
Returns the value.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:126
virtual void set_value(Sint32 value)=0
Sets the value.
An invalid distribution function value.
Definition: ivalue.h:571
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:574
virtual const IType_reference * get_type() const =0
Returns the type of this value.
A light profile value.
Definition: ivalue.h:545
virtual const IType_light_profile * get_type() const =0
Returns the type of this value.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:548
An ordered collection of values identified by name or index.
Definition: ivalue.h:585
virtual Size get_index(const char *name) const =0
Returns the index for the given name, or -1 if there is no such value.
const T * get_value(Size index) const
Returns the value for index, or nullptr if there is no such value.
Definition: ivalue.h:601
const T * get_value(const char *name) const
Returns the value for name, or nullptr if there is no such value.
Definition: ivalue.h:616
virtual Sint32 set_value(Size index, const IValue *value)=0
Sets a value at a given index.
virtual const char * get_name(Size index) const =0
Returns the name for the given index, or nullptr if there is no such value.
virtual const IValue * get_value(const char *name) const =0
Returns the value for name, or nullptr if there is no such value.
virtual Size get_size() const =0
Returns the number of elements.
virtual const IValue * get_value(Size index) const =0
Returns the value for index, or nullptr if there is no such value.
virtual Sint32 add_value(const char *name, const IValue *value)=0
Adds a value at the end of the list.
virtual Sint32 set_value(const char *name, const IValue *value)=0
Sets a value identified by name.
A value of type matrix.
Definition: ivalue.h:353
virtual const IValue_vector * get_value(Size index) const =0
Returns the value at index, or nullptr if index is out of bounds.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:356
virtual const IType_matrix * get_type() const =0
Returns the type of this value.
virtual IValue_vector * get_value(Size index)=0
Returns the value at index, or nullptr if index is out of bounds.
Base class for resource values.
Definition: ivalue.h:488
virtual const char * get_file_path() const =0
Returns the absolute MDL file path of the resource, or nullptr if not known.
virtual const IType_resource * get_type() const =0
Returns the type of this value.
virtual const char * get_value() const =0
Returns the name of the DB element representing this resource.
virtual Sint32 set_value(const char *value)=0
Sets the name of the DB element representing this resource.
A value of type string which can be used to obtain the original, non-localized value of a localized s...
Definition: ivalue.h:239
virtual const char * get_original_value() const =0
Returns the original value of a localized string.
A value of type string.
Definition: ivalue.h:219
virtual const char * get_value() const =0
Returns the value.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:222
virtual const IType_string * get_type() const =0
Returns the type of this value.
virtual void set_value(const char *value)=0
Sets the value.
A value of type struct.
Definition: ivalue.h:422
virtual Sint32 set_field(const char *name, IValue *value)=0
Sets a field by name in linear time.
virtual IValue * get_field(const char *name)=0
Returns a field by name in linear time.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:425
virtual const IType_struct * get_type() const =0
Returns the type of this value.
virtual const IValue * get_field(const char *name) const =0
Returns a field by name in linear time.
T * get_field(const char *name)
Returns a field by name in linear time.
Definition: ivalue.h:462
const T * get_field(const char *name) const
Returns a field by name in linear time.
Definition: ivalue.h:441
A texture value.
Definition: ivalue.h:523
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:526
virtual const IType_texture * get_type() const =0
Returns the type of this value.
virtual Float32 get_gamma() const =0
Returns the gamma value of this texture.
virtual const char * get_selector() const =0
Returns the selector of this texture, or nullptr.
A value of type vector.
Definition: ivalue.h:307
const T * get_value(Size index) const
Returns the value at index, or nullptr if index is out of bounds.
Definition: ivalue.h:320
virtual IValue_atomic * get_value(Size index)=0
Returns the value at index, or nullptr if index is out of bounds.
static const Kind s_kind
The kind of this subclass.
Definition: ivalue.h:310
virtual const IType_vector * get_type() const =0
Returns the type of this value.
T * get_value(Size index)
Returns the value at index, or nullptr if index is out of bounds.
Definition: ivalue.h:335
virtual const IValue_atomic * get_value(Size index) const =0
Returns the value at index, or nullptr if index is out of bounds.
The interface to MDL values.
Definition: ivalue.h:34
virtual Kind get_kind() const =0
Returns the kind of the value.
const T * get_type() const
Returns the type of this value.
Definition: ivalue.h:79
virtual const IType * get_type() const =0
Returns the type of this value.
Kind
The possible kinds of values.
Definition: ivalue.h:37
@ VK_TEXTURE
A texture value. See mi::neuraylib::IValue_texture.
Definition: ivalue.h:63
@ VK_LIGHT_PROFILE
A light_profile value. See mi::neuraylib::IValue_light_profile.
Definition: ivalue.h:65
@ VK_ARRAY
An array value. See mi::neuraylib::IValue_array.
Definition: ivalue.h:57
@ VK_STRUCT
A struct value. See mi::neuraylib::IValue_struct.
Definition: ivalue.h:59
@ VK_FLOAT
A float value. See mi::neuraylib::IValue_float.
Definition: ivalue.h:45
@ VK_DOUBLE
A double value. See mi::neuraylib::IValue_double.
Definition: ivalue.h:47
@ VK_MATRIX
A matrix value. See mi::neuraylib::IValue_matrix.
Definition: ivalue.h:53
@ VK_BSDF_MEASUREMENT
A bsdf_measurement value. See mi::neuraylib::IValue_bsdf_measurement.
Definition: ivalue.h:67
@ VK_ENUM
An enum value. See mi::neuraylib::IValue_enum.
Definition: ivalue.h:43
@ VK_INT
An integer value. See mi::neuraylib::IValue_int.
Definition: ivalue.h:41
@ VK_VECTOR
A vector value. See mi::neuraylib::IValue_vector.
Definition: ivalue.h:51
@ VK_INVALID_DF
An invalid distribution function value. See mi::neuraylib::IValue_invalid_df.
Definition: ivalue.h:61
@ VK_BOOL
A boolean value. See mi::neuraylib::IValue_bool.
Definition: ivalue.h:39
@ VK_STRING
A string value. See mi::neuraylib::IValue_string.
Definition: ivalue.h:49
@ VK_COLOR
A color value. See mi::neuraylib::IValue_color.
Definition: ivalue.h:55
Standard RGBA color class with floating point elements and operations.
virtual const IInterface * get_interface(const Uuid &interface_id) const =0
Acquires a const interface from another.
Interface * get() const
Access to the interface. Returns 0 for an invalid interface.
Definition: handle.h:289
virtual Uint32 release() const =0
Decrements the reference count.
int Sint32
32-bit signed integer.
Definition: types.h:46
float Float32
32-bit float.
Definition: types.h:51
double Float64
64-bit float.
Definition: types.h:52
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Float32 g
Green color component.
Definition: vector.h:71
Float32 a
Alpha value, 0.0 is fully transparent and 1.0 is opaque; value can lie outside that range.
Definition: vector.h:75
Float32 r
Red color component.
Definition: vector.h:69
Float32 b
Blue color component.
Definition: vector.h:73
mi::Sint32 set_value(mi::neuraylib::IValue *value, const T &v)
Simplifies setting the value of mi::neuraylib::IValue from the corresponding classes from the base an...
Definition: ivalue.h:924
mi::Sint32 get_value(const mi::neuraylib::IValue *value, T &v)
Simplifies reading the value of mi::neuraylib::IValue into the corresponding classes from the base an...
Definition: ivalue.h:1253
Smart-pointer handle class for interfaces, const and non-const version.
Types of the MDL type system.
A NxM-dimensional matrix class template of fixed dimensions with supporting functions.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179
Major and minor version number and an optional qualifier.
Spectrum class with floating point elements and operations.
Math vector class template of fixed dimension with arithmetic operators and generic functions.