visad.bom
Class CurveManipulationRendererJ3D

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

public class CurveManipulationRendererJ3D
extends DirectManipulationRendererJ3D

CurveManipulationRendererJ3D is the VisAD class for direct manipulation rendering of curves under Java3D, where curves are represented by UnionSets of Gridded2DSets with manifold dimension = 2


Field Summary
 
Fields inherited from class visad.DataRenderer
enabled, pickCrawlToCursor
 
Constructor Summary
CurveManipulationRendererJ3D()
          this DataRenderer supports direct manipulation for representations of curves by UnionSets of Gridded2DSets with manifold dimension = 2; the Set's domain RealTypes must be mapped to two of (XAxis, YAxis, ZAxis)
CurveManipulationRendererJ3D(int mmm, int mmv)
          mmm and mmv determine whehter SHIFT or CTRL keys are required - this is needed since this is a greedy DirectManipulationRenderer that will grab any right mouse click (that intersects its 2-D sub-manifold)
CurveManipulationRendererJ3D(int mmm, int mmv, boolean oo)
          mmm and mmv determine whehter SHIFT or CTRL keys are required - this is needed since this is a greedy DirectManipulationRenderer that will grab any right mouse click (that intersects its 2-D sub-manifold); oo is true to indicate that only one curve should exist at any one time
 
Method Summary
 void addPoint(float[] x)
           
 float checkClose(double[] origin, double[] direction)
          find minimum distance from ray to spatialValues
 void checkDirect()
          set isDirectManipulation = true if this DataRenderer supports direct manipulation for its linked Data
 java.lang.Object clone()
           
 void drag_direct(VisADRay ray, boolean first, int mouseModifiers)
           
 java.lang.String getWhyNotDirect()
           
static void main(java.lang.String[] args)
          test CurveManipulationRendererJ3D
 ShadowType makeShadowSetType(SetType type, DataDisplayLink link, ShadowType parent)
          factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowSetType
 void release_direct()
          mouse button released, ending direct manipulation
 void setSpatialValues(float[][] spatial_values)
          set spatialValues from ShadowType.doTransform
 void stop_direct()
          discontinue dragging this DataRenderer; this method is not a general disable
 
Methods inherited from class visad.java3d.DirectManipulationRendererJ3D
doTransform, isLegalTextureMap, setBranch, setLinks
 
Methods inherited from class visad.java3d.RendererJ3D
clearBranch, clearScene, doAction, flush, getBranch, makeShadowFunctionType, makeShadowRealTupleType, makeShadowRealType, makeShadowTextType, makeShadowTupleType, setBranchEarly, toggle
 
Methods inherited from class visad.DataRenderer
addException, checkAction, clearAVControls, clearExceptions, computeRanges, 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, isTransformControl, prepareAction, realCheckDirect, removeLink, set_all_feasible, setDisplay, setDisplayRenderer, setEarthSpatialData, setEarthSpatialDisplay, setIsDirectManipulation, setLastMouseModifiers, setLatLonIndices, setLinks, setPickCrawlToCursor, spatialToEarth, spatialToEarth, suppressExceptions
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CurveManipulationRendererJ3D

public CurveManipulationRendererJ3D()
this DataRenderer supports direct manipulation for representations of curves by UnionSets of Gridded2DSets with manifold dimension = 2; the Set's domain RealTypes must be mapped to two of (XAxis, YAxis, ZAxis)


CurveManipulationRendererJ3D

public CurveManipulationRendererJ3D(int mmm,
                                    int mmv)
mmm and mmv determine whehter SHIFT or CTRL keys are required - this is needed since this is a greedy DirectManipulationRenderer that will grab any right mouse click (that intersects its 2-D sub-manifold)


CurveManipulationRendererJ3D

public CurveManipulationRendererJ3D(int mmm,
                                    int mmv,
                                    boolean oo)
mmm and mmv determine whehter SHIFT or CTRL keys are required - this is needed since this is a greedy DirectManipulationRenderer that will grab any right mouse click (that intersects its 2-D sub-manifold); oo is true to indicate that only one curve should exist at any one time

Method Detail

makeShadowSetType

public ShadowType makeShadowSetType(SetType type,
                                    DataDisplayLink link,
                                    ShadowType parent)
                             throws VisADException,
                                    java.rmi.RemoteException
Description copied from class: DataRenderer
factory for constructing a subclass of ShadowType appropriate for the graphics API, that also adapts ShadowSetType

Overrides:
makeShadowSetType in class RendererJ3D
Throws:
VisADException
java.rmi.RemoteException

checkDirect

public void checkDirect()
                 throws VisADException,
                        java.rmi.RemoteException
Description copied from class: DataRenderer
set isDirectManipulation = true if this DataRenderer supports direct manipulation for its linked Data

Overrides:
checkDirect in class DirectManipulationRendererJ3D
Throws:
VisADException
java.rmi.RemoteException

getWhyNotDirect

public java.lang.String getWhyNotDirect()
Overrides:
getWhyNotDirect in class DataRenderer

addPoint

public void addPoint(float[] x)
              throws VisADException
Overrides:
addPoint in class DirectManipulationRendererJ3D
Throws:
VisADException

setSpatialValues

public void setSpatialValues(float[][] spatial_values)
set spatialValues from ShadowType.doTransform

Overrides:
setSpatialValues in class DataRenderer

checkClose

public float checkClose(double[] origin,
                        double[] direction)
find minimum distance from ray to spatialValues

Overrides:
checkClose in class DataRenderer

release_direct

public void release_direct()
mouse button released, ending direct manipulation

Overrides:
release_direct in class DataRenderer

stop_direct

public void stop_direct()
Description copied from class: DataRenderer
discontinue dragging this DataRenderer; this method is not a general disable

Overrides:
stop_direct in class DataRenderer

drag_direct

public void drag_direct(VisADRay ray,
                        boolean first,
                        int mouseModifiers)
Overrides:
drag_direct in class DataRenderer

clone

public java.lang.Object clone()
Overrides:
clone in class DirectManipulationRendererJ3D

main

public static void main(java.lang.String[] args)
                 throws VisADException,
                        java.rmi.RemoteException
test CurveManipulationRendererJ3D

Throws:
VisADException
java.rmi.RemoteException