public void createLine() { if (null == m_line) { m_line = new Line(); } m_seg = m_line; } }
public void createLine() { if (null == m_line) { m_line = new Line(); } m_seg = m_line; } }
@Override public Geometry createInstance() { return new Line(m_description); }
@Override public Geometry createInstance() { return new Line(m_description); }
SimpleEdge() { m_value = -1; m_line = new Line(); m_dxdy = 55555555; m_b_horizontal = false; m_b_curve = false; m_env = new Envelope1D(); m_env.setCoordsNoNaN_(0, 0); } }
SimpleEdge() { m_value = -1; m_line = new Line(); m_dxdy = 55555555; m_b_horizontal = false; m_b_curve = false; m_env = new Envelope1D(); m_env.setCoordsNoNaN_(0, 0); } }
SweepMonkierComparator(EditShape shape, double tol) { m_shape = shape; m_tolerance = tol; m_b_intersection_detected = false; m_vertex_1 = -1; m_env = new Envelope1D(); m_point_of_interest = new Point2D(); m_point_of_interest.setNaN(); m_line_1 = new Line(); m_current_node = -1; m_min_dist = NumberUtils.doubleMax(); }
SweepMonkierComparator(EditShape shape, double tol) { m_shape = shape; m_tolerance = tol; m_b_intersection_detected = false; m_vertex_1 = -1; m_env = new Envelope1D(); m_point_of_interest = new Point2D(); m_point_of_interest.setNaN(); m_line_1 = new Line(); m_current_node = -1; m_min_dist = NumberUtils.doubleMax(); }
public Object readResolve() throws ObjectStreamException { Line ln = null; if (descriptionBitMask == -1) return null; try { VertexDescription vd = VertexDescriptionDesignerImpl .getVertexDescription(descriptionBitMask); ln = new Line(vd); if (attribs != null) { ln.setStartXY(attribs[0], attribs[1]); ln.setEndXY(attribs[2], attribs[3]); int index = 4; for (int i = 1, n = vd.getAttributeCount(); i < n; i++) { int semantics = vd.getSemantics(i); int comps = VertexDescription.getComponentCount(semantics); for (int ord = 0; ord < comps; ord++) { ln.setStartAttribute(semantics, ord, attribs[index++]); ln.setEndAttribute(semantics, ord, attribs[index++]); } } } } catch (Exception ex) { throw new InvalidObjectException("Cannot read geometry from stream"); } return ln; }
private static Geom makeLine(Geom... geoms) { final Polyline g = new Polyline(); Point p = null; for (Geom geom : geoms) { if (geom.g() instanceof Point) { final Point prev = p; p = (Point) geom.g(); if (prev != null) { final Line line = new Line(); line.setStart(prev); line.setEnd(p); g.addSegment(line, false); } } } return new SimpleGeom(g); }
private static Geom makeLine(Geom... geoms) { final Polyline g = new Polyline(); Point p = null; for (Geom geom : geoms) { if (geom.g() instanceof Point) { final Point prev = p; p = (Point) geom.g(); if (prev != null) { final Line line = new Line(); line.setStart(prev); line.setEnd(p); g.addSegment(line, false); } } } return new SimpleGeom(g); }
public static Geometry createGeometry(int gt, VertexDescription vdIn) { VertexDescription vd = vdIn; if (vd == null) vd = VertexDescriptionDesignerImpl.getDefaultDescriptor2D(); switch (gt) { case Geometry.GeometryType.Point: return new Point(vd); case Geometry.GeometryType.Line: return new Line(vd); // case enum_value2(Geometry, GeometryType, enumBezier): // break; // case enum_value2(Geometry, GeometryType, enumEllipticArc): // break; case Geometry.GeometryType.Envelope: return new Envelope(vd); case Geometry.GeometryType.MultiPoint: return new MultiPoint(vd); case Geometry.GeometryType.Polyline: return new Polyline(vd); case Geometry.GeometryType.Polygon: return new Polygon(vd); default: throw new GeometryException("invalid argument."); } }
@Override public DataByteArray exec(Tuple b) throws IOException { DataBag points = (DataBag) b.get(0); Point[] coordinates = new Point[(int) points.size()]; int i = 0; for (Tuple t : points) { coordinates[i++] = (Point) (geometryParser.parseGeom(t.get(0))).getEsriGeometry(); } Polygon multi_path = new Polygon(); for (i = 1; i <coordinates.length; i++) { Segment segment = new Line(); segment.setStart(coordinates[i-1]); segment.setEnd(coordinates[i]); multi_path.addSegment(segment, false); } OGCPolygon linestring = new OGCPolygon(multi_path, 0, SpatialReference.create(4326)); return new DataByteArray(linestring.asBinary().array()); }
void fixIntersectionPointSegment_(int cluster, int node) { m_b_cracked = true; int edge1 = m_sweep_structure.getElement(node); Segment seg_1; int vertexList1 = getEdgeOriginVertices(edge1); int origin1 = m_edge_vertices.getFirstElement(vertexList1); seg_1 = m_shape.getSegment(origin1); if (seg_1 == null) { if (m_line_1 == null) m_line_1 = new Line(); m_shape.queryLineConnector(origin1, m_line_1); seg_1 = m_line_1; } int clusterVertex = getClusterFirstVertex(cluster); m_segment_intersector.pushSegment(seg_1); m_shape.queryPoint(clusterVertex, m_helper_point); m_segment_intersector.intersect(m_tolerance, m_helper_point, 0, 1.0, true); splitEdge_(edge1, -1, cluster, m_segment_intersector); m_segment_intersector.clear(); }
void fixIntersectionPointSegment_(int cluster, int node) { m_b_cracked = true; int edge1 = m_sweep_structure.getElement(node); Segment seg_1; int vertexList1 = getEdgeOriginVertices(edge1); int origin1 = m_edge_vertices.getFirstElement(vertexList1); seg_1 = m_shape.getSegment(origin1); if (seg_1 == null) { if (m_line_1 == null) m_line_1 = new Line(); m_shape.queryLineConnector(origin1, m_line_1); seg_1 = m_line_1; } int clusterVertex = getClusterFirstVertex(cluster); m_segment_intersector.pushSegment(seg_1); m_shape.queryPoint(clusterVertex, m_helper_point); m_segment_intersector.intersect(m_tolerance, m_helper_point, 0, 1.0, true); splitEdge_(edge1, -1, cluster, m_segment_intersector); m_segment_intersector.clear(); }
private Geometry Generalize(Geometry geom) { Geometry.Type gt = geom.getType(); if (Geometry.isPoint(gt.value())) return geom; if (gt == Geometry.Type.Envelope) { Polygon poly = new Polygon(geom.getDescription()); poly.addEnvelope((Envelope) geom, false); return Generalize(poly); } if (geom.isEmpty()) return geom; MultiPath mp = (MultiPath) geom; MultiPath dstmp = (MultiPath) geom.createInstance(); Line line = new Line(); for (int ipath = 0, npath = mp.getPathCount(); ipath < npath; ipath++) { GeneralizePath((MultiPathImpl) mp._getImpl(), ipath, (MultiPathImpl) dstmp._getImpl(), line); } return dstmp; }
private Geometry Generalize(Geometry geom) { Geometry.Type gt = geom.getType(); if (Geometry.isPoint(gt.value())) return geom; if (gt == Geometry.Type.Envelope) { Polygon poly = new Polygon(geom.getDescription()); poly.addEnvelope((Envelope) geom, false); return Generalize(poly); } if (geom.isEmpty()) return geom; MultiPath mp = (MultiPath) geom; MultiPath dstmp = (MultiPath) geom.createInstance(); Line line = new Line(); for (int ipath = 0, npath = mp.getPathCount(); ipath < npath; ipath++) { GeneralizePath((MultiPathImpl) mp._getImpl(), ipath, (MultiPathImpl) dstmp._getImpl(), line); } return dstmp; }
double getRingArea(int path) { if (isRingAreaValid_(path)) return m_path_areas.get(getPathIndex_(path)); Line line = new Line(); int vertex = getFirstVertex(path); if (vertex == -1) return 0; Point2D pt0 = new Point2D(); getXY(vertex, pt0); double area = 0; for (int i = 0, n = getPathSize(path); i < n; i++, vertex = getNextVertex(vertex)) { Segment seg = getSegment(vertex); if (seg == null) { if (!queryLineConnector(vertex, line)) continue; seg = line; } double a = seg._calculateArea2DHelper(pt0.x, pt0.y); area += a; } setRingAreaValid_(path, true); m_path_areas.set(getPathIndex_(path), area); return area; }