The interface to MDL types. More...
#include <itype.h>

Public Types | |
| enum | Kind : Uint32 { 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 : Uint32 { 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, ... > | |
| using | Self = Interface_declare< id1, ... > |
| Own type. More... | |
| using | IID = Uuid_t< id1, ... > |
| Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::IInterface | |
| using | IID = Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> |
| 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 IType * | skip_all_type_aliases () const =0 |
| Returns the base type. More... | |
| virtual bool | is_declarative () const =0 |
| Indicates whether this type is declarative or not. More... | |
Public Member Functions inherited from mi::base::IInterface | |
| virtual Uint32 | retain () const =0 |
| Increments the reference count. More... | |
| virtual Uint32 | release () const =0 |
| Decrements the reference count. More... | |
| virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
| Acquires a const interface from another. More... | |
| template<class T> | |
| const T * | get_interface () const |
| Acquires a const interface from another. More... | |
| virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
| Acquires a mutable interface from another. More... | |
| template<class T> | |
| T * | get_interface () |
| Acquires a mutable interface from another. More... | |
| virtual Uuid | get_iid () const =0 |
| Returns the interface ID of the most derived interface. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x242af675, ... > | |
| static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Static Public Member Functions inherited from mi::base::IInterface | |
| static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface. More... | |
The interface to MDL types.
Types can be created using the type factory mi::neuraylib::IType_factory.
| enum mi::neuraylib::IType::Kind : Uint32 |
The possible kinds of types.
| Enumerator | |
|---|---|
| TK_ALIAS | An alias for another type, aka typedef. See mi::neuraylib::IType_alias. |
| TK_BOOL | The |
| TK_INT | The |
| TK_ENUM | An |
| TK_FLOAT | The |
| TK_DOUBLE | The |
| TK_STRING | The |
| 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 |
| TK_BSDF_MEASUREMENT | The |
| TK_BSDF | The |
| TK_HAIR_BSDF | The |
| TK_EDF | The |
| TK_VDF | The |
|
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.
|
pure virtual |
Returns the kind of type.
|
pure virtual |
Indicates whether this type is declarative or not.
|
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.