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.
>From: Bill Hibbard <hibbard@xxxxxxxxxxxxxxxxx> >Organization: SSEC >Keywords: 200008021348.e72DmDT22328 Hi All- >> We would like to extend VisAD, in order to change axes'depiction, like havin > g a label for each graduation. >> >> We thought of extending the ScalarMap class, in order to overide the method > makeScale that builds scales. >> But most attributs and methods are private or have package privacy, we can't > then inherit it in another package. >> >> Is there another way to modify axis depiction, or can some attributs of the > ScalarMap class become protected? >> thanks > >I have just modified ScalarMap.java in the source on the VisAD >ftp server, to declare the makeScale() method as public. Please >let me know if there are any other methods that you need public. > >Another way to draw custom scales is to construct data objects >(probably just Real or RealTuple) with a RealType mapped to >Display.Shape, then to draw your custom scale as a VisADLineArray >passed to the corresponding ShapeControl.setShape(). Note something >like this is done in visad/bom/TrackManipulation.java. Louise's question is timely as I was just contemplating how to make custom scales in VisAD. This question comes up frequently on the VisAD list, and the reply has never really been satisfactory (create a VisADLineArray, use ShapeControl). I was looking into this the other day and think that VisAD needs a higher level (than VisADLineArray) Scale component which can be used to create custom scales. Looking at the makeScale method in ScalarMap, it seems like that logic could be encapsulated and enhanced in a new class and have makeScale enhanced to pass a Scale object to the display renderer. I have not tried this yet, but I thought the properties of a Scale should be: Color - color of the scale Font - font used (Bill, can this be done now that you've added font support to TextControl?) Major Tick Spacing - Tick mark spacing used for major Ticks Minor Ticks Spacing - Tick mark spacing used for minor ticks Tick Mark visibility - whether ticks are visible or not Tick Labels - which ticks are labeled Min/Max values - min/max of values (The five above are like what a JSlider has for settable properties) Label - Axis label Position - X, Y or X axis Ordinal position - position on the axis (first, second, third, etc) CoordinateSystem - CS used to convert values to linear positions on the scale. For example, if you wanted to have a logP axis, you would provide the CS to create the position of the non-linear spacing of the pressure values on the axis Are there others? Internally, the actual scale would be a VisADLineArray akin to what makeScale creates now. I'm not sure when I'd get around to this, but if anyone else wants to run with this and contribute it to the cause, be my guest. Like I said, I just started looking at this, so haven't thought it through to much. Additional input would be appreciated. I think this would be a valuable enhancement to VisAD given the number of times this question has come up and would make the scale creation more object oriented (and easier to deal with). Don ************************************************************* Don Murray UCAR Unidata Program dmurray@xxxxxxxxxxxxxxxx P.O. Box 3000 (303) 497-8628 Boulder, CO 80307 ************************************************************* Unidata WWW Server http://www.unidata.ucar.edu/ McIDAS Demonstration Machine http://mcdemo.unidata.ucar.edu/ *************************************************************
visad
archives: