/// <summary>
 /// Add a filling operation to the list
 /// </summary>
 /// <param name="filling">The filling operation being added</param>
 public void Add(GOM_Interface_Filling filling)
 {
     rgFillings.Add(filling);
 }
        /// <summary>
        /// Clone a filling operation
        /// </summary>
        /// <param name="filling">The original filling operation</param>
        /// <returns>If successful, a drawing operation is returned. Otherwise, null is returned.</returns>
        private GOM_Interface_Filling CloneFilling(GOM_Interface_Filling filling)
        {
            if (filling is GOM_Filling_Ellipse)
            {
                return new GOM_Filling_Ellipse(Points(filling.Points[0].id), Points(filling.Points[1].id), FillingStyles(filling.Style.id));
            }

            if (filling is GOM_Filling_FillPath)
            {
                GOM_Drawings	drawings;

                drawings = new GOM_Drawings();

                for (int i = 0; i < ((GOM_Filling_FillPath)filling).Drawings.Count; i++)
                {
                    drawings.Add(CloneDrawing(((GOM_Filling_FillPath)filling).Drawings[i]));
                }

                return new GOM_Filling_FillPath(drawings, FillingStyles(filling.Style.id));
            }

            if (filling is GOM_Filling_Pie)
            {
                return new GOM_Filling_Pie(Points(filling.Points[0].id), Points(filling.Points[1].id), Points(filling.Points[2].id), Points(filling.Points[3].id), FillingStyles(filling.Style.id));
            }

            if (filling is GOM_Filling_Polygon)
            {
                GOM_Points	rgPts;

                rgPts = new GOM_Points();

                for (int i = 0; i < filling.Points.Count; i++)
                {
                    rgPts.Add(Points(filling.Points[i].id));
                }

                return new GOM_Filling_Polygon(rgPts, FillingStyles(filling.Style.id));
            }

            if (filling is GOM_Filling_Rectangle)
            {
                return new GOM_Filling_Rectangle(Points(filling.Points[0].id), Points(filling.Points[1].id), FillingStyles(filling.Style.id));
            }

            return null;
        }