Blender  V3.3
util/ies.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2011-2022 Blender Foundation */
3 
4 #ifndef __UTIL_IES_H__
5 #define __UTIL_IES_H__
6 
7 #include "util/string.h"
8 #include "util/vector.h"
9 
11 
12 class IESFile {
13  public:
15  {
16  }
17  ~IESFile();
18 
19  int packed_size();
20  void pack(float *data);
21 
22  bool load(const string &ies);
23  void clear();
24 
25  protected:
26  bool parse(const string &ies);
27  bool process();
28  bool process_type_b();
29  bool process_type_c();
30 
31  /* The brightness distribution is stored in spherical coordinates.
32  * The horizontal angles correspond to theta in the regular notation
33  * and always span the full range from 0° to 360°.
34  * The vertical angles correspond to phi and always start at 0°. */
36  /* The actual values are stored here, with every entry storing the values
37  * of one horizontal segment. */
39 
40  /* Types of angle representation in IES files. Currently, only B and C are supported. */
41  enum IESType { TYPE_A = 3, TYPE_B = 2, TYPE_C = 1 } type;
42 };
43 
45 
46 #endif /* __UTIL_IES_H__ */
void pack(float *data)
Definition: ies.cpp:45
bool process_type_c()
Definition: ies.cpp:285
bool process()
Definition: ies.cpp:360
enum IESFile::IESType type
vector< vector< float > > intensity
Definition: util/ies.h:38
vector< float > v_angles
Definition: util/ies.h:35
vector< float > h_angles
Definition: util/ies.h:35
bool load(const string &ies)
Definition: ies.cpp:20
IESFile()
Definition: util/ies.h:14
~IESFile()
Definition: ies.cpp:393
bool parse(const string &ies)
Definition: ies.cpp:108
int packed_size()
Definition: ies.cpp:37
@ TYPE_A
Definition: util/ies.h:41
@ TYPE_C
Definition: util/ies.h:41
@ TYPE_B
Definition: util/ies.h:41
bool process_type_b()
Definition: ies.cpp:197
void clear()
Definition: ies.cpp:30
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9