[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20040713:IDV - linux - station model plotting code




> Inquiry: When working with the station model editor, calls to classes such as 
> TextSymbol, ValueSymbol, etc are made as you can see by putting printlns in 
> the classes.
>
> However when actually plotting station data in the main display, using 
> TextSymbol-s etc., the same printlns are not called. Even when you switch 
> between different models. The symbols are drawn in the display just as if the 
> code were being called, but there is no println output.
>
> I don't see how symbols get plotted in the display without calling the draw() 
> method in the class for that symbol? Is println output somehow suppressed in 
> this case but not when drawing to the station model editor?
>
> Maybe a brief word sketch of the connection between classes in 
> unidata/ui/symbol/ and whatever Displayables and Displays and Display 
> Controls use them would help.
>
> Also what is the Java key combination to dump a stack trace while executing?
>


Hi Stu,
The drawing code in the MetSymbols is *not* used when rendering the
symbols in the 3D display.  Rather, the
ucar.visad.display.StationModelDisplayable class
handles each of the different types of symbols in particular ways.
For text and value it does all the rendering itself (using the font and
color from the MetSymbol). For WeatherSymbols (e.g., Cloud coverage)
it calls a getLines method on the symbol class which returns the VisAD
line arrays. Likewise, the windbarb is handled in a particular way.

As I mentioned in my last response we have modified this behavior
somewhat. For symbol objects that are not one of these regular symbol
classes we call a method on the object to get the visad line array.
Perhaps, in your Unavco efforts it would be best to wait for the release
of this new code base (Should be the first week of August).

-Jeff