This page was created by the IDL library routine
mk_html_help2
.
Last modified: Tue Oct 23 09:41:31 2018.
NAME: spd_ui_draw_event PURPOSE: This routine handles all events that occur in the draw window CALLING SEQUENCE: info=spd_ui_draw_event(event, info) INPUT: event - the structure from the draw window event info - the main information structure from splash_gui OUTPUT: info - the updated main information structure HISTORY: $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_3_1/spedas_gui/display/spd_ui_draw_event.pro $
(See spedas_gui/display/spd_ui_draw_event.pro)
NAME: spd_ui_draw_object PURPOSE: This object generates an object graphics tree using the IDLgr* objects that are built into IDL. It generates this tree by querying the loaded data object and the window storage object to get the settings generated by the panel. This object also performs other utility operations related to drawing. These include animations of vertical bars and markers, updating the legend by performing a lookup in a hashed version of the plotted data, and reporting information about the current display.(Cursor segment selected, range of displayed data, etc...) There are a few major functions in this object. #1 'update': will update the draw area to correspond to new settings #2 'setCursor' : actually makes the draw object do all the animation updates #3 'draw' : use it to force the object to redraw the draw area.\ #4 'getInfo(panelIndex)' : get a struct with information about a panel in the currently drawn display This includes information like the actual range and scaling for each axis, the number of tics, etc... NOTES: 1. In almost all cases ranges will be stored and passed around as 2-element arrays. If they are on log scaled axis, the ranges will be in log space, this tends to make some calculations simpler(and others more complex) By log space, I mean, if scaling eq 1 then range = alog10(normalRange), if scaling eq 2 then range = alog(normalRange) 2. The codes used for different scaling values are consistent. 0 indicates linear scaling, 1 indicates base 10 logarithm, 2 indicates natural logarithm 3. Positions in this code are generally specified in one of three different coordinate systems. a. They are normalized to the draw area. So [.5,.5] is the center of the draw area. b. They are normalized to the panel. So [.5,.5] is the center of a panel. c. They are specified in pixels. Often when pixels are used, the value used may actually be 2x or 4x the actual number of screen pixels to prevent aliasing. Somewhat ambiguously, c. is sometimes called points(because it is a scaled number of pixels). This is not the same as the measurement in note 5. Rectangles(like panels) will normally be specified using two variables, which are each 2 element doubles. xpos = [xstart,xstop], ypos = [ystart,stop] These are absolute locations. The alternative representation [xstart,xsize],[ystart,ysize], is rarely, if ever, used as a parameter, although sizes are used for various computations throughout the code. 4. distances that aren't specified in the above coordinates are often specified in pts. This is a desktop publishing standard, that ideally is consistent across output devices. 1 pt should be 127/360 mm. The goal is to make all output consistent across output devices. $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_3_1/spedas_gui/display/spd_ui_draw_object__define.pro $
(See spedas_gui/display/spd_ui_draw_object__define.pro)
NAME: spd_ui_draw_save Purpose: Outputs current window content into various formats $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_3_1/spedas_gui/display/spd_ui_draw_save__define.pro $
(See spedas_gui/display/spd_ui_draw_save__define.pro)
Function: spd_ui_make_spec NOTE: This code has been incorporated into the draw object. spd_ui_make_spec is no longer called directly Purpose: helper routine for draw object. It helps construct the image for spectrograms very quickly. Inputs: x: the 1-d x scaling values for the z components(x-axis) y: the 1-d y scaling values for the z components z: the 2-d z array of values for the image pixx: the desired resolution of the output on the x-axis pixy: the desired resolution of the output on the y-axis palette: the palette number to be used when creating the image zrange: the zrange for the whole panel(may be larger than the range of the z argument) Output: An rgba image with dimensions: 4 x PixX x PixY Notes: 1. This uses an alpha channel to make all NaNs transparent. 2. PixX and PixY are not totally necessary because object graphics can stretch an image quite well, but selecting the resolution of the screen with them prevents any inadvertent errors from showing up during interpolation. It might actually be better to render the image at twice the screen resolution to prevent aliasing errors. $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_3_1/spedas_gui/display/spd_ui_make_spec.pro $
(See spedas_gui/display/spd_ui_make_spec.pro)
Purpose: helper function, just colocates some replicated code to modify the canvas size if there is variation when windows or modes are switched. $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_3_1/spedas_gui/display/spd_ui_orientation_update.pro $
(See spedas_gui/display/spd_ui_orientation_update.pro)
Procedure: spd_ui_xyclip ; NOTE: This code has been incorporated into the draw object. spd_ui_xyclip is no longer called directly Purpose: helper routine for draw object. It performs some processing on the x,y,z trace inputs Inputs: onePtr: the values being clipped twoPtr: the axis for which paired values must also be removed zPtr: the z for spectral plots range: the range for the clipping scale: the scaling for the axis(0:linear,1:log10,2:logN) Keywords: fail: 1: indicates that the routine failed transposez: if this keyword is set, then one is a y-axis not an x-axis Notes: Scales & Clips the x,y axes. Mutates onePtr,twoPtr,zPtr $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_3_1/spedas_gui/display/spd_ui_xyclip.pro $
(See spedas_gui/display/spd_ui_xyclip.pro)
Procedure: spd_ui_xyclip Purpose: helper routine for draw object. It performs some processing on the z trace inputs Inputs: zptr: array of ptrs to z values for this trace(2-d array) zrange: the range for the z-axis on this panel zscale: scaling for z-axis(0:linear,1:log10,2:logN) Keywords: fail: 1: indicates that the routine failed Notes: Scales & Clips the axes and the z-plot correspondingly Mutates Zptr $LastChangedBy: jimm $ $LastChangedDate: 2014-02-11 10:54:32 -0800 (Tue, 11 Feb 2014) $ $LastChangedRevision: 14326 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_3_1/spedas_gui/display/spd_ui_xyzclip.pro $
(See spedas_gui/display/spd_ui_xyzclip.pro)