/// <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; }