/** * Handles internal consequences of a change to the probe position. * * @param pos The probe's new position. */ public void probeMoved(RealTuple pos) { if (!getHaveInitialized()) { return; } try { LatLonPoint llp = null; RealTupleType rttype = (RealTupleType) pos.getType(); if (rttype.equals(RealTupleType.SpatialCartesian2DTuple) || rttype.equals(RealTupleType.SpatialCartesian3DTuple)) { llp = latLon(pos); } else if (rttype.equals(RealTupleType.SpatialEarth2DTuple) || rttype.equals(RealTupleType.SpatialEarth3DTuple)) { Real[] reals = pos.getRealComponents(); llp = new LatLonTuple(reals[1], reals[0]); } else if (rttype.equals(RealTupleType.LatitudeLongitudeTuple) || rttype.equals(RealTupleType.LatitudeLongitudeAltitude)) { Real[] reals = pos.getRealComponents(); llp = new LatLonTuple(reals[0], reals[1]); } else { throw new IllegalArgumentException("Can't convert position to navigable point"); } if (llp != null) { dataNode.setLocation(llp); // invokes super.setLocation(llp) } } catch (Exception ex) { logException("probeMoved", ex); } }
public void doAction() throws VisADException, RemoteException { Tuple tuple = (Tuple) ref.getData(); float lon = (float) ((Real) tuple.getComponent(0)).getValue(); float lat = (float) ((Real) tuple.getComponent(1)).getValue(); RealTuple wind = (RealTuple) tuple.getComponent(2); float windx = (float) ((Real) wind.getComponent(0)).getValue(); float windy = (float) ((Real) wind.getComponent(1)).getValue(); System.out.println("wind = (" + windx + ", " + windy + ") at (" + +lat + ", " + lon + ")"); /* a testing hack count--; if (count < 0) { count = 20; scale = 0.15f * 0.3f / scale; flow_control.setFlowScale(scale); } */ }