"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _directionalLight = require("./directional-light");

var _sun = require("@math.gl/sun");

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

var SunLight = function (_DirectionalLight) {
  (0, _inherits2.default)(SunLight, _DirectionalLight);

  var _super = _createSuper(SunLight);

  function SunLight(opts) {
    var _this;

    (0, _classCallCheck2.default)(this, SunLight);
    _this = _super.call(this, opts);
    _this.timestamp = void 0;
    _this.timestamp = opts.timestamp;
    return _this;
  }

  var _proto = SunLight.prototype;

  _proto.getProjectedLight = function getProjectedLight(_ref) {
    var layer = _ref.layer;
    var viewport = layer.context.viewport;
    var isGlobe = viewport.resolution && viewport.resolution > 0;

    if (isGlobe) {
      var _getSunDirection = (0, _sun.getSunDirection)(this.timestamp, 0, 0),
          _getSunDirection2 = (0, _slicedToArray2.default)(_getSunDirection, 3),
          x = _getSunDirection2[0],
          y = _getSunDirection2[1],
          z = _getSunDirection2[2];

      this.direction = [x, -z, y];
    } else {
      var latitude = viewport.latitude,
          longitude = viewport.longitude;
      this.direction = (0, _sun.getSunDirection)(this.timestamp, latitude, longitude);
    }

    return this;
  };

  return SunLight;
}(_directionalLight.DirectionalLight);

exports.default = SunLight;
//# sourceMappingURL=sun-light.js.map