Source: shell.js

/**
 * Creates a new Shell.
 *
 * @param {Object} [opt_options=] A map of initial properties.
 * @param {number} [opt_options.itemWidth = 0] Item width.
 * @param {number} [opt_options.itemHeight = 0] Item height.
 * @param {number} [opt_options.minFunnelWidth = 5] Minium width of the shell base.
 * @param {number} [opt_options.opacity = 0] shell opacity.
 * @param {number} [opt_options.blur = 350] shell blur. Recommended values bw 300 - 400.
 * @param {number} [opt_options.spread = 250] shell spread. Recommended values bw 200 - 300.
 * @param {string} [opt_options.easing = 'easeInExpo'] An easing function to determine shell shape along the spine. See Easing docs for possible values.
 * @param {number} [opt_options.colorMin = 50] Minimum color. Valid values bw 0 - 255.
 * @param {number} [opt_options.colorMax = 255] Maximum color. Valid values bw 0 - 255.
 * @constructor
 */
function Shell(opt_options) {

  var options = opt_options || {};

  this.width = options.itemWidth || 0;
  this.height = options.itemHeight || 0;
  this.minFunnelWidth = typeof options.minFunnelWidth !== 'undefined' ? options.minFunnelWidth : 5;
  this.opacity = typeof options.opacity !== 'undefined' ? options.opacity : 0.75;
  this.blur = typeof options.blur !== 'undefined' ? options.blur : 350;
  this.spread = typeof options.spread !== 'undefined' ? options.spread : 250;
  this.easing = options.easing || 'easeInExpo';
  this.colorMin = typeof options.colorMin !== 'undefined' ? options.colorMin : 50;
  this.colorMax = typeof options.colorMax !== 'undefined' ? options.colorMax : 255;
}

module.exports = Shell;