edu.wisc.ssec.mcidasv.data.hydra
Class ImageRGBDisplayable

java.lang.Object
  extended by ucar.visad.display.Displayable
      extended by ucar.visad.display.DisplayableData
          extended by edu.wisc.ssec.mcidasv.data.hydra.ImageRGBDisplayable
All Implemented Interfaces:
GridDisplayable

public class ImageRGBDisplayable
extends DisplayableData
implements GridDisplayable

Provides support for a Displayable that needs a map to (Display.Red,Display.Green,Display.Blue)

Version:
$Revision$
Author:
IDV development team

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.visad.display.DisplayableData
DisplayableData.DragAdapter
 
Field Summary
private  ScalarMap[] colorMaps
          color ScalarMaps
private  float[][] colorPalette
          color palette
private  RealTupleType colorTupleType
          color MathType
private  boolean doAlpha
          flag for whether we use Alpha channel or not
private  DisplayRealType mapType
          What do we map with
private static int uniqueID
           
 
Fields inherited from class ucar.visad.display.DisplayableData
LINE_WIDTH, MANIPULABLE, renderer, VISIBLE
 
Fields inherited from class ucar.visad.display.Displayable
DISPLAY, parent, SCALAR_MAP_SET
 
Constructor Summary
protected ImageRGBDisplayable(ImageRGBDisplayable that)
          Constructs from another instance.
  ImageRGBDisplayable(String name)
          Constructs from a name for the Displayable and the type of the RGB parameter.
  ImageRGBDisplayable(String name, boolean doAlpha)
          Constructs from a name for the Displayable and the type of the RGB parameter.
  ImageRGBDisplayable(String name, float[][] colorPalette, boolean doAlpha)
          Constructs from a name for the Displayable and the type of the RGB parameter.
  ImageRGBDisplayable(String name, float[][] colorPalette, boolean doAlpha, FieldImpl field)
           
 
Method Summary
 float[][] getColorPalette()
          Return the current color palette in this Displayable
 RealTupleType getColorTupleType()
          Get the RealTupleType of the RGB parameter.
protected  DataRenderer getDataRenderer()
           
 RealTupleType getRGBRealTupleType()
          Deprecated. use getColorTupleType()
 void loadData(FieldImpl field)
          Set the data into the Displayable; set RGB Type
 void setAlpha(float alpha)
          Set the alpha.
 void setColoredByAnother(boolean yesno)
          Set whether this GridDisplayable should have the data colored by another parameter.
private  void setColorMaps()
          creates the ScalarMaps for color for this Displayable.
 void setColorPalette(float[][] colorPalette)
          This method sets the color palette according to the color table in argument; pair this method with setRange(lo,high) to get a fixed association of color table and range of values.
private  void setColorsInControls(float[][] colorPalette)
          Set colors for the controls of all color maps.
private  void setColorsInControls(float[][] colorPalette, int colorMapIndex)
          Set colors for the control defined by the given colorMapIndex (0,1 or 2).
protected  void setColorTupleType(RealTupleType realTupleType)
          Sets the RealTupleType of the RGB parameter.
 void setDisplay(LocalDisplay display)
          Set the display.
protected  void setScalarMaps(ScalarMapSet maps)
          Sets the set of ScalarMap-s of this instance.
 
Methods inherited from class ucar.visad.display.DisplayableData
addAction, cloneForDisplay, dataChange, destroy, getActive, getAnimationSet, getData, getLineWidth, getName, getPointSize, hasData, hasDataObject, isManipulable, isPickable, myAddConstantMaps, myAddDataReferences, myRemoveDataReferences, removeAction, setActive, setData, setDataReference, setDragAdapter, setLineWidth, setManipulable, setPickable, setPointMode, setPointSize, setUseFastRendering, setVisible, showme, toString
 
Methods inherited from class ucar.visad.display.Displayable
addConstantMap, addConstantMaps, addDataReferences, addPropertyChangeListener, addPropertyChangeListener, addRefsInvoked, addScalarMap, addScalarMaps, applyColorUnit, applyDisplayUnit, checkUnit, combineConstantMaps, destroyDisplayable, firePropertyChange, firePropertyChange, fireScalarMapSetChange, getColorUnit, getConstantMaps, getDestroyed, getDisplay, getDisplayMaster, getDisplayUnit, getPointMode, getScalarMap, getScalarMap, getScalarMap, getScalarMapSet, getUseFastRendering, getUseTimesInAnimation, getVisible, isActive, isUnitCompatible, isVisible, logException, removeConstantMap, removeDataReferences, removePropertyChangeListener, removePropertyChangeListener, removeScalarMap, replaceScalarMap, setAdjustFlow, setColor, setColorPalette, setColorUnit, setConstantPosition, setContourInfo, setDisplayActive, setDisplayInactive, setDisplayMaster, setDisplayUnit, setOverrideAnimationSet, setOverrideAnimationSet, setParent, setRangeForColor, setRangeForColor, setScalarMapSet, setSelectedRange, setSelectedRange, setUseTimesInAnimation, toFront
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

colorMaps

private volatile ScalarMap[] colorMaps
color ScalarMaps


colorTupleType

private volatile RealTupleType colorTupleType
color MathType


colorPalette

private float[][] colorPalette
color palette


mapType

private DisplayRealType mapType
What do we map with


doAlpha

private boolean doAlpha
flag for whether we use Alpha channel or not


uniqueID

private static int uniqueID
Constructor Detail

ImageRGBDisplayable

public ImageRGBDisplayable(String name)
                    throws VisADException,
                           RemoteException
Constructs from a name for the Displayable and the type of the RGB parameter.

Parameters:
name - The name for the displayable.
Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

ImageRGBDisplayable

public ImageRGBDisplayable(String name,
                           boolean doAlpha)
                    throws VisADException,
                           RemoteException
Constructs from a name for the Displayable and the type of the RGB parameter.

Parameters:
name - The name for the displayable.
doAlpha - true to map to RGBA
Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

ImageRGBDisplayable

public ImageRGBDisplayable(String name,
                           float[][] colorPalette,
                           boolean doAlpha)
                    throws VisADException,
                           RemoteException
Constructs from a name for the Displayable and the type of the RGB parameter.

Parameters:
name - The name for the displayable.
colorPalette - The color palette
doAlpha - true to map to RGBA
Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

ImageRGBDisplayable

protected ImageRGBDisplayable(ImageRGBDisplayable that)
                       throws VisADException,
                              RemoteException
Constructs from another instance. The following attributes are set from the other instance: color palette, the color RealType.

Parameters:
that - The other instance.
Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

ImageRGBDisplayable

public ImageRGBDisplayable(String name,
                           float[][] colorPalette,
                           boolean doAlpha,
                           FieldImpl field)
                    throws VisADException,
                           RemoteException
Throws:
VisADException
RemoteException
Method Detail

loadData

public void loadData(FieldImpl field)
              throws VisADException,
                     RemoteException
Set the data into the Displayable; set RGB Type

Specified by:
loadData in interface GridDisplayable
Parameters:
field - an image or sequence of images
Throws:
VisADException - from construction of VisAd objects
RemoteException - from construction of VisAD objects

getColorTupleType

public RealTupleType getColorTupleType()
Get the RealTupleType of the RGB parameter.

Returns:
The RealTupleType of the RGB parameters. May be null.

setColorTupleType

protected void setColorTupleType(RealTupleType realTupleType)
                          throws RemoteException,
                                 VisADException
Sets the RealTupleType of the RGB parameter.

Parameters:
realTupleType - The RealTupleType of the RGB parameters. May not be null.
Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

getRGBRealTupleType

public RealTupleType getRGBRealTupleType()
Deprecated. use getColorTupleType()

Returns the RealTupleType of the RGB parameter.

Returns:
The RealTupleType of the color parameter. May be null.

setScalarMaps

protected void setScalarMaps(ScalarMapSet maps)
                      throws BadMappingException
Sets the set of ScalarMap-s of this instance. The ScalarMap-s of this instance will be added to the set before the SCALAR_MAP_SET property is set. This method fires a PropertyChangeEvent for SCALAR_MAP_SET with null for the old value and the new set of ScalarMap-s for the new Value. Intermediate subclasses that have their own ScalarMap-s should override this method and invoke super.setScalarMaps(ScalarMapSet).

Parameters:
maps - The set of ScalarMap-s to be added.
Throws:
BadMappingException - The RealType of the color parameter has not been set or its ScalarMap is alread in the set.

setAlpha

public void setAlpha(float alpha)
              throws RemoteException,
                     VisADException
Set the alpha. Unused.

Parameters:
alpha - alpha
Throws:
RemoteException - On badness
VisADException - On badness

setColorMaps

private void setColorMaps()
                   throws RemoteException,
                          VisADException
creates the ScalarMaps for color for this Displayable.

Throws:
VisADException - VisAD failure.
RemoteException - Java RMI failure.

setDisplay

public void setDisplay(LocalDisplay display)
                throws DisplayException,
                       VisADException,
                       RemoteException
Set the display.

Overrides:
setDisplay in class Displayable
Parameters:
display - display to set this into
Throws:
DisplayException - Display type exception
RemoteException - Java RMI error
VisADException - problem creating VisAD object

setColorPalette

public void setColorPalette(float[][] colorPalette)
                     throws RemoteException,
                            VisADException
This method sets the color palette according to the color table in argument; pair this method with setRange(lo,high) to get a fixed association of color table and range of values.

Overrides:
setColorPalette in class Displayable
Parameters:
colorPalette - the color table or color-alpha table desired
Throws:
VisADException - if a core VisAD failure occurs.
RemoteException - if a Java RMI failure occurs.

getColorPalette

public float[][] getColorPalette()
Return the current color palette in this Displayable

Returns:
a color table float[3][len] or color-alpha table float[4][len]

setColorsInControls

private void setColorsInControls(float[][] colorPalette)
                          throws RemoteException,
                                 VisADException
Set colors for the controls of all color maps.

Parameters:
colorPalette - The 3xN color palette array
Throws:
RemoteException - Java RMI error
VisADException - problem creating VisAD object

setColorsInControls

private void setColorsInControls(float[][] colorPalette,
                                 int colorMapIndex)
                          throws RemoteException,
                                 VisADException
Set colors for the control defined by the given colorMapIndex (0,1 or 2).

Parameters:
colorPalette - The 3xN color palette array
colorMapIndex - Which of the color maps are we setting the color of.
Throws:
RemoteException - Java RMI error
VisADException - problem creating VisAD object

getDataRenderer

protected DataRenderer getDataRenderer()
                                throws VisADException
Overrides:
getDataRenderer in class DisplayableData
Throws:
VisADException

setColoredByAnother

public void setColoredByAnother(boolean yesno)
Set whether this GridDisplayable should have the data colored by another parameter. This implementation is a no-op.

Specified by:
setColoredByAnother in interface GridDisplayable
Parameters:
yesno - true if colored by another