Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

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: