text: import {Basis} from "./basis";
  
  function Bundle(context, beta) {
    this._basis = new Basis(context);
    this._beta = beta;
  }
  
  Bundle.prototype = {
    lineStart: function() {
      this._x = [];
      this._y = [];
      this._basis.lineStart();
    },
    lineEnd: function() {
      var x = this._x,
          y = this._y,
          j = x.length - 1;
  
      if (j > 0) {
        var x0 = x[0],
            y0 = y[0],
            dx = x[j] - x0,
            dy = y[j] - y0,
            i = -1,
            t;
  
        while (++i <= j) {
          t = i / j;
          this._basis.point(
            this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
            this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
          );
        }
      }
  
      this._x = this._y = null;
      this._basis.lineEnd();
    },
    point: function(x, y) {
      this._x.push(+x);
      this._y.push(+y);
    }
  };
  
  export default (function custom(beta) {
  
    function bundle(context) {
      return beta === 1 ? new Basis(context) : new Bundle(context, beta);
    }
  
    bundle.beta = function(beta) {
      return custom(+beta);
    };
  
    return bundle;
  })(0.85);
  