text: /**
   * @filter       Perspective
   * @description  Warps one quadrangle to another with a perspective transform. This can be used to
   *               make a 2D image look 3D or to recover a 2D image captured in a 3D environment.
   * @param before The x and y coordinates of four points before the transform in a flat list. This
   *               would look like [ax, ay, bx, by, cx, cy, dx, dy] for four points
   *               (ax, ay), (bx, by), (cx, cy), and (dx, dy).
   * @param after  The x and y coordinates of four points after the transform in a flat list, just
   *               like the other argument.
   */
  // TODO: FIXME
  /* eslint-disable */
  function perspective(before, after) {
    var a = getSquareToQuad(after);
    var b = getSquareToQuad(before);
    var c = multiply(getInverse(a), b);
    return this.matrixWarp(c);
  }
  