This page was created by the IDL library routine
mk_html_help
. For more information on
this routine, refer to the IDL Online Help Navigator
or type:
? mk_html_help
at the IDL command line prompt.
Last modified: Sun Jan 04 10:33:38 2009.
NAME: ANGLETOOL PURPOSE: The purpose of this routine is to create a selectable object for measuring angles in a graphics window. This tool is used in an interaction. See the medical image tab in the Catalyst example application for an example of its use. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: newObject = Obj_New("ANGLETOOL", ...) drawObject -> Add, newObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { ANGLETOOL, $ angle: 0.0, $ ; The current angle of the tool. arrowhead_size: 0L, $ ; The size of the arrowheads used with the tool. clockwise: 0L, $ ; If set, positive angle is in clockwise direction. insertedObject: Obj_New(), $ ; A reference to the new object created in the CreateNewObject method. (Ignored in CLEANUP.) layerObject: Obj_New(), $ ; An optional CATLAYER object for holding the inserted selectable object. linestyle: 0L, $ ; The linestyle of the selectable object. modemap: Obj_New(), $ ; A pixmap for calculating "mode", or which vertex to move. moveVertex: 0L, $ ; The vertex index of the vertex we are moving. npoints: 0L, $ ; The number of points currently in the triangle. pointsPixID: Obj_New(), $ ; A pixmap for storing polygon points. radians: 0L, $ ; If set, angle is in radians, not degrees. statusbar: Obj_New(), $ ; If valid, motion events are reported to this object. textcolor: "", $ ; The name of the color for the textual annotation. text:Obj_New(), $ ; A TEXTLINE object for displaying AngleTool annotation. thickness: 0.0, $ ; The thickness of the line drawing the selectable object. sx: 0L, $ ; The static X location. sy: 0L, $ ; The static Y location. xpts: Ptr_New(), $ ; The three X points of the triangle. ypts: Ptr_New(), $ ; The three Y points of the triangle. INHERITS SELECTABLEOBJECT $ } MESSAGES: ANGLETOOL_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. EVENT_STRUCTURE: This object will add the following fields to the event structure created by an interaction. The fields are defined as: ANGLE: The current angle of the Angle Tool. CLOCKWISE: A flag that if positive indicates the positive angle direction is in the clockwise direction. RADIANS: A flag that if positive indicates the angle is specified in radians rather than degress. MODIFICATION_HISTORY: Written by: David W. Fanning, July 13, 2005.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::ADDTOEVENTSTRUCTURE PURPOSE: This method receives an event structure, which it can add information to before being sent to some other event handler. Normally, this method is called by an INTERACTION object of some kind. SYNTAX: theObject -> AddToEventStructure, event ARGUMENTS: event: The event structure that will be added to. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a boundary box about the selectable object itself. The boundary box (self.box) is always stored in normalized coordinates. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::CLEANUP PURPOSE: This is the ANGLETOOL object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::CONTROLPANEL PURPOSE: This method creates a control panel for the selectable object. SYNTAX: boxObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::COPYPARAMETERS PURPOSE: This method returns the lower-left corner of the bounary box in the DESTINATION keyword, and the number of columns and rows in the boundary box in the EXTENT keyword, all in window or pixel coordinates. It's purpose is to return a section of a pixmap, for example, so that only that section can be copied. SYNTAX: theObject -> CopyParameters, drawid, DESTINATION=destination, EXTENT=extent ARGUMENTS: drawID: The identifier of a draw widget object whose extent will provide the size of the window for calculating device coordinates. This parameter is required. KEYWORDS: DESTINATION: A two-element array containing the lower-left corner of the boundary box in device coordinates. An output keyword. EXTENT: A two-element array containing the number of columns and rows in the boundary box in device coordinates. An output keyword.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains a layer object, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap containers. SYNTAX: theObject -> CreateNewObject, drawID ARGUMENTS: drawID: The draw widget which will contain the newly created object. Required unless you are calling this method simply to make a copy of the current object. pixmapID: The pixmap which will contain the newly created object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new box object that gets created. If the method is called with just this keyword and no other arguments, the method functions as a object COPY.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::DRAW PURPOSE: This method draws the selectable object in the current graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: STATUSBAR_ONLY: If this keyword is set, and there is a valid statusbar object to update, the angle is sent to the statusbar and not displayed in the display window.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary box of the selectable object. SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the selectable object in. By default, the color of the selectable object (self.color).
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::GETPROPERTY PURPOSE: This method allows the user to obtain ANGLETOOL properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: ANGLE: The angle of the current Angletool object. ARROWHEAD_SIZE: The size of the arrowhead in device coordiates. By default 1/50th of the width of the display window (!D.X_Size/50.0). CLOCKWISE: Set to 1 if positive angles in the clockwise direction. To 0 for counterclockwise positive direction. HEIGHT: The height of the polygon boundary box in normalized coordinates. INSERTEDOBJECT: The new object that is inserted in the CreateNewObject method. LAYER: The annotation layer associated with this object. LINESTYLE: The type of linestyle required. See PLOT documentation for details. NPOINTS: The number of points in the polygon. RADIANS: Set to 1 if the angle to be reported in radians. Set to 0 for degrees. STATUSBAR: The statusbar object for reporting motion events. TEXTCOLOR: The color of the object's annotation text. By default, the same as the COLOR. THICKNESS: The current thickness of the polygon. WIDTH: The width of the polygon boundary polygon in normalized coordinates. XPTS: The X locations of points making up the polygon. YPTS: The Y locations of points making up the polygon. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::INIT PURPOSE: This is the ANGLETOOL object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: ANGLE: The angle. Usually calculated and not set. Used here to create to Angletool objects. ARROWHEAD_SIZE: The size of the arrowhead in device coordiates. By default 1/50th of the width of the display window (!D.X_Size/50.0). CLOCKWISE: Normally postitive angles are calculated in a counter-clockwise direction. Setting this keyword causes the positive direction to be calculated in a clockwise direction. RADIANS: Normally the angle is reported in degrees (-180 to 180). Setting this keyword to 1 causes the angle to be reported in radians. STATUSBAR: Set this keyword equal to an object reference of an object with a SETPROPERTY method and a TEXT keyword. The angle will be sent to the statusbar object during the draw motion event handling. If a statusbar is used, the angle will NOT be displayed in the display window. LAYER: A CATLAYER object for holding other objects. Used here only when there is an UP event in INSERT mode. At that time a copy of this object is made and inserted the layer object and this is then inserted into the DrawWidget and/or Pixmap object. LINESTYLE: The linestyle used to draw the selectable object. TEXTCOLOR: The color of the object's annotation text. By default, the same as the COLOR. THICKNESS: Set this to the thickness of the selectable object. By default, 1.0. XPTS: The three X points making up the triangle. The middle point is the apex of the triangle. Expressed in data coordinates. YPTS: The three Y points making up the triangle. The middle point is the apex of the triangle. Expressed in data coordinates. _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::INTERACTIONEVENTS PURPOSE: This method accepts events from an interaction object of some type. The interaction may pre-process events, or send them directly here. You are required to have the following modes: SELECT, INSERT, and DRAW. Other modes are optional and are left to the programmer to interpret. SELECT: All SELECT mode events are passed to the selectable object for initialization of the object, as needed. If no initialization is necessary, return immediately. DRAW: DRAW mode events are transitory. The object disappears as soon as the drawing of the object is complete and an ACCEPT event is sent to the responsible event handler. INSERT: INSERT mode events result in a new selectable object being created and inserted into the object hierarchy. These objects can be selected and manipulated by other "modes" of your choosing. Include the appropriate modes here. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the Interaction object. KEYWORDS: INTERACTION: The object reference to a Interaction object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::MOVE PURPOSE: This method moves the selectable object in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::OUTLINE PURPOSE: This method returns a box in normalized coordinates that contains the selectable object and all of its parts (labels, text, etc). It is similar to the boundary box of the selectable object and, in fact, is often just the boundary box. Like the boundary box, the last element in the 2x5 array is the same as the first element. SYNTAX: outline = theObject -> Outline() ARGUMENTS: None. KEYWORDS: RETURN_VALUE: outline: A 2x5 array containing the XY point pairs in normalized coordinates of a rectangle big enough to contain all the parts of the object. None.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::SELECT PURPOSE: This method returns the object reference if the requested point is inside the bounding box of the object. SYNTAX: selectedObject = theObject -> Select, x, y ARGUMENTS: X: The X location of a point in device or window coordinates. Y: The Y location of a point in device or window coordinates. KEYWORDS: SUCCESS: Set to 1 if a selection is made. To 0 otherwise.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::SELECTVERTEX PURPOSE: This method selects a particular vertex for movement. SYNTAX: theObject -> SelectVertex, x, y ARGUMENTS: X: The X location of the selection. Y: The Y location of the selection. KEYWORDS: DrawID: A window object that contains the polygon. Required for converting to the proper device coodinate system.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::SETPROPERTY PURPOSE: This method allows the user to set the ANGLETOOL object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: Usually the same keywords that can be set in the INIT method. ANGLE: The angle. Usually calculated and not set. Used here to create to Angletool objects. ARROWHEAD_SIZE: The size of the arrowhead in device coordiates. By default 1/50th of the width of the display window (!D.X_Size/50.0). CLOCKWISE: Normally postitive angles are calculated in a counter-clockwise direction. Setting this keyword causes the positive direction to be calculated in a clockwise direction. LAYER: A CATLAYER object for holding other objects. Used here only when there is an UP event in INSERT mode. At that time a copy of this object is made and inserted the layer object and this is then inserted into the DrawWidget and/or Pixmap object. LINESTYLE: The linestyle used to draw the selectable object. RADIANS: Normally the angle is reported in degrees (-180 to 180). Setting this keyword to 1 causes the angle to be reported in radians. STATUSBAR: Set this keyword equal to an object reference of an object with a SETPROPERTY method and a TEXT keyword. The angle will be sent to the statusbar object during the draw motion event handling. TEXTCOLOR: The color of the object's annotation text. By default, the same as the COLOR. THICKNESS: Set this to the thickness of the selectable object. By default, 1.0. XPTS: The three X points making up the triangle. The middle point is the apex of the triangle. Expressed in data coordinates. YPTS: The three Y points making up the triangle. The middle point is the apex of the triangle. Expressed in data coordinates. _EXTRA: Any keyword appropriate for the superclass SetProperty method.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ANGLETOOL::UPDATE_MODEMAP PURPOSE: This method updates the modemap with the latest information. SYNTAX: self -> Update_Modemap ARGUMENTS: None. KEYWORDS: CLEAR: If this keyword is set, the modemap is cleared of all information.
(See C:\temp\catalyst\source\graphics\angletool__define.pro)
NAME: ARROW::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a box about the arrow. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::CLEANUP PURPOSE: This is the ARROW object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::CONTROLPANEL PURPOSE: This method creates a control panel for the ARROW object. SYNTAX: arrowObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains an annotation layer, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap container. SYNTAX: theObject -> CreateNewObject, drawID, pixmapID ARGUMENTS: drawID: The draw widget which will contain the new arrow object. Required in normal operation. pixmapID: The pixmap which will contain the new arrow object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new arrow object that gets created.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::DRAW PURPOSE: This method draws the arrow in the current direct graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary box of the arrow SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the box in. By default, the color of the arrow.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::GETPROPERTY PURPOSE: This method allows the user to obtain ARROW properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: ARROWHEAD: Which arrowheads should be drawn? The current state. HEADSIZE: The size of the arrow head in pixel units. But default, !D.X_Size/50. HEIGHT: The height of the arrow boundary box in normalized coordinates. LAYER: The annotation layer associated with this object. LENGTH: The length of the arrow in data coordinates. LINESTYLE: The type of linestyle required. See PLOT documentation for details. ROTATION: The current rotation of the arrow (in degrees). THICKNESS: The current thickness of the arrow. WIDTH: The width of the arrow boundary box in normalized coordinates. X1: The X location of one end of the arrow. Y1: The Y location of one end of the arrow. X2: The X location of the other end of the arrow. (Arrowhead here if ARROWHEAD=1.) Y2: The Y location of the other end of the arrow. (Arrowhead here if ARROWHEAD=1.) _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::INIT PURPOSE: This is the ARROW object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: ARROWHEAD: Set this keyword to 0 to draw no arrowheads on the line. Set to 1 (the default) to draw a single arrowhead at (x2,y2). Set to 2 to draw a double-headed arrow. Set to 3 to draw a single arrowhead at (x1,y1). HEADSIZE: The size of the arrow head in pixel units. But default, !D.X_Size/50. If set to -1, the headsize is calculated at DRAW time. This is preferred for resizeable graphics windows and PostScript output. LAYER: A CATLAYER object for holding annotations. LINESTYLE: The linestyle of the arrow. By default, 1.0 (solid). THICKNESS: Set this to the thickness of the output. By default, 1.0. X1: The X location of one end of the arrow. Y1: The Y location of one end of the arrow. X2: The X location of the other end of the arrow. (Arrowhead here if ARROWHEAD=1.) Y2: The Y location of the other end of the arrow. (Arrowhead here if ARROWHEAD=1.) _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::INTERACTIONEVENTS PURPOSE: This method accepts events from the SelectableInteraction object based on the "mode" of the SelectableInteraction object. The SelectableInteraction object can process "SELECT" and "MOVE" mode events. All other mode events are sent here for processing by a SELECTABLEOBJECT. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the SelectableInteraction interaction. KEYWORDS: INTERACTION: The object reference to a SELECTABLEINTERACTION object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::MOVE PURPOSE: This method moves the arrow in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW::SETPROPERTY PURPOSE: This method allows the user to set the ARROW object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: ARROWHEAD: Set this keyword to 0 to draw no arrowheads on the line. Set to 1 (the default) to draw a single arrowhead at (x2,y2). Set to 2 to draw a double-headed arrow. Set to 3 to draw a single arrowhead at (x1,y1). HEADSIZE: The size of the arrow head in pixel units. But default, !D.X_Size/50. LAYER: The annotation layer for the object. LINESTYLE: The type of linestyle required. See PLOT documentation for details. NOMESSAGE: Set this keyword to suppress any messaging as a result of going through the SetProperty method. Messaging is essential for PropertySheet widget capability, but causes too many draw methods on occasion. This will prevent going through DRAW methods needlessly. NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. ROTATION: Set this keyword to the value of the final rotation (in degrees). THICKNESS: Set this to the thickness of the output. By default, 1.0. X1: The X location of one end of the arrow. Y1: The Y location of one end of the arrow. X2: The X location of the other end of the arrow. (Arrowhead here if ARROWHEAD=1.) Y2: The Y location of the other end of the arrow. (Arrowhead here if ARROWHEAD=1.)
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: ARROW__DEFINE PURPOSE: The purpose of this routine is to provide an arrow that can be displayed in a direct graphics draw widget. The coordinate system of the Arrow object is either passed to it (a CatCoord object) or is a normalized coordinate system by default. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: arrowObject = Obj_New("ARROW", X1=0.5, Y1=0.5, X2=0.75, Y2=0.75) drawObject -> Add, arrowObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { ARROW, $ arrowhead: 0L, $ ; A flag to indicate which arrow heads should be drawn. headsize: 0L, $ ; The arrow head size in pixels. By default !D.X_Size / 50. layerObject: Obj_New(), $ ; A CATLAYER object for holding the annotation. linestyle: 0L, $ ; The linestyle the arrow is drawn in. midx: 0.0, $ ; The midpoint of the arrow in X. midy: 0.0, $ ; The midpoint of the arrow in Y. moveend: 0L, $ ; Indicates which end of arrow (1 or 2) you are moving. orientation: 0.0, $ ; The orientation of the arrow thickness: 0.0, $ ; The thickness of the arrow. x1: 0.0, $ ; The X location for one end of the arrow. y1: 0.0, $ ; The Y location for one end of the arrow. x2: 0.0, $ ; The X location for the other end of the arrow. y2: 0.0, $ ; The Y location for the other end of the arrow. sx: 0L, $ ; The static end of a moving arrow. sy: 0L, $ ; The static end of a moving arrow. INHERITS SelectableObject $ } MESSAGES: ARROW_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 Jan 2004.
(See C:\temp\catalyst\source\graphics\arrow__define.pro)
NAME: BOX::ADDTOEVENTSTRUCTURE PURPOSE: This method receives an event structure, which it can add information to before being sent to some other event handler. Normally, this method is called by an INTERACTION object of some kind. SYNTAX: theObject -> AddToEventStructure, event ARGUMENTS: event: The event structure that will be added to. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a boundary box about the box itself. The boundary box (self.box) is always stored in normalized coordinates. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::CLEANUP PURPOSE: This is the BOX object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::CONTROLPANEL PURPOSE: This method creates a control panel for the BOX object. SYNTAX: boxObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains a layer object, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap containers. SYNTAX: theObject -> CreateNewObject, drawID ARGUMENTS: drawID: The draw widget which will contain the newly created object. Required in normal operation. pixmapID: The pixmap which will contain the newly created object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new box object that gets created. If the method is called with just this keyword and no other arguments, the method functions as a object COPY.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::DRAW PURPOSE: This method draws the box in the current direct graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary box of the box SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the box in. By default, the color of the box.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::GETPROPERTY PURPOSE: This method allows the user to obtain BOX properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: CLIP_TO_DATA: If set, indicates that the ellipse is clipped to the data coordinate range. HEIGHT: The height of the box boundary box in normalized coordinates. INSERTEDOBJECT: The new object that is inserted in the CreateNewObject method. LAYER: The annotation layer associated with this object. LINESTYLE: The type of linestyle required. See PLOT documentation for details. LENGTH: The length of the box in data coordinates. THICKNESS: The current thickness of the box. WIDTH: The width of the box boundary box in normalized coordinates. X1: The X location of lower-left corner of the box. Y1: The Y location of lower-left corner of the box. X2: The X location of upper-right corner of the box. Y2: The Y location of upper-right corner of the box. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::INIT PURPOSE: This is the BOX object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: CLIP_TO_DATA: The box is draw with PLOTS, which normally does NOT clip to the data range. Set this keyword to put clipping into effect for drawing the box. LAYER: A CATLAYER object for holding other objects. Used here only when there is an UP event in INSERT mode. At that time a copy of this object is made and inserted the layer object and this is then inserted into the DrawWidget and/or Pixmap object. LINESTYLE: The linestyle of the box. By default, 1.0 (solid). THICKNESS: Set this to the thickness of the output. By default, 1.0. X1: The X location of one corner of the box in data coordinates. Y1: The Y location of one corner of the box in data coordinates. X2: The X location of the corner end of the box in data coordinates. Y2: The Y location of the corner end of the box in data coordinates. _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::INTERACTIONEVENTS PURPOSE: This method accepts events from an interaction object of some type. The interaction may pre-process events, or send them directly here. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the Interaction object. KEYWORDS: INTERACTION: The object reference to a Interaction object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::INTERACTIONEVENTS PURPOSE: This method accepts events from an interaction object of some type. The interaction may pre-process events, or send them directly here. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the Interaction object. KEYWORDS: INTERACTION: The object reference to a Interaction object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: BOX::MOVE PURPOSE: This method moves the box in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::SELECTMODE PURPOSE: This method selects the movement mode based on which which handle is closest to the selection point. The selection point is a location in a draw widget in device coordinates. SYNTAX: theObject -> SelectMode, x, y ARGUMENTS: X: The X location of the selection. Y: The Y location of the selection. KEYWORDS: DrawID: A window object that contains the box. Required for converting to the proper device coodinate system.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::SETPROPERTY PURPOSE: This method allows the user to set the BOX object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: CLIP_TO_DATA: The ellipse is draw with PLOTS, which normally does NOT clip to the data range. Set this keyword to put clipping into effect for drawing the ellipse. DRAW: If this keyword is set, the DRAW method will be called at the end of the SetProperty method. LAYER: A CATLAYER object for holding annotations. LINESTYLE: The type of linestyle required. See PLOT documentation for details. NOMESSAGE: Set this keyword to suppress any messaging as a result of going through the SetProperty method. Messaging is essential for PropertySheet widget capability, but causes too many draw methods on occasion. This will prevent going through DRAW methods needlessly. NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. THICKNESS: Set this to the thickness of the output. By default, 1.0. X1: The X location of lower-left corner of the box. Y1: The Y location of lower-left corner of the box. X2: The X location of upper-right corner of the box. Y2: The Y location of upper-right corner of the box.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX::UPDATE_MODEMAP PURPOSE: This method updates the modemap with the latest information. SYNTAX: self -> Update_Modemap ARGUMENTS: None. KEYWORDS: CLEAR: If this keyword is set, the modemap is cleared of all information.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: BOX__DEFINE PURPOSE: The purpose of this routine is to provide a rectangle or box that can be displayed in a direct graphics draw widget. The coordinate system of the Box object is either passed to it (a CatCoord object) or is a normalized coordinate system by default. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: boxObject = Obj_New("BOX", X1=0.5, Y1=0.5, X2=0.75, Y2=0.75) drawObject -> Add, boxObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { BOX, $ clip_to_data: 0B, $ ; Flag that if set will allow clipping to data range in DRAW method. layerObject: Obj_New(), $ ; A CATLAYER object for holding the annotation. linestyle: 0L, $ ; The line style of the box. midx: 0.0, $ ; The midpoint of the box in X. midy: 0.0, $ ; The midpoint of the box in Y. modemap: Obj_New(), $ ; A pixmap for calculating "mode". moveend: 0L, $ ; Indicates which end of box you are moving. thickness: 0.0, $ ; The thickness of the box. x1: 0.0, $ ; The X location for lower-left corner of the box. y1: 0.0, $ ; The Y location for lower-left corner of the box. x2: 0.0, $ ; The X location for upper-right corner of the box. y2: 0.0, $ ; The Y location for upper-right corner of the box. sx: 0L, $ ; The static X location. sy: 0L, $ ; The static Y location. INHERITS SelectableObject $ } MESSAGES: BOX_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. EVENT_STRUCTURE: This object will add the following fields to the event structure created by an interaction. The fields are defined as: BOUNDARY_BOX: A 2x5 element array in normalized coordinates giving the boundary box of the object. XPTS: A two element array giving the X values of the lower-left and upper-right corners of the box in data coordinates. YPTS: A two element array giving the Y values of the lower-left and upper-right corners of the box in data coordinates. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 Jan 2004.
(See C:\temp\catalyst\source\graphics\box__define.pro)
NAME: CATCOLORBAR PURPOSE: The purpose of this routine is to implement a colorbar object as a selectable object. The colors for the color bar can be passed into the program as a COLORTOOL object with the COLOR_OBJECT keyword. A gray-scale color table with 256 colors is loaded by default. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: newObject = Obj_New("CATCOLORBAR", ...) drawObject -> Add, newObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { CATCOLORBAR, $ bar: Obj_New(), $ ; The colorbar image. charsize: 0.0, $ ; The character size of the annotation. divisions: 0L, $ ; The number of major tick marks. extra: Ptr_New(), $ ; Placeholder for extra keywords. font: 0L, $ ; The font to use for annotations. format: "", $ ; The annotation formating. layerObject: Obj_New(), $ ; An optional CATLAYER object for holding the inserted selectable object. minor: 0L, $ ; The number of minor tick marks. ncolors: 0L, $ ; The number of colors in the colorbar. range: FltArr(2), $ ; The range of values displayed on the colorbar. right: 0L, $ ; The flag for text on RIGHT of vertical colorbars. thickness: 0.0, $ ; The thickness of the selectable object. ticklen: 0.0, $ ; The length of the tick marks. tickv: Ptr_New(), $ ; Values for the tick marks. title: "", $ ; The title string for the colorbar. top: 0L, $ ; The flag for text on TOP of horizontal colorbars. vertical: 0L, $ ; The flag for a vertical colorbar. INHERITS SELECTABLEOBJECT $ } MESSAGES: CATCOLORBAR_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. MODIFICATION_HISTORY: Written by: David W. Fanning, April 17, 2005. Added automatic True-Type fonts for PostScript output, if Hershey fonts would otherwise be selected. 1 August 2006. DWF. Added MATCHPARENT keyword to INIT method. 2 August 2006. DWF.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::CALCULATEBOUNDARYBOX PURPOSE: This method is here for completeness. The boundary box is actually calculated at the end of the DRAW method. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::CLEANUP PURPOSE: This is the CATCOLORBAR object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::CONTROLPANEL PURPOSE: This method creates a control panel for the selectable object. SYNTAX: boxObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains a layer object, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap containers. SYNTAX: theObject -> CreateNewObject, drawID ARGUMENTS: drawID: The draw widget which will contain the newly created object. Required in normal operation. pixmapID: The pixmap which will contain the newly created object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new box object that gets created. If the method is called with just this keyword and no other arguments, the method functions as a object COPY.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::DRAW PURPOSE: This method draws the box in the current direct graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the colorbar object SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the box in. By default, the color of the text.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::GETPROPERTY PURPOSE: This method allows the user to obtain CATCOLORBAR properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: CHARSIZE: The character size of the color bar annotations. COLOR: The name of the color to use for drawing the borders and annotations of the colorbar. ; CTINDEX: The color table index number currently used in the colorbar. DIVISIONS: The number of divisions to divide the bar into. FONT: The type of font used for annotation. Hershey: 0, Hardware:1, True-Type: 2. FORMAT: The format of the bar annotations. LAYER: A CATLAYER object for holding other objects. MINOR: The number of minor tick divisions. NCOLORS: This is the number of colors in the color bar. POSITION: A four-element array of normalized coordinates in the same form as the POSITION keyword on a plot. RANGE: A two-element vector of the form [min, max]. RIGHT: Set if the title is on the right of the colorbar. THICKNESS: Set this to the thickness of the line around the colorbar. By default, 1.0. TICKNAMES: A string array of names or values for the tick marks. TITLE: A string used as the title of the colorbar. Set to "" by default. TOP: Set if the title is on the top of the colorbar. VERTICAL: Set if the colorbar is vertical rather than horizontal. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::INIT PURPOSE: This is the CATCOLORBAR object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: CHARSIZE: The character size of the color bar annotations. Default is 1.0. COLOR: The name of the color to use for drawing the borders and annotations of the colorbar. By default, "white". COLOR_OBJECT: Use this keyword to load a color object for setting up colors for data display. CTINDEX: The color table index number of the colors to load. Used only if a COLOR_OBJECT is not passed in. Set to 0 (gray-scale) by default. DIVISIONS: The number of divisions to divide the bar into. There will be (divisions + 1) annotations. The default is 6. FONT: Sets the font of the annotation. Hershey: 0, Hardware:1, True-Type: 2. FORMAT: The format of the bar annotations. Default is '(I5)'. INVERTCOLORS: Setting this keyword inverts the colors in the color bar. LAYER: A CATLAYER object for holding other objects. Used here only when there is an UP event in INSERT mode. At that time a copy of this object is made and inserted the layer object and this is then inserted into the DrawWidget and/or Pixmap object. MATCHPARENT: If this keyword is set, and the parent of the CATCOLORBAR is a CATIMAGE, then the position of the colorbar will be matched to the actual position of the image in the window. MINOR: The number of minor tick divisions. Default is 2. NCOLORS: This is the number of colors in the color bar. NOINTERP: Normally the colors are interpolated in the colorbar. Setting this keyword will ensure the colors are replicated by nearest neighbor sampling. POSITION: A four-element array of normalized coordinates in the same form as the POSITION keyword on a plot. Default is [0.88, 0.10, 0.95, 0.90] for a vertical bar and [0.10, 0.88, 0.90, 0.95] for a horizontal bar. ; RANGE: A two-element vector of the form [min, max]. Provides an alternative way of setting the MINRANGE and MAXRANGE keywords. RIGHT: This puts the labels on the right-hand side of a vertical color bar. It applies only to vertical color bars. THICKNESS: Set this to the thickness of the line around the colorbar. By default, 1.0. TICKNAMES: A string array of names or values for the tick marks. TITLE: A string used as the title of the colorbar. Set to "" by default. TOP: This puts the labels on top of the bar rather than under it. The keyword only applies if a horizontal color bar is rendered. VERTICAL: Setting this keyword give a vertical color bar. The default is a horizontal color bar. _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method or the PLOT procedure for drawing the box around the colorbar image.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::INTERACTIONEVENTS PURPOSE: This method accepts events from an interaction object of some type. The interaction may pre-process events, or send them directly here. You are required to have the following modes: SELECT, INSERT, and DRAW. Other modes are optional and are left to the programmer to interpret. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the Interaction object. KEYWORDS: INTERACTION: The object reference to a Interaction object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::MESSAGEHANDLER PURPOSE: This method responds to "messages" sent from other objects. It is called automatically by other objects. To receive messages, it is necessary to "register" with the messaging object. SYNTAX: None. Called by other objects. ARGUMENTS: TITLE: The message title. This is the "name" of the message indicated when the object registered for messages with the messaging object. KEYWORDS: DATA: Information from the SENDER that may be relevant in processing the message. Typically, an anonymous structure variable, although it could be anything at all. SENDER: An output keyword. This is the object reference of the object that is sending the message.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::MOVE PURPOSE: This method moves the selectable object in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::SELECT PURPOSE: This method returns the object reference if the requested point is inside the bounding box. SYNTAX: selectedObject = theObject -> Select, x, y ARGUMENTS: X: The X location of a point in device or window coordinates. Y: The Y location of a point in device or window coordinates. KEYWORDS: SUCCESS: Set to 1 if a selection is made. To 0 otherwise.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::SELECTMODE PURPOSE: This method selects the movement mode based on which which handle is closest to the selection point. The selection point is a location in a draw widget in device coordinates. SYNTAX: theObject -> SelectMode, x, y ARGUMENTS: X: The X location of the selection. Y: The Y location of the selection. KEYWORDS: DrawID: A window object that contains the box. Required for converting to the proper device coodinate system.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::SETPROPERTY PURPOSE: This method allows the user to set the CATCOLORBAR object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: CHARSIZE: The character size of the color bar annotations. Default is 1.0. COLOR: The name of the color to use for drawing the borders and annotations of the colorbar. By default, "white". COLOR_OBJECT: Use this keyword to load a color object for setting up colors for data display. CTINDEX: The color table index number of the colors to load. Used only if a COLOR_OBJECT is not passed in. Set to 0 (gray-scale) by default. DIVISIONS: The number of divisions to divide the bar into. There will be (divisions + 1) annotations. The default is 6. DRAW: Set this keyword if you wish to call the DRAW method on SetProperty completion. FONT: Sets the font of the annotation. Hershey: 0, Hardware:1, True-Type: 2. FORMAT: The format of the bar annotations. Default is '(I5)'. INVERTCOLORS: Setting this keyword inverts the colors in the color bar. LAYER: A CATLAYER object for holding other objects. Used here only when there is an UP event in INSERT mode. At that time a copy of this object is made and inserted the layer object and this is then inserted into the DrawWidget and/or Pixmap object. MINOR: The number of minor tick divisions. Default is 2. NCOLORS: This is the number of colors in the color bar. NOINTERP: Normally the colors are interpolated in the colorbar. Setting this keyword will ensure the colors are replicated by nearest neighbor sampling. NOMESSAGE: Set this keyword to suppress normal message sending. POSITION: A four-element array of normalized coordinates in the same form as the POSITION keyword on a plot. Default is [0.88, 0.10, 0.95, 0.90] for a vertical bar and [0.10, 0.88, 0.90, 0.95] for a horizontal bar. ; RANGE: A two-element vector of the form [min, max]. Provides an alternative way of setting the MINRANGE and MAXRANGE keywords. RIGHT: This puts the labels on the right-hand side of a vertical color bar. It applies only to vertical color bars. THICKNESS: Set this to the thickness of the line around the colorbar. By default, 1.0. TICKNAMES: A string array of names or values for the tick marks. TITLE: A string used as the title of the colorbar. Set to "" by default. TOP: This puts the labels on top of the bar rather than under it. The keyword only applies if a horizontal color bar is rendered. VERTICAL: Setting this keyword give a vertical color bar. The default is a horizontal color bar.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATCOLORBAR::UPDATE_MODEMAP PURPOSE: This method updates the modemap with the latest information. SYNTAX: self -> Update_Modemap ARGUMENTS: None. KEYWORDS: CLEAR: If this keyword is set, the modemap is cleared of all information.
(See C:\temp\catalyst\source\graphics\catcolorbar__define.pro)
NAME: CATGRAPHICSCMDTOOL::CLEANUP PURPOSE: This is the CATGRAPHICSCMDTOOL object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: _EXTRA: Any keyword appropriate for the "TOOLATOM::Cleanup" method.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::DRAW PURPOSE: This method draws or executes the graphics command. ; SYNTAX: thisObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::GETPROPERTY PURPOSE: This method enables the getting of the CATGRAPHICSCMDTOOL object class properties. SYNTAX: aGraphicsCmd -> GetProperty ... ARGUMENTS: None. KEYWORDS: CAT_COLOR_OBJECT: A colortool object subclassed from COLORTOOL. Sets up the color table for the graphics command. CAT_COORD_OBJECT: A coordinates object subclassed from CATCOORD. The coordinates object is automatically updated *after* the DRAW method is completed, which keeps the data coordinate system up to date for subsequent interaction with the graphics output. COMMAND: The current graphics command. KEYWORDS: The keywords associated with the graphics command. NPARAMS: The number of parameters associated with the graphics command. P1: The data associated with the first positional parameter of the graphics command. P2: The data associated with the second positional parameter of the graphics command. P3: The data associated with the third positional parameter of the graphics command. _EXTRA: Any keywords appropriate for the superclass SetProperty methods.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::INIT PURPOSE: This is the CATGRAPHICSCMDTOOL object class initialization method. SYNTAX: Called automatically when the object is created. ARGUMENTS: Command: This is the name of the graphics "command" that is to be executed. It should be a string. For example, "Surface" or "Contour". P1: This is the first positional parameter of the graphics command. P2: This is the second positional parameter of the graphics command. P3: This is the third positional parameter of the graphics command. KEYWORDS: AUTO_DESTROY: This object keeps track of the number of parents it has (reference counting). When this value changes from 1 to 0, the object will be destroyed unless Auto_Destroy has been set to zero. (Input) CAT_COLOR_OBJECT: A colortool object subclassed from COLORTOOL. Sets up the color table for the graphics command. CAT_COORD_OBJECT: A coordinates object subclassed from CATCOORD. The coordinates object is automatically updated *after* the DRAW method is completed, which keeps the data coordinate system up to date for subsequent interaction with the graphics output. DECOMPOSED: Set this keyword to 0 to turn color decomposition OFF before executing the graphics command. Default is color decomposition ON (this is also known as "true-color mode".) EVENT_OBJECT: This is an object reference to an object that will receive the event from a specific widget event. It is the equivalent (in object terms) of specifying an EVENT_PRO or EVENT_FUNC keyword. In other words, it is a way of deflected an event from the EVENTHANDLER method of the object widget that generated the event to the EVENTHANDLER method of the object specified with this keyword. EXCLUSIVE_EVENT_OBJECT: If this keyword is set to a vaid object, events are passed directly and only to this object, ignoring the other event objects. To disable this set this keyword to be a NULL object or zero. This keyword is designed for situations where an object wishes to hog the events for a limited period. INDEXED: If set, the contents of this container will remain at the same index(ie: indices will not automatically be re-used. MEMORY_MANAGEMENT: Setting this keyword to zero disables automatic memory management for this container. This means that child objects will not realize that they are children of this container. NAME: The "name" of the object. Used to keep track of the object in the code. You can "GET" an object by its name, for example. Any string is acceptible. (Input) NO_COPY: Set this keyword to transfer the UVALUE without copying. NOCACHE: Set this keyword to indicate that the input data should not be cached or stored in the storage location. PARENT: A parent container object. Must be subclassed from IDL_CONTAINER. The object will be added to its parent container. (Input) POSITION: This object's position in the parent container. See the IDL_CONTAINER documentation. (Input) REPORTLEVEL: The reporting level for the atom. This is honored only if the reporting level for the atom is higher than the reporting level in the !Smart system variable. It is used primarily for debugging purposes. Values between 0 and 2. (Input) TARGET: Set this keyword to an object reference for the target object. The tool is applied to the data in this target. UVALUE: A user-value pointer. Can be used to store any IDL variable type. _EXTRA: Any keywords appropriate for the graphics command. NOTES: Note that it is possible to run into ambiguous keyword problems when loading a graphics command with the INIT method. For example, if the graphics command you are loading contains any of the keywords listed above, then the keyword will be misinterpreted, since the keyword will be applied to object properties and not to the graphics command per se. (The POSITION keyword is an obvious conflict with many graphics commands.) Rather than prevent you from trying, I've decided to do what I can with what I am given. But if you find this unsuccessful, then you can just create the object with "object" type keywords, and load the graphics command with the unambiguous LOADCOMMAND method. It is *always* safer to create the object, and *then* load the command with the LOADCOMMAND method.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::LoadCommand PURPOSE: This method allows the user to load a command into the object. SYNTAX: aGraphicsCmd -> LoadCommand, 'command', p1, p2, p3 ARGUMENTS: Command: This is the name of the graphics "command" that is to be executed. It should be a string. For example, "Surface" or "Contour". P1: This is the first positional parameter of the graphics command. P2: This is the second positional parameter of the graphics command. P3: This is the third positional parameter of the graphics command. KEYWORDS: DRAW: Set this keyword to immediately call the Draw method when the command is loaded. _EXTRA: Any keywords appropriate for command may be used.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::PIXEL_TO_VALUE PURPOSE: This method calculates the data value underneath a pixel location in the display window. To be accurate, the window that contains the image MUST BE the current graphics window or you MUST PASS the window number in with the WINDOWINDEX keyword. SYNTAX: data_value = aGraphicsCmd -> Pixel_to_Value(x, y) RETURN_VALUE: data_value: A two element array of the x and y points converted to data coordinates. ARGUMENTS: X: The x location in the display window (pixel coordinates). Y: The y location in the display window (pixel coordinates). INPUT_KEYWORDS: WINDOWINDEX: The window index number of the window containing the image object. Set to !D.Window by default. OUTPUT_KEYWORDS: INSIDE: This keyword is set to 1 if the (x,y) value is inside the rectangle formed by [!X.Crange[0], !Y.Crange[0], !X.Crange[1], !Y.Crange[1]]. Otherwise, it is set to 0.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::REDO PURPOSE: This method attempts to redo the previous command operation. ; SYNTAX: thisObject -> REDO ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::SETPROPERTY PURPOSE: This method enables the setting of the CATGRAPHICSCMDTOOL object class properties. SYNTAX: aGraphicsCmd -> SetProperty ... ARGUMENTS: None. KEYWORDS: CAT_COLOR_OBJECT: A colortool object subclassed from COLORTOOL. Sets up the color table for the graphics command. CAT_COORD_OBJECT: A coordinates object subclassed from CATCOORD. The coordinates object is automatically updated *after* the DRAW method is completed, which keeps the data coordinate system up to date for subsequent interaction with the graphics output. _EXTRA: Any keywords appropriate for the superclass SetProperty methods.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL::UNDO PURPOSE: This method attempts to undo the previous command operation by restoring the cached graphics window. If the window is no longer available, or there is no cache, the method fails silently. ; SYNTAX: thisObject -> UNDO ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CATGRAPHICSCMDTOOL__DEFINE PURPOSE: The purpose of this routine is to implement any IDL graphics command procedure as a tool object, giving the command the ability to be undone. Any graphics command can be used as long as it requires no more than three positional parameters. Any number of keywords are supported. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: aTool = Obj_New("CATGRAPHICSCMDTOOL", command, p1, p2, p2, Keyword=keyword) SUPERCLASSES: CATTOOL CATATOM CATCONTAINER IDL_CONTAINER CLASS_STRUCTURE: class = { CATGRAPHICSCMDTOOL, $ ; The CATGRAPHICSCMDTOOL object class. INHERITS CATTOOL, $ ; Inherits the CATTOOL object class. _command: "", $ ; The IDL graphics command. _coords: Obj_New(), $ ; A CATCOORD coordinates object. _colors: Obj_New(), $ ; A COLORTOOL color object. _decomposed: 0L, $ ; The color decomposition state for the command. _p1: Ptr_New(), $ ; The first positional parameter of the command. _p2: Ptr_New(), $ ; The second positional parameter of the command. _p3: Ptr_New(), $ ; The third positional parameter of the command. _nparams: 0L, $ ; The number of parameters used in the call. _keywords: Ptr_New(), ; A structure of keywords used with the command. } MODIFICATION_HISTORY: Written by: David Fanning, April 24, 2003.
(See C:\temp\catalyst\source\graphics\catgraphicscmdtool__define.pro)
NAME: CONTRASTBOX::ACCEPTBOX PURPOSE: This method accepts the box on the display and sends an event to the client. SYNTAX: theObject -> AcceptBox, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX::CANCELBOX PURPOSE: This method cancels the box on the display and allows the user to start over SYNTAX: theObject -> CancelBox, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX::CLEANUP PURPOSE: This is the CONTRASTBOX object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX::DRAW PURPOSE: This method draws the interaction in the display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX::INIT PURPOSE: This is the CONTRASTBOX object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: drawObject: The draw widget object that you will be taking over events from. KEYWORDS: _EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX::REFRESHPIXMAP PURPOSE: This method refreshes the pixmap (the original display might have changed in some way) and (optionally) calls the DRAW method. SYNTAX: theObject -> RefreshPixmap ARGUMENTS: None. KEYWORDS: DRAW: If this keyword is set, the DRAW method is called..
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX::RESTOREDISPLAY PURPOSE: This method ... SYNTAX: theObject -> RestoreDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX::SETDISPLAY PURPOSE: This method ... SYNTAX: theObject -> SetDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: CONTRASTBOX__DEFINE PURPOSE: A contrastbox object is a moveable, rubberband-type box interaction in which only the portion of the window inside the box is shown in full color. The portion of the window outside the box is shown in muted colors. The colors are muted by reducing the saturation by 50%. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("CONTRASTBOX") SUPERCLASSES: MOVEABLEBOX RUBBERBANDBOX INTERACTION CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { CONTRASTBOX, $ contrastID: Obj_New(), $ ; The contrast window. INHERITS MOVEABLEBOX $ } MESSAGES: None. EVENT_STRUCTURE: event = { ID:theObject, TOP:topObject, HANDLER:Obj_New(), EVENT_NAME='RUBBERBANDBOX_EVENT', $ NAME: self._name, BOX:self.box, XPTS:FLTARR(5), YPTS:FLATARR(5) } In which the XPTS and YPTS fields contain the X and Y locations of the box in a form suitable for drawing the ROI on the display with PLOTS. The BOX, XPTS, and YPTS are converted to the coordinate system of the draw widget associated with the interaction before being placed in the event structure. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 October 2004.
(See C:\temp\catalyst\source\graphics\contrastbox__define.pro)
NAME: ELLIPSE::ADDTOEVENTSTRUCTURE PURPOSE: This method receives an event structure, which it can add information to before being sent to some other event handler. Normally, this method is called by an INTERACTION object of some kind. SYNTAX: theObject -> AddToEventStructure, event ARGUMENTS: event: The event structure that will be added to. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a boundary ellipse about the ellipse itself. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::CLEANUP PURPOSE: This is the ELLIPSE object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::CONTROLPANEL PURPOSE: This method creates a control panel for the ELLIPSE object. SYNTAX: ellipseObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains an annotation layer, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap container. SYNTAX: theObject -> CreateNewObject, drawID, pixmapID ARGUMENTS: drawID: The draw widget which will contain the new arrow object. Required in normal operation. pixmapID: The pixmap which will contain the new arrow object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new arrow object that gets created.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::DRAW PURPOSE: This method draws the ellipse in the current direct graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary ellipse of the ellipse SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the ellipse in. By default, the color of the ellipse.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::GETPROPERTY PURPOSE: This method allows the user to obtain ELLIPSE properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: CLIP_TO_DATA: If set, indicates that the ellipse is clipped to the data coordinate range. HEIGHT: The height of the ellipse boundary ellipse in normalized coordinates. INSERTEDOBJECT: The new object that is inserted in the CreateNewObject method. LAYER: The annotation layer associated with this object. LINESTYLE: The type of linestyle required. See PLOT documentation for details. ROTATION: The rotation in degrees counterclockwise of the X axis. THICKNESS: The current thickness of the ellipse. WIDTH: The width of the ellipse boundary ellipse in normalized coordinates. XCENTER: The X coordinate of the center of the ellipse. XRADIUS: The axis radius in the X direction. YCENTER: The Y coordinate of the center of the ellipse. YRADIUS: The axis radius in the Y direction. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::INIT PURPOSE: This is the ELLIPSE object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: CLIP_TO_DATA: The ellipse is draw with PLOTS, which normally does NOT clip to the data range. Set this keyword to put clipping into effect for drawing the ellipse. LAYER: A CATLAYER object for holding annotations. LINESTYLE: The linestyle of the ellipse. By default, 1.0 (solid). NPOINTS: The number of points used to draw the ellipse. By default, 120. ROTATION: The rotation in degrees counterclockwise of the X axis. THICKNESS: Set this to the thickness of the output. By default, 1.0. XCENTER: The X coordinate of the center of the ellipse. XRADIUS: The axis radius in the X direction. YCENTER: The Y coordinate of the center of the ellipse. YRADIUS: The axis radius in the Y direction. _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::INTERACTIONEVENTS PURPOSE: This method accepts events from the SelectableInteraction object based on the "mode" of the SelectableInteraction object. The SelectableInteraction object can process "SELECT" and "MOVE" mode events. All other mode events are sent here for processing by a SELECTABLEOBJECT. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the SelectableInteraction interaction. KEYWORDS: INTERACTION: The object reference to a SELECTABLEINTERACTION object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::MOVE PURPOSE: This method moves the ellipse in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::SELECT PURPOSE: This method returns the object reference if the requested point is inside the bounding box of the ellipse. SYNTAX: selectedObject = theObject -> Select, x, y ARGUMENTS: X: The X location of a point in device or window coordinates. Y: The Y location of a point in device or window coordinates. KEYWORDS: SUCCESS: Set to 1 if a selection is made. To 0 otherwise.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::SELECTMODE PURPOSE: This method selects the movement mode based on which which handle is closest to the selection point. The selection point is a location in a draw widget in device coordinates. SYNTAX: theObject -> SelectMode, x, y ARGUMENTS: X: The X location of the selection. Y: The Y location of the selection. KEYWORDS: DrawID: A window object that contains the ellipse. Required for converting to the proper device coodinate system.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::SETPROPERTY PURPOSE: This method allows the user to set the ELLIPSE object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: CLIP_TO_DATA: The ellipse is draw with PLOTS, which normally does NOT clip to the data range. Set this keyword to put clipping into effect for drawing the ellipse. LAYER: The annotation layer for the object. LINESTYLE: The type of linestyle required. See PLOT documentation for details. NOMESSAGE: Set this keyword to suppress any messaging as a result of going through the SetProperty method. Messaging is essential for PropertySheet widget capability, but causes too many draw methods on occasion. This will prevent going through DRAW methods needlessly. NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. ROTATION: The rotation in degrees counterclockwise of the X axis. THICKNESS: Set this to the thickness of the output. By default, 1.0. XCENTER: The X coordinate of the center of the ellipse. XRADIUS: The axis radius in the X direction. YCENTER: The Y coordinate of the center of the ellipse. YRADIUS: The axis radius in the Y direction.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE::UPDATE_MODEMAP PURPOSE: This method updates the modemap with the latest information. SYNTAX: self -> Update_Modemap ARGUMENTS: None. KEYWORDS: CLEAR: If this keyword is set, the modemap is cleared of all information.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: ELLIPSE_ROI::ACCEPTROI PURPOSE: This method accepts the box on the display and sends an event to the client. SYNTAX: theObject -> AcceptROI, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::CANCELROI PURPOSE: This method cancels the box on the display and allows the user to start over SYNTAX: theObject -> CancelROI, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::CLEANUP PURPOSE: This is the ELLIPSE_ROI object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::DRAW PURPOSE: This method draws the interaction in the display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::EVENT_HANDLER PURPOSE: This method is the event handler for the ELLIPSE_ROI object. SYNTAX: This method is called automatically by the event handling mechanism. ARGUMENTS: event: The event structure as described in the IDL help files, except that the ID, TOP and HANDLER tags will be object references. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::GETPROPERTY PURPOSE: This method allows the user to obtain ELLIPSE_ROI properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: DEVICE: Set this keyword if you want the X and Y points (see XPTS and YPTS) returned in device coordinates. Otherwise, they are returned in the coordinate system of the display window (if there is one). LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. By default, 2. XPTS: The X points in the ROI. Returned in coordinate system of the display window, if possible. YPTS: The Y points in the ROI. Returned in coordinate system of the display window, if possible. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::INIT PURPOSE: This is the ELLIPSE_ROI object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: drawObject: The draw widget object that you will be taking over events from. KEYWORDS: COUNT: The number of points used to draw the ellipse. By default, 120. LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. By default, 2. _EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::RESTOREDISPLAY PURPOSE: This method overrides the INTERACTION RestoreDisplay method by also destroying the buffer pixmap. SYNTAX: theObject -> RestoreDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::SETDISPLAY PURPOSE: This method overrides the INTERACTION SetDisplay method by adding a pixmap widget for buffering output. SYNTAX: theObject -> SetDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI::SETPROPERTY PURPOSE: This method allows the user to set the ELLIPSE_ROI object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. Be default, 2. _EXTRA: Any keywords appropriate for the superclass SetProperty method.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE_ROI__DEFINE PURPOSE: The purpose of this routine is to provide an ellipse ROI interaction. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("ELLIPSE_ROI") SUPERCLASSES: INTERACTION CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { ELLIPSE_ROI, $ xpts: Ptr_New(), $ ; The X points in the ROI. ypts: Ptr_New(), $ ; The X points in the ROI. count: 0L, $ ; The number of points in the ROI. bufferID: Obj_New(), $ ; A pixmap buffer for smooth graphics display. INHERITS INTERACTION $ } MESSAGES: None. EVENT_STRUCTURE: event = { ID:theObject, TOP:topObject, HANDLER:Obj_New(), EVENT_NAME='ELLIPSE_ROI_EVENT', $ NAME: self._name, XPTS:FLTARR(), YPTS:FLATARR(), COUNT:0L } In which the XPTS and YPTS fields contain the X and Y locations of the polygon in a form suitable for drawing the ROI on the display with PLOTS. The COUNT field contains the number of points in the XPTS and YPTS vectors. The XPTS and YPTS are converted to the coordinate system of the draw widget associated with the interaction before being placed in the event structure. MODIFICATION_HISTORY: Written by: David W. Fanning, December 27, 2004.
(See C:\temp\catalyst\source\graphics\ellipse_roi__define.pro)
NAME: ELLIPSE__DEFINE PURPOSE: The purpose of this routine is to provide a circle or ellipse that can be displayed in a direct graphics draw widget. The coordinate system of the Ellipse object is either passed to it (a CatCoord object) or is a normalized coordinate system by default. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: ellipseObject = Obj_New("ELLIPSE", X1=0.5, Y1=0.5, X2=0.75, Y2=0.75) drawObject -> Add, ellipseObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { ELLIPSE, $ clip_to_data: 0B, $ ; Flag that if set will allow clipping to data range in DRAW method. insertedObject: Obj_New(), $; The new object created in the CreateNewObject method. (Ignored in CLEANUP.) linestyle: 0L, $ ; The line style of the ellipse. layerObject: Obj_New(), $ ; A CATLAYER object for holding the annotation. modemap: Obj_New(), $ ; A pixmap for calculating "mode". moveend: 0L, $ ; Indicates which end of ellipse you are moving. npoints: 0L, $ ; The number of points used to draw the ellipse. 120 by default. rotation: 0.0, $ ; The rotation of the x axis of the ellipse. sx: 0L, $ ; The static X location. sy: 0L, $ ; The static Y location. thickness: 0.0, $ ; The thickness of the ellipse. xcenter: 0.0, $ ; The midpoint of the ellipse in X. ycenter: 0.0, $ ; The midpoint of the ellipse in Y. xradius: 0.0, $ ; The radius of the X axis. yradius: 0.0, $ ; The radius of the Y axis. INHERITS SelectableObject $ } MESSAGES: ELLIPSE_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. EVENT_STRUCTURE: This object will add the following fields to the event structure created by an interaction. The fields are defined as: BOUNDARY_BOX: A 2x5 element array in normalized coordinates giving the boundary box of the object. XPTS: An array of X points in data coordinates descriping an ellipse. YPTS: An array of Y points in data coordinates descriping an ellipse. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 Jan 2004.
(See C:\temp\catalyst\source\graphics\ellipse__define.pro)
NAME: FREEHAND_ROI::ACCEPTROI PURPOSE: This method accepts the box on the display and sends an event to the client. SYNTAX: theObject -> AcceptROI, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::CANCELROI PURPOSE: This method cancels the box on the display and allows the user to start over SYNTAX: theObject -> CancelROI, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::CLEANUP PURPOSE: This is the FREEHAND_ROI object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::DRAW PURPOSE: This method draws the interaction in the display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::EVENT_HANDLER PURPOSE: This method is the event handler for the FREEHAND_ROI object. SYNTAX: This method is called automatically by the event handling mechanism. ARGUMENTS: event: The event structure as described in the IDL help files, except that the ID, TOP and HANDLER tags will be object references. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::GETPROPERTY PURPOSE: This method allows the user to obtain FREEHAND_ROI properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: DEVICE: Set this keyword if you want the X and Y points (see XPTS and YPTS) returned in device coordinates. Otherwise, they are returned in the coordinate system of the display window (if there is one). LAYER: The annotation layer associated with this object. LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. Be default, 2. XPTS: The X points in the ROI. YPTS: The Y points in the ROI. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::INIT PURPOSE: This is the FREEHAND_ROI object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: drawObject: The draw widget object that you will be taking over events from. KEYWORDS: LAYER: A CATLAYER object for holding annotations. LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. Be default, 2. _EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::RESTOREDISPLAY PURPOSE: This method overrides the INTERACTION RestoreDisplay method by also destroying the buffer pixmap. SYNTAX: theObject -> RestoreDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::SETDISPLAY PURPOSE: This method overrides the INTERACTION SetDisplay method by adding a pixmap widget for buffering output. SYNTAX: theObject -> SetDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI::SETPROPERTY PURPOSE: This method allows the user to set the FREEHAND_ROI object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: LAYER: The annotation layer for the object. LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. Be default, 2. _EXTRA: Any keywords appropriate for the superclass SetProperty method.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: FREEHAND_ROI__DEFINE PURPOSE: The purpose of this routine is to create a freehand ROI drawing interaction. When the interaction is in place, the user can draw a freehand polygon ROI in the display window. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("FREEHAND_ROI") SUPERCLASSES: INTERACTION CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { FREEHAND_ROI, $ xpts: Ptr_New(), $ ; The X points in the ROI. ypts: Ptr_New(), $ ; The X points in the ROI. count: 0L, $ ; The number of points in the ROI. bufferID: Obj_New(), $ ; A pixmap buffer for smooth graphics display. thick: 0.0, $ ; The thickness of the line used to draw ROI. linestyle: 0L, $ ; The line style of the line used to draw ROI. INHERITS INTERACTION $ } MESSAGES: None. EVENT_STRUCTURE: event = { ID:theObject, TOP:topObject, HANDLER:Obj_New(), EVENT_NAME='FREEHAND_ROI_EVENT', $ NAME: self._name, XPTS:FLTARR(), YPTS:FLATARR(), COUNT:0L } In which the XPTS and YPTS fields contain the X and Y locations of the polygon in a form suitable for drawing the ROI on the display with PLOTS. The COUNT field contains the number of points in the XPTS and YPTS vectors. The XPTS and YPTS are converted to the coordinate system of the draw widget associated with the interaction before being placed in the event structure. MODIFICATION_HISTORY: Written by: David W. Fanning, February 6, 2004.
(See C:\temp\catalyst\source\graphics\freehand_roi__define.pro)
NAME: IMGAXES::CLEANUP PURPOSE: This is the IMGAXES object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: IMGAXES::CONTROLPANEL PURPOSE: This method creates a control panel for the IMGAXES object. SYNTAX: axisObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: IMGAXES::DRAW PURPOSE: Draw the axes. SYNTAX: theAxes -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: IMGAXES::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: IMGAXES::GETPROPERTY PURPOSE: This method enables the getting of the IMGAXES object class properties. SYNTAX: aIMGAXES -> GetProperty ... ARGUMENTS: None. KEYWORDS: CHARSIZE: The character size to display the axes. COLOR: The name of a color to use for the axes (e.g., "yellow"). COORD_OBJECT: The coordinate object (usually of the parent) stored here for access. BOUNDARY_BOX: The boundary box that holds the axes. FONT: The font used to draw the axes. Note that the value returned here is one more than the value used to define the FONT in the INIT method. That is, if you have Hershey fonts selected, this keyword will return 0, not the expected -1. This is to accomodate the property sheet widget properties, used in the Control Panel. POSITION: The position in the window in normalized coordinates [x0, y0, x1, y1]. MAX_XRANGE: This is the same as xrange[1]. It is used exclusively by the Control Panel in setting properties. MAX_YRANGE: This is the same as yrange[1]. It is used exclusively by the Control Panel in setting properties. MIN_XRANGE: This is the same as xrange[0]. It is used exclusively by the Control Panel in setting properties. MIN_YRANGE: This is the same as yrange[0]. It is used exclusively by the Control Panel in setting properties. TICKDIR: The tick direction. TITLE: The current title for the axes. VISIBLE: The current setting of the "draw visible" flag. XCHARSIZE: The current X axis character size. XRANGE: The X axis range. XTICKLEN: The X tick length. XTICKFORMAT: The format to be used for the X axis annotation. XTITLE: The X axis title. YCHARSIZE: The current Y axis character size. YRANGE: The Y axis range. YTICKLEN: The Y tick length. YTICKFORMAT: The format to be used for the Y axis annotation. YTITLE: The Y axis title. _REF_EXTRA: Extra keywords for the superclass GETPROPERTY methods.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: IMGAXES::INIT PURPOSE: This is the IMGAXES object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: CHARSIZE: Set this keyword to the overall character size to display the axes. COLOR: Set this keyword to the name of a color to use for the axes (e.g., "yellow"). COORD_OBJECT: A coordinate object. This is really a storage location for a coordinate object from a parent. When the X range or Y range changes in the SetProperty method, the coordinate object stored here is changed appropriately. This is usually required if the axis properties are to be changed with its Control Panel. FONT: Set this keyword to use Hershey fonts (0), hardware fonts (1), or true-type fonts (2). VISIBLE: If set to 0, axes will be turned off (not drawn). If set to 1 (the default), they will be drawn. POSITION: The position in the window in normalized coordinates [x0, y0, x1, y1]. TICKDIR: The tick direction. A value of 0 (the default) indicates ticks point outside the image. A value of 1 indicates the ticks point inside the image. TITLE: A string that will be the title of the axis. Place over the top axis. XCHARSIZE: The character size for the X axis characters. XRANGE: Set this keyword to the X axis range. XTICKFORMAT: Set this keyword to the format to be used for the X axis annotation. XTICKLEN: The length of the X tick marks, in normalized units. By default, 0.015. XTITLE: The title or label for the X axis YCHARSIZE: The character size for the X axis characters. YRANGE: Set this keyword to the Y axis range. YTICKFORMAT: Set this keyword to the format to be used for the Y axis annotation. YTICKLEN: The length of the X tick marks, in normalized units. By default, 0.015. YTITLE: The title or label for the Y axis _EXTRA: Extra keywords for the superclass INIT methods. NOTES: The image objects will automatically update the IMGAXES object position when the image is drawn if the IMGAXES object has a name of "IMGAXES*" where the "*" can be anything you like. This is the default name given to this object, so it is perhaps best NOT to name the object unless there is good reason to do so. Appending the letters "IMGAXES" to your name will prevent problems.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: IMGAXES::SETPROPERTY PURPOSE: This method enables the setting of the IMGAXES object class properties. SYNTAX: aIMGAXES -> SetProperty ... ARGUMENTS: None. KEYWORDS: CHARSIZE: Set this keyword to the character size to display the axes. COLOR: Set this keyword to the name of a color to use for the axes (e.g., "yellow"). COORD_OBJECT: A coordinate object. This is really a storage location for a coordinate object from a parent. When the X range or Y range changes in the SetProperty method, the coordinate object stored here is changed appropriately. This is usually required if the axis properties are to be changed with its Control Panel. FONT: Set this keyword to use Hershey fonts (0), hardware fonts (1), or true-type fonts (2). Note that the values are *different* from the values used in the INIT method. This is because this keyword is being used with the ENUMLIST property in property sheets. Sorry, it can't be helped. To avoid problems, set the FONT property through the Control Panel. TICKDIR: The direction of the ticks. 0 is outward, 1 is inward. TITLE: A string that will be the title of the axis. Place over the top axis. VISIBLE: Set this keyword to 1 to turn axes drawing VISIBLE, set to 0 to turn OFF. XCHARSIZE: The character size for the X axis characters. XRANGE: Set this keyword to the X axis range. XTICKFORMAT: Set this keyword to the format to be used for the X axis annotation. XTICKLEN: The length of the X ticks. XTITLE: The title or label for the X axis YCHARSIZE: The character size for the X axis characters. YRANGE: Set this keyword to the Y axis range. YTICKFORMAT: Set this keyword to the format to be used for the Y axis annotation. YTICKLEN: The length of the Y ticks. YTITLE: The title or label for the Y axis _EXTRA: Extra keywords for the superclass SETPROPERY methods.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: IMGAXES__DEFINE PURPOSE: The purpose of this routine is to display axes on an image object. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theAxes = Obj_New("IMGAXES") imageObj -> Add, theAxes SUPERCLASSES: CATATOM CATCONTAINER IDL_CONTAINER CLASS_STRUCTURE: class = { IMGAXES, $ ; The object class name. INHERITS CATATOM, $ box: DblArr(2,5), $ ; The boundary box for the axes. charsize: 0.0, $ ; The character size. color: "" , $ ; The axes color. coords: Obj_New(), $ ; A coordinate object. font: 0L, $ ; The font to use. (Like !P.Font.) position: FltArr(4), $ ; The normalized position in the window for drawing axes. tickdir: 0B, $ ; The tick direction. title: "", $ ; A title for the axis. visible: 0L, $ ; A flag that indicats the axes should be drawn. xrange:FltArr(2), $ ; The X axis range. xcharsize: 0.0, $ ; The X axis character size. xtickformat: "", $ ; The format for the X axis. xticklen: 0.0, $ ; The X tick length. xtitle: "", $ ; The title or label for the X axis. ycharsize: 0.0, $ ; The Y axis character size. ytickformat: "", $ ; The format for the Y axis. yticklen: 0.0, ; The Y tick length. yrange:FltArr(2), $ ; The Y axis range. ytitle: "" $ ; The title or label for the Y axis. } NOTES: The image objects will automatically update the IMGAXES object position when the image is drawn if the IMGAXES object has a name of "IMGAXES*" where the "*" can be anything you like. This is the default name given to this object, so it is perhaps best NOT to name the object unless there is good reason to do so. Appending the letters "IMGAXES" to your name will prevent problems. MODIFICATION_HISTORY: Written by: David W. Fanning, July 17, 2003. Removed SCR_XSIZE call on PropertySheet widgets. 12 October 2004. DWF. Changed ON keyword to VISIBLE for Catalyst consistency. 7 July 2005. DWF. Added boundary box calculations at end of DRAW method. 7 July 2005. DWF. Added automatic True-Type fonts for PostScript output, if Hershey fonts would otherwise be selected. 1 August 2006. DWF. Added the ability to specify tick length and direction. 12 Oct 2008. DWF.
(See C:\temp\catalyst\source\graphics\imgaxes__define.pro)
NAME: MAP_GRIDE__DEFINE PURPOSE: This object is a wrapper for the MAP_GRID routine in IDL. It provides a simple way to allow map grids on images which use a MAPCOORD object to set up the map projection space. A map coordinate space must be in effect at the time the Draw method of this object is used. AUTHOR: FANNING SOFTWARE CONSULTING David Fanning, Ph.D. 1645 Sheely Drive Fort Collins, CO 80526 USA Phone: 970-221-0438 E-mail: davidf@dfanning.com Coyote's Guide to IDL Programming: http://www.dfanning.com CATEGORY: Graphics CALLING SEQUENCE: gridObject = Obj_New('Map_Grid') Map_Set, /CYLINDRICAL gridObject -> Draw AUGUMENTS: parent: The parent object. KEYWORDS: All of the following INIT keywords can be set and obtained using the SETPROPERTY and GETPROPERTY methods. BOX_AXES: Set this keyword to draw a box-style axes around the map. CHARSIZE: Set this keyword to the size of characters used for the labels. Default is 1.0. CLIP_TEXT: Set this keyword to a zero value to turn off clipping of text labels. By default, text labels are clipped. This keyword is ignored if the BOX_AXES keyword is set. COLOR: The name of the color to draw the grid lines in. Default: "charcoal". FILL_HORIZON: Set this keyword to fill the current map horizon. HORIZON: Set this keyword to draw the current map horizon. INCREMENT: Set this keyword to the spacing between the graticle points. LABEL: Set this keyword to an integer, n, that labels every n parallels and meridians. For example, LABEL=3 will label every 3rd line. Default is 1. LATALIGN: This keyword controls the alignment of the text baseline for latitude labels. A value of 0.0 left justifies the label, 1.0 right justifies it, and 0.5 centers it. This keyword is ignored if the BOX_AXES keyword is set. LATDEL: Set this keyword equal to the spacing (in degrees) between parallels of latitude in the grid. If this keyword is not set, a suitable value is determined from the current map projection. LATLAB: The longitude at which to place latitude labels. The default is the center longitude on the map. This keyword is ignored if the BOX_AXES keyword is set. LATNAMES: Set this keyword equal to an array specifying the names to be used for the latitude labels. By default, this array is automatically generated in units of degrees. The LATNAMES array can be either type string or any single numeric type, but should not be of mixed type.When LATNAMES is specified, the LATS keyword must also be specified. LATS: Set this keyword equal to a one or more element vector of latitudes for which lines will be drawn (and optionally labeled). If LATS is omitted, appropriate latitudes will be generated based on the value of the (optional) LATDEL keyword. If LATS is set to a single value, that latitude and a series of automatically generated latitudes will be drawn (and optionally labeled). LINESTYLE: Set this keyword to the type of linestyle desired. See Graphics Keywords in the on-line help for additional information. LONALIGN: This keyword controls the alignment of the text baseline for longitude labels. A value of 0.0 left justifies the label, 1.0 right justifies it, and 0.5 centers it. This keyword is ignored if the BOX_AXES keyword is set. LONDEL: Set this keyword equal to the spacing (in degrees) between parallels of longitude in the grid. If this keyword is not set, a suitable value is determined from the current map projection. LONTLAB: The latitude at which to place longitude labels. The default is the center latitude on the map. This keyword is ignored if the BOX_AXES keyword is set. LONNAMES: Set this keyword equal to an array specifying the names to be used for the longitude labels. By default, this array is automatically generated in units of degrees. The LONNAMES array can be either type string or any single numeric type, but should not be of mixed type.When LONNAMES is specified, the LONS keyword must also be specified. LONS: Set this keyword equal to a one or more element vector of longitudes for which lines will be drawn (and optionally labeled). If LONS is omitted, appropriate longitudes will be generated based on the value of the (optional) LONDEL keyword. If LONS is set to a single value, that longitudes and a series of automatically generated longitudes will be drawn (and optionally labeled). MAP_STRUCTURE: A map projection structure (e.g., from MAP_PROJ_INIT) that allows the the coordinate conversion from Cartisian coordinates (otherwise known as UV coordinates) to longitude/latitude coordinates and visa versa. DEPENDENCIES: The following programs (at least) are required from the Coyote Library: http://www.dfanning.com/programs/error_message.pro http://www.dfanning.com/programs/fsc_color.pro MODIFICATION HISTORY: Written by David W. Fanning, 3 January 2009.
(See C:\temp\catalyst\source\graphics\map_grid__define.pro)
NAME: MAP_OUTLINE__DEFINE PURPOSE: This object is a wrapper for either MAP_CONTINENTS or MAP_GSHHS_SHORELINE. It provides a simple way to allow map overlays on images which use a MAPCOORD object to set up the map projection space. A map coordinate space must be in effect at the time the Draw method of this object is used. Map outlines can be provided from built-in IDL continental databases, or the GSHHS Shoreline data base can be used. (For information on the GSHHS Shoreline data base, see http://www.dfanning.com/map_tips/gshhs.html.) AUTHOR: FANNING SOFTWARE CONSULTING David Fanning, Ph.D. 1645 Sheely Drive Fort Collins, CO 80526 USA Phone: 970-221-0438 E-mail: davidf@dfanning.com Coyote's Guide to IDL Programming: http://www.dfanning.com CATEGORY: Graphics CALLING SEQUENCE: outlineObject = Obj_New('Map_Outline') Map_Set, /CYLINDRICAL outlineObject -> Draw AUGUMENTS: parent: The parent object. COMMON KEYWORDS (used with either MAP_CONTINENTS of MAP_GSHHS_SHORELINE): COLOR: The name of a color (used with FSC_COLOR) to draw the output in. FILL: Set this keyword to create a filled polygon output, rather than an outline. HIRES: If this keyword is set, the high resolution dataset supplied with IDL is used with MAP_CONTINENTS. If this keyword is set, and the GSHHS keyword is set, and the FILENAME keyword is NOT used, then the default filename is "gshhs_h.b". Note that the high resolution dataset must be installed to be used. MAP_STRUCTURE: A !MAP type structure that contains map projection information. Normally, this is obtained from MAP_PROJ_INIT and passed into this object. It is passed directly to MAP_CONTINENTS or MAP_GSHHS_SHORELINE in the Draw method. MAP_CONTINENTS KEYWORDS (apply only if you are using MAP_CONTINENTS to draw outlines): COASTS: Set this keyword if you want coasts to be drawn. CONTINENTS: Set this keyword if you want continental outlines to be drawn. This will be set automatically if COASTS, COUNTRIES, RIVERS, AND USA keywords are all set to zero. LINESTYLE: Set to the type of linestyle in drawing outlines. Set to 0 or solid lines by default. RIVERS: Set this keyword if you wish to draw rivers. T3D: Set this graphics keyword if you wish to draw outlines use the T3D transformation matrix. USA: Set this keyword if you wish do draw United States state boundaries. ZVALUE: Set this keyword to the ZVALUE where the outlines should be drawn. Set to 0 by default. MAP_GSHHS_SHORELINE KEYWORDS (apply only if you are using MAP_GSHHS_SHORELINE to draw outlines): FILENAME: The root name of the GSHHS file to open. By default, "gshhs_l.b" unless the HIRES keyword is selected, in which case it will be "gshhs_h.b". The GSHHS file must be in a "resource" directory or in one of the directories on your IDL path. LAND_COLOR: The name of a color to be used for "land". Used with filled polygons (e.g., the FILL keyword). By default, 'INDIAN RED'. LEVEL: The polygon LEVEL. All polygons less than or equal to this value are drawn. 1-land, 2-lakes, 3-island in lake, 4-pond in island. By default, 2 (land and lake outlines). MINAREA: The minimum feature area. By default, 500 km^2. Polygons with areas less than this are not drawn. OUTLINE: Set this keyword to draw shorelines. Set by default if FILL=0. WATER_COLOR: The name of the water color. By default, "SKY BLUE". DEPENDENCIES: The following programs (at least) are required from the Coyote Library: http://www.dfanning.com/programs/error_message.pro http://www.dfanning.com/programs/find_resource_file.pro http://www.dfanning.com/programs/fsc_color.pro http://www.dfanning.com/programs/map_gshhs_shoreline.pro MODIFICATION HISTORY: Written by David W. Fanning, 3 January 2009.
(See C:\temp\catalyst\source\graphics\map_outline__define.pro)
NAME: MEASUREINTERACTION::CLEANUP PURPOSE: This is the MEASUREINTERACTION object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::CONTROLPANEL PURPOSE: This method creates a control panel for the object SYNTAX: imageObject -> ControlPanel, baseObj ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the "CONTROLPANEL::INIT" method.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::DRAW PURPOSE: This method draws the interaction in the display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::EVENT_HANDLER PURPOSE: This method is the event handler for the MEASUREINTERACTION object. SYNTAX: This method is called automatically by the event handling mechanism. ARGUMENTS: event: The event structure as described in the IDL help files, except that the ID, TOP and HANDLER tags will be object references. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::GETPROPERTY PURPOSE: This method allows the user to obtain MEASUREINTERACTION properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: TAPE_OBJECT: The current TapeMeasure object. LAYER: The current annotation CATLAYER object. MODE: The current "mode" of the object. PIXMAP: The object reference to any pixmap widget that is created. SELECTEDOBJECTS: Any objects currently selected. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::INIT PURPOSE: This is the MEASUREINTERACTION object class initialization method. SYNTAX: Called automatically when the object is created. ARGUMENTS: drawObject: The draw widget object that you will be taking over events from. KEYWORDS: COORD_OBJECT: A coordinate object (CATCOORD) for establishing a coordinate system for the interaction objects. If a coordinate object isn't provided, an attempt is made to use the one provided by the drawObject. If still undefined, a default coordinate object with XRange=[0,1] and YRange=[0,1] is created. TAPE_OBJECT: Set this keyword to an object reference to a TAPEMEASURE object. LAYER: An optional CATLAYER object for holding the annotation objects. If a layer object is not provided, the annotations are placed directly in the drawObject container. Otherwise, the annotations are placed in the CATLAYER object, and the CATLAYER object is placed in the drawObject. _EXTRA: Any keywords appropriate for the superclass INIT method or TAPE_OBJECT INIT method.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::RESTOREDISPLAY PURPOSE: This method restores the draw widget to its former state. SYNTAX: theObject -> RestoreDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::SETDISPLAY PURPOSE: This method takes over event handling from the draw widget and sets up the object so that everything can be restored to the way it was when the interaction is finished. SYNTAX: theObject -> SetDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION::SETPROPERTY PURPOSE: This method allows the user to set the MEASUREINTERACTION object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: The following keywords set default properties for new objects created in this interaction. TAPE_OBJECT: Set this keyword to an object reference to a TAPEMEASURE object. LAYER: A CATLAYER object for holding the annotation objects. The old annotation layer and everything it contains will be destroyed. MODE: The current object mode. _EXTRA: Any keywords appropriate for the superclass SetProperty method.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MEASUREINTERACTION__DEFINE PURPOSE: The purpose of this routine is to provide an interaction for creating and manipulating TapeMeasure objects. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("MEASUREINTERACTION") SUPERCLASSES: INTERACTION CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { MEASUREINTERACTION, $ pixmap: Obj_New(), $ ; A pixmap for fast redraw. mode: "", $ ; The current mode. "SELECT", "WRITE", "MOVE", etc. selectedObjects: Ptr_New(), $ ; The currently selected objects. sx: 0L, $ ; The static X location. sy: 0L, $ ; The static Y location. tapeObject: Obj_New(), $ ; The default TapeMeasure object. layerObject: Obj_New(), $ ; A layer object for holding selectable annotation objects. INHERITS INTERACTION $ } MESSAGES: None. MODIFICATION_HISTORY: Written by: David W. Fanning, 9 August 2004.
(See C:\temp\catalyst\source\graphics\measureinteraction__define.pro)
NAME: MOVEABLEBOX::ACCEPTBOX PURPOSE: This method accepts the box on the display and sends an event to the client. SYNTAX: theObject -> AcceptBox, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::CANCELBOX PURPOSE: This method cancels the box on the display and allows the user to start over SYNTAX: theObject -> CancelBox, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::CLEANUP PURPOSE: This is the MOVEABLEBOX object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::DRAW PURPOSE: This method draws the interaction in the display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::EVENT_HANDLER PURPOSE: This method is the event handler for the MOVEABLEBOX object. SYNTAX: This method is called automatically by the event handling mechanism. ARGUMENTS: event: The event structure as described in the IDL help files, except that the ID, TOP and HANDLER tags will be object references. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::GETMODE PURPOSE: This method gets the current mode for the draw widget. SYNTAX: theMode = self -> GetMode(x, y) ARGUMENTS: x: The x location for obtaining the mode. y: The y location for obtaining the mode. KEYWORDS: SET; If this keyword is set, the currentMode flag is set to this mode.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::GETPROPERTY PURPOSE: This method allows the user to obtain MOVEABLEBOX properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::INIT PURPOSE: This is the MOVEABLEBOX object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: drawObject: The draw widget object that you will be taking over events from. KEYWORDS: BOX: A four-element array containing the initial box coordinates in device coordinates. HANDLE_COLOR: The name of the color to draw the box handles in. By default, "sky blue". _EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::RESTOREDISPLAY PURPOSE: This method ... SYNTAX: theObject -> RestoreDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::SETDISPLAY PURPOSE: This method ... SYNTAX: theObject -> SetDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::SETPROPERTY PURPOSE: This method allows the user to set the MOVEABLEBOX object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: _EXTRA: Any keywords appropriate for the superclass SetProperty method.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX::UPDATE_MODEMAP PURPOSE: This method updates the modemap with the latest information. SYNTAX: self -> Update_Modemap ARGUMENTS: None. KEYWORDS: CLEAR: If this keyword is set, the modemap is cleared of all information.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: MOVEABLEBOX__DEFINE PURPOSE: Implements a rubberband-style box ROI that can be selected and moved about the window. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("MOVEABLEBOX") SUPERCLASSES: RUBBERBANDBOX INTERACTION CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { MOVEABLEBOX, $ phi: FltArr(33), $ ; Coordinates of a circle. handle_color: "", $ ; The color of the box handles. modemap: Obj_New(), $ ; A pixmap for calculating "mode". currentmode: 0L, $ ; The current mode. sx: 0L, $ ; The static X corner of the box. sy: 0L, $ ; The static Y corner of the box. bufferID: Obj_New(), $ ; A buffer pixmap object for smooth graphics display. INHERITS RUBBERBANDBOX $ } MESSAGES: None. EVENT_STRUCTURE: event = { ID:theObject, TOP:topObject, HANDLER:Obj_New(), EVENT_NAME='RUBBERBANDBOX_EVENT', $ NAME: self._name, BOX:self.box, XPTS:FLTARR(5), YPTS:FLATARR(5) } In which the XPTS and YPTS fields contain the X and Y locations of the box in a form suitable for drawing the ROI on the display with PLOTS. The BOX, XPTS, and YPTS are converted to the coordinate system of the draw widget associated with the interaction before being placed in the event structure. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 October 2004.
(See C:\temp\catalyst\source\graphics\moveablebox__define.pro)
NAME: POLYGON::ADDTOEVENTSTRUCTURE PURPOSE: This method receives an event structure, which it can add information to before being sent to some other event handler. Normally, this method is called by an INTERACTION object of some kind. SYNTAX: theObject -> AddToEventStructure, event ARGUMENTS: event: The event structure that will be added to. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a boundary polygon about the polygon itself. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::CLEANUP PURPOSE: This is the POLYGON object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::CONTROLPANEL PURPOSE: This method creates a control panel for the POLYGON object. SYNTAX: polygonObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains an annotation layer, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap container. SYNTAX: theObject -> CreateNewObject, drawID, pixmapID ARGUMENTS: drawID: The draw widget which will contain the new arrow object. Required in normal operation. pixmapID: The pixmap which will contain the new arrow object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new arrow object that gets created.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::DRAW PURPOSE: This method draws the polygon in the current direct graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary polygon of the polygon SYNTAX: theObject -> DrawSelectionPolygon ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the polygon in. By default, the color of the polygon.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::GETPROPERTY PURPOSE: This method allows the user to obtain POLYGON properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: HEIGHT: The height of the polygon boundary box in normalized coordinates. INSERTEDOBJECT: The new object that is inserted in the CreateNewObject method. LAYER: The annotation layer associated with this object. LINESTYLE: The type of linestyle required. See PLOT documentation for details. NPOINTS: The number of points in the polygon. THICKNESS: The current thickness of the polygon. WIDTH: The width of the polygon boundary polygon in normalized coordinates. XPTS: The X locations of points making up the polygon. YPTS: The Y locations of points making up the polygon. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::INIT PURPOSE: This is the POLYGON object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: LAYER: A CATLAYER object for holding annotations. LINESTYLE: The linestyle of the polygon. By default, 1.0 (solid). THICKNESS: Set this to the thickness of the output. By default, 1.0. XPTS: The X locations of the points of the polygon. YPTS: The Y locations of the points of the polygon. _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::INITIALIZE PURPOSE: This method initializes the polygon object for drawing. SYNTAX: theObject -> Initialize ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::INTERACTIONEVENTS PURPOSE: This method accepts events from the SelectableInteraction object based on the "mode" of the SelectableInteraction object. The SelectableInteraction object can process "SELECT" and "MOVE" mode events. All other mode events are sent here for processing by a SELECTABLEOBJECT. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the SelectableInteraction interaction. KEYWORDS: INTERACTION: The object reference to a SELECTABLEINTERACTION object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::MOVE PURPOSE: This method moves the polygon in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::SELECT PURPOSE: This method returns the object reference if the requested point is inside the bounding box of the polygon. SYNTAX: selectedObject = theObject -> Select, x, y ARGUMENTS: X: The X location of a point in device or window coordinates. Y: The Y location of a point in device or window coordinates. KEYWORDS: SUCCESS: Set to 1 if a selection is made. To 0 otherwise.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::SELECTVERTEX PURPOSE: This method selects a particular vertex for movement. SYNTAX: theObject -> SelectVertex, x, y ARGUMENTS: X: The X location of the selection. Y: The Y location of the selection. KEYWORDS: DrawID: A window object that contains the polygon. Required for converting to the proper device coodinate system.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::SETPROPERTY PURPOSE: This method allows the user to set the POLYGON object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: LAYER: The annotation layer for the object. LINESTYLE: The type of linestyle required. See PLOT documentation for details. NOMESSAGE: Set this keyword to suppress any messaging as a result of going through the SetProperty method. Messaging is essential for PropertySheet widget capability, but causes too many draw methods on occasion. This will prevent going through DRAW methods needlessly. NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. THICKNESS: Set this to the thickness of the output. By default, 1.0. XPTS: The X locations of the points of the polygon. YPTS: The Y locations of the points of the polygon. _EXTRA: Any keywords appropriate for the superclass SetProperty method.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON::UPDATE_MODEMAP PURPOSE: This method updates the modemap with the latest information. SYNTAX: self -> Update_Modemap ARGUMENTS: None. KEYWORDS: CLEAR: If this keyword is set, the modemap is cleared of all information.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: POLYGON_ROI::ACCEPTROI PURPOSE: This method accepts the box on the display and sends an event to the client. SYNTAX: theObject -> AcceptROI, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon_roi__define.pro)
NAME: POLYGON_ROI::CLEANUP PURPOSE: This is the POLYGON_ROI object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon_roi__define.pro)
NAME: POLYGON_ROI::EVENT_HANDLER PURPOSE: This method is the event handler for the POLYGON_ROI object. SYNTAX: This method is called automatically by the event handling mechanism. ARGUMENTS: event: The event structure as described in the IDL help files, except that the ID, TOP and HANDLER tags will be object references. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon_roi__define.pro)
NAME: POLYGON_ROI::RESTOREDISPLAY PURPOSE: This method ... SYNTAX: theObject -> RestoreDisplay ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\polygon_roi__define.pro)
NAME: POLYGON_ROI__DEFINE PURPOSE: The purpose of this routine is to create a polygon ROI drawing interaction. When the interaction is in place, the user can draw a polygon ROI in the display window. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("POLYGON_ROI") SUPERCLASSES: FREEHAND_ROI INTERACTION CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { POLYGON_ROI, $ pointsID: Obj_New(), $ ; A pixmap for the selected points. INHERITS FREEHAND_ROI $ } MESSAGES: None. EVENT_STRUCTURE: event = { ID:theObject, TOP:topObject, HANDLER:Obj_New(), EVENT_NAME='POLYGON_ROI_EVENT', $ NAME: self._name, XPTS:FLTARR(), YPTS:FLATARR(), COUNT:0L } In which the XPTS and YPTS fields contain the X and Y locations of the polygon in a form suitable for drawing the ROI on the display with PLOTS. The COUNT field contains the number of points in the XPTS and YPTS vectors. The XPTS and YPTS are converted to the coordinate system of the draw widget associated with the interaction before being placed in the event structure. MODIFICATION_HISTORY: Written by: David W. September 12, 2004.
(See C:\temp\catalyst\source\graphics\polygon_roi__define.pro)
NAME: POLYGON__DEFINE PURPOSE: The purpose of this routine is to provide a polygon that can be displayed in a direct graphics draw widget. The coordinate system of the Polygon object is either passed to it (a CatCoord object) or is a normalized coordinate system by default. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: polygonObject = Obj_New("POLYGON", XPTS, YPTS) drawObject -> Add, polygonObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { POLYGON, $ background: 0L, $ ; A flag to indicate if a background polygon is drawn. bg_color: "", $ ; The background color. color: "", $ ; The name of a color to draw polygon in. linestyle: 0L, $ ; The line style of the polygon. xpts: Ptr_New(), $ ; The X points making up the polygon. ypts: Ptr_New(), $ ; The X points making up the polygon. npoints: 0L, $ ; The number of points in the polygon thickness: 0.0, $ ; The thickness of the polygon. sx: 0L, $ ; The static X location. sy: 0L, $ ; The static Y location. INHERITS SelectableObject $ } MESSAGES: POLYGON_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. EVENT_STRUCTURE: This object will add the following fields to the event structure created by an interaction. The fields are defined as: BOUNDARY_BOX: A 2x5 element array in normalized coordinates giving the boundary box of the object. XPTS: An array of X points in data coordinates descriping a polygon. YPTS: An array of Y points in data coordinates descriping a polygon. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 Jan 2004.
(See C:\temp\catalyst\source\graphics\polygon__define.pro)
NAME: RUBBERBANDBOX::ACCEPTROI PURPOSE: This method accepts the box on the display and sends an event to the client. SYNTAX: theObject -> AcceptROI, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX::CANCELROI PURPOSE: This method cancels the box on the display and allows the user to start over. SYNTAX: theObject -> CancelROI, event ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX::CLEANUP PURPOSE: This is the RUBBERBANDBOX object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX::DRAW PURPOSE: This method may or may not be needed by your object, depending upon whether a graphical representation of the object is required. If you wish the DRAW method to automatically propogates down to any objects contained in this object's container, call the superclass DRAW method. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX::EVENT_HANDLER PURPOSE: This method is the event handler for the RUBBERBANDBOX object. It will typically be used to respond to events from widget objects created in the CONTROLPANEL method. SYNTAX: This method is called automatically by the event handling mechanism. ARGUMENTS: event: The event structure as described in the IDL help files, except that the ID, TOP and HANDLER tags will be object references. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX::GETPROPERTY PURPOSE: This method allows the user to obtain RUBBERBANDBOX properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: BOX: A four-elements array of the form [x1,y1,x2,y2] representing the two diagonal corners of a box in the coordinate system of the window used to draw the box. DEVICE: If this keyword is set, the BOX coordinates are always returned in device coordinates. LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. Be default, 2. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX::INIT PURPOSE: This is the RUBBERBANDBOX object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: drawObject: The draw widget object that you will be taking over events from. KEYWORDS: LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. Be default, 2. _EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX::SETPROPERTY PURPOSE: This method allows the user to set the RUBBERBANDBOX object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: LINESTYLE: The line style index. Value from 0 to 5, as for PLOT command. Default, 0, solid line. THICK: The thickness of the line used to draw the ROI. Be default, 2. _EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RUBBERBANDBOX__DEFINE PURPOSE: The purpose of this routine is to implement a rubberband-box ROI interaction. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("RUBBERBANDBOX") SUPERCLASSES: INTERACTION CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { RUBBERBANDBOX, $ box: FltArr(4), $ ; The corners of the box, once drawn. INHERITS INTERACTION $ } MESSAGES: None. EVENT_STRUCTURE: event = { ID:theObject, TOP:topObject, HANDLER:Obj_New(), EVENT_NAME='RUBBERBANDBOX_EVENT', $ NAME: self._name, BOX:self.box, XPTS:FLTARR(5), YPTS:FLATARR(5), $ ACTION:"" } In which the XPTS and YPTS fields contain the X and Y locations of the box in a form suitable for drawing the ROI on the display with PLOTS. The BOX, XPTS, and YPTS are converted to the coordinate system of the draw widget associated with the interaction before being placed in the event structure. The ACTION field value will be "ACCEPT" by default, unless the ASK_ON_UP keyword is set and the user choses "CANCEL". MODIFICATION_HISTORY: Written by: David W. Fanning, 25 October 2004.
(See C:\temp\catalyst\source\graphics\rubberbandbox__define.pro)
NAME: RULER::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a box about the ruler. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER::CLEANUP PURPOSE: This is the RULER object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER::CONTROLPANEL PURPOSE: This method creates a control panel for the RULER object. A control panel is a graphical user interface for setting object properties. If you create a control panel, the events are typically sent to the EVENTHANDLER method. SYNTAX: theObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window (i.e., a TOPLEVELBASE object). KEYWORDS: _EXTRA: Any keywords appropriate for the CatControlPanel::INIT method.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER::DRAW PURPOSE: This method draws the ruler. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER::EVENT_HANDLER PURPOSE: This method is the event handler for the RULER object. It will typically be used to respond to events from widget objects created in the CONTROLPANEL method. SYNTAX: This method is called automatically by the event handling mechanism. ARGUMENTS: event: The event structure as described in the IDL help files, except that the ID, TOP and HANDLER tags will be object references. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER::GETPROPERTY PURPOSE: This method allows the user to obtain RULER properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: CHARSIZE: The character size. LENGTH: The absolute length of the ruler in the parent coordinate system. PARENT_COORD: The coordinate object used to specify distance. Obtained from the parent object at DRAW time if not provided. MINOR: The number of minor tick intervals. THICK: The thickness of the ruler lines. FORMAT: The character format. TICKLEN: The tick length in normalized coordinates. TICKS: The number of major tick intervals. TITLE: The title of the ruler. VERTICAL: The ruler is normally position horizontally, centered at (X,Y). If this keyword is set, the ruler is position vertically at (X,Y). X: The ruler is centered at this X coordinate, expressed in normalized coordinates. Y: The ruler is centered at this Y coordinate, expressed in normalized coordinates. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER::INIT PURPOSE: This is the RULER object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: CHARSIZE: The character size. By default, 1.0. FORMAT: The character format. By default, '(I3)'. LENGTH: The absolute length of the ruler in the parent coordinate system. By default, 1.0. PARENT_COORD: The coordinate object used to specify distance. Obtained from the parent object at DRAW time if not provided. MINOR: The number of minor tick intervals. Set to 4 by default. THICK: The thickness of the ruler lines. By default, 1. TICKLEN: The tick length in normalized coordinates. By default, 0.025. TICKS: The number of major tick intervals. By default, 1. TITLE: The title of the ruler. By default, "Units". VERTICAL: The ruler is normally position horizontally, centered at (X,Y). If this keyword is set, the ruler is position vertically at (X,Y). X: The ruler is centered at this X coordinate, expressed in normalized coordinates. By default, 0.5 for horizontal rulers and 0.9 for vertical rulers. This is with respect to the parent coordinate system. Y: The ruler is centered at this Y coordinate, expressed in normalized coordinates. By default, 0.1 for horizontal rulers and 0.5 for vertical rulers. This is with respect to the parent coordinate system. _EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER::SETPROPERTY PURPOSE: This method allows the user to set the RULER object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: CHARSIZE: The character size. DRAW: Set this keyword to call the draw method for this object after properties have been set. FORMAT: The character format. LENGTH: The absolute length of the ruler in the parent coordinate system. PARENT_COORD: The coordinate object used to specify distance. Obtained from the parent object at DRAW time if not provided. MINOR: The number of minor tick intervals. THICK: The thickness of the ruler lines. TICKLEN: The tick length in normalized coordinates. TICKS: The number of major tick intervals. TITLE: The title of the ruler. VERTICAL: The ruler is normally position horizontally, centered at (X,Y). If this keyword is set, the ruler is position vertically at (X,Y). X: The ruler is centered at this X coordinate, expressed in normalized coordinates. Y: The ruler is centered at this Y coordinate, expressed in normalized coordinates. _EXTRA: Any keywords appropriate for the superclass SetProperty method.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: RULER__DEFINE PURPOSE: The purpose of this routine is to create a simple ruler for display in the coordinate system of the underlying image. Users will define the length of the ruler (e.g., 5 cm) and the ruler will display this value on the image. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: theObject = Obj_New("RULER") SUPERCLASSES: SELECTABLEOBJECT CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { RULER, $ charsize: 0.0, $ ; The character size. format: '', $ ; The character format. length: 0.0, $ ; The absolute length of the ruler. parent_coord: Obj_New(), $ ; The coordinate object of the parent. minor: 0L, $ ; The number of minor tick intervals. thick: 0L, $ ; The thickness of the ruler lines. ticklen: 0.0, $ ; The tick length in normalized coordinates. ticks: 0L, $ ; The number of major tick intervals. title: '', $ ; The title of the ruler. vertical: 0B, $ ; The vertical flag. x: 0.0, $ ; The normalized X coordinate of ruler center. y: 0.0, $ ; The normalized Y coordinate of ruler center. INHERITS SELECTABLEOBJECT $ } MESSAGES: None. MODIFICATION_HISTORY: Written by: David W Fanning, March 9, 2005.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: SELECTABLEGROUP::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the boundary box around the entire group of selectable objects. The box is always in normalized coordinates. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::CLEANUP PURPOSE: This is the SELECTABLEGROUP object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::DRAW PURPOSE: This method draws the box around the selectable objects. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the box in. By default, 'white'
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::GETPROPERTY PURPOSE: This method allows the user to obtain SELECTABLEGROUP properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: MEMBERS: The members of the group. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::INIT PURPOSE: This is the SELECTABLEGROUP object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: MEMBERS: An object array of the members of the group. _EXTRA: Any keywords appropriate for the CATDATAATOM INIT method.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::MOVE PURPOSE: This method moves the group of selectable objects in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: A pixmap that can be supplied for fast re-draw.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::SELECT PURPOSE: This method returns the object reference if the requested point is inside the text bounding box. SYNTAX: selectedObject = theObject -> Select, x, y ARGUMENTS: X: The X location of a point in device or window coordinates. Y: The Y location of a point in device or window coordinates. KEYWORDS: SUCCESS: Set to 1 if a selection is made. To 0 otherwise.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::SETPROPERTY PURPOSE: This method allows the user to set the SELECTABLEGROUP object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: MEMBERS: The members of the group. NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. VISIBLE: Set this keyword to turn all the members of the group on or off. _EXTRA: Any keywords appropriate for the superclass object.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP::UPGROUP PURPOSE: This method disassociates the grouped objects SYNTAX: selectedObject = Ungroup, ptrToMembers ARGUMENTS: ptrToMembers: If present and a pointer, member objects are stored in this output variable. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEGROUP__DEFINE PURPOSE: The purpose of this routine is to group members of a SelectableObject class together. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: textObject = Obj_New("SELECTABLEGROUP", theMembers) SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { SELECTABLEGROUP, $ theMembers: Ptr_New(), $ ; A pointer to the group members. INHERITS SELECTABLEOBJECT $ } MESSAGES: None. MODIFICATION_HISTORY: Written by: David W. Fanning, 12 August 2004.
(See C:\temp\catalyst\source\graphics\selectablegroup__define.pro)
NAME: SELECTABLEOBJECT::AddToEventStructure PURPOSE: This method calculates the boundary box around the selectable object. The box is always in normalized coordinates. This method should be overridden by subclassed objects. This method will need to be overridden in superclass objects. SYNTAX: theObject -> AddToEventStructure ARGUMENTS: theEvent: The event structure to which you are to add object-specific information. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the boundary box around the selectable object. The box is always in normalized coordinates. This method should be overridden by subclassed objects. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::CLEANUP PURPOSE: This is the SELECTABLEOBJECT object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::COPYPARAMETERS PURPOSE: This method returns the lower-left corner of the bounary box in the DESTINATION keyword, and the number of columns and rows in the boundary box in the EXTENT keyword, all in window or pixel coordinates. It's purpose is to return a section of a pixmap, for example, so that only that section can be copied. SYNTAX: theObject -> CopyParameters, drawid, DESTINATION=destination, EXTENT=extent ARGUMENTS: drawID: The identifier of a draw widget object whose extent will provide the size of the window for calculating device coordinates. This parameter is required. KEYWORDS: DESTINATION: A two-element array containing the lower-left corner of the boundary box in device coordinates. An output keyword. EXTENT: A two-element array containing the number of columns and rows in the boundary box in device coordinates. An output keyword.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::DRAW PURPOSE: This method draws the box around the selectable object. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary box of the text SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the box in. By default, the color of the text.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::GETPROPERTY PURPOSE: This method allows the user to obtain SELECTABLEOBJECT properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: BACKGROUND: Set to 1 if drawing a background for the text. BG_COLOR: The name of the background color. BOUNDARY_BOX: The current boundary box for the text. A 2x5 double array. COLOR: Set this keyword to the name of a color for the text. By default, "white". MEMBERSHIP_GROUP: The group this selectable object belongs to. SELECTABLE: A flag that indicates if the object is selectable (1) or not (0). VISIBLE: If text is visible, this keyword is set to 1. O otherwise. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::INIT PURPOSE: This is the SELECTABLEOBJECT object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: BACKGROUND: Set this keyword to draw a background for the text. BG_COLOR: The name of the background color. By default, "black". COLOR: Set this keyword to the name of a color for the text. By default, "white". BOUNDARY_BOX: The current boundary box for the text. A 2x5 double array. SELECTABLE: Set this flag to 1 to make the object selectable (set by default). Set to 0 to make the object unselectable. In general, this keyword should not be used by any object *except* a subclassed object. VISIBLE: Set this keyword to 0 if you wish the object to be invisible. An invisible object is not selectable, although the SELECTABLE flag is NOT set. _EXTRA: Any keywords appropriate for the CATDATAATOM INIT method.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::INITIALIZE PURPOSE: This method allows the user to initialize the object, if necessary. It is expected that user-defined objects will overwrite this object method. SYNTAX: theObject -> Initialize ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::MOVE PURPOSE: This method moves the selectable in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, then no drawing of the object takes place. PIXMAP: A pixmap that can be supplied for fast re-draw.
(See C:\temp\catalyst\source\graphics\ruler__define.pro)
NAME: SELECTABLEOBJECT::MOVE PURPOSE: This method moves the selectable in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, then no drawing of the object takes place. PIXMAP: A pixmap that can be supplied for fast re-draw.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::OUTLINE PURPOSE: This method returns a box in normalized coordinates that contains the selectable object and all of its parts (labels, text, etc). It is similar to the boundary box of the selectable object and, in fact, is often just the boundary box. Like the boundary box, the last element in the 2x5 array is the same as the first element. SYNTAX: outline = theObject -> Outline() ARGUMENTS: None. KEYWORDS: RETURN_VALUE: outline: A 2x5 array containing the XY point pairs in normalized coordinates of a rectangle big enough to contain all the parts of the object. None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::SELECT PURPOSE: This method returns the object reference if the requested point is inside the bounding box. SYNTAX: selectedObject = theObject -> Select, x, y ARGUMENTS: X: The X location of a point in device or window coordinates. Y: The Y location of a point in device or window coordinates. KEYWORDS: SUCCESS: Set to 1 if a selection is made. To 0 otherwise.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::SELECTPANEL PURPOSE: Similar to a Control Panel, it gives context menu access to properties of selectable objects. SYNTAX: selectedObject = theObject -> SelectPanel, x, y, drawID ARGUMENTS: X: The X location of a point in device or window coordinates. Y: The Y location of a point in device or window coordinates. DRAWID: The identifer of the draw widget object in which the selection is taking place. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::SETGROUP PURPOSE: This method allows the user to set the group specified for this selectable object. An object can belong to a single group. SYNTAX: selectedObject = SetGroup, groupObject ARGUMENTS: groupObject: The SELECTABLEGROUP object to which this selectable object belongs. Set this to a null object (OBJ_NEW()) to remove the object from the group. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT::SETPROPERTY PURPOSE: This method allows the user to set the SELECTABLEOBJECT object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: BACKGROUND: Set this keyword to draw a background for the text. BG_COLOR: The name of the background color. BOUNDARY_BOX: The current boundary box for the text. A 2x5 double array. BRING_TO_FRONT: Set this keyword to move this selectable object to the front of all selectable objects. COLOR: Set this keyword to the name of a color for the text. DELETE: Set this keyword if you wish to delete the object. MOVE_BACKWARD: Set this keyword to move this selectable object to the back of all selectable objects. MOVE_FORWARD: Set this keyword to move this selectable object to the front of all selectable objects. NOMESSAGE: Set this keyword to suppress any messaging as a result of going through the SetProperty method. Messaging is essential for PropertySheet widget capability, but causes too many draw methods on occasion. This will prevent going through DRAW methods needlessly. Defined here for capatibility with other selectable objects. The value is NOT used! NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. SELECTABLE: Set this keyword to 1 to make the object selectable, to 0 to make the object unselectable. SEND_TO_BACK: Set this keyword to move this selectable object to the back of all selectable objects. SENDMESSAGE: An output keyword that indicates if a message needs to be sent. VISIBLE: Set this keyword to 1 (the default) to see text. To 0 to turn text drawing off. An invisible object is not selectable, although the SELECTABLE flag is NOT set. _EXTRA: Any keywords appropriate for the superclass object.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: SELECTABLEOBJECT__DEFINE PURPOSE: The purpose of this routine is to implement a selectable object for user interaction. This is essentially an abstract class for selectable objects. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: textObject = Obj_New("SELECTABLEOBJECT") SUPERCLASSES: CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { SELECTABLEOBJECT, $ background: 0L, $ ; A flag to indicate if a background box is drawn. bg_color: "", $ ; The name of the background color. box: DblArr(2,5), $ ; The box around the selectable object is ALWAYS in normal coordinates. color: "", $ ; The name of a color to draw the object in. contextmenu: Obj_New(), $ ; A holder for a context menu object. internalCoord : Obj_New(), $ ; A holder for an internal coordinate object. mygroup: Obj_New(), $ ; A SELECTABLEGROUP object, of which this object is a member. selectable: 0L, $ ; A flag to indicate the object is selectable. visible: 0L, $ ; A flag to indicate if the object is visible (should be drawn). INHERITS CatDataAtom $ } MESSAGES: When a selectable object is deleted from the SetProperty method, the message OBJECT_DELETED is broadcast to interested parties just before the object is destroyed. The DATA field will be set to the object reference of the object just about to be destoyed. MODIFICATION_HISTORY: Written by: David W. Fanning, 9 August 2004.
(See C:\temp\catalyst\source\graphics\selectableobject__define.pro)
NAME: TAPEMEANSURE::COPYPARAMETERS PURPOSE: This method returns the lower-left corner of the bounary box in the DESTINATION keyword, and the number of columns and rows in the boundary box in the EXTENT keyword, all in window or pixel coordinates. It's purpose is to return a section of a pixmap, for example, so that only that section can be copied. SYNTAX: theObject -> CopyParameters, drawid, DESTINATION=destination, EXTENT=extent ARGUMENTS: drawID: The identifier of a draw widget object whose extent will provide the size of the window for calculating device coordinates. This parameter is required. KEYWORDS: DESTINATION: A two-element array containing the lower-left corner of the boundary box in device coordinates. An output keyword. EXTENT: A two-element array containing the number of columns and rows in the boundary box in device coordinates. An output keyword.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::ADDTOEVENTSTRUCTURE PURPOSE: This method receives an event structure, which it can add information to before being sent to some other event handler. Normally, this method is called by an INTERACTION object of some kind. SYNTAX: theObject -> AddToEventStructure, event ARGUMENTS: event: The event structure that will be added to. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a box about the tape measure. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::CLEANUP PURPOSE: This is the TAPEMEASURE object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::CONTROLPANEL PURPOSE: This method creates a control panel for the TAPEMEASURE object. SYNTAX: tapeMeasureObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains an annotation layer, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap container. SYNTAX: theObject -> CreateNewObject, drawID, pixmapID ARGUMENTS: drawID: The draw widget which will contain the new tape measure object. Required in normal operation. pixmapID: The pixmap which will contain the new tape measure object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new tape measure object that gets created.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::DRAW PURPOSE: This method draws the tape measure in the current direct graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary box of the tape measure SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the box in. By default, the color of the tape measure.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::GETPROPERTY PURPOSE: This method allows the user to obtain TAPEMEASURE properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: FORMAT: The current format for the measured length. HEADSIZE: The size of the arrowhead in pixel units. But default, !D.X_Size/50. HEIGHT: The height of the tape measure boundary box in normalized coordinates. INSERTEDOBJECT: The new object that is inserted in the CreateNewObject method. LABEL: A TEXTLINE object for labelling the distance between the two points we are measuring. LAYER: The annotation layer associated with this object. LENGTH: The length of the tape measure in data coordinates. LINESTYLE: The type of linestyle required. See PLOT documentation for details. ROTATION: The current rotation of the tape measure (in degrees). THICKNESS: The current thickness of the tape measure. WIDTH: The width of the tape measure boundary box in normalized coordinates. X1: The X location of one end of the tape measure. Y1: The Y location of one end of the tape measure. X2: The X location of the other end of the tape measure. (Arrowhead here if TAPEMEASUREHEAD=1.) Y2: The Y location of the other end of the tape measure. (Arrowhead here if TAPEMEASUREHEAD=1.) UNITS: The current unit string. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::INIT PURPOSE: This is the TAPEMEASURE object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: None. KEYWORDS: FORMAT: The format for the length measurement. By default, '(F8.2)'. HEADSIZE: The size of the tape measure head in pixel units. But default, !D.X_Size/50. LABEL: A TEXTLINE object for labelling the distance between the two points we are measuring. LAYER: A CATLAYER object for holding annotations. LINESTYLE: The linestyle of the tape measure. By default, 1.0 (solid). THICKNESS: Set this to the thickness of the output. By default, 1.0. X1: The X location of one end of the tape measure. Y1: The Y location of one end of the tape measure. X2: The X location of the other end of the tape measure. (Arrowhead here if TAPEMEASUREHEAD=1.) Y2: The Y location of the other end of the tape measure. (Arrowhead here if TAPEMEASUREHEAD=1.) UNITS: A string that is appended to the length measurement when it is displayed. By default, "". _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::INTERACTIONEVENTS PURPOSE: This method accepts events from the SelectableInteraction object based on the "mode" of the SelectableInteraction object. The SelectableInteraction object can process "SELECT" and "MOVE" mode events. All other mode events are sent here for processing by a SELECTABLEOBJECT. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the SelectableInteraction interaction. KEYWORDS: INTERACTION: The object reference to a SELECTABLEINTERACTION object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::MOVE PURPOSE: This method moves the tape measure in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::OUTLINE PURPOSE: This method returns a box in normalized coordinates that contains the selectable object and all of its parts (labels, text, etc). It is similar to the boundary box of the selectable object and, in fact, is often just the boundary box. Like the boundary box, the last element in the 2x5 array is the same as the first element. SYNTAX: outline = theObject -> Outline() ARGUMENTS: None. KEYWORDS: RETURN_VALUE: outline: A 2x5 array containing the XY point pairs in normalized coordinates of a rectangle big enough to contain all the parts of the object. None.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE::SETPROPERTY PURPOSE: This method allows the user to set the TAPEMEASURE object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: BACKGROUND: Set this keyword to draw a background for the text. BG_COLOR: The name of the background color. DRAW: Set this keyword to immediate draw the object after properties are set. FORMAT: The format of the measured length. HEADSIZE: The size of the tape measure head in pixel units. But default, !D.X_Size/50. LABEL: A TEXTLINE object for labelling the distance between the two points we are measuring. LAYER: The annotation layer for the object. LENGTH: The length of the tape measure in data coordinates. Calculated from (x1,y1). LINESTYLE: The type of linestyle required. See PLOT documentation for details. NOMESSAGE: Set this keyword to suppress any messaging as a result of going through the SetProperty method. Messaging is essential for PropertySheet widget capability, but causes too many draw methods on occasion. This will prevent going through DRAW methods needlessly. NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. ROTATION: Set this keyword to the value of the final rotation (in degrees). THICKNESS: Set this to the thickness of the output. By default, 1.0. X1: The X location of one end of the tape measure. Y1: The Y location of one end of the tape measure. X2: The X location of the other end of the tape measure. (Arrowhead here if TAPEMEASUREHEAD=1.) Y2: The Y location of the other end of the tape measure. (Arrowhead here if TAPEMEASUREHEAD=1.) UNITS: A string, appended to the measured length when displayed.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TAPEMEASURE__DEFINE PURPOSE: The purpose of this routine is to provide a tape measure that can be displayed in a direct graphics draw widget. Typically, the user drags a line between two points in an image and the distance is calculated using the coordinate system of the image (which is provided to the TapeMeasure. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: tapeMeasureObject = Obj_New("TAPEMEASURE", X1=0.5, Y1=0.5, X2=0.75, Y2=0.75) drawObject -> Add, tapeMeasureObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { TAPEMEASURE, $ format: "", $ ; The format of the measured length. Default: '(F8.2)'. headsize: 0L, $ ; The tape measure head size in pixels. By default !D.X_Size / 50. label: Obj_New(), $ ; A TextLine object for labeling the distance between two points. layerObject: Obj_New(), $ ; A CATLAYER object for holding the annotation. linestyle: 0L, $ ; The linestyle the tape measure is drawn in. midx: 0.0, $ ; The midpoint of the tape measure in X. midy: 0.0, $ ; The midpoint of the tape measure in Y. moveend: 0L, $ ; Indicates which end of tape measure (1 or 2) you are moving. orientation: 0.0, $ ; The orientation of the tape measure thickness: 0.0, $ ; The thickness of the tape measure. x1: 0.0, $ ; The X location for one end of the tape measure. y1: 0.0, $ ; The Y location for one end of the tape measure. x2: 0.0, $ ; The X location for the other end of the tape measure. y2: 0.0, $ ; The Y location for the other end of the tape measure. sx: 0L, $ ; The static end of a moving tape measure. sy: 0L, $ ; The static end of a moving tape measure. units: "", $ ; A string. Appended to length measurement when displaying. Null by default. userCoord: Obj_New(), $ ; A coordinate system provided by the user. INHERITS SelectableObject $ } MESSAGES: TAPEMEASURE_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. EVENT_STRUCTURE: This object will add the following fields to the event structure created by an interaction. The fields are defined as: BOUNDARY_BOX: A 2x5 element array in normalized coordinates giving the boundary box of the object. LENGTH: The current length of the tape measure in data coordinates. UNITS: A string that is the units of the length. Appended to length, usually. XPTS: A two element array giving the X endpoints of the line in data coordinates. YPTS: A two element array giving the Y endpoints of the line in data coordinates. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 Jan 2004.
(See C:\temp\catalyst\source\graphics\tapemeasure__define.pro)
NAME: TEXTLINE::CALCULATEBOUNDARYBOX PURPOSE: This method calculates the extent of a box about the text. SYNTAX: theObject -> CalculateBoundaryBox ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::CLEANUP PURPOSE: This is the TEXTLINE object class destructor method. SYNTAX: Called automatically when the object is destroyed. ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::CONTROLPANEL PURPOSE: This method creates a control panel for the TEXTLINE object. SYNTAX: textObject -> ControlPanel, baseObject ARGUMENTS: baseObject: The object reference of a base widget for this control to be added to. If not supplied, the control panel will be in a self contained window. KEYWORDS: _EXTRA: Any keywords appropriate for the CATCONTROLPANEL::INIT method.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::CREATENEWOBJECT PURPOSE: This method creates a new object and adds it to both a draw widget and pixmap container. If the object contains an annotation layer, the new object is instead added to the layer, and the layer is added to the draw widget and pixmap container. SYNTAX: theObject -> CreateNewObject, drawID, pixmapID ARGUMENTS: drawID: The draw widget which will contain the new arrow object. Required in normal operation. pixmapID: The pixmap which will contain the new arrow object. Optional. KEYWORDS: NEWOBJECT: An output keyword containing the new arrow object that gets created.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::DRAW PURPOSE: This method draws the line of text in the current direct graphics display window. SYNTAX: theObject -> Draw ARGUMENTS: None. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::DRAWSELECTIONBOX PURPOSE: This method draws a selection box around the boundary box of the text SYNTAX: theObject -> DrawSelectionBox ARGUMENTS: None. KEYWORDS: COLOR: The name of a color to draw the box in. By default, the color of the text.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::EVENTHANDLER PURPOSE: This method is an event handler for the Control Panel. SYNTAX: Called automatically by the event handling system ARGUMENTS: event: The event structure. KEYWORDS: None.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::GetData PURPOSE: This function method overrides the CATDATAATOM function of the same name, only so that a null result comes back with a null string rather than a -1. SYNTAX: data = imageObject -> GetData (Success=s) ARGUMENTS: None. KEYWORDS: SUCCESS: This flag shows whether the get has been successful or not.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::GETPROPERTY PURPOSE: This method allows the user to obtain TEXTLINE properties. Be sure you ALWAYS call the superclass GETPROPERTY method if you have extra keywords! SYNTAX: theObject -> GetProperty ... ARGUMENTS: None. KEYWORDS: ALIGNMENT: Set the keyword to 0.0 for left-aligned text, 0.5 (the default) for centered text, and 1.0 for right-aligned text. CHARSIZE: Set this keyword to the character size desired. By default, 1.0. FONT: Set this to the type of font desired. Hershey: 0, Hardware: 1 (default), True-Type: 2. HEIGHT: The height of the text boundary box in normalized coordinates. LAYER: The annotation layer associated with this object. ORIENTATION: Set this keyword to the orientation of the font. By default, 0.0. TEXT: A single line of text for the TextLine object. THICKNESS: The current thickness of the text. WIDTH: The width of the text boundary box in normalized coordinates. X: The X location of the text for alignment purposes. By default, half the coordinate X range. Y: The Y location of the text for alignment purposes. By default, half the coordinate Y range. _REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::INIT PURPOSE: This is the TEXTLINE object class initialization method SYNTAX: Called automatically when the object is created. ARGUMENTS: text: The single line of text to display. KEYWORDS: ALIGNMENT: Set the keyword to 0.0 for left-aligned text, 1.0 (the default) for centered text, and 2.0 for right-aligned text. CHARSIZE: Set this keyword to the character size desired. By default, 1.0. FONT: Set this to the type of font desired. Hershey: 0, Hardware: 1 (default), True-Type: 2. LAYER: A CATLAYER object for holding annotations. ORIENTATION: Set this keyword to the orientation of the font. By default, 0.0. THICKNESS: Set this to the thickness of the output. By default, 1.0. X: The X location of the text for alignment purposes. By default, half the coordinate X range. Y: The Y location of the text for alignment purposes. By default, half the coordinate Y range. _EXTRA: Any keywords appropriate for the SELECTABLEOBJECT INIT method.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::INTERACTIONEVENTS PURPOSE: This method accepts events from the SelectableInteraction object based on the "mode" of the SelectableInteraction object. The SelectableInteraction object can process "SELECT" and "MOVE" mode events. All other mode events are sent here for processing by a SELECTABLEOBJECT. SYNTAX: theObject -> INTERACTIONEVENTS ARGUMENTS: event: The widget event that is generated by the draw widget and handled by the SelectableInteraction interaction. KEYWORDS: INTERACTION: The object reference to a SELECTABLEINTERACTION object that is receiving events. This is a *required* parameter, but is written as a keyword for programming clarity.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::MOVE PURPOSE: This method moves the text in a graphics window. SYNTAX: theObject -> Move, x, y ARGUMENTS: X: The number of pixels to move in the X direction. Y: The number of pixels to move in the Y direction. KEYWORDS: NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs. PIXMAP: Set this keyword to a pixmap that can be used to erase the previous contents of the window.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE::SETPROPERTY PURPOSE: This method allows the user to set the TEXTLINE object's properties. Be sure you ALWAYS call the superclass SETPROPERTY method if you have extra keywords! SYNTAX: theObject -> SetProperty ... ARGUMENTS: None. KEYWORDS: ALIGNMENT: Set the keyword to 0.0 for left-aligned text, 1.0 (the default) for centered text, and 2.0 for right-aligned text. CHARSIZE: Set this keyword to the character size desired. FONT: Set this to the type of font desired. Hershey: 0, Hardware: 1 (default), True-Type: 2. LAYER: The annotation layer for the object. NOMESSAGE: Set this keyword to suppress any messaging as a result of going through the SetProperty method. Messaging is essential for PropertySheet widget capability, but causes too many draw methods on occasion. This will prevent going through DRAW methods needlessly. NOREFRESH: Set this keyword if immediate refreshing of the object on the display is not required. ORIENTATION: Set this keyword to the orientation of the font. TEXT: A single line of text for the TextLine object. THICKNESS: Set this to the thickness of the output. X: The X location of the text for alignment purposes. Y: The Y location of the text for alignment purposes.
(See C:\temp\catalyst\source\graphics\textline__define.pro)
NAME: TEXTLINE__DEFINE PURPOSE: The purpose of this routine is to provide a line of text that can be displayed in a direct graphics draw widget. As a subclassed CATDATAATOM, the text is the "data" and can be manipulated with the GetData and SetData methods. The coordinate system of the TextLine object is either passed to it (a CatCoord object) or is a normalized coordinate system by default. AUTHORS: FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING 1645 Sheely Drive 18 The Green South Fort Collins Warborough, Oxon CO 80526 USA OX10 7DN, ENGLAND Phone: 970-221-0438 Phone: +44 (0)1865 858279 E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk CATEGORY: Objects. SYNTAX: textObject = Obj_New("TEXTLINE", "This is a line of text") drawObject -> Add, textObject SUPERCLASSES: SELECTABLEOBJECT CATDATAATOM CATATOM CATCONTAINER IDLITCOMPONENT IDL_CONTAINER CLASS_STRUCTURE: class = { TEXTLINE, $ alignment: 0.0, $ ; The alignment of the text. background: 0L, $ ; A flag to indicate if a background box is drawn. bg_color: "", $ ; The background color. charsize: 0.0, $ ; The character size. color: "", $ ; The name of a color to draw text in. font: 0L, $ ; The font type (0-Hershey, 1-Hardware, 2-True-Type). orientation: 0.0, $ ; The orientation of the text thickness: 0.0, $ ; The CHARTHICK ness of the text. x: 0.0, $ ; The X location for drawing text. y: 0.0, $ ; The Y location for drawing text. width: 0.0, $ ; The width of the text line. (Set when drawn.) INHERITS SelectableObject $ } ; MESSAGES: TEXTLINE_CHANGED: This message is sent whenever SetProperty method is called and the NOMESSAGE keyword is NOT set. NOTES_AND_RESTRICTIONS: If the font field is set to 0 (Hershey fonts) when drawn in PostScript output, the font type is switched to 1 (Hardware fonts). Rotation of text can only occur when the ALIGNMENT of the test is "centered". If you try to rotate the text, the alignment is changed. Hardware fonts cannot be rotated on the display. MODIFICATION_HISTORY: Written by: David W. Fanning, 25 Jan 2004.
(See C:\temp\catalyst\source\graphics\textline__define.pro)