/// <summary> /// Create a lens from a table. /// </summary> /// <param name="table"> /// Rows: surfaces, ordered from front to back. /// Columns: CurvatureRadius, Thickness, NextRefractiveIndex, ApertureDiameter. /// </param> /// <param name="mediumRefractiveIndex"></param> /// <param name="scale"></param> /// <returns></returns> public static ComplexLens CreateFromSphericalElementTable( double?[,] table, double mediumRefractiveIndex, double scale) { var surfaceDefs = new List <SphericalElementSurfaceDefinition>(); for (int surfaceIndex = 0; surfaceIndex < table.GetLength(0); surfaceIndex++) { var surface = new SphericalElementSurfaceDefinition(); surface.CurvatureRadius = table[surfaceIndex, 0]; surface.Thickness = table[surfaceIndex, 1].Value; surface.NextRefractiveIndex = table[surfaceIndex, 2].Value; surface.ApertureDiameter = table[surfaceIndex, 3].Value; surfaceDefs.Add(surface); } return(Create(surfaceDefs, mediumRefractiveIndex, scale)); }
/// <summary> /// Create a lens from a table. /// </summary> /// <param name="table"> /// Rows: surfaces, ordered from front to back. /// Columns: CurvatureRadius, Thickness, NextRefractiveIndex, ApertureDiameter. /// </param> /// <param name="mediumRefractiveIndex"></param> /// <param name="scale"></param> /// <returns></returns> public static ComplexLens CreateFromSphericalElementTable( double?[,] table, double mediumRefractiveIndex, double scale) { var surfaceDefs = new List<SphericalElementSurfaceDefinition>(); for (int surfaceIndex = 0; surfaceIndex < table.GetLength(0); surfaceIndex++) { var surface = new SphericalElementSurfaceDefinition(); surface.CurvatureRadius = table[surfaceIndex, 0]; surface.Thickness = table[surfaceIndex, 1].Value; surface.NextRefractiveIndex = table[surfaceIndex, 2].Value; surface.ApertureDiameter = table[surfaceIndex, 3].Value; surfaceDefs.Add(surface); } return Create(surfaceDefs, mediumRefractiveIndex, scale); }