# Catalyst Source-OGraphics Directory On-Line Help

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 Oct 26 20:43:12 2008.

# List of Routines

- CATOBJECTVIEW
- CATOBJECTVIEW::CLEANUP
- CATOBJECTVIEW::CREATEVIEW
- CATOBJECTVIEW::EVENTHANDLER
- CATOBJECTVIEW::GETPROPERTY
- CATOBJECTVIEW::INIT
- CATOBJECTVIEW::RESIZE
- CATOBJECTVIEW::SETPROPERTY
- CATOBJECTVIEW::SETVIEW
- CATSUFACE::EVENTHANDLER
- CATSURFACE::CLEANUP
- CATSURFACE::CONTROLPANEL
- CATSURFACE::CREATE_VEIW
- CATSURFACE::GETPROPERTY
- CATSURFACE::INIT
- CATSURFACE::MESSAGEHANDLER
- CATSURFACE::RESIZE
- CATSURFACE::SELECTCOLORS
- CATSURFACE::SETPROPERTY
- CATSURFACE::SURFACELEVATION
- CATSURFACE::SURFACEOUTPUT
- CATSURFACE::SURFACEPRINTING
- CATSURFACE::SURFACEPROPERTIES
- CATSURFACE::SURFACESTYLE
- CATSURFACE__DEFINE

# Routine Descriptions

## CATOBJECTVIEW

[Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW

     PURPOSE:

           This object implements a methodology for displaying object graphics in
           the Catalyst Object Library. The object contains an IDLgrView or IDLgrScene
           object, written in object graphics that can be displayed in an ODrawWidget
           object. If fact, the ODrawWidget will *only* accept a CATOBJECTVEW 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

     SUPERCLASSES:

           CATATOM
           CATCONTAINER
           IDL_CONTAINER

     SYNTAX:

          objectView = OBJ_NEW ('CATOBJECTVIEW')

     CLASS_STRUCTURE:

       class = { CATOBJECTVIEW, $       ; The object class definition.
                 INHERITS CATATOM, $    ; Part of the Catalyst Object Library.
                 _no_destroy: 0L, $     ; A flag that governs the destroying of theView.
                 _theView: Obj_New(), $ ; The IDLgrView or IDLgrScene object to be displayed.
               }

     MODIFICATION_HISTORY:

           Written by: David Fanning, 30 June 2003.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::CLEANUP

     PURPOSE:

           This is the CATOBJECTVIEW object class destructor method.

     SYNTAX:

           Called automatically when the object is destroyed.

     ARGUMENTS:

           None.

     KEYWORDS:

           None.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::CREATEVIEW

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::CREATEVIEW

     PURPOSE:

           This method is a dummy method. Subclassed objects should override this method
           to construct the IDLgrView object that is stored in the object

     SYNTAX:

           aView -> CreateView

     ARGUMENTS:

          None.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::EVENTHANDLER

     PURPOSE:

           A dummy event handler method to catch widget events. If events come here, they
           are simply displayed. If you wish to use this event handler, sub-class the CatObjectView
           object and write your own event handler.

     SYNTAX:

           Called from the CATEVENTDISPATCHER utility routine.

     ARGUMENTS:

           Event:  The event structure from a widget event.

     KEYWORDS:

           None.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::GETPROPERTY

     PURPOSE:

           This method enables the getting of the CATOBJECTVIEW object properties.

     SYNTAX:

           CATOBJECTVIEW -> GetProperty ...

     ARGUMENTS:

          None.

     KEYWORDS:

         NO_DESTROY:  The current state of the NO_DESTROY flag.

         VIEW:        The IDLgrView or IDLgrScene object contained in the object.

         _EXTRA:      Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::INIT

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::INIT

     PURPOSE:

           This method is called upon object creation.

     SYNTAX:

           Called automatically when the object is created thus:

               viewObject = OBJ_NEW ('CATOBJECTVIEW')

     ARGUMENTS:

           theView:    An object of type IDLgrView, IDLgrScene, IDLgrModel, or IDLgrGraphic.
                       If this is not a view or scene, the appropriate heirarchy will be automatically
                       constructed. The viewplane rectangle for all objects that don't contain a view
                       is [0,0,1,1] with the default EYE distance. The view object will be destroyed
                       when the CatObjectView object is destroyed unless the NO_DESTROY keyword is set.

     KEYWORDS:

          NO_DESTROY: If this keyword is set, the view object (theView) will not be destroyed when the
                      CatObjectView object is destroyed.

          _EXTRA:     Any keyword appropriate for the INIT method of the superclass object. If theView
                      is not an IDLgrView object, this keyword can also be used to pass DLgrView keywords
                      to the created IDLgrView object.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::RESIZE

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::RESIZE

     PURPOSE:

           This method resizes the object. Subclass members should override this method.

     SYNTAX:

           self -> Resize, xsize, ysize

     ARGUMENTS:

           xsize:   The new X size.

           ysize:   The new Y size.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::SETPROPERTY

     PURPOSE:

           This method enables the setting of the CATOBJECTVIEW object properties.

     SYNTAX:

           CATOBJECTVIEW -> SetProperty ...

     ARGUMENTS:

         None.

     KEYWORDS:

         NO_DESTROY:  If this keyword is set, the view object (theView) will not be destroyed when the
                      CatObjectView object is destroyed.

         VIEW:        Set the IDLgrView or IDLgrScene object.

         _EXTRA:      Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATOBJECTVIEW::SETVIEW

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATOBJECTVIEW::SETVIEW

     PURPOSE:

           This method is a quick way to set the IDLgrView object into the object.
     SYNTAX:

           aCatObjView -> SetView, theView

     ARGUMENTS:

         theView.

     KEYWORDS:

         VIEW:       Set the IDLgrView or IDLgrScene object.

(See C:\IDL\Catalyst\source\ographics\catobjectview__define.pro)

## CATSUFACE::EVENTHANDLER

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSUFACE::EVENTHANDLER

     PURPOSE:

           This method is the event handler for the CatSurface object.

     SYNTAX:

           The method is called automatically when a widget generate an event..

     ARGUMENTS:

         event:  The event structure from the object that caused the event.

     KEYWORDS:

         None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::CLEANUP

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::CLEANUP

     PURPOSE:

           This is the CATSURFACE object class destructor method.

     SYNTAX:

           Called automatically when the object is destroyed.

     ARGUMENTS:

           None.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::CONTROLPANEL

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::CONTROLPANEL

     PURPOSE:

           This method creates a control panel for the CATSURFACE object.

     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:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::CREATE_VEIW

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::CREATE_VEIW

     PURPOSE:

           This method creates the IDLgrView object that will be displayed in the oDrawGraphics window.

     SYNTAX:

           theView = self -> Create_View()

     ARGUMENTS:

           data:               A 2D array of surface data.

           x:                  A vector of X data values.

           y:                  A vector of Y data values.

     KEYWORDS:

           COLORTABLE:         Set this keyword to a number between 0 and 40 to select one
                               of the pre-selected IDL color tables for elevation shading.

           ELEVATION_SHADING: Set this keyword to put elevation shading into effect.

           EXACT:             Set this keyword to a one-, two-,or three-element array to set exact axis
                              scaling for the X, Y, and Z axes, respectively. If Exact is a one-element array,
                              all three axes are set to the same value. For example, to set the X axis to
                              exact scaling and the Y and Z axes to normal scaling, type:

                                 IDL> FSC_Surface, Exact=[1,0,0]

           HIDDEN_LINES:      Set this keyword to draw the surface with hidden lines removed. The default
                              is to show hidden lines.

           POSITION:          A two-, four- or six-element array of normalized (0 to 1) coordinates
                              used to position the X, Y, and Z axis in the coordinate space. Uses the form
                              [x0, x1, y0, y1, z0, z1]. In the absence of POSITION information, the Z position
                              is always [0,1] and the X and Y positions are calculated in a manner that
                              preserves the aspect ratio of the surface data.

           SHADED_SURFACE:    Set this keyword to set up a shaded surface plot rather than a wire
                              mesh surface, which is the default.

           TITLE:             A string used as the title of the plot.

           XTITLE:            A string used as the X title of the plot.

           YTITLE:            A string used as the Y title of the plot.

           ZTITLE:            A string used as the Z title of the plot.

           _EXTRA:            This keyword collects otherwise undefined keywords that are passed to the
                              IDLgrSURFACE initialization routine.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::GETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::GETPROPERTY

     PURPOSE:

           This method enables the getting of the CATSURFACE object properties.

     SYNTAX:

           aCATSURFACE -> GetProperty, ...

     ARGUMENTS:

         None.

     KEYWORDS:

         TRACKBALL:  The trackball object contained within the IDLgrView object.

         _EXTRA:     Any keywords appropriate for the superclass SetProperty method.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::INIT

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::INIT

     PURPOSE:

           This is the CATSURFACE object class initialization method

     SYNTAX:

           Called automatically when the object is created.

     ARGUMENTS:

           data:               A 2D array of surface data.

           x:                  A vector of X data values.

           y:                  A vector of Y data values.

     KEYWORDS:

           COLORTABLE:         Set this keyword to a number between 0 and 40 to select one
                               of the pre-selected IDL color tables for elevation shading.

           ELEVATION_SHADING: Set this keyword to put elevation shading into effect.

           EXACT:             Set this keyword to a one-, two-,or three-element array to set exact axis
                              scaling for the X, Y, and Z axes, respectively. If Exact is a one-element array,
                              all three axes are set to the same value. For example, to set the X axis to
                              exact scaling and the Y and Z axes to normal scaling, type:

                                 IDL> FSC_Surface, Exact=[1,0,0]

           HIDDEN_LINES:      Set this keyword to draw the surface with hidden lines removed. The default
                              is to show hidden lines.

           LANDSCAPE:         Set this keyword if you want printing of the surface to be in landscape mode.

           POSITION:          A two-, four- or six-element array of normalized (0 to 1) coordinates
                              used to position the X, Y, and Z axis in the coordinate space. Uses the form
                              [x0, x1, y0, y1, z0, z1]. In the absence of POSITION information, the Z position
                              is always [0,1] and the X and Y positions are calculated in a manner that
                              preserves the aspect ratio of the surface data.

           SHADED_SURFACE:    Set this keyword to set up a shaded surface plot rather than a wire
                              mesh surface, which is the default.

           TITLE:             A string used as the title of the plot.

           XTITLE:            A string used as the X title of the plot.

           YTITLE:            A string used as the Y title of the plot.

           ZTITLE:            A string used as the Z title of the plot.

           _EXTRA:            This keyword collects otherwise undefined keywords that are passed to the
                              IDLgrSURFACE initialization routine or for the superclass INIT method.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::MESSAGEHANDLER

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::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:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::RESIZE

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::RESIZE

     PURPOSE:

           This method resizes the trackball for the object

     SYNTAX:

           self -> Resize, xsize, ysize

     ARGUMENTS:

           xsize:   The new X size.

           ysize:   The new Y size.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::SELECTCOLORS

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::SELECTCOLORS

     PURPOSE:

           This method is used to allow user-selection of various surface plot colors.
           If no keywords are used, the color of the surface is changed.

     SYNTAX:

           aCatSurface -> SelectColors

     ARGUMENTS:

         None.

     KEYWORDS:

         AXIS:          Set this keyword to allow the user to select a color for all three axes.

         BACKGROUND     Set this keyword to allow the user to select a color for the background color.

         ELEVATION:     Set this keyword to allow the user to select elevation shading colors
                               from a COLORTOOL object.

         SURFACE        Set this keyword to allow the user to select a color for the surface color.

         TITLE:         Set this keyword to allow the user to select a color for the title color.

         XAXIS:         Set this keyword to allow the user to select a color for the X axis color.

         YAXIS:         Set this keyword to allow the user to select a color for the Y axis color.

         ZAXIS:         Set this keyword to allow the user to select a color for the Z axis color.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::SETPROPERTY

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::SETPROPERTY

     PURPOSE:

           This method enables the setting of the CATSURFACE object properties.

     SYNTAX:

           aCatSurface -> SetProperty ...

     ARGUMENTS:

         None.

     KEYWORDS:

         AXIS_COLOR:           A three-element color triple array, specifying the new axes color.

         BACKGROUND_COLOR:     A three-element color triple array, specifying the new background color.

         ELEVATION_COLORS:     Set this keyword to allow the user to select elevation shading colors
                               from a COLORTOOL object.

         ELEVATION_OFF:        Set this keyword to turn elevation shading off for the surface.

         ELEVATION_ON:         Set this keyword to turn elevation shading on for the surface.

         HIDDEN_LINES:         Set this keyword to 1 to display with surface with hidden lines removed.

         ORIGINAL_ROTATION:    Set this keyword to return the surface to its original rotation.

         SURFACE_COLOR:        A three-element color triple array, specifying the new surface color.

         SURFACE_STYLE:        Use this keyword to select the surface style. Values are:
                                  0: Dot surface
                                  1: Mesh surface
                                  2: Solid surface
                                  3: Horizontal line surface
                                  4: Vertical line surface
                                  5: Lego surface
                                  6: Filled lego surface

         TITLE_COLOR:          A three-element color triple array, specifying the new title color.

         XAXIS_COLOR:          A three-element color triple array, specifying the new X axis color.

         YAXIS_COLOR:          A three-element color triple array, specifying the new Y axis color.

         ZAXIS_COLOR:          A three-element color triple array, specifying the new Z axis color.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::SURFACELEVATION

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::SURFACELEVATION

     PURPOSE:

           This method is the event handler for surface elevation parameters.

     SYNTAX:

           theObject -> SurfaceElevation, event

     ARGUMENTS:

         event:  The event structure from the object that caused the event.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::SURFACEOUTPUT

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::SURFACEOUTPUT

     PURPOSE:

           This method is the event handler for surface output.

     SYNTAX:

           theObject -> SurfaceOutput, event

     ARGUMENTS:

         event:  The event structure from the object that caused the event.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::SURFACEPRINTING

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::SURFACEPRINTING

     PURPOSE:

           This method is the event handler for surface printing.

     SYNTAX:

           theObject -> SurfacePrinting, event

     ARGUMENTS:

         event:  The event structure from the object that caused the event.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::SURFACEPROPERTIES

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::SURFACEPROPERTIES

     PURPOSE:

           This method is the event handler for surface properties.

     SYNTAX:

           theObject -> SurfaceProperties, event

     ARGUMENTS:

         event:  The event structure from the object that caused the event.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE::SURFACESTYLE

[Previous Routine] [Next Routine] [List of Routines]

     NAME:
           CATSURFACE::SURFACESTYLE

     PURPOSE:

           This method is the event handler for surface style parameters.

     SYNTAX:

           theObject -> SurfaceStyle, event

     ARGUMENTS:

         event:  The event structure from the object that caused the event.

     KEYWORDS:

          None.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)

## CATSURFACE__DEFINE

[Previous Routine] [List of Routines]

     NAME:
           CATSURFACE__DEFINE

     PURPOSE:

           The purpose of this routine is to implement an object graphics surface
           command for display in an ODrawWidget object. To create a rotating surface
           in the draw widget, button events MUST be turned on for the draw widget.

     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:

           theSurface = Obj_New("CATSURFACE")
           oDrawWidget -> SetProperty, Button_Events=1
           oDrawWidget -> Add, theSurface

     SUPERCLASSES:

           CATOBJECTVIEW
           CATATOM
           CATCONTAINER
           IDL_CONTAINER

     CLASS_STRUCTURE:

       class = { CATSURFACE, $
                 INHERITS CATOBJECTVIEW, $      ; A subclass of the CatObjectView object.
                 _origTransform: FltArr(4,4), $ ; The original transformation matrix.
                 _trackball: Obj_New(), $       ; The trackball object.
                 _rotatingModel: Obj_New(), $   ; The rotating model of the surface.
                 _theSurface: Obj_New(), $      ; The surface object.
                 _xAxis:Obj_New(), $            ; The X Axis object.
                 _yAxis:Obj_New(), $            ; The Y Axis object.
                 _zAxis:Obj_New(), $            ; The Z Axis object.
                 _nonRotatingLight:Obj_New(), $ ; The non-rotating light object.
                 _rotatingLight: Obj_New(), $   ; The rotating light object.
                 _fillLight: Obj_New(), $       ; The fill light object.
                 _ambientLight: Obj_New(), $    ; The ambient light object.
                 _thePalette: Obj_New(), $      ; The surface color palette.
                 _colortable: 0L, $             ; The current color table (for elevation colors).
                 _surfaceColor:BytArr(3), $     ; The current color of the surface.
                 _r: BytArr(256), $             ; The R values of the current color table.
                 _g: BytArr(256), $             ; The G values of the current color table.
                 _b: BytArr(256), $             ; The B values of the current color table.
                 _data: Ptr_New(), $            ; The original Z data (2D) for the surface.
                 _x: Ptr_New(), $               ; The original X data for the surface.
                 _y: Ptr_New(), $               ; The original Y data for the surface.
                 _plottitle: Obj_New(), $       ; The plot title object.
                 _colortool: Obj_New() $        ; A color tool.
               }

     MODIFICATION_HISTORY:

           Written by: David W. Fanning, 1 July, 2003.

(See C:\IDL\Catalyst\source\ographics\catsurface__define.pro)