calculateZoomToOrigin(element, originator) {
    let zoomStyle;
    originator = typeof originator === 'string'
      ? document.querySelector(originator)
      : originator;
    if (originator) {
      let originBnds = this.copyRect(originator.getBoundingClientRect());
      let dialogRect = this.copyRect(element.getBoundingClientRect());
      let dialogCenterPt = this.centerPointFor(dialogRect);
      let originCenterPt = this.centerPointFor(originBnds);

      zoomStyle = {
        centerX: originCenterPt.x - dialogCenterPt.x,
        centerY: originCenterPt.y - dialogCenterPt.y,
        scaleX: Math.min(0.5, originBnds.width / dialogRect.width),
        scaleY: Math.min(0.5, originBnds.height / dialogRect.height)
      };
    } else {
      zoomStyle = { centerX: 0, centerY: 0, scaleX: 0.5, scaleY: 0.5 };
    }

    return `translate3d(${zoomStyle.centerX}px, ${zoomStyle.centerY}px, 0 ) scale(${zoomStyle.scaleX}, ${zoomStyle.scaleY})`;
  }
Calculate the zoom transform from dialog to origin.

We use this to set the dialog position immediately;
then the md-transition-in actually translates back to
`translate3d(0,0,0) scale(1.0)`...

NOTE: all values are rounded to the nearest integer

@public