visad
Class VisADGeometryArray

java.lang.Object
  extended byvisad.VisADSceneGraphObject
      extended byvisad.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()