Viewing contents of file '../idllib/contrib/mallozzi/get_axis_range.pro'
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;+
; NAME:
; GET_AXIS_RANGE
;
; PURPOSE:
; Returns range of a line that spans the full plotted range.
; Handles both linear and log scales transparently.
;
; CATEGORY:
; Plotting
;
; CALLING SEQUENCE:
; RANGE = GET_AXIS_RANGE(AXIS)
;
; INPUTS:
; AXIS: single character string denoting the axis to span
; ('x' or 'y' or 'z')
;
; KEYWORDS:
; NONE
;
; OUTPUTS:
; RANGE: two element FLTARR of the range of the line
; Returns -1 on error
;
; COMMON BLOCKS:
; NONE
;
; SIDE EFFECTS:
; NONE
;
; RESTRICTIONS:
; NONE
;
; DEPENDENCIES:
; NONE
;
; EXAMPLE:
;
; ; Overplot a line at x0 that spans the plotted y-range
; OPLOT, [1, 1] * x0, GET_AXIS_RANGE('y'), LINESTYLE = 1
;
; MODIFICATION HISTORY:
; v1.0: Written, 1997 September, Robert.Mallozzi@msfc.nasa.gov
;-
FUNCTION GET_AXIS_RANGE, AXIS
IF (N_PARAMS() NE 1) THEN BEGIN
MESSAGE, /INFO, 'AXIS parameter not supplied'
RETURN, -1
ENDIF
IF (STRTRIM(STRUPCASE(AXIS), 2) EQ 'X') THEN $
RETURN, (!X.CRANGE * (!X.TYPE EQ 0)) + $
(10.0^(!X.CRANGE * (!X.TYPE EQ 1)) * (!X.TYPE EQ 1))
IF (STRTRIM(STRUPCASE(AXIS), 2) EQ 'Y') THEN $
RETURN, (!Y.CRANGE * (!Y.TYPE EQ 0)) + $
(10.0^(!Y.CRANGE * (!Y.TYPE EQ 1)) * (!Y.TYPE EQ 1))
IF (STRTRIM(STRUPCASE(AXIS), 2) EQ 'Z') THEN $
RETURN, (!Z.CRANGE * (!Z.TYPE EQ 0)) + $
(10.0^(!Z.CRANGE * (!Z.TYPE EQ 1)) * (!Z.TYPE EQ 1))
RETURN, -1
END