feature.setGeometry(edge.toLineSegment().toGeometry(geometryFactory)); HashMap<String, Object> properties = new HashMap<>(); feature.setProperties(properties);
/** * @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); }
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()) {
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; } }
return inputGeom.getFactory().createPoint(minBaseSeg.p0); return minBaseSeg.toGeometry(inputGeom.getFactory());