/// <summary> /// This function can be overridden if the original chains are needed. /// </summary> /// <param name="mc1"></param> /// <param name="start1">The index of the start of the overlapping segment from mc1.</param> /// <param name="mc2"></param> /// <param name="start2">The index of the start of the overlapping segment from mc2.</param> public virtual void Overlap(MonotoneChain mc1, int start1, MonotoneChain mc2, int start2) { OverlapSeg1 = mc1.GetLineSegment(start1); OverlapSeg2 = mc2.GetLineSegment(start2); Overlap(OverlapSeg1, OverlapSeg2); }
/// <summary> /// /// </summary> /// <param name="mc"></param> /// <param name="si"></param> public virtual void ComputeIntersections(MonotoneChain mc, SegmentIntersector si) { _mce.ComputeIntersectsForChain(_chainIndex, mc._mce, mc._chainIndex, si); }
/// <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> /// This function can be overridden if the original chain is needed. /// </summary> /// <param name="mc"></param> /// <param name="start"></param> public virtual void Select(MonotoneChain mc, int start) { _selectedSegment = mc.GetLineSegment(start); Select(_selectedSegment); }