private void DetermineControlPointDirections() { var firstRow = ControlPoints.Where(c => c.V == 0).ToArray(); var firstCol = ControlPoints.Where(c => c.U == 0).ToArray(); ControlPoints.ToList().ForEach(c => c.AllowAllDirections()); firstRow.ToList().ForEach(c => c.ControlPointDirections &= ~ControlPointDirections.Up); firstCol.ToList().ForEach(c => c.ControlPointDirections &= ~ControlPointDirections.Left); ControlPoints.Where(c => c.V == _resolution.Height - 1).ToList().ForEach(c => c.ControlPointDirections &= ~ControlPointDirections.Down); ControlPoints.Where(c => c.U == _resolution.Width - 1).ToList().ForEach(c => c.ControlPointDirections &= ~ControlPointDirections.Right); }