NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ilightprofile.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_ILIGHTPROFILE_H
9 #define MI_NEURAYLIB_ILIGHTPROFILE_H
10 
12 
13 namespace mi {
14 
19 enum Lightprofile_flags {
39  LIGHTPROFILE_FLAGS_FORCE_32_BIT = 0xffffffffU
40 };
41 
42 mi_static_assert( sizeof( Lightprofile_flags) == sizeof( Uint32));
43 
53  LIGHTPROFILE_DEGREE_FORCE_32_BIT = 0xffffffffU
54 };
55 
56 mi_static_assert( sizeof( Lightprofile_degree) == sizeof( Uint32));
57 
69  public base::Interface_declare<0xa4ac11fd,0x705d,0x4a0a,0x80,0x0b,0x38,0xe5,0x3d,0x46,0x96,0x47,
70  IScene_element>
71 {
72 public:
92  virtual Sint32 reset_file(
93  const char* filename,
94  Uint32 resolution_phi = 0,
95  Uint32 resolution_theta = 0,
98 
105  virtual const char* get_filename() const = 0;
106 
112  virtual const char* get_original_filename() const = 0;
113 
115  virtual Uint32 get_resolution_phi() const = 0;
116 
118  virtual Uint32 get_resolution_theta() const = 0;
119 
121  virtual Lightprofile_degree get_degree() const = 0;
122 
126  virtual Uint32 get_flags() const = 0;
127 
132  virtual Float32 get_phi( Uint32 index) const = 0;
133 
138  virtual Float32 get_theta( Uint32 index) const = 0;
139 
147  virtual const Float32* get_data() const = 0;
148 
156  virtual Float32 get_data( Uint32 index_phi, Uint32 index_theta) const = 0;
157 
162  virtual Float64 get_candela_multiplier() const = 0;
163 
176  virtual Float32 sample( Float32 phi, Float32 theta, bool candela) const = 0;
177 
178 #ifdef MI_NEURAYLIB_DEPRECATED_5_1
179  Uint32 get_phi_size() const { return get_resolution_phi(); }
180 
181  Uint32 get_theta_size() const { return get_resolution_theta(); }
182 
183  void set_resolution_phi( Uint32 resolution)
184  {
185  reset_file(
186  get_filename(), resolution, get_resolution_theta(), get_degree(), get_flags());
187  }
188 
189  void set_resolution_theta( Uint32 resolution)
190  {
191  reset_file(
192  get_filename(), get_resolution_phi(), resolution, get_degree(), get_flags());
193  }
194 
195  void set_degree( Lightprofile_degree degree)
196  {
197  reset_file(
199  }
200 
201  void set_flags( Lightprofile_flags flags)
202  {
203  reset_file(
205  }
206 #endif // MI_NEURAYLIB_DEPRECATED_5_1
207 };
208  // end group mi_neuray_misc
210 
211 } // namespace mi
212 
213 #endif // MI_NEURAYLIB_ILIGHTPROFILE_H