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