/// <summary> /// /// </summary> /// <param name="mc"></param> /// <param name="si"></param> public void ComputeIntersections(MonotoneChain mc, SegmentIntersector si) { this.mce.ComputeIntersectsForChain(chainIndex, mc.mce, mc.chainIndex, si); }
/// <summary> /// /// </summary> /// <param name="edge"></param> /// <param name="edgeSet"></param> private void Add(Edge edge, object edgeSet) { MonotoneChainEdge mce = edge.MonotoneChainEdge; int[] startIndex = mce.StartIndexes; for (int i = 0; i < startIndex.Length - 1; i++) { MonotoneChain mc = new MonotoneChain(mce, i); SweepLineEvent insertEvent = new SweepLineEvent(edgeSet, mce.GetMinX(i), null, mc); events.Add(insertEvent); events.Add(new SweepLineEvent(edgeSet, mce.GetMaxX(i), insertEvent, mc)); } }