/** * _more_ * * @param value _more_ */ public void setPointSize(float value) { super.setPointSize(value); if (myDisplay != null) { try { myDisplay.setPointSize(getPointSize()); } catch (Exception e) { logException("Setting point size", e); } } }
/** * Set the useTexture3D property * * @param use the useTexture3D property */ public void setUseTexture3D(boolean use) { useTexture3D = use; if (myDisplay != null) { try { myDisplay.addConstantMap( new ConstantMap( useTexture3D ? GraphicsModeControl.TEXTURE3D : GraphicsModeControl.STACK2D, Display.Texture3DMode)); } catch (Exception e) { logException("setUseTexture3D", e); } } }
/** * Call to help make this kind of Display Control; also calls code to made the Displayable (empty * of data thus far). This method is called from inside DisplayControlImpl.init(several args). * * @param dataChoice the DataChoice of the moment. * @return true if successful * @throws RemoteException Java RMI error * @throws VisADException VisAD Error */ public boolean init(DataChoice dataChoice) throws VisADException, RemoteException { if (!isDisplay3D()) { LogUtil.userMessage(log_, "Can't render volume in 2D display"); return false; } myDisplay = new VolumeDisplayable("volrend_" + dataChoice); myDisplay.setUseRGBTypeForSelect(true); myDisplay.addConstantMap( new ConstantMap( useTexture3D ? GraphicsModeControl.TEXTURE3D : GraphicsModeControl.STACK2D, Display.Texture3DMode)); myDisplay.setPointSize(getPointSize()); addDisplayable(myDisplay, getAttributeFlags()); // Now, set the data. Return false if it fails. if (!setData(dataChoice)) { return false; } // Now set up the flags and add the displayable return true; }
/** * Load the volume data to the display * * @throws RemoteException problem loading remote data * @throws VisADException problem loading the data */ private void loadVolumeData() throws VisADException, RemoteException { Trace.call1("VRC.loadVolumeData"); FieldImpl grid = getGridDataInstance().getGrid(); FieldImpl newGrid = grid; if (getSkipValue() > 0) { grid = GridUtil.subset(grid, getSkipValue() + 1); newGrid = grid; } if (!usePoints) { // make sure the projection is correct before we start // transforming the data setProjectionInView(true, true); CoordinateSystem cs = getNavigatedDisplay().getDisplayCoordinateSystem(); if ((cs != null) && (getNavigatedDisplay() instanceof MapProjectionDisplay)) { try { if (GridUtil.isConstantSpatialDomain(grid)) { newGrid = makeLinearGrid(grid, cs); } else { Set timeSet = GridUtil.getTimeSet(grid); for (int i = 0; i < timeSet.getLength(); i++) { FieldImpl timeField = makeLinearGrid((FieldImpl) grid.getSample(i, false), cs); if (i == 0) { FunctionType ft = new FunctionType( ((SetType) timeSet.getType()).getDomain(), timeField.getType()); newGrid = new FieldImpl(ft, timeSet); } newGrid.setSample(i, timeField, false); } } } catch (VisADException ve) { ve.printStackTrace(); userErrorMessage( "Can't render volume for " + paramName + " in this projection. Try using the data projection"); newGrid = grid; } } } Trace.call1("VRC.loadVolumeData.loadData"); myDisplay.loadData(newGrid); Trace.call2("VRC.loadVolumeData.loadData"); Trace.call2("loadVolumeData"); }