Esempio n. 1
0
 /// <summary>
 /// Creates a builder for linear elements which may be present
 /// in the overlay result.
 /// </summary>
 /// <param name="inputGeom">The input geometries</param>
 /// <param name="graph">The topology graph</param>
 /// <param name="hasResultArea"><c>true</c> if an area has been generated for the result</param>
 /// <param name="opCode">The overlay operation code</param>
 /// <param name="geomFact">The output geometry factory</param>
 public LineBuilder(InputGeometry inputGeom, OverlayGraph graph, bool hasResultArea, SpatialFunction opCode, GeometryFactory geomFact)
 {
     _graph           = graph;
     _opCode          = opCode;
     _geometryFactory = geomFact;
     _hasResultArea   = hasResultArea;
     _inputAreaIndex  = inputGeom.GetAreaIndex();
 }
        internal static Geometry ToLines(OverlayGraph graph, bool isOutputEdges, GeometryFactory geomFact)
        {
            var lines = new List <LineString>();

            foreach (var edge in graph.Edges)
            {
                bool includeEdge = isOutputEdges || edge.IsInResultArea;
                if (!includeEdge)
                {
                    continue;
                }
                //Coordinate[] pts = getCoords(nss);
                var pts  = edge.CoordinatesOriented;
                var line = geomFact.CreateLineString(pts);
                line.UserData = LabelForResult(edge);
                lines.Add(line);
            }
            return(geomFact.BuildGeometry(lines));
        }
 public IntersectionPointBuilder(OverlayGraph graph,
                                 GeometryFactory geomFact)
 {
     _graph           = graph;
     _geometryFactory = geomFact;
 }
 public OverlayLabeller(OverlayGraph graph, InputGeometry inputGeometry)
 {
     _graph         = graph;
     _inputGeometry = inputGeometry;
     _edges         = graph.Edges;
 }