'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.experimental = exports.lighting = exports.project64 = exports.project = exports.OrthographicViewport = exports.PerspectiveViewport = exports.WebMercatorViewport = exports.Viewport = exports.CompositeLayer = exports.Layer = exports.AttributeManager = exports.LayerManager = exports.COORDINATE_SYSTEM = undefined;

var _constants = require('./lib/constants');

Object.defineProperty(exports, 'COORDINATE_SYSTEM', {
  enumerable: true,
  get: function get() {
    return _constants.COORDINATE_SYSTEM;
  }
});

var _layerManager = require('./lib/layer-manager');

Object.defineProperty(exports, 'LayerManager', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_layerManager).default;
  }
});

var _attributeManager = require('./lib/attribute-manager');

Object.defineProperty(exports, 'AttributeManager', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_attributeManager).default;
  }
});

var _layer = require('./lib/layer');

Object.defineProperty(exports, 'Layer', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_layer).default;
  }
});

var _compositeLayer = require('./lib/composite-layer');

Object.defineProperty(exports, 'CompositeLayer', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_compositeLayer).default;
  }
});

var _viewport = require('./viewports/viewport');

Object.defineProperty(exports, 'Viewport', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_viewport).default;
  }
});

var _webMercatorViewport = require('./viewports/web-mercator-viewport');

Object.defineProperty(exports, 'WebMercatorViewport', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_webMercatorViewport).default;
  }
});

var _perspectiveViewport = require('./viewports/perspective-viewport');

Object.defineProperty(exports, 'PerspectiveViewport', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_perspectiveViewport).default;
  }
});

var _orthographicViewport = require('./viewports/orthographic-viewport');

Object.defineProperty(exports, 'OrthographicViewport', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_orthographicViewport).default;
  }
});

var _project = require('./shaderlib/project/project');

Object.defineProperty(exports, 'project', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_project).default;
  }
});

var _project2 = require('./shaderlib/project64/project64');

Object.defineProperty(exports, 'project64', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_project2).default;
  }
});

var _lighting = require('./shaderlib/lighting/lighting');

Object.defineProperty(exports, 'lighting', {
  enumerable: true,
  get: function get() {
    return _interopRequireDefault(_lighting).default;
  }
});

require('./lib/init');

require('./shaderlib');

var _view = require('./views/view');

var _view2 = _interopRequireDefault(_view);

var _mapView = require('./views/map-view');

var _mapView2 = _interopRequireDefault(_mapView);

var _firstPersonView = require('./views/first-person-view');

var _firstPersonView2 = _interopRequireDefault(_firstPersonView);

var _thirdPersonView = require('./views/third-person-view');

var _thirdPersonView2 = _interopRequireDefault(_thirdPersonView);

var _orbitView = require('./views/orbit-view');

var _orbitView2 = _interopRequireDefault(_orbitView);

var _perspectiveView = require('./views/perspective-view');

var _perspectiveView2 = _interopRequireDefault(_perspectiveView);

var _orthographicView = require('./views/orthographic-view');

var _orthographicView2 = _interopRequireDefault(_orthographicView);

var _firstPersonState = require('./controllers/first-person-state');

var _firstPersonState2 = _interopRequireDefault(_firstPersonState);

var _orbitState = require('./controllers/orbit-state');

var _orbitState2 = _interopRequireDefault(_orbitState);

var _mapState = require('./controllers/map-state');

var _mapState2 = _interopRequireDefault(_mapState);

var _viewportControls = require('./controllers/viewport-controls');

var _viewportControls2 = _interopRequireDefault(_viewportControls);

var _mapControls = require('./controllers/map-controls');

var _mapControls2 = _interopRequireDefault(_mapControls);

var _firstPersonViewport = require('./viewports/first-person-viewport');

var _firstPersonViewport2 = _interopRequireDefault(_firstPersonViewport);

var _thirdPersonViewport = require('./viewports/third-person-viewport');

var _thirdPersonViewport2 = _interopRequireDefault(_thirdPersonViewport);

var _orbitViewport = require('./viewports/orbit-viewport');

var _orbitViewport2 = _interopRequireDefault(_orbitViewport);

var _deck = require('./lib/deck');

var _deck2 = _interopRequireDefault(_deck);

var _mapControllerJs = require('./pure-js/map-controller-js');

var _mapControllerJs2 = _interopRequireDefault(_mapControllerJs);

var _orbitControllerJs = require('./pure-js/orbit-controller-js');

var _orbitControllerJs2 = _interopRequireDefault(_orbitControllerJs);

var _effectManager = require('./experimental/lib/effect-manager');

var _effectManager2 = _interopRequireDefault(_effectManager);

var _effect = require('./experimental/lib/effect');

var _effect2 = _interopRequireDefault(_effect);

var _transitionManager = require('./lib/transition-manager');

var _transitionManager2 = _interopRequireDefault(_transitionManager);

var _linearInterpolator = require('./transitions/linear-interpolator');

var _linearInterpolator2 = _interopRequireDefault(_linearInterpolator);

var _viewportFlyToInterpolator = require('./transitions/viewport-fly-to-interpolator');

var _viewportFlyToInterpolator2 = _interopRequireDefault(_viewportFlyToInterpolator);

var _transitionUtils = require('./transitions/transition-utils');

var _log = require('./utils/log');

var _log2 = _interopRequireDefault(_log);

var _get = require('./utils/get');

var _count = require('./utils/count');

var _binSorter = require('./utils/bin-sorter');

var _binSorter2 = _interopRequireDefault(_binSorter);

var _colorUtils = require('./utils/color-utils');

var _scaleUtils = require('./utils/scale-utils');

var _flatten = require('./utils/flatten');

var _fp = require('./utils/fp64');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// EXPERIMENTAL EXPORTS
// Experimental Features (May change in minor version bumps, use at your own risk)

// Experimental Controllers


// Experimental Pure JS (non-React) bindings


// Experimental Effects (non-React) bindings


// Eperimental Transitions


// INTERNAL EXPORTS

// Layer utilities

// TODO - just expose as layer methods instead?


var experimental = exports.experimental = {
  View: _view2.default,
  MapView: _mapView2.default,
  FirstPersonView: _firstPersonView2.default,
  ThirdPersonView: _thirdPersonView2.default,
  OrbitView: _orbitView2.default,
  PerspectiveView: _perspectiveView2.default,
  OrthographicView: _orthographicView2.default,

  ViewportControls: _viewportControls2.default,
  FirstPersonState: _firstPersonState2.default,
  OrbitState: _orbitState2.default,
  MapState: _mapState2.default,

  Controller: _viewportControls2.default,
  MapController: _mapControls2.default,
  // FirstPersonController,
  // OrbitController,

  FirstPersonViewport: _firstPersonViewport2.default,
  ThirdPersonViewport: _thirdPersonViewport2.default,
  OrbitViewport: _orbitViewport2.default,

  Deck: _deck2.default,
  MapControllerJS: _mapControllerJs2.default,
  OrbitControllerJS: _orbitControllerJs2.default,

  EffectManager: _effectManager2.default,
  Effect: _effect2.default,

  // Transitions
  TRANSITION_EVENTS: _transitionManager.TRANSITION_EVENTS,
  LinearInterpolator: _linearInterpolator2.default,
  ViewportFlyToInterpolator: _viewportFlyToInterpolator2.default,

  // For react module
  TransitionManager: _transitionManager2.default,
  extractViewState: _transitionUtils.extractViewState,

  // };

  // TODO make this an internal export to set it apart from experimental
  // export const internal = {

  // For layers
  BinSorter: _binSorter2.default,
  linearScale: _scaleUtils.linearScale,
  getLinearScale: _scaleUtils.getLinearScale,
  quantizeScale: _scaleUtils.quantizeScale,
  getQuantizeScale: _scaleUtils.getQuantizeScale,
  clamp: _scaleUtils.clamp,
  defaultColorRange: _colorUtils.defaultColorRange,

  log: _log2.default,

  get: _get.get,
  count: _count.count,

  flatten: _flatten.flatten,
  countVertices: _flatten.countVertices,
  flattenVertices: _flatten.flattenVertices,
  fillArray: _flatten.fillArray,

  enable64bitSupport: _fp.enable64bitSupport,
  fp64ify: _fp.fp64ify,
  fp64LowPart: _fp.fp64LowPart,

  // DEPRECATED experimantal exports
  DeckGLJS: _deck2.default
};
//# sourceMappingURL=index.js.map