function SelectionCanvasManager(selectionCanvas, zoomManager) {
    /**
     * Selection relative to source co-ordinates.
     * @type {HTMLCanvasElement}
     */
    this.selectionSourceCanvas = CreateCanvasElement();

    /**
     * Selection displayed on this canvas.
     * Inline styling needed here for manipulation in methods.
     * @type {HTMLCanvasElement}
     */
    this.selectionCanvas = selectionCanvas;
    this.selectionCanvas.style.display = 'none';

    /**
     * @type {ZoomManager}
     */
    this.zoomManager = zoomManager;

    /**
     * @type {boolean}
     */
    this.dragging = false;

    /**
     * X co-ordinate of top left corner of selection canvas.
     * Needed for hit test.
     * @type {number}
     */
    this.canvasX = 0;

    /**
     * X co-ordinate of top left corner of selection canvas.
     * Needed for hit test.
     * @type {number}
     */
    this.canvasY = 0;

    /**
     * During mouse move, position of selection canvas is calculated from this.
     * @type {number}
     */
    this.beforeDragX = 0;

    /**
     * During mouse move, position of selection canvas is calculated from this.
     * @type {number}
     */
    this.beforeDragY = 0;

    /**
     * Distances calculated from mouse down co-ordinate on selection canvas.
     * @type {number}
     */
    this.mouseDownX = 0;

    /**
     * Distances calculated from mouse down co-ordinate on selection canvas.
     * @type {number}
     */
    this.mouseDownY = 0;

    /**
     * @type {boolean}
     */
    this.isVisible = false;
  }
/**
   * Selection canvas. Methods are relative to selection source canvas and
   * redrawn onto selection canvas when displayed.
   * @constructor
   * @struct
   * @param {HTMLCanvasElement} selectionCanvas
   * @param {ZoomManager} zoomManager
   */
Selection canvas. Methods are relative to selection source canvas and
redrawn onto selection canvas when displayed.
@constructor
@struct
@param {HTMLCanvasElement} selectionCanvas
@param {ZoomManager} zoomManager
Selection canvas . Methods are relative to selection source canvas and redrawn onto selection canvas when displayed . @constructor @struct @param { HTMLCanvasElement } selectionCanvas @param { ZoomManager } zoomManager
function SelectionCanvasManager(selectionCanvas, zoomManager) {
    this.selectionSourceCanvas = CreateCanvasElement();
    this.selectionCanvas = selectionCanvas;
    this.selectionCanvas.style.display = 'none';
    this.zoomManager = zoomManager;
    this.dragging = false;
    this.canvasX = 0;
    this.canvasY = 0;
    this.beforeDragX = 0;
    this.beforeDragY = 0;
    this.mouseDownX = 0;
    this.mouseDownY = 0;
    this.isVisible = false;
  }
function SelectionCanvasManager ( selectionCanvas , zoomManager ) { this . selectionSourceCanvas = CreateCanvasElement ( ) ; this . selectionCanvas = selectionCanvas ; this . selectionCanvas . style . display = 'none' ; this . zoomManager = zoomManager ; this . dragging = false ; this . canvasX = 0 ; this . canvasY = 0 ; this . beforeDragX = 0 ; this . beforeDragY = 0 ; this . mouseDownX = 0 ; this . mouseDownY = 0 ; this . isVisible = false ; }
Selection canvas.
Selection canvas .
/**
     * Selection relative to source co-ordinates.
     * @type {HTMLCanvasElement}
     */ /**
     * Selection displayed on this canvas.
     * Inline styling needed here for manipulation in methods.
     * @type {HTMLCanvasElement}
     */ /**
     * @type {ZoomManager}
     */ /**
     * @type {boolean}
     */ /**
     * X co-ordinate of top left corner of selection canvas.
     * Needed for hit test.
     * @type {number}
     */ /**
     * X co-ordinate of top left corner of selection canvas.
     * Needed for hit test.
     * @type {number}
     */ /**
     * During mouse move, position of selection canvas is calculated from this.
     * @type {number}
     */ /**
     * During mouse move, position of selection canvas is calculated from this.
     * @type {number}
     */ /**
     * Distances calculated from mouse down co-ordinate on selection canvas.
     * @type {number}
     */ /**
     * Distances calculated from mouse down co-ordinate on selection canvas.
     * @type {number}
     */ /**
     * @type {boolean}
     */