Viewing contents of file '../idllib/astron/contrib/malumuth/rotat_wid.pro'
;+
; Rotate Image Tool
;*NAME: rotat_wid.pro
;
;*PURPOSE:
; Widget tool for rotating, magnifying or demagnifying the RED
; image, the GREEN image or the BLUE which has been loaded into
; TCTOOL.
;
; It's a wrapper for a call to the IDL library function ROT.
;
;
;*CATEGORY: Called by TCTOOL
;
;
;*CALLING SEQUENCE: rotat_wid
;
;
;*INPUTS: NONE
;
;
;*OUTPUTS: NONE
;
;
;*KEYWORD PARAMETERS: NONE
;
;
;*EXAMPLES:
;
;*PROCEDURE:
; Pressing the "Rotate Images button in TCTOOL will call rotat_wid.
; a small widget called "ROTATE TOOL" will pop up.
; click on the image that you want to rotate, magnify or demagnify.
; (The red will default if no button is pushed).
;
; Enter the angle to rotate by (positive is clockwise - negative
; is counter-clockwise), the magnification ( > 1.0 - magnify, < 1.0
; will demagnify), and the pixel X-CENTER and Y-CENTER to rotate
; about (this pixel will be used as the pivot point.) You
; may enter the X-CENTER and Y-CENTER or use the cursor in the
; True Color window by first pressing the "USE CURSOR" button.
;
; This can be useful if you have images which are not the same scale,
; or if there is a rotation between them (i.e. 2 HST image taken at
; different time or with different camera - WFPC2 and STIS).
;
; Press the "ROTATE" button once the image is selected and the
; other information is entered. REMEMBER to Press the <CR> when
; changing a value in and field.
;
; When you are finished press the "Done" button.
;
;*SUPPORT PROCEDURES:
; xycenter - event handler to get the cursor location for rotat_wid.
;
;*SUPPORT FUNCTIONS:
; rot - rotates the image.
;
;*HISTORY:
; 6/99 E Malumuth/RITSS
;-
PRO MAIN15_Event, Event
COMMON WVALUES, field71,field72,field76,field77,field81,field82,button14, $
button15,pdmenu97,field73,field79,field83,button107, $
button98,button108
COMMON WVALUES3, draw14, draw51
COMMON WVALUES2, field1,field2,field3,field4,bgroup1,button4,button5
COMMON images,redim,greenim,blueim
COMMON values,red,green,blue,red_scale_type,green_scale_type,blue_scale_type
COMMON rotvals, ima,ang,magn,xcenter,ycenter
COMMON scales,redmin,redmax,greenmin,greenmax,bluemin,bluemax,redshift, $
greenshift,blueshift
COMMON DRAW14_Comm, DRAW14_Id
COMMON cursorvals, xc,yc
COMMON ASPECT, fxr,fyr,fxg,fyg,fxb,fyb
WIDGET_CONTROL,Event.Id,GET_UVALUE=Ev
CASE Ev OF
'rotate_image': BEGIN
CASE Event.Value OF
0: BEGIN
ima='red'
END
1: BEGIN
ima='green'
END
2: BEGIN
ima='blue'
END
ENDCASE
END
'TEXT3': BEGIN
END
'rotate': BEGIN
WIDGET_CONTROL, /HOURGLASS
if(ima eq 'red') then begin
red=rot(red,ang,magn,xcenter,ycenter,missing=0,interp=1,pivot=1)
display_red,red,red_scale_type,rmin=redmin,rmax=redmax
redim=congrid(red,600,600,/interp)
disp_true_wid,0
endif
if(ima eq 'green') then begin
green=rot(green,ang,magn,xcenter,ycenter,missing=0,interp=1,pivot=1)
display_green,green,green_scale_type,gmin=greenmin,gmax=greenmax
greenim=congrid(green,600,600,/interp)
disp_true_wid,0
endif
if(ima eq 'blue') then begin
blue=rot(blue,ang,magn,xcenter,ycenter,missing=0,interp=1,pivot=1)
display_blue,blue,blue_scale_type,bmin=bluemin,bmax=bluemax
blueim=congrid(blue,600,600,/interp)
disp_true_wid,0
endif
END
'done': BEGIN
WIDGET_CONTROL, DRAW14, EVENT_PRO='xycenter'
WIDGET_CONTROL, DRAW14, /DRAW_BUTTON_EVENTS
WIDGET_CONTROL, event.top, /DESTROY
END
'xcent': BEGIN
xcenter=event.value
WIDGET_CONTROL,field3, SET_VALUE=xcenter
END
'ycent': BEGIN
ycenter=event.value
WIDGET_CONTROL,field4, SET_VALUE=ycenter
END
'mag': BEGIN
magn=event.value
WIDGET_CONTROL,field2, SET_VALUE=magn
END
'angle': BEGIN
ang=event.value
WIDGET_CONTROL,field1, SET_VALUE=ang
END
'use_curse': BEGIN
WIDGET_CONTROL, DRAW14, SENSITIVE=1
WIDGET_CONTROL, DRAW14, EVENT_PRO='xycenter'
WIDGET_CONTROL, DRAW14, /DRAW_BUTTON_EVENTS
END
ENDCASE
END
; DO NOT REMOVE THIS COMMENT: END MAIN15
; CODE MODIFICATIONS MADE BELOW THIS COMMENT WILL BE LOST.
PRO rotat_wid,dummy, GROUP=Group
COMMON WVALUES, field71,field72,field76,field77,field81,field82,button14, $
button15,button97,field73,field79,field83,button107, $
button98,button108
COMMON WVALUES2, field1,field2,field3,field4,bgroup1,button4,button5
COMMON images,redim,greenim,blueim
COMMON values,red,green,blue,red_scale_type,green_scale_type,blue_scale_type
COMMON rotvals, ima,ang,magn,xcenter,ycenter
COMMON scales,redmin,redmax,greenmin,greenmax,bluemin,bluemax,redshift, $
greenshift,blueshift
COMMON DRAW14_Comm, DRAW14_Id
COMMON WVALUES3, draw14, draw51
COMMON cursorvals, xc,yc
COMMON ASPECT, fxr,fyr,fxg,fyg,fxb,fyb
ima='red'
ang=0.0
magn=1.0
xcenter=512.0
ycenter=512.0
IF N_ELEMENTS(Group) EQ 0 THEN GROUP=0
junk = { CW_PDMENU_S, flags:0, name:'' }
MAIN15 = WIDGET_BASE(GROUP_LEADER=Group, $
ROW=1, $
MAP=1, $
TITLE='ROTATE TOOL', $
UVALUE='MAIN15')
BASE2 = WIDGET_BASE(MAIN15, $
COLUMN=1, $
MAP=1, $
UVALUE='BASE2')
TextVal219 = [ $
'Choose The IMAGE to Rotate (Red, Green, or Blue)', $
'Then Choose the ANGLE to rotate the image,', $
'the MAGNIFICATION of the image, and the,', $
'X-CENTER and Y-CENTER to rotate about.', $
'Press the USE CURSOR to use the cursor in the', $
'True Color window to get X-CENTER and Y-CENTER.', $
'', $
'When you are finished press the ROTATE button.']
TEXT3 = WIDGET_TEXT( BASE2,VALUE=TextVal219, $
UVALUE='TEXT3', $
YSIZE=10)
Btns3889 = [ $
'Red', $
'Green', $
'Blue' ]
BGROUP1 = CW_BGROUP( BASE2, Btns3889, $
FONT='9x15', $
ROW=1, $
EXCLUSIVE=1, $
FRAME=1, $
LABEL_LEFT='IMAGE', $
UVALUE='rotate_image')
FieldVal3000 = [ $
'0.0' ]
FIELD1 = CW_FIELD( BASE2,VALUE=FieldVal3000, $
FONT='9x15', $
ROW=1, $
FLOAT=1, $
RETURN_EVENTS=1, $
TITLE='ANGLE', $
XSIZE=7, $
UVALUE='angle')
FieldVal3001 = [ $
'1.0' ]
FIELD2 = CW_FIELD( BASE2,VALUE=FieldVal3001, $
FONT='9x15', $
ROW=1, $
RETURN_EVENTS=1, $
FLOAT=1, $
TITLE='MAGNIFICATION', $
XSIZE=7, $
UVALUE='mag')
BASE3 = WIDGET_BASE(BASE2, $
ROW=2, $
MAP=1, $
FRAME=1, $
UVALUE='BASE3')
FieldVal3002 = [ $
'512.0' ]
FIELD3 = CW_FIELD( BASE3,VALUE=FieldVal3002, $
FONT='9x15', $
ROW=1, $
RETURN_EVENTS=1, $
FLOAT=1, $
TITLE='X-CENTER', $
XSIZE=7, $
UVALUE='xcent')
FieldVal3003 = [ $
'512.0' ]
FIELD4 = CW_FIELD( BASE3,VALUE=FieldVal3003, $
FONT='9x15', $
ROW=1, $
FLOAT=1, $
RETURN_EVENTS=1, $
TITLE='Y-CENTER', $
XSIZE=7, $
UVALUE='ycent')
BUTTON6= WIDGET_BUTTON( BASE3, $
UVALUE='use_curse', $
VALUE='USE CURSOR')
BUTTON4= WIDGET_BUTTON( BASE2, $
UVALUE='rotate', $
VALUE='ROTATE')
BUTTON5= WIDGET_BUTTON( BASE2, $
UVALUE='done', $
VALUE='Done')
WIDGET_CONTROL, DRAW14, SENSITIVE=1
WIDGET_CONTROL, MAIN15, /REALIZE
XMANAGER, 'MAIN15', MAIN15, /no_block
END