## visad.java3d
Class DirectManipulationRendererJ3D

    java.lang.Object
      visad.DataRenderer
          visad.java3d.RendererJ3D
              visad.java3d.DirectManipulationRendererJ3D

All Implemented Interfaces:
  Cloneable

Direct Known Subclasses:
  BarbManipulationRendererJ3D, BoxDragRendererJ3D, CurveManipulationRendererJ3D, FlexibleTrackManipulation.FTMDirectManipulationRendererJ3D, PickManipulationRendererJ3D, PointManipulationRendererJ3D, RubberBandBoxRendererJ3D, RubberBandLineRendererJ3D

public class DirectManipulationRendererJ3D
extends RendererJ3D

DirectManipulationRendererJ3D is the VisAD class for direct manipulation rendering under Java3D.

Field Summary
`(package private) javax.media.j3d.BranchGroup` `branch`

Fields inherited from class visad.java3d.RendererJ3D
`branches, branchNonEmpty, sw, switchFlags, swParent`

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

Constructor Summary

`DirectManipulationRendererJ3D()`
this DataRenderer supports direct manipulation for Real, RealTuple and Field Data objects (Field data objects must have RealType or RealTupleType ranges and Gridded1DSet domain Sets); no RealType may be mapped to multiple spatial DisplayRealTypes; the RealType of a Real object must be mapped to XAxis, YAxis or YAxis; at least one of the RealType components of a RealTuple object must be mapped to XAxis, YAxis or YAxis; the domain RealType and at least one RealType range component of a Field object must be mapped to XAxis, YAxis or ZAxis

Method Summary
`void` `addPoint(float[] x)` add point for temporary rendering; intended to be over-ridden by graphics-API-specific extensions of DataRenderer
`(package private) void` `addSwitch(DisplayRendererJ3D displayRenderer, javax.media.j3d.BranchGroup branch)`
`void` `checkDirect()` set isDirectManipulation = true if this DataRenderer supports direct manipulation for the MathType of its linked Data, and for its ScalarMaps; intended to be over-ridden by extensions of DataRenderer
`void` `clearScene()` clear any scene graph created by this DataRenderer, and clear all instance variables
`Object` `clone()`
`javax.media.j3d.BranchGroup` `doTransform()` create a BranchGroup scene graph for Data in links[0]
`boolean` `isLegalTextureMap()`
`void` `setBranch(javax.media.j3d.BranchGroup b)` for use by sub-classes that override doTransform()
`void` `setLinks(DataDisplayLink[] links, DisplayImpl d)` set DataDisplayLinks for linked Data, and set associated DisplayImpl

Methods inherited from class visad.java3d.RendererJ3D
`clearBranch, doAction, flush, getBranch, makeShadowFunctionType, makeShadowRealTupleType, makeShadowRealType, makeShadowSetType, makeShadowTextType, makeShadowTupleType, setBranchEarly, toggle`

Methods inherited from class visad.DataRenderer

`addException, checkAction, checkClose, clearAVControls, clearExceptions, 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, 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

### branch

    javax.media.j3d.BranchGroup branch

Constructor Detail

### DirectManipulationRendererJ3D

    public DirectManipulationRendererJ3D()

  this DataRenderer supports direct manipulation for Real, RealTuple and Field Data objects (Field data objects must have RealType or RealTupleType ranges and Gridded1DSet domain Sets); no RealType may be mapped to multiple spatial DisplayRealTypes; the RealType of a Real object must be mapped to XAxis, YAxis or YAxis; at least one of the RealType components of a RealTuple object must be mapped to XAxis, YAxis or YAxis; the domain RealType and at least one RealType range component of a Field object must be mapped to XAxis, YAxis or ZAxis

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

  Overrides:
    `setLinks` in class `RendererJ3D`
  Throws:
    `VisADException`

### checkDirect

    public void checkDirect()
                     throws VisADException,
                            RemoteException

  Description copied from class: `DataRenderer`
  set isDirectManipulation = true if this DataRenderer supports direct manipulation for the MathType of its linked Data, and for its ScalarMaps; intended to be over-ridden by extensions of DataRenderer

  Overrides:
    `checkDirect` in class `DataRenderer`
  Throws:
    `RemoteException` - an RMI error occurred
    `VisADException` - a VisAD error occurred

### addPoint

    public void addPoint(float[] x)
                  throws VisADException

  Description copied from class: `DataRenderer`
  add point for temporary rendering; intended to be over-ridden by graphics-API-specific extensions of DataRenderer

  Overrides:
    `addPoint` in class `DataRenderer`
  Parameters:
    `x` - 3-D graphics coordinates of point to render
  Throws:
    `VisADException` - a VisAD error occurred

### doTransform

    public javax.media.j3d.BranchGroup doTransform()
                                            throws VisADException,
                                                   RemoteException

  create a BranchGroup scene graph for Data in links[0]

  Specified by:
    `doTransform` in class `RendererJ3D`
  Throws:
    `VisADException`
    `RemoteException`

### setBranch

    public void setBranch(javax.media.j3d.BranchGroup b)

  for use by sub-classes that override doTransform()

### addSwitch

    void addSwitch(DisplayRendererJ3D displayRenderer,
                   javax.media.j3d.BranchGroup branch)

  Specified by:
    `addSwitch` in class `RendererJ3D`

### isLegalTextureMap

    public boolean isLegalTextureMap()

  Overrides:
    `isLegalTextureMap` in class `DataRenderer`
  Returns:
    flag indicating whether texture mapping is legal for this 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 `RendererJ3D`

### clone

    public Object clone()

  Specified by:
    `clone` in class `DataRenderer`
  Returns:
    a copy of this DataRenderer