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: 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.


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