TAPEMEASURE__DEFINE 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.