setEvents.js!eval 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. (function() { var __moduleName = "js/common/setEvents"; var __moduleAddress = "http://projects.delimited.io/webgl-globes/js/common/setEvents.js";System.register(['THREE', './utils'], function (_export) {
  2. 'use strict';
  3. var THREE, debounce, raycaster;
  4. _export('setEvents', setEvents);
  5. function setEvents(camera, items, type, wait) {
  6. var listener = function listener(event) {
  7. var mouse = {
  8. x: (event.clientX - 1) / window.innerWidth * 2 - 1,
  9. y: -((event.clientY - 1) / window.innerHeight) * 2 + 1
  10. };
  11. var vector = new THREE.Vector3();
  12. vector.set(mouse.x, mouse.y, 0.5);
  13. vector.unproject(camera);
  14. raycaster.ray.set(camera.position, vector.sub(camera.position).normalize());
  15. var target = raycaster.intersectObjects(items);
  16. if (target.length) {
  17. target[0].type = type;
  18. target[0].object.dispatchEvent(target[0]);
  19. }
  20. };
  21. if (!wait) {
  22. document.addEventListener(type, listener, false);
  23. } else {
  24. document.addEventListener(type, debounce(listener, wait), false);
  25. }
  26. }
  27. return {
  28. setters: [function (_THREE) {
  29. THREE = _THREE['default'];
  30. }, function (_utils) {
  31. debounce = _utils.debounce;
  32. }],
  33. execute: function () {
  34. raycaster = new THREE.Raycaster();
  35. }
  36. };
  37. });
  38. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImh0dHA6Ly9wcm9qZWN0cy5kZWxpbWl0ZWQuaW8vd2ViZ2wtZ2xvYmVzL2pzL2NvbW1vbi9zZXRFdmVudHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O3VCQUdJLFNBQVM7O3VCQUVHLFNBQVM7O0FBQWxCLFdBQVMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTs7QUFFbkQsUUFBSSxRQUFRLEdBQUcsU0FBWCxRQUFRLENBQVksS0FBSyxFQUFFOztBQUU3QixVQUFJLEtBQUssR0FBRztBQUNWLFNBQUMsRUFBRSxBQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUEsR0FBSSxNQUFNLENBQUMsVUFBVSxHQUFLLENBQUMsR0FBRyxDQUFDO0FBQ3JELFNBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUEsR0FBSSxNQUFNLENBQUMsV0FBVyxDQUFBLEFBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztPQUN2RCxDQUFDOztBQUVGLFVBQUksTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pDLFlBQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLFlBQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7O0FBRXpCLGVBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQzs7QUFFNUUsVUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUUvQyxVQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7QUFDakIsY0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDdEIsY0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7T0FDM0M7S0FFRixDQUFDOztBQUVGLFFBQUksQ0FBQyxJQUFJLEVBQUU7QUFDVCxjQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNsRCxNQUFNO0FBQ0wsY0FBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2xFO0dBQ0Y7Ozs7Ozt3QkFqQ1EsUUFBUTs7O0FBRWIsZUFBUyxHQUFHLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSIsImZpbGUiOiJodHRwOi8vcHJvamVjdHMuZGVsaW1pdGVkLmlvL3dlYmdsLWdsb2Jlcy9qcy9jb21tb24vc2V0RXZlbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRIUkVFIGZyb20gJ1RIUkVFJztcbmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCByYXljYXN0ZXIgPSBuZXcgVEhSRUUuUmF5Y2FzdGVyKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRFdmVudHMoY2FtZXJhLCBpdGVtcywgdHlwZSwgd2FpdCkge1xuXG4gIGxldCBsaXN0ZW5lciA9IGZ1bmN0aW9uKGV2ZW50KSB7XG5cbiAgICBsZXQgbW91c2UgPSB7XG4gICAgICB4OiAoKGV2ZW50LmNsaWVudFggLSAxKSAvIHdpbmRvdy5pbm5lcldpZHRoICkgKiAyIC0gMSxcbiAgICAgIHk6IC0oKGV2ZW50LmNsaWVudFkgLSAxKSAvIHdpbmRvdy5pbm5lckhlaWdodCkgKiAyICsgMVxuICAgIH07XG5cbiAgICBsZXQgdmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICB2ZWN0b3Iuc2V0KG1vdXNlLngsIG1vdXNlLnksIDAuNSk7XG4gICAgdmVjdG9yLnVucHJvamVjdChjYW1lcmEpO1xuXG4gICAgcmF5Y2FzdGVyLnJheS5zZXQoY2FtZXJhLnBvc2l0aW9uLCB2ZWN0b3Iuc3ViKGNhbWVyYS5wb3NpdGlvbikubm9ybWFsaXplKCkpO1xuXG4gICAgbGV0IHRhcmdldCA9IHJheWNhc3Rlci5pbnRlcnNlY3RPYmplY3RzKGl0ZW1zKTtcblxuICAgIGlmICh0YXJnZXQubGVuZ3RoKSB7XG4gICAgICB0YXJnZXRbMF0udHlwZSA9IHR5cGU7XG4gICAgICB0YXJnZXRbMF0ub2JqZWN0LmRpc3BhdGNoRXZlbnQodGFyZ2V0WzBdKTtcbiAgICB9XG5cbiAgfTtcblxuICBpZiAoIXdhaXQpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG4gIH0gZWxzZSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBkZWJvdW5jZShsaXN0ZW5lciwgd2FpdCksIGZhbHNlKTtcbiAgfVxufVxuIl19
  39. }).call(__global);