public DirectPosition getEndPoint() { return points.getDirectPosition(points.size() - 1, null); }
public Curve createCurve(PointArray points, boolean closed) throws MismatchedReferenceSystemException, MismatchedDimensionException { if (points == null) throw new NullPointerException("Points are required to create a curve"); if (points.size() < 2) throw new IllegalArgumentException( "At least two points are required to create a curve"); // A curve will be created // - The curve will be set as parent curves for the Curve segments // - Start and end params for the CurveSegments will be set List /* <LineSegment> */ segmentList = new ArrayList /* <LineSegment> */(); for (int i = 0; i < points.size() - 1; i++) { int start = i; int end = i + 1; DirectPosition point1 = points.getDirectPosition(start, null); DirectPosition point2 = points.getDirectPosition(end, null); LineSegment segment = createLineSegment(point1, point2); segmentList.add(segment); } if (closed) { LineSegment first = (LineSegment) segmentList.get(0); LineSegment last = (LineSegment) segmentList.get(segmentList.size() - 1); if (!first.getStartPoint().equals(last.getEndPoint())) { LineSegment segment = createLineSegment(last.getEndPoint(), first.getStartPoint()); segmentList.add(segment); } } return getPrimitiveFactory().createCurve(segmentList); }
/** * Returns the width of this grid. All {@linkplain PointArray point array} * in this grid must have this length. * * @return The grid width. * @see PointArray#size */ public int width() { return pointGrid[0].size(); }
/** * @inheritDoc * @see org.opengis.geometry.coordinate.GenericCurve#getEndPoint() */ public DirectPosition getEndPoint() { return (DirectPosition) controlPoints.get(controlPoints.size() - 1); }
public static DirectPosition[] getDirectPositions(final LineString lineString) { final PointArray controlPoints = lineString.getControlPoints(); final DirectPosition[] returnable = new DirectPosition[controlPoints.size()]; for (int i = 0; i < controlPoints.size(); i++) { returnable[i] = controlPoints.getDirectPosition(i, null); } return returnable; }
/** * @return * @see com.polexis.lite.spatialschema.geometry.geometry.GenericCurveImpl#computeJTSPeer() */ protected Geometry computeJTSPeer() { int n = controlPoints.size(); com.vividsolutions.jts.geom.Coordinate [] coords = new com.vividsolutions.jts.geom.Coordinate[n]; for (int i=0; i<n; i++) { coords[i] = JTSUtils.directPositionToCoordinate( (DirectPosition) controlPoints.get(i)); } return JTSUtils.GEOMETRY_FACTORY.createLineString(coords); }
/** * @inheritDoc * @see org.opengis.geometry.primitive.CurveSegment#reverse() */ public CurveSegment reverse() { LineStringImpl result = new LineStringImpl(); PointArray pa = result.getSamplePoints(); int n = controlPoints.size(); for (int i=n-1; i>=0; i--) { pa.add(new DirectPositionImpl(controlPoints.get(i).getDirectPosition())); } return result; }
/** * Creates a new PointArray based on another PointArray. This constructor * creates new Position objects. * * @param aPointArray */ public PointArrayImpl(PointArray aPointArray) { if (aPointArray.isEmpty()){ throw new IllegalArgumentException("Parameter PointArray is empty. Cannot create empty PointArray as we need the CRS"); } // Position data will be cloned here //this.column = new ArrayList<PositionImpl>(); //this.column = this.getFeatGeomFactory().getListFactory().getPositionList(); // int coordDim = aPointArray.getFirst().getCoordinateDimension(); // CoordinateFactoryImpl coordFactory = FeatGeomFactoryImpl // .getDefaultCoordinateFactory(coordDim); // TODO JR: Zur kenntnisnahme: // Wie in deinem Vorschlag von unserem Telefonat am 04/10 hole ich die CoordFactory ber ein DP //CoordinateFactoryImpl coordFactory = this.getFeatGeomFactory().getCoordinateFactory(); for (int i = 0; i < aPointArray.size(); i++) { Position copy = new PositionImpl( aPointArray.getDirectPosition(i, null) ); add( copy ); } crs = getPosition(0).getPosition().getCoordinateReferenceSystem(); }
for( int i=0; i<points.length();i++){ int start = i; int end = (i+1)%points.size(); DirectPosition point1 = points.getDirectPosition( start, null ); DirectPosition point2 = points.getDirectPosition( end, null );