NVIDIA Iray API
 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 
12 
13 namespace mi {
14 
15 class IGroup;
16 class IRef;
17 class IShader;
18 class IShader_graph;
19 
24 enum Light_type {
33  LIGHT_FORCE_32_BIT = 0xffffffffU
34 };
35 
36 mi_static_assert( sizeof( Light_type) == sizeof( Uint32));
37 
42  AREA_NONE = 0,
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