public override IGeometry VerticalMirror(IPoint ipoint_0) { object value = Missing.Value; IGeometryCollection mPGeometry = this.m_pGeometry as IGeometryCollection; IGeometryCollection polylineClass = new Polyline() as IGeometryCollection; for (int i = 0; i < mPGeometry.GeometryCount; i++) { ISegmentCollection geometry = mPGeometry.Geometry[i] as ISegmentCollection; ISegmentCollection ringClass = new Ring() as ISegmentCollection; int num = 0; while (num < geometry.SegmentCount) { ISegment segment = this.method_3(geometry.Segment[num], ipoint_0); ringClass.AddSegment(segment, ref value, ref value); i++; } polylineClass.AddGeometry(geometry as IGeometry, ref value, ref value); } return(polylineClass as IGeometry); }