private static void ReadProperties(string[] lines, ref int lineNumber, out int numberOfVerticalAngles, out int numberOfHorizontalAngles, out PhotometricType photometricType) { List <float> list = ParseIES.ReadValues(lines, 13, ref lineNumber); numberOfVerticalAngles = (int)list[3]; numberOfHorizontalAngles = (int)list[4]; photometricType = (PhotometricType)list[5]; }
public static IESData Parse(string path, NormalizationMode normalizationMode) { string[] array = File.ReadAllLines(path); int num = 0; ParseIES.FindNumberOfAnglesLine(array, ref num); if (num == array.Length - 1) { throw new IESParseException("No line containing number of angles found."); } int numberOfValuesToFind; int num2; PhotometricType photometricType; ParseIES.ReadProperties(array, ref num, out numberOfValuesToFind, out num2, out photometricType); List <float> verticalAngles = ParseIES.ReadValues(array, numberOfValuesToFind, ref num); List <float> horizontalAngles = ParseIES.ReadValues(array, num2, ref num); List <List <float> > list = new List <List <float> >(); for (int i = 0; i < num2; i++) { list.Add(ParseIES.ReadValues(array, numberOfValuesToFind, ref num)); } IESData iesdata = new IESData { VerticalAngles = verticalAngles, HorizontalAngles = horizontalAngles, CandelaValues = list, PhotometricType = photometricType }; ParseIES.NormalizeValues(iesdata, normalizationMode == NormalizationMode.Logarithmic); if (normalizationMode == NormalizationMode.EqualizeHistogram) { ParseIES.EqualizeHistogram(iesdata); } if (photometricType != PhotometricType.TypeA) { ParseIES.DiscardUnusedVerticalHalf(iesdata); ParseIES.SetVerticalAndHorizontalType(iesdata); iesdata.HalfSpotlightFov = ParseIES.CalculateHalfSpotFov(iesdata); } else { ParseIES.PadToSquare(iesdata); } return(iesdata); }