Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ifunction_call.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2018 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IFUNCTION_CALL_H
8 #define MI_NEURAYLIB_IFUNCTION_CALL_H
9 
10 #include <cstring>
11 
14 
15 namespace mi {
16 
17 namespace neuraylib {
18 
23 class IFunction_call : public
31  mi::base::Interface_declare<0x67b29f5f,0xdbc1,0x4300,0x94,0x53,0x3e,0x2d,0x28,0x29,0xc1,0xe9,
32  neuraylib::IScene_element>
33 {
34 public:
41  virtual const char* get_function_definition() const = 0;
42 
47  virtual const char* get_mdl_function_definition() const = 0;
48 
52  inline bool is_array_constructor() const
53  { return strcmp( get_mdl_function_definition(), "T[](...)") == 0; }
54 
56  virtual const IType* get_return_type() const = 0;
57 
59  virtual Size get_parameter_count() const = 0;
60 
65  virtual const char* get_parameter_name( Size index) const = 0;
66 
71  virtual Size get_parameter_index( const char* name) const = 0;
72 
74  virtual const IType_list* get_parameter_types() const = 0;
75 
77  virtual const IExpression_list* get_arguments() const = 0;
78 
102  virtual Sint32 set_arguments( const IExpression_list* arguments) = 0;
103 
125  virtual Sint32 set_argument( Size index, const IExpression* argument) = 0;
126 
148  virtual Sint32 set_argument( const char* name, const IExpression* argument) = 0;
149 };
150  // end group mi_neuray_mdl_elements
152 
153 } // namespace neuraylib
154 
155 } // namespace mi
156 
157 #endif // MI_NEURAYLIB_IFUNCTION_CALL