public ArenaLightSource(RGB[] opponentColors, RGB[] playerColors) { var radius = 2D; compositeLightSource = new CompositeLightSource( PlayerLightSource.Build(1, opponentColors, radius), PlayerLightSource.Build(-1, playerColors, radius)); }
public static PlayerLightSource Build(double y, RGB[] colors, double playerRadius) { var step = 2D / (colors.Length + 1); var areaLightSourceRadius = 2D / colors.Length; var areaLightSources = colors.Select((color, i) => { var position = -1D + step * (i + 1); return(new AreaLightSource(colors[i], position, y, areaLightSourceRadius)); }).ToArray(); var composite = new CompositeLightSource(areaLightSources); return(new PlayerLightSource(composite, y, playerRadius)); }