/// <summary> /// Resizes the spline to have a certain number of Control Points /// </summary> /// <param name="count">number of Control Points</param> protected void PrepareControlPoints(int count) { /* * Spline.Clear(); * while (count-- > 0) * Spline.Add(); * Spline.Refresh(); */ int delta = count - Spline.ControlPointCount; bool upd = delta != 0; while (delta > 0) { Spline.Add(); delta--; } while (delta < 0) { Spline.Delete(Spline.LastVisibleControlPoint); delta++; } // Revert to default settings for (int i = 0; i < Spline.ControlPoints.Count; i++) { Spline.ControlPoints[i].Reset(); var mcg = Spline.ControlPoints[i].GetMetadata <MetaCGOptions>(); if (mcg) { mcg.Reset(); } } if (upd) { Spline.SetDirtyAll(); Spline.Refresh(); } }