_drawTile( tile ) {
        $.console.assert(tile, '[Drawer._drawTile] tile is required');

        let container = this.canvas;

        if ( !tile.loaded ) {
            $.console.warn(
                "Attempting to draw tile %s when it's not yet loaded.",
                tile.toString()
            );
            return;
        }

        //EXPERIMENTAL - trying to figure out how to scale the container
        //               content during animation of the container size.

        const dataObject = this.getDataToDraw(tile);
        if (!dataObject) {
            return;
        }

        if ( dataObject.element.parentNode !== container ) {
            container.appendChild( dataObject.element );
        }
        if ( dataObject.imgElement.parentNode !== dataObject.element ) {
            dataObject.element.appendChild( dataObject.imgElement );
        }

        dataObject.style.top     = tile.position.y + "px";
        dataObject.style.left    = tile.position.x + "px";
        dataObject.style.height  = tile.size.y + "px";
        dataObject.style.width   = tile.size.x + "px";

        if (tile.flipped) {
            dataObject.style.transform = "scaleX(-1)";
        }

        $.setElementOpacity( dataObject.element, tile.opacity );
    }
Draws the given tile.
@private
@param {OpenSeadragon.Tile} tile - The tile to draw.
@param {Function} drawingHandler - Method for firing the drawing event if using canvas.
drawingHandler({context, tile, rendered})