MDL SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::IExpression_list Class Referenceabstract

An ordered collection of expressions identified by name or index. More...

#include <iexpression.h>

Inheritance diagram for mi::neuraylib::IExpression_list:

Public Member Functions

virtual Size get_size () const =0
 Returns the number of elements. More...
 
virtual Size get_index (const char *name) const =0
 Returns the index for the given name, or -1 if there is no such expression. More...
 
virtual const char * get_name (Size index) const =0
 Returns the name for the given index, or NULL if there is no such expression. More...
 
virtual const IExpressionget_expression (Size index) const =0
 Returns the expression for index, or NULL if there is no such expression. More...
 
template<class T>
const T * get_expression (Size index) const
 Returns the expression for index, or NULL if there is no such expression. More...
 
virtual const IExpressionget_expression (const char *name) const =0
 Returns the expression for name, or NULL if there is no such expression. More...
 
template<class T>
const T * get_expression (const char *name) const
 Returns the expression for name, or NULL if there is no such expression. More...
 
virtual Sint32 set_expression (Size index, const IExpression *expression)=0
 Sets an expression at a given index. More...
 
virtual Sint32 set_expression (const char *name, const IExpression *expression)=0
 Sets an expression identified by name. More...
 
virtual Sint32 add_expression (const char *name, const IExpression *expression)=0
 Adds an expression at the end of the list. 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 IInterfaceget_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 IInterfaceget_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

- Public Types inherited from mi::base::Interface_declare< 0x98ce8e89, ... >
typedef Interface_declare< id1, ... > Self
 Own type. More...
 
typedef Uuid_t< id1, ... > 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...
 
- Static Public Member Functions inherited from mi::base::Interface_declare< 0x98ce8e89, ... >
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...
 

Detailed Description

An ordered collection of expressions identified by name or index.

Expression lists can be created with mi::neuraylib::IExpression_factory::create_expression_list().

Member Function Documentation

 add_expression()

virtual Sint32 mi::neuraylib::IExpression_list::add_expression ( const char *  name,
const IExpression expression 
)
pure virtual

Adds an expression at the end of the list.

Returns
- 0: Success.
  • -1: Invalid parameter (NULL pointer).
  • -2: There is already an expression mapped to name in the list.

 get_expression() [1/4]

template<class T>
const T * mi::neuraylib::IExpression_list::get_expression ( const char *  name) const
inline

Returns the expression for name, or NULL if there is no such expression.

The index-based overload get_expression<T>(const char*)constis faster than this name-based overload and should be preferred if the index is known.

 get_expression() [2/4]

virtual const IExpression * mi::neuraylib::IExpression_list::get_expression ( const char *  name) const
pure virtual

Returns the expression for name, or NULL if there is no such expression.

The index-based overload get_expression(const char*)constis faster than this name-based overload and should be preferred if the index is known.

 get_expression() [3/4]

template<class T>
const T * mi::neuraylib::IExpression_list::get_expression ( Size  index) const
inline

Returns the expression for index, or NULL if there is no such expression.

This index-based overload is faster than the name-based overload get_expression<T>(const char*)constand should be preferred if the index is known.

Note
Expression lists for defaults and enable-if conditions might not contain an expression for every parameter. Therefore, indices in such lists are not guaranteed to match the parameter indices.

 get_expression() [4/4]

virtual const IExpression * mi::neuraylib::IExpression_list::get_expression ( Size  index) const
pure virtual

Returns the expression for index, or NULL if there is no such expression.

This index-based overload is faster than the name-based overload get_expression(const char*)constand should be preferred if the index is known.

Note
Expression lists for defaults and enable-if conditions might not contain an expression for every parameter. Therefore, indices in such lists are not guaranteed to match the parameter indices.

 get_index()

virtual Size mi::neuraylib::IExpression_list::get_index ( const char *  name) const
pure virtual

Returns the index for the given name, or -1 if there is no such expression.

 get_name()

virtual const char * mi::neuraylib::IExpression_list::get_name ( Size  index) const
pure virtual

Returns the name for the given index, or NULL if there is no such expression.

 get_size()

virtual Size mi::neuraylib::IExpression_list::get_size ( ) const
pure virtual

Returns the number of elements.

 set_expression() [1/2]

virtual Sint32 mi::neuraylib::IExpression_list::set_expression ( const char *  name,
const IExpression expression 
)
pure virtual

Sets an expression identified by name.

The index-based overload set_expression(const char*,const IExpression*) is faster than this name-based overload and should be preferred if the index is known.

Returns
- 0: Success.
  • -1: Invalid parameter (NULL pointer).
  • -2: There is no expression mapped to name in the list.

 set_expression() [2/2]

virtual Sint32 mi::neuraylib::IExpression_list::set_expression ( Size  index,
const IExpression expression 
)
pure virtual

Sets an expression at a given index.

This index-based overload is faster than the name-based overload set_expression(const char*,const IExpression*) and should be preferred if the index is known.

Returns
- 0: Success.
  • -1: Invalid parameter (NULL pointer).
  • -2: index is out of bounds.