private void Initialize(List<System.Drawing.Color> ThemeColors)
 {
     this.VaryColors = true;
     this.iFirstSliceAngle = 0;
     this.byHoleSize = 10;
     this.iGapWidth = 150;
     this.HasSplit = false;
     this.SplitType = C.SplitValues.Position;
     this.SplitPosition = 0;
     this.SecondPiePoints = new List<int>();
     this.iSecondPieSize = 75;
     this.ShapeProperties = new SLA.SLShapeProperties(ThemeColors);
 }
 /// <summary>
 /// Split the data series by value where the second plot contains all values less than a maximum value. This is only for bar-of-pie or pie-of-pie charts.
 /// </summary>
 /// <param name="MaxValue">The maximum value.</param>
 public void SplitSeriesByValue(double MaxValue)
 {
     this.HasSplit = true;
     this.SplitType = C.SplitValues.Value;
     this.SplitPosition = MaxValue;
     this.SecondPiePoints.Clear();
 }
 /// <summary>
 /// Split the data series by percentage where the second plot contains all values less than a percentage of the sum. This is only for bar-of-pie or pie-of-pie charts.
 /// </summary>
 /// <param name="MaxPercentage">The maximum percentage of the sum.</param>
 public void SplitSeriesByPercentage(double MaxPercentage)
 {
     this.HasSplit = true;
     this.SplitType = C.SplitValues.Percent;
     this.SplitPosition = MaxPercentage;
     this.SecondPiePoints.Clear();
 }
 /// <summary>
 /// Split the data series by position where the second plot contains the last N values. This is only for bar-of-pie or pie-of-pie charts.
 /// </summary>
 /// <param name="LastNValues">The last N values used in the second plot.</param>
 public void SplitSeriesByPosition(int LastNValues)
 {
     this.HasSplit = true;
     this.SplitType = C.SplitValues.Position;
     this.SplitPosition = (double)LastNValues;
     this.SecondPiePoints.Clear();
 }
 /// <summary>
 /// Split the data series by selecting data points for the second plot. This is only for bar-of-pie or pie-of-pie charts.
 /// </summary>
 /// <param name="DataPointIndices">The indices of the data points of the data series. The index is 1-based, so "1,3,4" sets the 1st, 3rd and 4th data point in the second plot.</param>
 public void SplitSeriesByCustom(params int[] DataPointIndices)
 {
     this.HasSplit = true;
     this.SplitType = C.SplitValues.Custom;
     this.SplitPosition = 0;
     this.SecondPiePoints.Clear();
     foreach (int i in DataPointIndices)
     {
         // indices should start from 1 onwards
         if (i > 0) this.SecondPiePoints.Add(i - 1);
     }
     this.SecondPiePoints.Sort();
 }