## visad
Class VisADGeometryArray

    java.lang.Object
      visad.VisADSceneGraphObject
          visad.VisADGeometryArray

All Implemented Interfaces:
  Cloneable, Serializable

Direct Known Subclasses:
  VisADIndexedTriangleStripArray, VisADLineArray, VisADLineStripArray, VisADPointArray, VisADQuadArray, VisADTriangleArray, VisADTriangleStripArray

public abstract class VisADGeometryArray
extends VisADSceneGraphObject
implements Cloneable

VisADGeometryArray stands in for j3d.GeometryArray and is Serializable.

See Also:
  Serialized Form

Field Summary
`(package private) boolean` `any_longitude_rotate`
`byte[]` `colors`
`float[]` `coordinates`
`(package private) int` `longitude_axis`
`(package private) float[][]` `longitude_coords`
`(package private) CoordinateSystem` `longitude_cs`
`(package private) ScalarMap` `longitude_map`
`float[]` `normals`
`float[]` `texCoords`
`int` `vertexCount`
`int` `vertexFormat`

Fields inherited from class visad.VisADSceneGraphObject
`parent`

Constructor Summary
`VisADGeometryArray()`

Method Summary
`VisADGeometryArray` `adjustLongitude(DataRenderer renderer)` split any vectors or triangles crossing crossing longitude seams when Longitude is mapped to a Cartesian display axis; default implementation: rotate if necessary, then return points
`VisADGeometryArray` `adjustLongitudeBulk(DataRenderer renderer)` like adjustLongitude, but rather than splitting vectors or triangles, keep the VisADGeometryArray intact but possibly move it in longitude (try to keep its centroid on the "main" side of the seam)
`VisADGeometryArray` `adjustSeam(DataRenderer renderer)` eliminate any vectors or triangles crossing seams of map projections, defined by display-side CoordinateSystems; this default implementation does nothing
`(package private) static String` `byteArrayString(byte[] value)`
`abstract Object` `clone()`
`void` `copy(VisADGeometryArray array)`
`(package private) static String` `floatArrayString(float[] value)`
`(package private) float[]` `getLongitudeRange(float[] lons, int[] axis, float[] coords)`
`(package private) float[]` `getLongitudes(DataRenderer renderer)`
`(package private) float[]` `getLongitudes(DataRenderer renderer, boolean bulk)`
`(package private) static void` `merge(VisADGeometryArray[] arrays, VisADGeometryArray array)`
`VisADGeometryArray` `removeMissing()`
`(package private) void` `rotateLongitudes(float[] lons, float base, boolean bulk)`
`(package private) static float` `rotateOneLongitude(float lon, float base)`
`String` `toString()`

Methods inherited from class visad.VisADSceneGraphObject
`detach`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### vertexCount

    public int vertexCount

### vertexFormat

    public int vertexFormat

### coordinates

    public float[] coordinates

### normals

    public float[] normals

### colors

    public byte[] colors

### texCoords

    public float[] texCoords

### any_longitude_rotate

    boolean any_longitude_rotate

### longitude_axis

    int longitude_axis

### longitude_map

    ScalarMap longitude_map

### longitude_cs

    CoordinateSystem longitude_cs

### longitude_coords

    float[][] longitude_coords

Constructor Detail

### VisADGeometryArray

    public VisADGeometryArray()

Method Detail

### adjustSeam

    public VisADGeometryArray adjustSeam(DataRenderer renderer)
                                  throws VisADException

  eliminate any vectors or triangles crossing seams of map projections, defined by display-side CoordinateSystems; this default implementation does nothing

  Throws:
    `VisADException`

### adjustLongitudeBulk

    public VisADGeometryArray adjustLongitudeBulk(DataRenderer renderer)
                                           throws VisADException

  like adjustLongitude, but rather than splitting vectors or triangles, keep the VisADGeometryArray intact but possibly move it in longitude (try to keep its centroid on the "main" side of the seam)

  Throws:
    `VisADException`

### adjustLongitude

    public VisADGeometryArray adjustLongitude(DataRenderer renderer)
                                       throws VisADException

  split any vectors or triangles crossing crossing longitude seams when Longitude is mapped to a Cartesian display axis; default implementation: rotate if necessary, then return points

  Throws:
    `VisADException`

### rotateOneLongitude

    static float rotateOneLongitude(float lon,
                                    float base)

### rotateLongitudes

    void rotateLongitudes(float[] lons,
                          float base,
                          boolean bulk)
                    throws VisADException

  Throws:
    `VisADException`

### getLongitudes

    float[] getLongitudes(DataRenderer renderer)
                    throws VisADException

  Throws:
    `VisADException`

### getLongitudes

    float[] getLongitudes(DataRenderer renderer,
                          boolean bulk)
                    throws VisADException

  Throws:
    `VisADException`

### getLongitudeRange

    float[] getLongitudeRange(float[] lons,
                              int[] axis,
                              float[] coords)

### removeMissing

    public VisADGeometryArray removeMissing()

### merge

    static void merge(VisADGeometryArray[] arrays,
                      VisADGeometryArray array)
               throws VisADException

  Throws:
    `VisADException`

### toString

    public String toString()

### floatArrayString

    static String floatArrayString(float[] value)

### byteArrayString

    static String byteArrayString(byte[] value)

### copy

    public void copy(VisADGeometryArray array)

### clone

    public abstract Object clone()