MDL SDK API
Up
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
imaterial_instance.h
Go to the documentation of this file.
1
/***************************************************************************************************
2
* Copyright 2022 NVIDIA Corporation. All rights reserved.
3
**************************************************************************************************/
6
7
#ifndef MI_NEURAYLIB_IMATERIAL_INSTANCE_H
8
#define MI_NEURAYLIB_IMATERIAL_INSTANCE_H
9
10
#include <
mi/neuraylib/iexpression.h
>
11
#include <
mi/neuraylib/ifunction_call.h
>
12
#include <
mi/neuraylib/iscene_element.h
>
13
#include <
mi/neuraylib/imdl_factory.h
>
14
15
namespace
mi {
16
17
namespace
neuraylib {
18
23
class
ICompiled_material;
24
class
IMdl_execution_context;
25
31
class
IMaterial_instance
:
public
32
mi::base::Interface_declare
<0x037ec156,0x281d,0x466a,0xa1,0x56,0x3e,0xd6,0x83,0xe9,0x5a,0x00,
33
neuraylib::IScene_element>
34
{
35
public
:
39
enum
Compilation_options
{
40
DEFAULT_OPTIONS
= 0,
41
CLASS_COMPILATION
= 1,
42
COMPILATION_OPTIONS_FORCE_32_BIT = 0xffffffffU
// Undocumented, for alignment only
43
};
44
45
mi_static_assert(
sizeof
(
Compilation_options
) ==
sizeof
(
mi::Uint32
));
46
100
virtual
ICompiled_material
*
create_compiled_material
(
101
Uint32
flags,
102
IMdl_execution_context
* context = 0)
const
= 0;
103
106
virtual
const
char
*
get_material_definition
()
const
= 0;
107
110
virtual
const
char
*
get_mdl_material_definition
()
const
= 0;
111
114
virtual
const
IType
*
get_return_type
()
const
= 0;
115
118
virtual
Size
get_parameter_count
()
const
= 0;
119
122
virtual
const
char
*
get_parameter_name
(
Size
index)
const
= 0;
123
126
virtual
Size
get_parameter_index
(
const
char
* name)
const
= 0;
127
130
virtual
const
IType_list
*
get_parameter_types
()
const
= 0;
131
134
virtual
const
IExpression_list
*
get_arguments
()
const
= 0;
135
138
virtual
Sint32
set_arguments
(
const
IExpression_list
* arguments) = 0;
139
142
virtual
Sint32
set_argument
(
Size
index,
const
IExpression
* argument) = 0;
143
146
virtual
Sint32
set_argument
(
const
char
* name,
const
IExpression
* argument) = 0;
147
150
virtual
Sint32
reset_argument
(
Size
index) = 0;
151
154
virtual
Sint32
reset_argument
(
const
char
* name) = 0;
155
158
virtual
bool
is_default
()
const
= 0;
159
162
virtual
bool
is_valid
(
IMdl_execution_context
* context)
const
= 0;
163
166
virtual
Sint32
repair
(
167
Uint32
flags,
168
IMdl_execution_context
* context) = 0;
169
};
170
// end group mi_neuray_mdl_elements
172
173
}
// namespace neuraylib
174
175
}
// namespace mi
176
177
#endif // MI_NEURAYLIB_IMATERIAL_INSTANCE_H
5 April 2022, 20:40, rev.358266
© 2022 NVIDIA Corporation.
All rights reserved.