visad.bom
Class CollectiveBarbManipulation

java.lang.Object
  extended by visad.bom.CollectiveBarbManipulation

public class CollectiveBarbManipulation
extends Object

CollectiveBarbManipulation is the VisAD class for manipulation of collections of wind barbs


Constructor Summary
CollectiveBarbManipulation(FieldImpl wf, DisplayImplJ3D d1, DisplayImplJ3D d2, ConstantMap[] cms, boolean abs, float id, float od, float it, float ot, int sta, boolean need_monitor, boolean brbs, boolean fs, boolean kts, boolean dz, double[] inner_circle_color, int inner_circle_width, double[] outer_circle_color, int outer_circle_width)
          wf should have MathType: (station_index -> (Time -> tuple)) where tuple is flat [e.g., (Latitude, Longitude, (flow_dir, flow_speed))] and must include RealTypes Latitude and Longitude plus RealTypes mapped to Flow1Azimuth and Flow1Radial, or to Flow2Azimuth and Flow2Radial, in the DisplayImplJ3Ds d1 and d2 (unless they are not null); d1 must have Time mapped to Animation, and d2 must not; abs indicates absolute or relative value adjustment id and od are inner and outer distances in meters it and ot are inner and outer times in seconds influence is 1.0 inside inner, 0.0 outside outer and linear between distance and time influences multiply; cms are ConstantMap's used for rendering barbs each time the user clicks the right mouse button to manipulate a wind barb, the "reference" values for all wind barbs are set - thus repeatedly adjusting the same barb will magnify its influence over its neighbors; sta is index of station for display2; need_monitor is true if wf might be changed externally during manipulation brbs is true to indicate Barb*RendererJ3D, false to indicate Swell*RendererJ3D fs is true to indicate that d2 should switch to whatever station is being manipulated kts is false to indicate no m/s to knots conversion in wind barb renderers dz is true to indicate to use DiscoverableZoom inner_circle_color is array of RGB colors for an inner circle of influence, or null for no inner circles inner_circle_width is the line width for the inner circle outer_circle_color is array of RGB colors for an outer circle of influence, or null for no outer circles outer_circle_width is the line width for the outer circle
 
Method Summary
 void addStation(FlatField station)
           
 void addStation(float lat, float lon)
          construct new wind station at (lat, lon) with initial winds = 0
 FieldImpl endManipulation()
          called by the application to end manipulation; returns the final wind field
 DataRenderer[] getManipulationRenderers()
           
 DataRenderer[] getManipulationRenderers2()
           
static void main(String[] args)
           
 void release()
           
 void setCollectiveCurve(boolean abs, DataReference r, float it, float ot)
          set a DataReference to a curve (typically from a CurveManipulationRendererJ3D) to replace distance parameters; also set time parameters
 void setCollectiveParameters(boolean abs, float id, float od, float it, float ot)
          set values that govern collective barb adjustment and disable any DataReference to a spatial curve; abs indicates absolute or relative value adjustment id and od are inner and outer distances in meters it and ot are inner and outer times in seconds influence is 1.0 inside inner, 0.0 outside outer and linear between distance and time influences multiply
 void setCollectiveTimeParameters(boolean abs, float it, float ot)
          set values that govern collective barb adjustment but don't change spatial parameters or curve_ref; abs indicates absolute or relative value adjustment it and ot are inner and outer times in seconds influence is 1.0 inside inner, 0.0 outside outer and linear between distance and time influences multiply
 void setStation(int sta)
          called by the application to select which station is selected in display2
 void setTimeDir(int dir)
          set value that governs whether collective changes are propagated only forward in time (dir > 0), only backward (dir < 0), or both (dir == 0)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CollectiveBarbManipulation

public CollectiveBarbManipulation(FieldImpl wf,
                                  DisplayImplJ3D d1,
                                  DisplayImplJ3D d2,
                                  ConstantMap[] cms,
                                  boolean abs,
                                  float id,
                                  float od,
                                  float it,
                                  float ot,
                                  int sta,
                                  boolean need_monitor,
                                  boolean brbs,
                                  boolean fs,
                                  boolean kts,
                                  boolean dz,
                                  double[] inner_circle_color,
                                  int inner_circle_width,
                                  double[] outer_circle_color,
                                  int outer_circle_width)
                           throws VisADException,
                                  RemoteException
wf should have MathType: (station_index -> (Time -> tuple)) where tuple is flat [e.g., (Latitude, Longitude, (flow_dir, flow_speed))] and must include RealTypes Latitude and Longitude plus RealTypes mapped to Flow1Azimuth and Flow1Radial, or to Flow2Azimuth and Flow2Radial, in the DisplayImplJ3Ds d1 and d2 (unless they are not null); d1 must have Time mapped to Animation, and d2 must not; abs indicates absolute or relative value adjustment id and od are inner and outer distances in meters it and ot are inner and outer times in seconds influence is 1.0 inside inner, 0.0 outside outer and linear between distance and time influences multiply; cms are ConstantMap's used for rendering barbs each time the user clicks the right mouse button to manipulate a wind barb, the "reference" values for all wind barbs are set - thus repeatedly adjusting the same barb will magnify its influence over its neighbors; sta is index of station for display2; need_monitor is true if wf might be changed externally during manipulation brbs is true to indicate Barb*RendererJ3D, false to indicate Swell*RendererJ3D fs is true to indicate that d2 should switch to whatever station is being manipulated kts is false to indicate no m/s to knots conversion in wind barb renderers dz is true to indicate to use DiscoverableZoom inner_circle_color is array of RGB colors for an inner circle of influence, or null for no inner circles inner_circle_width is the line width for the inner circle outer_circle_color is array of RGB colors for an outer circle of influence, or null for no outer circles outer_circle_width is the line width for the outer circle

Throws:
VisADException
RemoteException
Method Detail

addStation

public void addStation(float lat,
                       float lon)
                throws VisADException,
                       RemoteException
construct new wind station at (lat, lon) with initial winds = 0

Throws:
VisADException
RemoteException

addStation

public void addStation(FlatField station)
                throws VisADException,
                       RemoteException
Throws:
VisADException
RemoteException

setCollectiveParameters

public void setCollectiveParameters(boolean abs,
                                    float id,
                                    float od,
                                    float it,
                                    float ot)
                             throws VisADException,
                                    RemoteException
set values that govern collective barb adjustment and disable any DataReference to a spatial curve; abs indicates absolute or relative value adjustment id and od are inner and outer distances in meters it and ot are inner and outer times in seconds influence is 1.0 inside inner, 0.0 outside outer and linear between distance and time influences multiply

Throws:
VisADException
RemoteException

setCollectiveTimeParameters

public void setCollectiveTimeParameters(boolean abs,
                                        float it,
                                        float ot)
                                 throws VisADException,
                                        RemoteException
set values that govern collective barb adjustment but don't change spatial parameters or curve_ref; abs indicates absolute or relative value adjustment it and ot are inner and outer times in seconds influence is 1.0 inside inner, 0.0 outside outer and linear between distance and time influences multiply

Throws:
VisADException
RemoteException

setTimeDir

public void setTimeDir(int dir)
set value that governs whether collective changes are propagated only forward in time (dir > 0), only backward (dir < 0), or both (dir == 0)


setCollectiveCurve

public void setCollectiveCurve(boolean abs,
                               DataReference r,
                               float it,
                               float ot)
                        throws VisADException,
                               RemoteException
set a DataReference to a curve (typically from a CurveManipulationRendererJ3D) to replace distance parameters; also set time parameters

Throws:
VisADException
RemoteException

setStation

public void setStation(int sta)
                throws VisADException,
                       RemoteException
called by the application to select which station is selected in display2

Throws:
VisADException
RemoteException

getManipulationRenderers

public DataRenderer[] getManipulationRenderers()

getManipulationRenderers2

public DataRenderer[] getManipulationRenderers2()

endManipulation

public FieldImpl endManipulation()
                          throws VisADException,
                                 RemoteException
called by the application to end manipulation; returns the final wind field

Throws:
VisADException
RemoteException

release

public void release()

main

public static void main(String[] args)
                 throws VisADException,
                        RemoteException
Throws:
VisADException
RemoteException