org.geotools.renderer.array
Class GenericArray

java.lang.Object
  extended byorg.geotools.renderer.array.PointArray
      extended byorg.geotools.renderer.array.GenericArray
All Implemented Interfaces:
RandomAccess, java.io.Serializable

public class GenericArray
extends PointArray
implements RandomAccess

An array wrapping a pair of x and y vectors. The vectors may be arrays of any of Java primitive types: double[], float[], long[], int[], short[], byte[], char[] (which may be used as a kind of unsigned short) or boolean[] (0 or 1 values). The x and y arrays doesn't need to be of the same type. Note: this implementation is not the fastest one. For maximal performance, consider using DefaultArray instead.

Version:
$Id: GenericArray.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux
See Also:
DefaultArray, JTSArray, Serialized Form

Constructor Summary
GenericArray(java.lang.Object x, java.lang.Object y)
          Construct a new array of points.
GenericArray(java.lang.Object x, java.lang.Object y, int lower, int upper)
          Construct a new array of points.
 
Method Summary
 GenericArray clip(java.awt.geom.Rectangle2D clip)
          Construct a new array clipped to the specified rectangle.
 int count()
          Returns the number of points in this array.
 java.awt.geom.Rectangle2D getBounds2D()
          Returns the bounding box of all x and y ordinates.
 PointArray getFinal(CompressionLevel level)
          Retourne un tableau immutable qui contient les m?mes donn?es que celui-ci.
 java.awt.geom.Point2D getFirstPoint(java.awt.geom.Point2D point)
          Returns the first point in this array.
 java.awt.geom.Point2D getLastPoint(java.awt.geom.Point2D point)
          Returns the last point in this array.
 long getMemoryUsage()
          Returns an estimation of memory usage in bytes.
 java.awt.geom.Point2D getValue(int i)
          Returns the point at the specified index.
 PointArray insertAt(int index, float[] toMerge, int lower, int upper, boolean reverse)
          Ins?re les donn?es (x,y) du tableau toMerge sp?cifi?.
 PointIterator iterator(int index)
          Returns an iterator object that iterates along the point coordinates.
 PointArray reverse()
          Renverse l'ordre de tous les points compris dans ce tableau.
 PointArray subarray(int lower, int upper)
          Retourne un tableau enveloppant les m?mes points que le tableau courant, mais des index lower inclusivement jusqu'? upper exclusivement.
 void toArray(ArrayData dest, float resolution2)
          Append (x,y) coordinates to the specified destination array.
 
Methods inherited from class org.geotools.renderer.array.PointArray
equals, equals, hashCode, insertAt, toArray, toShape, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GenericArray

public GenericArray(java.lang.Object x,
                    java.lang.Object y)
             throws java.lang.ClassCastException,
                    javax.vecmath.MismatchedSizeException
Construct a new array of points. The x and y arrays may be an array of any of Java's primitive types, and doesn't need to be the same type. The array are stored by reference (i.e. data are not copied).

Parameters:
x - x ordinates.
y - y ordinates.
Throws:
java.lang.ClassCastException - if x and y are not arrays of a primitive type.
javax.vecmath.MismatchedSizeException - if arrays doesn't have the same length.

GenericArray

public GenericArray(java.lang.Object x,
                    java.lang.Object y,
                    int lower,
                    int upper)
             throws java.lang.ClassCastException
Construct a new array of points. The x and y arrays may be an array of any of Java's primitive types, and doesn't need to be the same type. The array are stored by reference (i.e. data are not copied).

Parameters:
x - x ordinates.
y - y ordinates.
lower - Index of lower point, inclusive.
upper - Index of upper point, exclusive.
Throws:
java.lang.ClassCastException - if x and y are not arrays of a primitive type.
javax.vecmath.MismatchedSizeException - if arrays doesn't have the same length.
Method Detail

count

public int count()
Returns the number of points in this array.

Specified by:
count in interface RandomAccess
Specified by:
count in class PointArray

getMemoryUsage

public long getMemoryUsage()
Returns an estimation of memory usage in bytes.

Specified by:
getMemoryUsage in class PointArray
Returns:
An estimation of memory usage in bytes.

getFirstPoint

public java.awt.geom.Point2D getFirstPoint(java.awt.geom.Point2D point)
Returns the first point in this array. If point is null, a new Point2D object is allocated and then the result is stored in this object.

Specified by:
getFirstPoint in class PointArray
Parameters:
point - The object in which to store the first point, or null.
Returns:
point or a new Point2D, which contains the first point.

getLastPoint

public java.awt.geom.Point2D getLastPoint(java.awt.geom.Point2D point)
Returns the last point in this array. If point is null, a new Point2D object is allocated and then the result is stored in this object.

Specified by:
getLastPoint in class PointArray
Parameters:
point - The object in which to store the last point, or null.
Returns:
point or a new Point2D, which contains the last point.

getValue

public java.awt.geom.Point2D getValue(int i)
                               throws java.lang.IndexOutOfBoundsException
Returns the point at the specified index.

Specified by:
getValue in interface RandomAccess
Parameters:
i - The index from 0 inclusive to count() exclusive.
Returns:
The point at the given index.
Throws:
java.lang.IndexOutOfBoundsException - if index is out of bounds.

iterator

public PointIterator iterator(int index)
Returns an iterator object that iterates along the point coordinates.

Specified by:
iterator in class PointArray
Parameters:
index - Index of the first point to returns in the iteration.
Returns:
The iterator.

getBounds2D

public java.awt.geom.Rectangle2D getBounds2D()
Returns the bounding box of all x and y ordinates. If this array is empty, then this method returns null.

Overrides:
getBounds2D in class PointArray

clip

public GenericArray clip(java.awt.geom.Rectangle2D clip)
Construct a new array clipped to the specified rectangle. This method will clip the array only if it can be done in a cheap way. It is legal for this method to returns this if the clip is not cheap.

Parameters:
clip - The clip, or null for none.
Returns:
The clipped array, or null.

subarray

public PointArray subarray(int lower,
                           int upper)
Retourne un tableau enveloppant les m?mes points que le tableau courant, mais des index lower inclusivement jusqu'? upper exclusivement. Si le sous-tableau ne contient aucun point (c'est-?-dire si lower==upper), alors cette m?thode retourne null.

Specified by:
subarray in class PointArray
Parameters:
lower - Index du premier point ? prendre en compte.
upper - Index suivant celui du dernier point ? prendre en compte.

insertAt

public PointArray insertAt(int index,
                           float[] toMerge,
                           int lower,
                           int upper,
                           boolean reverse)
Ins?re les donn?es (x,y) du tableau toMerge sp?cifi?.

Specified by:
insertAt in class PointArray
Parameters:
index - Index ? partir d'o? ins?rer les points dans ce tableau. Le point ? cet index ainsi que tous ceux qui le suivent seront d?cal?s vers des index plus ?lev?s.
toMerge - Tableau de coordonn?es (x,y) ? ins?rer dans ce tableau de points. Ses valeurs seront copi?es.
lower - Index de la premi?re coordonn?e de toMerge ? copier dans ce tableau.
upper - Index suivant celui de la derni?re coordonn?e de toMerge ? copier.
reverse - true s'il faut inverser l'ordre des points de toMerge lors de la copie. Cette inversion ne change pas l'ordre (x,y) des coordonn?es de chaque points.
Returns:
this si l'insertion ? pu ?tre faite sur place, ou un autre tableau si ?a n'a pas ?t? possible.

reverse

public PointArray reverse()
Renverse l'ordre de tous les points compris dans ce tableau.

Specified by:
reverse in class PointArray
Returns:
this si l'inversion a pu ?tre faite sur-place, ou un autre tableau si ?a n'a pas ?t? possible.

getFinal

public PointArray getFinal(CompressionLevel level)
Retourne un tableau immutable qui contient les m?mes donn?es que celui-ci.

Overrides:
getFinal in class PointArray
Parameters:
level - The compression level, or null if no compression is wanted.
Returns:
Tableau immutable et ?ventuellement compress?, this si ce tableau r?pondait d?j? aux conditions ou null si ce tableau ne contient aucune donn?e.

toArray

public void toArray(ArrayData dest,
                    float resolution2)
Append (x,y) coordinates to the specified destination array. The destination array will be filled starting at index ArrayData.length. If resolution2 is greater than 0, then points that are closer than sqrt(resolution2) from previous one will be skiped.

Specified by:
toArray in class PointArray
Parameters:
resolution2 - The minimum squared distance desired between points.


Copyright © GeoTools. All Rights Reserved.