NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: How to link the change to RangeWidget with SelectRangeWidget?

I am trouble producing a 3D vector plot with VisAD. In this case my 
u,v,w components are defined on the same x,y grid. What I get is a 
plane showing what I assume is the u,v vector inside a 3D cube--can't 
see any effect of the w component. Thanks in adbance. This is what I'm 
doing:

X = new RealType(xtypeName, null, null);
Y = new RealType(ytypeName, null, null);
domain_tuple = new RealTupleType(Y, X);
U = new RealType(utypeName, null, null);
V = new RealType(vtypeName, null, null);
W = new RealType(wtypeName, null, null);
range_tuple = new RealTupleType(U, V, W);
func_domain_range = new FunctionType(domain_tuple, range_tuple);

// Create the domain Set
domain_set = new Linear2DSet(domain_tuple, yArray[0], yArray[ySize-1], 
ySize, xArray[0], xArray[xSize-1], xSize);
float[][] set_samples = domain_set.getSamples(true);
float[][] flat_samples = new float[3][xSize * ySize];

count = 0;
for(int i=0; i < xSize; i++) {
   for(int j=0; j < ySize; j++) {
      double uval = uArray[count];
      double vval = vArray[count];
      double wval = wArray[count];
      flat_samples[0][count] = (float)uval;
      flat_samples[1][count] = (float)vval;
      flat_samples[2][count] = (float)wval;
      count++;
    }
}

vals_ff = new FlatField(func_domain_range, domain_set);
vals_ff.setSamples(flat_samples, false);

// A 3D display
display = new DisplayImplJ3D("display1");

// Create the X,Y ScalarMaps
yMap = new ScalarMap(Y, Display.YAxis);
xMap = new ScalarMap(X, Display.XAxis);
xRangeMap = new ScalarMap(X, Display.SelectRange);
yRangeMap = new ScalarMap(Y, Display.SelectRange);

// Add X,Y maps to display
display.addMap(yMap);
display.addMap(xMap);
display.addMap(xRangeMap);
display.addMap(yRangeMap);

// "u" component
uMap = new ScalarMap(U, Display.Flow1X);
uRangeMap = new ScalarMap(U, Display.SelectRange);
display.addMap(uRangeMap);
display.addMap(uMap);
    
// "v" component
vMap = new ScalarMap(V, Display.Flow1Y);
vRangeMap = new ScalarMap(V, Display.SelectRange);
display.addMap(vRangeMap);
display.addMap(vMap);
    
// "w" component
wMap = new ScalarMap(W, Display.Flow1Z);
wRangeMap = new ScalarMap(W, Display.SelectRange);
display.addMap(wRangeMap);
display.addMap(wMap);

selXRange = new SelectRangeWidget(xRangeMap);
selYRange = new SelectRangeWidget(yRangeMap);

// Create a data reference and set the FlatField as our data
data_ref = new DataReferenceImpl("data_ref");
data_ref.setData(vals_ff);

// Add reference to display
    display.addReference(data_ref);


  • 2002 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: