69 for (
int h = 0; h <
intensity.size(); h++) {
83 std::replace(text.begin(), text.end(),
',',
' ');
84 data = strstr(&text[0],
"\nTILT=");
97 char *old_data =
data;
99 if (
data == old_data) {
111 char *old_data =
data;
113 if (
data == old_data) {
133 if (strncmp(parser.
data,
"\nTILT=INCLUDE", 13) == 0) {
138 for (
int i = 0; i < 2 * num_tilt; i++) {
144 parser.
data = strstr(parser.
data + 1,
"\n");
155 int v_angles_num = parser.
get_long();
156 int h_angles_num = parser.
get_long();
187 factor *= 0.0706650768394;
190 for (
int i = 0; i < v_angles_num; i++) {
195 for (
int i = 0; i < h_angles_num; i++) {
200 for (
int i = 0; i < h_angles_num; i++) {
202 for (
int j = 0; j < v_angles_num; j++) {
207 return !parser.
eof();
213 newintensity.resize(
v_angles.size());
214 for (
int i = 0; i <
v_angles.size(); i++) {
215 newintensity[i].reserve(
h_angles.size());
216 for (
int j = 0; j <
h_angles.size(); j++) {
217 newintensity[i].push_back(
intensity[j][i]);
224 if (h_last != 90.0f) {
228 if (h_first == 0.0f) {
234 new_h_angles.reserve(2 * hnum - 1);
235 new_intensity.reserve(2 * hnum - 1);
236 for (
int i = hnum - 1; i > 0; i--) {
237 new_h_angles.push_back(90.0f -
h_angles[i]);
240 for (
int i = 0; i < hnum; i++) {
241 new_h_angles.push_back(90.0f +
h_angles[i]);
247 else if (h_first == -90.0f) {
249 for (
int i = 0; i <
h_angles.size(); i++) {
260 if (v_last != 90.0f) {
264 if (v_first == 0.0f) {
270 new_v_angles.reserve(2 * vnum - 1);
271 for (
int i = vnum - 1; i > 0; i--) {
272 new_v_angles.push_back(90.0f -
v_angles[i]);
274 for (
int i = 0; i < vnum; i++) {
275 new_v_angles.push_back(90.0f +
v_angles[i]);
277 for (
int i = 0; i < hnum; i++) {
279 new_intensity.reserve(2 * vnum - 1);
280 for (
int j = vnum - 2; j >= 0; j--) {
281 new_intensity.push_back(
intensity[i][j]);
288 else if (v_first == -90.0f) {
290 for (
int i = 0; i <
v_angles.size(); i++) {
303 for (
int i = 0; i <
h_angles.size(); i++) {
323 for (
int i = hnum - 2; i >= 0; i--) {
332 for (
int i = hnum - 2; i >= 0; i--) {
344 float difference = 360.0f -
h_angles[hnum - 1];
345 if (last_step == difference || first_step == difference) {
355 if (v_first == 90.0f) {
356 if (v_last == 180.0f) {
358 for (
int i = 0; i <
v_angles.size(); i++) {
366 else if (v_first != 0.0f) {
396 for (
int i = 0; i <
v_angles.size(); i++) {
399 for (
int i = 0; i <
h_angles.size(); i++) {
enum IESFile::IESType type
vector< vector< float > > intensity
bool load(const string &ies)
bool parse(const string &ies)
IESTextParser(const string &str)
#define CCL_NAMESPACE_END
ccl_device_inline float __int_as_float(int i)