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

This interface represents structures, i.e., a key-value based data structure. More...

Inheritance diagram for mi::IStructure:
mi::base::Interface_declare< 0xd23152f6, 0x5640, 0x4ea0, 0x8c, 0x59, 0x27, 0x3e, 0xdf, 0xab, 0xd1, 0x8e, IData_collection > mi::IData_collection mi::base::Interface_declare< 0x1bb2be0f, 0x0dc6, 0x44b2, 0x93, 0xb9, 0xd1, 0xba, 0x6a, 0x31, 0x88, 0x1c, IData > mi::IData mi::base::Interface_declare< 0x2e5f84bc, 0x783a, 0x4551, 0x9f, 0xca, 0x72, 0x2f, 0xb8, 0x38, 0xc4, 0x7c > mi::base::IInterface

Public Member Functions

virtual const IStructure_declget_structure_decl () const =0
 Returns the structure declaration for this structure. More...
 

Additional Inherited Members

- Public Types inherited from mi::base::Interface_declare< 0xd23152f6, 0x5640, 0x4ea0, 0x8c, 0x59, 0x27, 0x3e, 0xdf, 0xab, 0xd1, 0x8e, IData_collection >
typedef Interface_declare< id1,
id2, id3, id4, id5, id6, id7,
id8, id9, id10, id11,
IData_collection
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...
 
- Static Public Member Functions inherited from mi::base::Interface_declare< 0xd23152f6, 0x5640, 0x4ea0, 0x8c, 0x59, 0x27, 0x3e, 0xdf, 0xab, 0xd1, 0x8e, IData_collection >
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

This interface represents structures, i.e., a key-value based data structure.

Structures are based on a structure declaration which defines the structure members (their types, name, and the order). The type name of a structure is the name that was used to register its structure declaration. This type name can be used to create instances of a particular structure declaration (note that "Structure" itself is not a valid type name as it does not contain any information about a concrete structure type).

This interface does not offer any specialized methods, except get_structure_decl(). All the structure functionality is available via methods inherited from mi::IData_collection where the name of a structure member equals the key. The key indices correspond with the indices in the structure declaration.

Note
The value returned by mi::IData::get_type_name() might start with '{' which indicates that it has been automatically generated. In this case the type name should be treated as an opaque string since its format might change unexpectedly. It is perfectly fine to pass it to other methods, e.g., mi::neuraylib::IFactory::create(), but you should not attempt to interpret the value in any way. Use get_structure_decl() to obtain information about the type itself.
See Also
mi::IStructure_decl

Member Function Documentation

virtual const IStructure_decl* mi::IStructure::get_structure_decl ( ) const
pure virtual

Returns the structure declaration for this structure.