mirror of
https://github.com/WhitestormJS/whs.js.git
synced 2026-01-18 16:03:24 +00:00
99 lines
5.5 KiB
JavaScript
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==
|