public override com.epl.geometry.ogc.OGCGeometry Boundary() { com.epl.geometry.Polyline polyline = new com.epl.geometry.Polyline(); polyline.Add(polygon, true); // adds reversed path return((com.epl.geometry.ogc.OGCMultiCurve)com.epl.geometry.ogc.OGCGeometry.CreateFromEsriGeometry(polyline, esriSR, true)); }
// warning fix private void Generate_polyline_cuts_() { com.epl.geometry.MultiPath left = new com.epl.geometry.Polyline(); com.epl.geometry.MultiPath right = new com.epl.geometry.Polyline(); com.epl.geometry.MultiPath uncut = new com.epl.geometry.Polyline(); m_cuts.Add(left); m_cuts.Add(right); System.Collections.Generic.List <com.epl.geometry.OperatorCutLocal.CutPair> cutPairs = new System.Collections.Generic.List <com.epl.geometry.OperatorCutLocal.CutPair>(0); com.epl.geometry.Cutter.CutPolyline(m_bConsiderTouch, (com.epl.geometry.Polyline)m_cuttee, m_cutter, m_tolerance, cutPairs, null, m_progressTracker); for (int icut = 0; icut < cutPairs.Count; icut++) { com.epl.geometry.OperatorCutLocal.CutPair cutPair = cutPairs[icut]; if (cutPair.m_side == com.epl.geometry.OperatorCutLocal.Side.Left) { left.Add((com.epl.geometry.MultiPath)cutPair.m_geometry, false); } else { if (cutPair.m_side == com.epl.geometry.OperatorCutLocal.Side.Right || cutPair.m_side == com.epl.geometry.OperatorCutLocal.Side.Coincident) { right.Add((com.epl.geometry.MultiPath)cutPair.m_geometry, false); } else { if (cutPair.m_side == com.epl.geometry.OperatorCutLocal.Side.Undefined) { m_cuts.Add((com.epl.geometry.MultiPath)cutPair.m_geometry); } else { uncut.Add((com.epl.geometry.MultiPath)cutPair.m_geometry, false); } } } } if (!uncut.IsEmpty() && (!left.IsEmpty() || !right.IsEmpty() || m_cuts.Count >= 3)) { m_cuts.Add(uncut); } if (left.IsEmpty() && right.IsEmpty() && m_cuts.Count < 3) { m_cuts.Clear(); } }