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.