public virtual VirtualPixel1D SetColors(int startPosition, ColorBrightness[] colorBrightness)
{
int? firstPosition = null;
int lastPosition = 0;
for (int i = 0; i < colorBrightness.Length; i++)
{
if (i + startPosition < 0)
continue;
if (i + startPosition >= Pixels)
continue;
if (!firstPosition.HasValue)
firstPosition = i + startPosition;
lastPosition = i + startPosition;
this.color[i + startPosition] = colorBrightness[i].Color;
this.brightness[i + startPosition] = colorBrightness[i].Brightness;
}
if (firstPosition.HasValue)
RaiseMultiPixelChanged(firstPosition.Value, lastPosition - firstPosition.Value + 1);
return this;
}