Re: Combining disparate VisADGeometry types

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.