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.
You need at least a different ScalarMap to Shape for each different subclass of VisADGeometryArray, just because different subclasses can't be merged. > I'm trying to create some custom plots of data using shapes, > but am having some problem doing what I want when some shapes > are VisADLineArrays and others are VisADTriangleStripArrays > (i.e. output from PlotText_renderFont using HersheyFont vs. > using java.awt.Font). > > I have a bunch of station observations with MathType like: > > index -> (lat, lon, alt, temp, dewpoint, wx, spd, dir, pres, > cloud....) > > I have another object that defines how which of the variables > I want and their positions relative to the lat/lon point: > > temp press > cloud > dew spd > > Instead of mapping each variable to a shape, I create one shape for > each observation since this allows me more control of creating the > shape (color, offset, etc) and I only need one ScalarMap. So, I > take each sample (1 ob), and loop through the tuple, finding the > variables I need, creating a shape (VisADGeometryArray) for each > variable and then merging them to create one shape for a single > observation. In the end, I create a ScalarMap (Station_Model -> > Display.Shape) > and use a FieldImpl like: > > index -> ((original_ob_tuple), Station_Model) > > where Station_Model is just a Real of Type Station_Model and value > index. > In my ShapeControl, I use an Integer1DSet with index.length samples and > the shapes are the array of VisADGeometryArray's that I created for > each observation. > > This all works fine if each of the shapes I create for each variable > (one for temp, one for dewpoint, one for press, etc) are all of the same > flavor (i.e. all VisADLineArray's) because the merge works to create > one shape describing the entire station plot. > > However, now I want the user to be able to specify a Font to render > a variable, so when I create a shape for a particular variable, it > might be a VisADLineArray and for another, it might be a > VisADTriangleStripArray. If this is the case, I can't merge them > to create one shape that describes the entire station model. > > Does anyone have suggestions on how I might do this (other than > a custom data renderer)? In the past, Bill suggested that I have a > different ScalarMap for each variable that I want to display, but going > that route leadsto problems for creating offsets from the center point > and > lotsof overhead of creating different shapes to set in each > ShapeControl. > Having one (or several) shapes associated with a particular observation > is > easier to manage, but I'm not sure how to handle the case where I have > several different types of shapes that represent a plot.
visad
archives: