public void Draw(List<ITouchPointSizeColor> touchPoints) { if (touchPoints.Count == 0) { // no point recording anything (even if color change - e.g. user has just set the color) because we haven't drawn // anything on screen anyway. When they do draw on screen (maybe after a few more color changes) then we will pick // up the color change at the same time return; } foreach (var touch in touchPoints) { if (touch.Color != this.currentColor) { RecordColorChange (touch.Color); } if (touch.Size.Width != this.currentBrushSize) { RecordBrushSizeChange (touch.Size); } this.RecordTouchPoint(touch); } }