LineString l = e.getGeometry().toGeometry(this.geomFactory); edges.add(l); LineString l = e.getGeometry().toGeometry(this.geomFactory); edges.add(l);
return inputGeom.getFactory().createPoint(minBaseSeg.p0); return minBaseSeg.toGeometry(inputGeom.getFactory());
/** * @return Unique triangles edges */ public MultiLineString getTrianglesSides() { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Remove duplicates edges thanks to this hash map of normalized line segments Set<LineSegment> segmentHashMap = new HashSet<LineSegment>(delaunayTriangle.size()); for(DelaunayTriangle triangle : delaunayTriangle) { TriangulationPoint[] pts = triangle.points; addSegment(segmentHashMap, pts[0], pts[1]); addSegment(segmentHashMap, pts[1], pts[2]); addSegment(segmentHashMap, pts[2], pts[0]); } LineString[] lineStrings = new LineString[segmentHashMap.size()]; int i = 0; for(LineSegment lineSegment : segmentHashMap) { lineStrings[i++] = lineSegment.toGeometry(gf); } return gf.createMultiLineString(lineStrings); }
/** * @return Unique triangles edges */ public MultiLineString getTrianglesSides() { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Remove duplicates edges thanks to this hash map of normalized line segments Set<LineSegment> segmentHashMap = new HashSet<LineSegment>(delaunayTriangle.size()); for(DelaunayTriangle triangle : delaunayTriangle) { TriangulationPoint[] pts = triangle.points; addSegment(segmentHashMap, pts[0], pts[1]); addSegment(segmentHashMap, pts[1], pts[2]); addSegment(segmentHashMap, pts[2], pts[0]); } LineString[] lineStrings = new LineString[segmentHashMap.size()]; int i = 0; for(LineSegment lineSegment : segmentHashMap) { lineStrings[i++] = lineSegment.toGeometry(gf); } return gf.createMultiLineString(lineStrings); }
private List<Geometry> splitLines(Geometry geometry) { List<Geometry> segments = new ArrayList<Geometry>(); Geometry lineString = geometry; Class<?> binding = geometry.getClass(); if (Polygon.class.equals(binding) || MultiPolygon.class.equals(binding)) { lineString = geometry.getBoundary(); } for (int index = 0; index < lineString.getNumGeometries(); index++) { Geometry part = lineString.getGeometryN(index); Coordinate[] coords = part.getCoordinates(); for (int i = 0, j = coords.length - 1; i < j; i++) { LineSegment seg = new LineSegment(coords[i], coords[i + 1]); Geometry splits = seg.toGeometry(geometry.getFactory()); splits.setUserData(geometry.getUserData()); segments.add(splits); } } return segments; } }
private LineString voronoiSide(int idgeom, int side,GeometryFactory geometryFactory, Coordinate circumcenter) { boolean triangleCCW = isCCW(idgeom); // Create linestring to envelope LineSegment sideGeom = getTriangleSegment(idgeom, side); Vector2D direction = new Vector2D(sideGeom.p0, sideGeom.p1); direction = direction.normalize().rotate(triangleCCW ? - Math.PI / 2 : Math.PI / 2).multiply(envelope.maxExtent()); LineSegment voronoiLine = new LineSegment(circumcenter, new Coordinate(direction.getX() + circumcenter.x, direction.getY() + circumcenter.y)); Geometry lineString = voronoiLine.toGeometry(geometryFactory).intersection(geometryFactory.toGeometry(envelope)); if(lineString instanceof LineString && lineString.getLength() > epsilon) { return (LineString)lineString; } else { return null; } }
private LineString voronoiSide(int idgeom, int side,GeometryFactory geometryFactory, Coordinate circumcenter) { boolean triangleCCW = isCCW(idgeom); // Create linestring to envelope LineSegment sideGeom = getTriangleSegment(idgeom, side); Vector2D direction = new Vector2D(sideGeom.p0, sideGeom.p1); direction = direction.normalize().rotate(triangleCCW ? - Math.PI / 2 : Math.PI / 2).multiply(envelope.maxExtent()); LineSegment voronoiLine = new LineSegment(circumcenter, new Coordinate(direction.getX() + circumcenter.x, direction.getY() + circumcenter.y)); Geometry lineString = voronoiLine.toGeometry(geometryFactory).intersection(geometryFactory.toGeometry(envelope)); if(lineString instanceof LineString && lineString.getLength() > epsilon) { return (LineString)lineString; } else { return null; } }
borderEdges.add( e.getGeometry().toGeometry(this.geomFactory) ); borderEdges.add( e.getGeometry().toGeometry(this.geomFactory) );
for (int j = 0; j < stepCount; j++) { LineSegment stepLine = new LineSegment(vStart.add(v.multiply(j)).toCoordinate(), vStart.add(v.multiply(j + 1)).toCoordinate()); LineString rayStep = stepLine.toGeometry(factory); List<LineString> interEnv = sTRtree.query(rayStep.getEnvelopeInternal()); if (!interEnv.isEmpty()) {
Geometry lineseg = seg.toGeometry(los.getFactory());
LineString userLine = segment.toGeometry(observerPoint.getFactory()); Geometry lineseg = seg.toGeometry(los.getFactory());
return inputGeom.getFactory().createPoint(minBaseSeg.p0); return minBaseSeg.toGeometry(inputGeom.getFactory());