private void ComputeIntersection(LineTopology lineTopo)
        {
            SegmentIntersectionDetector intDetector = new SegmentIntersectionDetector(li);

            intDetector.FindAllIntersectionTypes = true;
            //		prepPoly.getIntersectionFinder().intersects(lineSegStr, intDetector);
        }
        private void FindAndClassifyIntersections(IGeometry geom)
        {
            IList <ISegmentString> lineSegStr = SegmentStringUtil.ExtractSegmentStrings(geom);

            var intDetector = new SegmentIntersectionDetector();

            intDetector.FindAllIntersectionTypes = true;
            prepPoly.IntersectionFinder.Intersects(lineSegStr, intDetector);

            _hasSegmentIntersection   = intDetector.HasIntersection;
            _hasProperIntersection    = intDetector.HasProperIntersection;
            _hasNonProperIntersection = intDetector.HasNonProperIntersection;
        }