whs.js/modules/DragModule.module.js
2018-05-13 16:59:38 +03:00

99 lines
5.5 KiB
JavaScript

/* Built for whs v2.1.9 */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('three')) :
typeof define === 'function' && define.amd ? define(['three'], factory) :
(global.DragModule = factory(global.THREE));
}(this, (function (three) { 'use strict';
var classCallCheck = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
var createClass = function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
var MeshDragModule = function () {
function MeshDragModule(mouse) {
classCallCheck(this, MeshDragModule);
this.mouse = mouse;
this.offset = new three.Vector3();
}
createClass(MeshDragModule, [{
key: 'postIntegrate',
value: function postIntegrate(self) {
var _this = this;
this.defer(function () {
var mouse = self.mouse,
offset = self.offset;
mouse.track(_this);
offset.copy(_this.position);
var dragPossible = false;
_this.on('mousedown', function () {
dragPossible = true;
offset.copy(_this.position.clone().sub(mouse.project()));
});
mouse.on('mouseup', function () {
dragPossible = false;
});
mouse.on('move', function () {
if (dragPossible) _this.position.copy(mouse.project().add(offset));
});
});
}
}]);
return MeshDragModule;
}();
var DragModule = function () {
function DragModule() {
classCallCheck(this, DragModule);
this.mouse = null;
}
createClass(DragModule, [{
key: 'manager',
value: function manager(_manager) {
_manager.define('drag');
this.mouse = _manager.use('mouse');
}
}, {
key: 'mesh',
value: function mesh() {
return new MeshDragModule(this.mouse);
}
}]);
return DragModule;
}();
return DragModule;
})));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJhZ01vZHVsZS5tb2R1bGUuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2R1bGVzL2V4dHJhL0RyYWdNb2R1bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtWZWN0b3IzfSBmcm9tICd0aHJlZSc7XG5cbmNsYXNzIE1lc2hEcmFnTW9kdWxlIHtcbiAgY29uc3RydWN0b3IobW91c2UpIHtcbiAgICB0aGlzLm1vdXNlID0gbW91c2U7XG4gICAgdGhpcy5vZmZzZXQgPSBuZXcgVmVjdG9yMygpO1xuICB9XG5cbiAgcG9zdEludGVncmF0ZShzZWxmKSB7XG4gICAgdGhpcy5kZWZlcigoKSA9PiB7XG4gICAgICBjb25zdCB7bW91c2UsIG9mZnNldH0gPSBzZWxmO1xuICAgICAgbW91c2UudHJhY2sodGhpcyk7XG5cbiAgICAgIG9mZnNldC5jb3B5KHRoaXMucG9zaXRpb24pO1xuXG4gICAgICBsZXQgZHJhZ1Bvc3NpYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMub24oJ21vdXNlZG93bicsICgpID0+IHtcbiAgICAgICAgZHJhZ1Bvc3NpYmxlID0gdHJ1ZTtcbiAgICAgICAgb2Zmc2V0LmNvcHkodGhpcy5wb3NpdGlvbi5jbG9uZSgpLnN1Yihtb3VzZS5wcm9qZWN0KCkpKTtcbiAgICAgIH0pO1xuXG4gICAgICBtb3VzZS5vbignbW91c2V1cCcsICgpID0+IHtkcmFnUG9zc2libGUgPSBmYWxzZX0pO1xuXG4gICAgICBtb3VzZS5vbignbW92ZScsICgpID0+IHtcbiAgICAgICAgaWYgKGRyYWdQb3NzaWJsZSkgdGhpcy5wb3NpdGlvbi5jb3B5KG1vdXNlLnByb2plY3QoKS5hZGQob2Zmc2V0KSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcmFnTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5tb3VzZSA9IG51bGw7XG4gIH1cblxuICBtYW5hZ2VyKG1hbmFnZXIpIHtcbiAgICBtYW5hZ2VyLmRlZmluZSgnZHJhZycpO1xuICAgIHRoaXMubW91c2UgPSBtYW5hZ2VyLnVzZSgnbW91c2UnKTtcbiAgfVxuXG4gIG1lc2goKSB7XG4gICAgcmV0dXJuIG5ldyBNZXNoRHJhZ01vZHVsZSh0aGlzLm1vdXNlKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIk1lc2hEcmFnTW9kdWxlIiwibW91c2UiLCJvZmZzZXQiLCJWZWN0b3IzIiwic2VsZiIsImRlZmVyIiwidHJhY2siLCJjb3B5IiwicG9zaXRpb24iLCJkcmFnUG9zc2libGUiLCJvbiIsImNsb25lIiwic3ViIiwicHJvamVjdCIsImFkZCIsIkRyYWdNb2R1bGUiLCJtYW5hZ2VyIiwiZGVmaW5lIiwidXNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BRU1BO0VBQ0osMEJBQVlDLEtBQVosRUFBbUI7RUFBQTs7RUFDakIsU0FBS0EsS0FBTCxHQUFhQSxLQUFiO0VBQ0EsU0FBS0MsTUFBTCxHQUFjLElBQUlDLGFBQUosRUFBZDtFQUNEOzs7O29DQUVhQyxNQUFNO0VBQUE7O0VBQ2xCLFdBQUtDLEtBQUwsQ0FBVyxZQUFNO0VBQUEsWUFDUkosS0FEUSxHQUNTRyxJQURULENBQ1JILEtBRFE7RUFBQSxZQUNEQyxNQURDLEdBQ1NFLElBRFQsQ0FDREYsTUFEQzs7RUFFZkQsY0FBTUssS0FBTixDQUFZLEtBQVo7O0VBRUFKLGVBQU9LLElBQVAsQ0FBWSxNQUFLQyxRQUFqQjs7RUFFQSxZQUFJQyxlQUFlLEtBQW5COztFQUVBLGNBQUtDLEVBQUwsQ0FBUSxXQUFSLEVBQXFCLFlBQU07RUFDekJELHlCQUFlLElBQWY7RUFDQVAsaUJBQU9LLElBQVAsQ0FBWSxNQUFLQyxRQUFMLENBQWNHLEtBQWQsR0FBc0JDLEdBQXRCLENBQTBCWCxNQUFNWSxPQUFOLEVBQTFCLENBQVo7RUFDRCxTQUhEOztFQUtBWixjQUFNUyxFQUFOLENBQVMsU0FBVCxFQUFvQixZQUFNO0VBQUNELHlCQUFlLEtBQWY7RUFBcUIsU0FBaEQ7O0VBRUFSLGNBQU1TLEVBQU4sQ0FBUyxNQUFULEVBQWlCLFlBQU07RUFDckIsY0FBSUQsWUFBSixFQUFrQixNQUFLRCxRQUFMLENBQWNELElBQWQsQ0FBbUJOLE1BQU1ZLE9BQU4sR0FBZ0JDLEdBQWhCLENBQW9CWixNQUFwQixDQUFuQjtFQUNuQixTQUZEO0VBR0QsT0FsQkQ7RUFtQkQ7Ozs7O01BR2tCYTtFQUNuQix3QkFBYztFQUFBOztFQUNaLFNBQUtkLEtBQUwsR0FBYSxJQUFiO0VBQ0Q7Ozs7OEJBRU9lLFVBQVM7RUFDZkEsZUFBUUMsTUFBUixDQUFlLE1BQWY7RUFDQSxXQUFLaEIsS0FBTCxHQUFhZSxTQUFRRSxHQUFSLENBQVksT0FBWixDQUFiO0VBQ0Q7Ozs2QkFFTTtFQUNMLGFBQU8sSUFBSWxCLGNBQUosQ0FBbUIsS0FBS0MsS0FBeEIsQ0FBUDtFQUNEOzs7Ozs7Ozs7OzsifQ==