/// <summary>
 /// Add a drawing operation into the list
 /// </summary>
 /// <param name="drawing">The drawing operation being added</param>
 public void Add(GOM_Interface_Drawing drawing)
 {
     rgDrawings.Add(drawing);
 }
        /// <summary>
        /// Clone a drawing operation
        /// </summary>
        /// <param name="drawing">The original drawing operation</param>
        /// <returns>If successful, a drawing operation is returned. Otherwise, null is returned.</returns>
        private GOM_Interface_Drawing CloneDrawing(GOM_Interface_Drawing drawing)
        {
            if (drawing is GOM_Drawing_Line)
            {
                return new GOM_Drawing_Line(Points(drawing.Points[0].id), Points(drawing.Points[1].id), DrawingStyles(drawing.Style.id));
            }

            if (drawing is GOM_Drawing_Arc)
            {
                return new GOM_Drawing_Arc(Points(drawing.Points[0].id), Points(drawing.Points[1].id), Points(drawing.Points[2].id), Points(drawing.Points[3].id), DrawingStyles(drawing.Style.id), 0);
            }

            if (drawing is GOM_Drawing_Bezier)
            {
                GOM_Points	rgPts;

                rgPts = new GOM_Points();

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

                return new GOM_Drawing_Bezier(rgPts, DrawingStyles(drawing.Style.id));
            }

            return null;
        }