## visad.java2d
Class RendererJ2D

    java.lang.Object
      visad.DataRenderer
          visad.java2d.RendererJ2D

All Implemented Interfaces:
  Cloneable

Direct Known Subclasses:
  DefaultRendererJ2D, DirectManipulationRendererJ2D

public abstract class RendererJ2D
extends DataRenderer

RendererJ2D is the VisAD abstract super-class for graphics rendering algorithms under Java2D. These transform Data objects into 2-D depictions in a Display window.

RendererJ2D is not Serializable and should not be copied between JVMs.

Field Summary
`(package private) VisADSwitch` `swit`
`(package private) VisADGroup` `swParent` parent of branch made by doAction

Fields inherited from class visad.DataRenderer
`enabled, pickCrawlToCursor`

Constructor Summary
`RendererJ2D()`

Method Summary
`(package private) abstract void` `addSwitch(DisplayRendererJ2D displayRenderer, VisADGroup branch)`
`void` `clearBranch()` clear part of Display scene graph generated by this DataRenderer
`void` `clearScene()` clear any scene graph created by this DataRenderer, and clear all instance variables
`boolean` `doAction()` re-transform if needed; return false if not done
`abstract VisADGroup` `doTransform()` create a VisADGroup scene graph for Data in links; this can put Behavior objects in the scene graph for DataRenderer classes that implement direct manipulation widgets; may reduce work by only changing scene graph for Data and Controls that have changed: 1.

`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;

`ShadowType`

`makeShadowRealTupleType(RealTupleType type, DataDisplayLink link, ShadowType parent)`
factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowRealTupleType; 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;

`ShadowType`

`makeShadowRealType(RealType type, DataDisplayLink link, ShadowType parent)`
factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowRealType; 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;

`ShadowType`

`makeShadowSetType(SetType type, DataDisplayLink link, ShadowType parent)`
factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowSetType; 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;

`ShadowType`

`makeShadowTextType(TextType type, DataDisplayLink link, ShadowType parent)`
factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowTextType; 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;

`ShadowType`

`makeShadowTupleType(TupleType type, DataDisplayLink link, ShadowType parent)`
factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowTupleType; 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` `setLinks(DataDisplayLink[] links, DisplayImpl d)` set DataDisplayLinks for linked Data, and set associated DisplayImpl
`void` `toggle(boolean on)` Sets the visibility of the data being rendered by this instance.

Methods inherited from class visad.DataRenderer

`addException, addPoint, checkAction, checkClose, checkDirect, clearAVControls, clearExceptions, clone, computeRanges, 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, getLink, 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`

Field Detail

### swParent

    VisADGroup swParent

  parent of branch made by doAction

### swit

    VisADSwitch swit

Constructor Detail

### RendererJ2D

    public RendererJ2D()

Method Detail

### setLinks

    public void setLinks(DataDisplayLink[] links,
                         DisplayImpl d)
                  throws VisADException

  Description copied from class: `DataRenderer`
  set DataDisplayLinks for linked Data, and set associated DisplayImpl

  Specified by:
    `setLinks` in class `DataRenderer`
  Parameters:
    `links` - array of DataDisplayLinks to set
  Throws:
    `VisADException` - a VisAD error occurred

### toggle

    public void toggle(boolean on)

  Description copied from class: `DataRenderer`
  Sets the visibility of the data being rendered by this instance.

  Overrides:
    `toggle` in class `DataRenderer`
  Parameters:
    `on` - Whether or not to render the data.

### 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;

  Specified by:
    `makeShadowFunctionType` in class `DataRenderer`
  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:
    `RemoteException` - an RMI error occurred
    `VisADException` - a VisAD error occurred

### makeShadowRealTupleType

    public ShadowType makeShadowRealTupleType(RealTupleType type,
                                              DataDisplayLink link,
                                              ShadowType parent)
                                       throws VisADException,
                                              RemoteException

  Description copied from class: `DataRenderer`
  factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowRealTupleType; 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;

  Specified by:
    `makeShadowRealTupleType` in class `DataRenderer`
  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:
    `RemoteException` - an RMI error occurred
    `VisADException` - a VisAD error occurred

### makeShadowRealType

    public ShadowType makeShadowRealType(RealType type,
                                         DataDisplayLink link,
                                         ShadowType parent)
                                  throws VisADException,
                                         RemoteException

  Description copied from class: `DataRenderer`
  factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowRealType; 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;

  Specified by:
    `makeShadowRealType` in class `DataRenderer`
  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

### makeShadowSetType

    public ShadowType makeShadowSetType(SetType type,
                                        DataDisplayLink link,
                                        ShadowType parent)
                                 throws VisADException,
                                        RemoteException

  Description copied from class: `DataRenderer`
  factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowSetType; 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;

  Specified by:
    `makeShadowSetType` in class `DataRenderer`
  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

### makeShadowTextType

    public ShadowType makeShadowTextType(TextType type,
                                         DataDisplayLink link,
                                         ShadowType parent)
                                  throws VisADException,
                                         RemoteException

  Description copied from class: `DataRenderer`
  factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowTextType; 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;

  Specified by:
    `makeShadowTextType` in class `DataRenderer`
  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

### makeShadowTupleType

    public ShadowType makeShadowTupleType(TupleType type,
                                          DataDisplayLink link,
                                          ShadowType parent)
                                   throws VisADException,
                                          RemoteException

  Description copied from class: `DataRenderer`
  factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowTupleType; 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;

  Specified by:
    `makeShadowTupleType` in class `DataRenderer`
  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

### addSwitch

    abstract void addSwitch(DisplayRendererJ2D displayRenderer,
                            VisADGroup branch)
                     throws VisADException

  Throws:
    `VisADException`

### doAction

    public boolean doAction()
                     throws VisADException,
                            RemoteException

  re-transform if needed; return false if not done

  Specified by:
    `doAction` in class `DataRenderer`
  Returns:
    flag indicating if the transform was done successfully
  Throws:
    `RemoteException` - an RMI error occurred
    `VisADException` - a VisAD error occurred

### clearBranch

    public void clearBranch()

  Description copied from class: `DataRenderer`
  clear part of Display scene graph generated by this DataRenderer

  Specified by:
    `clearBranch` in class `DataRenderer`

### 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 `DataRenderer`

### doTransform

    public abstract VisADGroup doTransform()
                                    throws VisADException,
                                           RemoteException

  create a VisADGroup scene graph for Data in links; this can put Behavior objects in the scene graph for DataRenderer classes that implement direct manipulation widgets; may reduce work by only changing scene graph for Data and Controls that have changed: 1. use boolean[] changed to determine which Data objects have changed 2. if Data has not changed, then use Control.checkTicks loop like in prepareAction to determine which Control-s have changed

  Throws:
    `VisADException`
    `RemoteException`