Source: gfx/filters/tiltshift/TiltShiftXFilter.js

const TiltShiftAxisFilter = require('./TiltShiftAxisFilter');

/**
 * @author Vico @vicocotea
 * original filter https://github.com/evanw/glfx.js/blob/master/src/filters/blur/tiltshift.js by Evan Wallace : http://madebyevan.com/
 */

/**
 * A TiltShiftXFilter.
 *
 * @class
 * @extends TiltShiftAxisFilter
 */
function TiltShiftXFilter() {
  TiltShiftAxisFilter.call(this);
}

TiltShiftXFilter.prototype = Object.create(TiltShiftAxisFilter.prototype);
TiltShiftXFilter.prototype.constructor = TiltShiftXFilter;
module.exports = TiltShiftXFilter;

/**
 * Updates the filter delta values.
 *
 */
TiltShiftXFilter.prototype.updateDelta = function() {
  var dx = this.uniforms.end.value.x - this.uniforms.start.value.x;
  var dy = this.uniforms.end.value.y - this.uniforms.start.value.y;
  var d = Math.sqrt(dx * dx + dy * dy);

  this.uniforms.delta.value.x = dx / d;
  this.uniforms.delta.value.y = dy / d;
};