visad.bom
Class ImageRendererJ3D

java.lang.Object
  extended by visad.DataRenderer
      extended by visad.java3d.RendererJ3D
          extended by visad.java3d.DefaultRendererJ3D
              extended by visad.bom.ImageRendererJ3D
All Implemented Interfaces:
Cloneable

public class ImageRendererJ3D
extends DefaultRendererJ3D

ImageRendererJ3D is the VisAD class for fast loading of images and image sequences under Java3D. WARNING - when reUseFrames is true during doTransform() ImageRendererJ3D makes these assumptions: 1. That the images in a new time sequence are identical to any images at the same time in a previous sequence. 2. That the image sequence defines the entire animation sampling.


Field Summary
 
Fields inherited from class visad.DataRenderer
enabled, pickCrawlToCursor
 
Constructor Summary
ImageRendererJ3D()
           
 
Method Summary
 void clearScene()
          clear any scene graph created by this DataRenderer, and clear all instance variables
 Object clone()
           
 BranchGroup doTransform()
          create a BranchGroup scene graph for Data in links[0]
 VisADImageNode getImageNode()
           
 boolean getLastAdjustProjectionSeam()
           
 float getLastAlphaValue()
           
 int getLastCurveSize()
           
 long getLastDataHashCode()
           
 float getLastZAxisValue()
           
 boolean getReUseFrames()
           
 boolean getSetSetOnReUseFrames()
           
static boolean isByRefUsable(DataDisplayLink link, ShadowType shadow)
           
static boolean isImageType(MathType type)
          determine whether the given MathType is usable with ImageRendererJ3D
static boolean isRendererUsable(MathType type, ScalarMap[] maps)
          determine whether the given MathType and collection of ScalarMaps meets the criteria to use ImageRendererJ3D.
static void main(String[] args)
          run 'java visad.bom.ImageRendererJ3D len step' to test animation behavior of ImageRendererJ3D renders a loop of len at step ms per frame then updates loop by deleting first time and adding a new last time
 ShadowType makeShadowFunctionType(FunctionType type, DataDisplayLink link, ShadowType parent)
          factory method for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowFunctionType; ShadowType trees are constructed that 'shadow' the MathType trees of Data to be depicted, via recursive calls to buildShadowType() methods of MathType sub-classes, to DataRenderer.makeShadow*Type() methods, to Shadow*Type constructors, then back to buildShadowType() methods; the recursive call chain is initiated by DataDisplayLink.prepareData() calls to buildShadowType() methods of MathType sub-classes;
 void setImageNode(VisADImageNode node)
           
 void setLastAdjustProjectionSeam(boolean adjust)
           
 void setLastAlphaValue(float alpha)
           
 void setLastCurveSize(int csize)
           
 void setLastDataHashCode(long lastdata_hashcode)
           
 void setLastZAxisValue(float zaxis_value)
           
 void setReUseFrames()
          Deprecated. - use setReUseFrames(boolean reuse)
 void setReUseFrames(boolean reuse)
          Toggle the re-using of frames when a new image or set of images is set in the datareference.
 void setSetSetOnReUseFrames(boolean ss)
           
 void suggestBufImageType(int imageType)
          Suggest to the underlying shadow type the buffered image type to use.
static void verifyImageRendererUsable(MathType type, ScalarMap[] maps)
          Deprecated. Use isRendererUsable(MathType, ScalarMap[]) instead.
 
Methods inherited from class visad.java3d.DefaultRendererJ3D
addSwitch, getLink, setLinks
 
Methods inherited from class visad.java3d.RendererJ3D
clearBranch, doAction, flush, getBranch, makeShadowRealTupleType, makeShadowRealType, makeShadowSetType, makeShadowTextType, makeShadowTupleType, setBranchEarly, toggle
 
Methods inherited from class visad.DataRenderer
addException, addPoint, checkAction, checkClose, checkDirect, clearAVControls, clearExceptions, computeRanges, constrainDragPoint, drag_direct, earthToSpatial, earthToSpatial, findRayManifoldIntersection, get_all_feasible, get_any_changed, get_any_transform_control, getBadScale, getDisplay, getDisplayCoordinateSystem, getDisplayRenderer, getEarthDimension, getEarthUnits, getEnabled, getExceptionVector, getIsDirectManipulation, getLastMouseModifiers, getLatLonIndices, getLatLonRange, getLinks, getPickCrawlToCursor, getRanges, getRealVectorTypes, getWhyNotDirect, isLegalTextureMap, isTransformControl, prepareAction, realCheckDirect, release_direct, removeLink, set_all_feasible, setDisplay, setDisplayRenderer, setEarthSpatialData, setEarthSpatialDisplay, setIsDirectManipulation, setLastMouseModifiers, setLatLonIndices, setLinks, setPickCrawlToCursor, setSpatialValues, spatialToEarth, spatialToEarth, stop_direct, suppressExceptions
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImageRendererJ3D

public ImageRendererJ3D()
Method Detail

isImageType

public static boolean isImageType(MathType type)
determine whether the given MathType is usable with ImageRendererJ3D


verifyImageRendererUsable

public static void verifyImageRendererUsable(MathType type,
                                             ScalarMap[] maps)
                                      throws VisADException
Deprecated. Use isRendererUsable(MathType, ScalarMap[]) instead.

Throws:
VisADException

isRendererUsable

public static boolean isRendererUsable(MathType type,
                                       ScalarMap[] maps)
                                throws VisADException
determine whether the given MathType and collection of ScalarMaps meets the criteria to use ImageRendererJ3D. Throw a VisADException if ImageRenderer cannot be used, otherwise return true.

Throws:
VisADException

isByRefUsable

public static boolean isByRefUsable(DataDisplayLink link,
                                    ShadowType shadow)
                             throws VisADException,
                                    RemoteException
Throws:
VisADException
RemoteException

makeShadowFunctionType

public ShadowType makeShadowFunctionType(FunctionType type,
                                         DataDisplayLink link,
                                         ShadowType parent)
                                  throws VisADException,
                                         RemoteException
Description copied from class: DataRenderer
factory method for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowFunctionType; ShadowType trees are constructed that 'shadow' the MathType trees of Data to be depicted, via recursive calls to buildShadowType() methods of MathType sub-classes, to DataRenderer.makeShadow*Type() methods, to Shadow*Type constructors, then back to buildShadowType() methods; the recursive call chain is initiated by DataDisplayLink.prepareData() calls to buildShadowType() methods of MathType sub-classes;

Overrides:
makeShadowFunctionType in class RendererJ3D
Parameters:
type - FunctionType that returned ShadowType will shadow
link - DataDisplayLink linking Data to be depicted
parent - parent in ShadowType tree structure
Returns:
constructed ShadowType
Throws:
VisADException - a VisAD error occurred
RemoteException - an RMI error occurred

setReUseFrames

public void setReUseFrames(boolean reuse)
Toggle the re-using of frames when a new image or set of images is set in the datareference.

WARNING - when reUseFrames is true during doTransform() ImageRendererJ3D makes these assumptions:

  1. That the images in a new time sequence are identical to any images at the same time in a previous sequence.
  2. That the image sequence defines the entire animation sampling.


suggestBufImageType

public void suggestBufImageType(int imageType)
Suggest to the underlying shadow type the buffered image type to use. Experimental: This may changed or removed in future releases.


setImageNode

public void setImageNode(VisADImageNode node)

getImageNode

public VisADImageNode getImageNode()

setReUseFrames

public void setReUseFrames()
Deprecated. - use setReUseFrames(boolean reuse)

Turn on the reusing of frames


getReUseFrames

public boolean getReUseFrames()

setSetSetOnReUseFrames

public void setSetSetOnReUseFrames(boolean ss)

getSetSetOnReUseFrames

public boolean getSetSetOnReUseFrames()

clearScene

public void clearScene()
Description copied from class: DataRenderer
clear any scene graph created by this DataRenderer, and clear all instance variables

Overrides:
clearScene in class DefaultRendererJ3D

doTransform

public BranchGroup doTransform()
                        throws VisADException,
                               RemoteException
Description copied from class: DefaultRendererJ3D
create a BranchGroup scene graph for Data in links[0]

Overrides:
doTransform in class DefaultRendererJ3D
Throws:
VisADException
RemoteException

clone

public Object clone()
Overrides:
clone in class DefaultRendererJ3D
Returns:
a copy of this DataRenderer

main

public static void main(String[] args)
                 throws VisADException,
                        RemoteException,
                        IOException
run 'java visad.bom.ImageRendererJ3D len step' to test animation behavior of ImageRendererJ3D renders a loop of len at step ms per frame then updates loop by deleting first time and adding a new last time

Throws:
VisADException
RemoteException
IOException

getLastCurveSize

public int getLastCurveSize()

setLastCurveSize

public void setLastCurveSize(int csize)

getLastZAxisValue

public float getLastZAxisValue()

setLastZAxisValue

public void setLastZAxisValue(float zaxis_value)

getLastAlphaValue

public float getLastAlphaValue()

setLastAlphaValue

public void setLastAlphaValue(float alpha)

getLastDataHashCode

public long getLastDataHashCode()

setLastDataHashCode

public void setLastDataHashCode(long lastdata_hashcode)

getLastAdjustProjectionSeam

public boolean getLastAdjustProjectionSeam()

setLastAdjustProjectionSeam

public void setLastAdjustProjectionSeam(boolean adjust)