Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mi::neuraylib::IType Class Referenceabstract

The interface to MDL types. More...

Inheritance diagram for mi::neuraylib::IType:
mi::base::Interface_declare< 0x242af675, 0xeaa2, 0x48b7, 0x81, 0x63, 0xba, 0x06, 0xa5, 0xfb, 0x68, 0xf0 > mi::base::IInterface mi::base::Interface_declare< 0x3e12cdec, 0xdaba, 0x460c, 0x9e, 0x8a, 0x21, 0x4c, 0x43, 0x9a, 0x1a, 0x90, neuraylib::IType > mi::base::Interface_declare< 0x69d8c70a, 0xdfda, 0x4e8e, 0xaa, 0x09, 0x12, 0x1f, 0xa9, 0x78, 0xc6, 0x6a, neuraylib::IType > mi::base::Interface_declare< 0x9d5f9116, 0x3896, 0x45c8, 0xb4, 0x5a, 0x8b, 0x03, 0x84, 0x49, 0x0a, 0x77, neuraylib::IType > mi::base::Interface_declare< 0xc9ca497f, 0xc38b, 0x411f, 0xa8, 0x16, 0xa7, 0xd8, 0x23, 0x28, 0xa5, 0x40, neuraylib::IType > mi::neuraylib::IType_reference mi::neuraylib::IType_alias mi::neuraylib::IType_atomic mi::neuraylib::IType_compound mi::base::Interface_declare< 0x142f5bea, 0x139e, 0x42e4, 0xb1, 0x1c, 0xb3, 0x4d, 0xd8, 0xe3, 0xd9, 0x8d, neuraylib::IType_reference > mi::base::Interface_declare< 0xf4bcba08, 0x7777, 0x4662, 0x8e, 0x29, 0x67, 0xe1, 0x52, 0xac, 0x05, 0x3e, neuraylib::IType_reference > mi::base::Interface_declare< 0x0e5b167c, 0x9c3e, 0x48bf, 0xb5, 0xfd, 0x37, 0x96, 0xaa, 0x47, 0xaf, 0xd1, neuraylib::IType_atomic > mi::base::Interface_declare< 0x4b4629bc, 0xa2ce, 0x4008, 0xba, 0x76, 0xf6, 0x4d, 0x60, 0x76, 0x0a, 0x85, neuraylib::IType_atomic > mi::base::Interface_declare< 0x613711b3, 0x41f2, 0x44a9, 0xbb, 0x78, 0x43, 0xe2, 0x41, 0x64, 0xb3, 0xda, neuraylib::IType_atomic > mi::base::Interface_declare< 0x831d8a38, 0x26d3, 0x4fd2, 0xa7, 0xf7, 0x15, 0xc2, 0xa5, 0x20, 0x76, 0x6c, neuraylib::IType_atomic > mi::base::Interface_declare< 0xbbad021c, 0xbfe5, 0x45de, 0xaf, 0x66, 0xfd, 0xe8, 0x45, 0xbe, 0x48, 0x49, neuraylib::IType_atomic > mi::base::Interface_declare< 0xc381508b, 0x7945, 0x4c70, 0x8a, 0x20, 0x57, 0xd5, 0x2b, 0x36, 0x35, 0x40, neuraylib::IType_atomic > mi::base::Interface_declare< 0x19566cb2, 0x0b5d, 0x41ca, 0xa0, 0x31, 0x96, 0xe2, 0x9a, 0xd4, 0xc3, 0x1a, neuraylib::IType_compound > mi::base::Interface_declare< 0x21ab6abe, 0x0e26, 0x40da, 0xa1, 0x98, 0x42, 0xc0, 0x89, 0x71, 0x5d, 0x2a, neuraylib::IType_compound > mi::base::Interface_declare< 0x412a8a91, 0x9062, 0x46fd, 0xaa, 0xcf, 0x46, 0xbd, 0xb3, 0xde, 0x5b, 0x9c, neuraylib::IType_compound > mi::base::Interface_declare< 0x6b76570e, 0x51b2, 0x4e9b, 0x9f, 0xe7, 0xda, 0x03, 0x1c, 0x37, 0xbc, 0x75, neuraylib::IType_compound > mi::base::Interface_declare< 0xedb16770, 0xdf70, 0x4def, 0x83, 0xa5, 0xc4, 0x4f, 0xcd, 0x09, 0x47, 0x0f, neuraylib::IType_compound >

Public Types

enum  Kind {
  TK_ALIAS,
  TK_BOOL,
  TK_INT,
  TK_ENUM,
  TK_FLOAT,
  TK_DOUBLE,
  TK_STRING,
  TK_VECTOR,
  TK_MATRIX,
  TK_COLOR,
  TK_ARRAY,
  TK_STRUCT,
  TK_TEXTURE,
  TK_LIGHT_PROFILE,
  TK_BSDF_MEASUREMENT,
  TK_BSDF,
  TK_HAIR_BSDF,
  TK_EDF,
  TK_VDF
}
 The possible kinds of types. More...
 
enum  Modifier {
  MK_NONE = 0,
  MK_UNIFORM = 2,
  MK_VARYING = 4
}
 The possible kinds of type modifiers. More...
 
- Public Types inherited from mi::base::Interface_declare< 0x242af675, 0xeaa2, 0x48b7, 0x81, 0x63, 0xba, 0x06, 0xa5, 0xfb, 0x68, 0xf0 >
typedef Interface_declare< id1,
id2, id3, id4, id5, id6, id7,
id8, id9, id10, id11,
IInterface
Self
 Own type. More...
 
typedef Uuid_t< id1, id2, id3,
id4, id5, id6, id7, id8, id9,
id10, id11 > 
IID
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::IInterface
typedef Uuid_t< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 > IID
 Declares the interface ID (IID) of this interface. More...
 

Public Member Functions

virtual Kind get_kind () const =0
 Returns the kind of type. More...
 
virtual Uint32 get_all_type_modifiers () const =0
 Returns all type modifiers of a type. More...
 
virtual const ITypeskip_all_type_aliases () const =0
 Returns the base type. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from mi::base::Interface_declare< 0x242af675, 0xeaa2, 0x48b7, 0x81, 0x63, 0xba, 0x06, 0xa5, 0xfb, 0x68, 0xf0 >
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
 

Detailed Description

The interface to MDL types.

Types can be created using the type factory mi::neuraylib::IType_factory.

Member Enumeration Documentation

The possible kinds of types.

Enumerator
TK_ALIAS 

An alias for another type, aka typedef. See mi::neuraylib::IType_alias.

TK_BOOL 

The boolean type. See mi::neuraylib::IType_bool.

TK_INT 

The integer type. See mi::neuraylib::IType_int.

TK_ENUM 

An enum type. See mi::neuraylib::IType_enum.

TK_FLOAT 

The float type. See mi::neuraylib::IType_float.

TK_DOUBLE 

The double type. See mi::neuraylib::IType_double.

TK_STRING 

The string type. See mi::neuraylib::IType_string.

TK_VECTOR 

A vector type. See mi::neuraylib::IType_vector.

TK_MATRIX 

A matrix type. See mi::neuraylib::IType_matrix.

TK_COLOR 

The color type. See mi::neuraylib::IType_color.

TK_ARRAY 

An array type. See mi::neuraylib::IType_array.

TK_STRUCT 

A struct type. See mi::neuraylib::IType_struct.

TK_TEXTURE 

A texture type. See mi::neuraylib::IType_texture.

TK_LIGHT_PROFILE 

The light_profile type. See mi::neuraylib::IType_light_profile.

TK_BSDF_MEASUREMENT 

The bsdf_measurement type. See mi::neuraylib::IType_bsdf_measurement.

TK_BSDF 

The bsdf type. See mi::neuraylib::IType_bsdf.

TK_HAIR_BSDF 

The hair_bsdf type. See mi::neuraylib::IType_hair_bsdf.

TK_EDF 

The edf type. See mi::neuraylib::IType_edf.

TK_VDF 

The vdf type. See mi::neuraylib::IType_vdf.

The possible kinds of type modifiers.

Enumerator
MK_NONE 

No type modifier (mutable, auto-typed).

MK_UNIFORM 

A uniform type.

MK_VARYING 

A varying type.

Member Function Documentation

virtual Uint32 mi::neuraylib::IType::get_all_type_modifiers ( ) const
pure virtual

Returns all type modifiers of a type.

Returns 0 if this is not an alias. Otherwise, the method follows the chain of aliases by calling mi::neuraylib::IType_alias::get_aliased_type() as long as get_kind() returns TK_ALIAS. The method returns the union of mi::neuraylib::IType_alias::get_type_modifiers() calls on this and all intermediate aliases.

virtual Kind mi::neuraylib::IType::get_kind ( ) const
pure virtual

Returns the kind of type.

virtual const IType* mi::neuraylib::IType::skip_all_type_aliases ( ) const
pure virtual

Returns the base type.

Returns this if this is not an alias. Otherwise, the method follows the chain of aliases by calling mi::neuraylib::IType_alias::get_aliased_type() as long as get_kind() returns TK_ALIAS. The method returns the first non-alias type.