NVIDIA Iray API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
ilight.h
Go to the documentation of this file.
1
//*****************************************************************************
2
// Copyright 1986, 2014 NVIDIA Corporation. All rights reserved.
3
//*****************************************************************************
6
//*****************************************************************************
7
8
#ifndef MI_NEURAYLIB_ILIGHT_H
9
#define MI_NEURAYLIB_ILIGHT_H
10
11
#include <
mi/neuraylib/iscene_element.h
>
12
13
namespace
mi {
14
15
class
IGroup;
16
class
IRef;
17
class
IShader;
18
class
IShader_graph;
19
24
enum
Light_type
{
28
LIGHT_POINT
= 0,
29
LIGHT_SPOT
,
30
LIGHT_INFINITE
,
31
LIGHT_PLANAR
,
32
N_LIGHT_TYPES
,
33
LIGHT_FORCE_32_BIT = 0xffffffffU
34
};
35
36
mi_static_assert
(
sizeof
(
Light_type
) ==
sizeof
(
Uint32
));
37
41
enum
Light_area_shape
{
42
AREA_NONE
= 0,
43
AREA_RECTANGLE
,
44
AREA_DISC
,
45
AREA_SPHERE
,
46
AREA_CYLINDER
,
47
N_AREA_TYPES
,
48
AREA_FORCE_32_BIT = 0xffffffffU
49
};
50
51
mi_static_assert
(
sizeof
(
Light_area_shape
) ==
sizeof
(
Uint32
));
52
66
class
ILight
:
67
public
base::Interface_declare
<0xc9a437cf,0x6d47,0x4666,0x9c,0xf6,0xa4,0x3f,0x50,0xe8,0x0b,0x90,
68
IScene_element>
69
{
70
public
:
72
73
75
virtual
Light_type
get_type
()
const
= 0;
76
78
virtual
void
set_type
(
Light_type
type) = 0;
79
81
virtual
Light_area_shape
get_area_shape
()
const
= 0;
82
84
virtual
void
set_area_shape
(
Light_area_shape
light_area_shape) = 0;
85
89
virtual
Float64
get_spread
()
const
= 0;
90
94
virtual
void
set_spread
(
Float64
spread) = 0;
95
99
virtual
Float64
get_distance
()
const
= 0;
100
104
virtual
void
set_distance
(
Float64
distance) = 0;
105
110
virtual
Float64
get_area_radius
()
const
= 0;
111
116
virtual
void
set_area_radius
(
Float64
radius) = 0;
117
122
virtual
Float64
get_area_size_x
()
const
= 0;
123
128
virtual
void
set_area_size_x
(
Float64
size_x) = 0;
129
133
virtual
Float64
get_area_size_y
()
const
= 0;
134
138
virtual
void
set_area_size_y
(
Float64
size_y) = 0;
139
141
143
156
virtual
Sint32
attach_light_definition
(
const
char
* name) = 0;
157
161
virtual
void
detach_light_definition
() = 0;
162
166
virtual
const
IShader_graph
*
access_light_definition
()
const
= 0;
167
171
virtual
IShader_graph
*
edit_light_definition
()
const
= 0;
172
186
virtual
Sint32
attach_shader
(
Shader_type
type,
const
char
* name) = 0;
187
195
virtual
Sint32
detach_shader
(
Shader_type
type) = 0;
196
202
virtual
const
IShader
*
access_shader
(
Shader_type
type)
const
= 0;
203
209
virtual
IShader
*
edit_shader
(
Shader_type
type)
const
= 0;
210
212
};
213
// end group mi_neuray_leaf_nodes
215
216
}
// namespace mi
217
218
#endif // MI_NEURAYLIB_ILIGHT_H
mi
neuraylib
ilight.h
Generated on Tue Aug 12 2014 15:28:35. Build 221133.3991, Doxygen 1.8.4