MDL SDK API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ilightprofile.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2022 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_ILIGHTPROFILE_H
8 #define MI_NEURAYLIB_ILIGHTPROFILE_H
9 
11 
12 namespace mi {
13 
14 namespace neuraylib {
15 
20 class IReader;
21 
42  LIGHTPROFILE_FLAGS_FORCE_32_BIT = 0xffffffffU
43 };
44 
45 mi_static_assert( sizeof( Lightprofile_flags) == sizeof( Uint32));
46 
56  LIGHTPROFILE_DEGREE_FORCE_32_BIT = 0xffffffffU
57 };
58 
59 mi_static_assert( sizeof( Lightprofile_degree) == sizeof( Uint32));
60 
71  public base::Interface_declare<0xa4ac11fd,0x705d,0x4a0a,0x80,0x0b,0x38,0xe5,0x3d,0x46,0x96,0x47,
72  neuraylib::IScene_element>
73 {
74 public:
115  virtual Sint32 reset_file(
116  const char* filename,
117  Uint32 resolution_phi = 0,
118  Uint32 resolution_theta = 0,
121 
158  virtual Sint32 reset_reader(
159  IReader* reader,
160  Uint32 resolution_phi = 0,
161  Uint32 resolution_theta = 0,
164 
171  virtual const char* get_filename() const = 0;
172 
178  virtual const char* get_original_filename() const = 0;
179 
181  virtual Uint32 get_resolution_phi() const = 0;
182 
184  virtual Uint32 get_resolution_theta() const = 0;
185 
188  virtual Lightprofile_degree get_degree() const = 0;
189 
194  virtual Uint32 get_flags() const = 0;
195 
201  virtual Float32 get_phi( Uint32 index) const = 0;
202 
208  virtual Float32 get_theta( Uint32 index) const = 0;
209 
217  virtual const Float32* get_data() const = 0;
218 
227  virtual Float32 get_data( Uint32 index_phi, Uint32 index_theta) const = 0;
228 
234  virtual Float64 get_candela_multiplier() const = 0;
235 
249  virtual Float32 sample( Float32 phi, Float32 theta, bool candela) const = 0;
250 };
251  // end group mi_neuray_misc
253 
254 } // namespace neuraylib
255 
256 } // namespace mi
257 
258 #endif // MI_NEURAYLIB_ILIGHTPROFILE_H