示例#1
0
        /// <summary>
        /// Node the input segment strings once
        /// and create the split edges between the nodes.
        /// </summary>
        /// <param name="segStrings"></param>
        /// <param name="numInteriorIntersections"></param>
        private void Node(IList segStrings, int[] numInteriorIntersections)
        {
            IntersectionAdder si    = new IntersectionAdder(li);
            MCIndexNoder      noder = new MCIndexNoder(si);

            noder.ComputeNodes(segStrings);
            nodedSegStrings             = noder.GetNodedSubstrings();
            numInteriorIntersections[0] = si.NumInteriorIntersections;
        }
示例#2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="precisionModel"></param>
        /// <returns></returns>
        private INoder GetNoder(IPrecisionModel precisionModel)
        {
            if (workingNoder != null) 
                return workingNoder;

            // otherwise use a fast (but non-robust) noder
            LineIntersector li = new RobustLineIntersector();
            li.PrecisionModel = precisionModel;
            MCIndexNoder noder = new MCIndexNoder(new IntersectionAdder(li));                     
            return noder;
        }
示例#3
0
 /// <summary>
 /// Node the input segment strings once
 /// and create the split edges between the nodes.
 /// </summary>
 /// <param name="segStrings"></param>
 /// <param name="numInteriorIntersections"></param>
 private void Node(IList segStrings, int[] numInteriorIntersections)
 {
     IntersectionAdder si = new IntersectionAdder(li);
     MCIndexNoder noder = new MCIndexNoder(si);            
     noder.ComputeNodes(segStrings);
     nodedSegStrings = noder.GetNodedSubstrings();
     numInteriorIntersections[0] = si.NumInteriorIntersections;            
 }