three-nebula 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/three-nebula.cjs +109 -0
- package/dist/three-nebula.cjs.map +1 -0
- package/dist/three-nebula.mjs +2968 -0
- package/dist/three-nebula.mjs.map +1 -0
- package/dist/three-nebula.umd.js +109 -0
- package/dist/three-nebula.umd.js.map +1 -0
- package/package.json +23 -47
- package/specs/01-emitter-hierarchy.md +200 -0
- package/specs/02-determinism-scrubbing.md +188 -0
- package/specs/03-sound-renderer.md +183 -0
- package/specs/04-schema-versioning.md +140 -0
- package/specs/05-content-addressed-assets.md +288 -0
- package/specs/README.md +80 -0
- package/build/cjs/behaviour/Alpha.js +0 -189
- package/build/cjs/behaviour/Attraction.js +0 -189
- package/build/cjs/behaviour/Behaviour.js +0 -253
- package/build/cjs/behaviour/Collision.js +0 -146
- package/build/cjs/behaviour/Color.js +0 -148
- package/build/cjs/behaviour/CrossZone.js +0 -141
- package/build/cjs/behaviour/Force.js +0 -126
- package/build/cjs/behaviour/Gravity.js +0 -78
- package/build/cjs/behaviour/RandomDrift.js +0 -153
- package/build/cjs/behaviour/Repulsion.js +0 -123
- package/build/cjs/behaviour/Rotate.js +0 -265
- package/build/cjs/behaviour/Scale.js +0 -177
- package/build/cjs/behaviour/Spring.js +0 -133
- package/build/cjs/behaviour/constants.js +0 -28
- package/build/cjs/behaviour/index.js +0 -112
- package/build/cjs/behaviour/types.js +0 -33
- package/build/cjs/constants/index.js +0 -61
- package/build/cjs/core/Particle.js +0 -390
- package/build/cjs/core/Pool.js +0 -203
- package/build/cjs/core/System.js +0 -366
- package/build/cjs/core/constants.js +0 -163
- package/build/cjs/core/fromJSON.js +0 -128
- package/build/cjs/core/fromJSONAsync.js +0 -239
- package/build/cjs/core/index.js +0 -32
- package/build/cjs/core/three/Euler.js +0 -233
- package/build/cjs/core/three/Math.js +0 -91
- package/build/cjs/core/three/Matrix4.js +0 -745
- package/build/cjs/core/three/Quaternion.js +0 -451
- package/build/cjs/core/three/Vector3.js +0 -464
- package/build/cjs/core/three/constants.js +0 -298
- package/build/cjs/core/three/index.js +0 -48
- package/build/cjs/core/types.js +0 -13
- package/build/cjs/debug/Debug.js +0 -209
- package/build/cjs/debug/constants.js +0 -19
- package/build/cjs/debug/index.js +0 -24
- package/build/cjs/debug/log.js +0 -38
- package/build/cjs/ease/index.js +0 -149
- package/build/cjs/emitter/Emitter.js +0 -798
- package/build/cjs/emitter/FollowEmitter.js +0 -146
- package/build/cjs/emitter/constants.js +0 -20
- package/build/cjs/emitter/index.js +0 -24
- package/build/cjs/emitter/types.js +0 -11
- package/build/cjs/events/EventDispatcher.js +0 -105
- package/build/cjs/events/constants.js +0 -23
- package/build/cjs/events/index.js +0 -27
- package/build/cjs/index.js +0 -151
- package/build/cjs/initializer/Body.js +0 -122
- package/build/cjs/initializer/BodySprite.js +0 -146
- package/build/cjs/initializer/Initializer.js +0 -109
- package/build/cjs/initializer/InitializerUtil.js +0 -54
- package/build/cjs/initializer/Life.js +0 -106
- package/build/cjs/initializer/Mass.js +0 -101
- package/build/cjs/initializer/Position.js +0 -152
- package/build/cjs/initializer/Radius.js +0 -118
- package/build/cjs/initializer/Rate.js +0 -150
- package/build/cjs/initializer/Rotation.js +0 -95
- package/build/cjs/initializer/Texture.js +0 -139
- package/build/cjs/initializer/Velocity/PolarVelocity.js +0 -102
- package/build/cjs/initializer/Velocity/RadialVelocity.js +0 -111
- package/build/cjs/initializer/Velocity/VectorVelocity.js +0 -108
- package/build/cjs/initializer/Velocity/Velocity.js +0 -94
- package/build/cjs/initializer/Velocity/index.js +0 -32
- package/build/cjs/initializer/constants.js +0 -43
- package/build/cjs/initializer/index.js +0 -108
- package/build/cjs/initializer/types.js +0 -37
- package/build/cjs/math/ArraySpan.js +0 -103
- package/build/cjs/math/Box.js +0 -46
- package/build/cjs/math/ColorSpan.js +0 -113
- package/build/cjs/math/MathUtils.js +0 -57
- package/build/cjs/math/Polar3D.js +0 -115
- package/build/cjs/math/Span.js +0 -88
- package/build/cjs/math/Vector3D.js +0 -76
- package/build/cjs/math/constants.js +0 -35
- package/build/cjs/math/index.js +0 -122
- package/build/cjs/math/integration.js +0 -59
- package/build/cjs/math/types.js +0 -19
- package/build/cjs/renderer/BaseRenderer.js +0 -108
- package/build/cjs/renderer/CustomRenderer.js +0 -65
- package/build/cjs/renderer/GPURenderer/Desktop/index.js +0 -371
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -13
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/index.js +0 -22
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -17
- package/build/cjs/renderer/GPURenderer/Mobile/index.js +0 -385
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -13
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/index.js +0 -22
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -15
- package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -58
- package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -93
- package/build/cjs/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -9
- package/build/cjs/renderer/GPURenderer/common/TextureAtlas/index.js +0 -221
- package/build/cjs/renderer/GPURenderer/common/constants.js +0 -22
- package/build/cjs/renderer/GPURenderer/common/index.js +0 -38
- package/build/cjs/renderer/GPURenderer/common/shaders/constants.js +0 -9
- package/build/cjs/renderer/GPURenderer/common/stores/Target.js +0 -45
- package/build/cjs/renderer/GPURenderer/common/stores/UniqueList.js +0 -51
- package/build/cjs/renderer/GPURenderer/common/stores/index.js +0 -22
- package/build/cjs/renderer/GPURenderer/index.js +0 -97
- package/build/cjs/renderer/MeshRenderer.js +0 -136
- package/build/cjs/renderer/SpriteRenderer.js +0 -68
- package/build/cjs/renderer/index.js +0 -40
- package/build/cjs/renderer/types.js +0 -21
- package/build/cjs/utils/ColorUtil.js +0 -39
- package/build/cjs/utils/PUID.js +0 -26
- package/build/cjs/utils/THREEUtil.js +0 -40
- package/build/cjs/utils/Util.js +0 -69
- package/build/cjs/utils/index.js +0 -61
- package/build/cjs/utils/uid.js +0 -12
- package/build/cjs/zone/BoxZone.js +0 -178
- package/build/cjs/zone/LineZone.js +0 -101
- package/build/cjs/zone/MeshZone.js +0 -101
- package/build/cjs/zone/PointZone.js +0 -99
- package/build/cjs/zone/ScreenZone.js +0 -164
- package/build/cjs/zone/SphereZone.js +0 -155
- package/build/cjs/zone/Zone.js +0 -172
- package/build/cjs/zone/index.js +0 -56
- package/build/cjs/zone/types.js +0 -21
- package/build/esm/behaviour/Alpha.js +0 -134
- package/build/esm/behaviour/Attraction.js +0 -135
- package/build/esm/behaviour/Behaviour.js +0 -215
- package/build/esm/behaviour/Collision.js +0 -100
- package/build/esm/behaviour/Color.js +0 -101
- package/build/esm/behaviour/CrossZone.js +0 -82
- package/build/esm/behaviour/Force.js +0 -83
- package/build/esm/behaviour/Gravity.js +0 -40
- package/build/esm/behaviour/RandomDrift.js +0 -97
- package/build/esm/behaviour/Repulsion.js +0 -81
- package/build/esm/behaviour/Rotate.js +0 -214
- package/build/esm/behaviour/Scale.js +0 -131
- package/build/esm/behaviour/Spring.js +0 -90
- package/build/esm/behaviour/constants.js +0 -11
- package/build/esm/behaviour/index.js +0 -14
- package/build/esm/behaviour/types.js +0 -14
- package/build/esm/constants/index.js +0 -42
- package/build/esm/core/Particle.js +0 -357
- package/build/esm/core/Pool.js +0 -161
- package/build/esm/core/System.js +0 -320
- package/build/esm/core/constants.js +0 -127
- package/build/esm/core/fromJSON.js +0 -107
- package/build/esm/core/fromJSONAsync.js +0 -210
- package/build/esm/core/index.js +0 -4
- package/build/esm/core/three/Euler.js +0 -224
- package/build/esm/core/three/Math.js +0 -84
- package/build/esm/core/three/Matrix4.js +0 -739
- package/build/esm/core/three/Quaternion.js +0 -445
- package/build/esm/core/three/Vector3.js +0 -457
- package/build/esm/core/three/constants.js +0 -148
- package/build/esm/core/three/index.js +0 -5
- package/build/esm/core/types.js +0 -4
- package/build/esm/debug/Debug.js +0 -195
- package/build/esm/debug/constants.js +0 -7
- package/build/esm/debug/index.js +0 -3
- package/build/esm/debug/log.js +0 -31
- package/build/esm/ease/index.js +0 -113
- package/build/esm/emitter/Emitter.js +0 -708
- package/build/esm/emitter/FollowEmitter.js +0 -97
- package/build/esm/emitter/constants.js +0 -7
- package/build/esm/emitter/index.js +0 -3
- package/build/esm/emitter/types.js +0 -3
- package/build/esm/events/EventDispatcher.js +0 -82
- package/build/esm/events/constants.js +0 -9
- package/build/esm/events/index.js +0 -4
- package/build/esm/index.js +0 -13
- package/build/esm/initializer/Body.js +0 -83
- package/build/esm/initializer/BodySprite.js +0 -108
- package/build/esm/initializer/Initializer.js +0 -84
- package/build/esm/initializer/InitializerUtil.js +0 -48
- package/build/esm/initializer/Life.js +0 -66
- package/build/esm/initializer/Mass.js +0 -60
- package/build/esm/initializer/Position.js +0 -98
- package/build/esm/initializer/Radius.js +0 -75
- package/build/esm/initializer/Rate.js +0 -107
- package/build/esm/initializer/Rotation.js +0 -54
- package/build/esm/initializer/Texture.js +0 -101
- package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
- package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
- package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
- package/build/esm/initializer/Velocity/Velocity.js +0 -52
- package/build/esm/initializer/Velocity/index.js +0 -4
- package/build/esm/initializer/constants.js +0 -26
- package/build/esm/initializer/index.js +0 -12
- package/build/esm/initializer/types.js +0 -16
- package/build/esm/math/ArraySpan.js +0 -62
- package/build/esm/math/Box.js +0 -25
- package/build/esm/math/ColorSpan.js +0 -71
- package/build/esm/math/MathUtils.js +0 -48
- package/build/esm/math/Polar3D.js +0 -81
- package/build/esm/math/Span.js +0 -63
- package/build/esm/math/Vector3D.js +0 -34
- package/build/esm/math/constants.js +0 -24
- package/build/esm/math/index.js +0 -10
- package/build/esm/math/integration.js +0 -47
- package/build/esm/math/types.js +0 -7
- package/build/esm/renderer/BaseRenderer.js +0 -78
- package/build/esm/renderer/CustomRenderer.js +0 -23
- package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -357
- package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -30
- package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
- package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -36
- package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -375
- package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -27
- package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
- package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -33
- package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -30
- package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
- package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
- package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
- package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
- package/build/esm/renderer/GPURenderer/common/index.js +0 -4
- package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
- package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -26
- package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
- package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
- package/build/esm/renderer/GPURenderer/index.js +0 -57
- package/build/esm/renderer/MeshRenderer.js +0 -93
- package/build/esm/renderer/SpriteRenderer.js +0 -30
- package/build/esm/renderer/index.js +0 -5
- package/build/esm/renderer/types.js +0 -8
- package/build/esm/utils/ColorUtil.js +0 -32
- package/build/esm/utils/PUID.js +0 -19
- package/build/esm/utils/THREEUtil.js +0 -31
- package/build/esm/utils/Util.js +0 -60
- package/build/esm/utils/index.js +0 -13
- package/build/esm/utils/uid.js +0 -3
- package/build/esm/zone/BoxZone.js +0 -133
- package/build/esm/zone/LineZone.js +0 -61
- package/build/esm/zone/MeshZone.js +0 -60
- package/build/esm/zone/PointZone.js +0 -59
- package/build/esm/zone/ScreenZone.js +0 -116
- package/build/esm/zone/SphereZone.js +0 -113
- package/build/esm/zone/Zone.js +0 -141
- package/build/esm/zone/index.js +0 -7
- package/build/esm/zone/types.js +0 -8
- package/build/three-nebula.js +0 -2
- package/build/three-nebula.js.map +0 -1
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
|
-
var _Force2 = _interopRequireDefault(require("./Force"));
|
|
21
|
-
|
|
22
|
-
var _ease = require("../ease");
|
|
23
|
-
|
|
24
|
-
var _types = require("./types");
|
|
25
|
-
|
|
26
|
-
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); }; }
|
|
27
|
-
|
|
28
|
-
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; } }
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Behaviour that forces particles down the y axis.
|
|
32
|
-
*
|
|
33
|
-
*/
|
|
34
|
-
var Gravity = /*#__PURE__*/function (_Force) {
|
|
35
|
-
(0, _inherits2["default"])(Gravity, _Force);
|
|
36
|
-
|
|
37
|
-
var _super = _createSuper(Gravity);
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Constructs a Gravity behaviour instance.
|
|
41
|
-
*
|
|
42
|
-
* @param {number} gravity - the force to pull the particle down the y axis
|
|
43
|
-
* @param {number} life - the life of the particle
|
|
44
|
-
* @param {string} easing - the easing equation to use
|
|
45
|
-
* @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not
|
|
46
|
-
* @return void
|
|
47
|
-
*/
|
|
48
|
-
function Gravity(gravity, life, easing) {
|
|
49
|
-
var _this;
|
|
50
|
-
|
|
51
|
-
var isEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
52
|
-
(0, _classCallCheck2["default"])(this, Gravity);
|
|
53
|
-
_this = _super.call(this, 0, -gravity, 0, life, easing, isEnabled);
|
|
54
|
-
/**
|
|
55
|
-
* @desc The class type.
|
|
56
|
-
* @type {string}
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
_this.type = _types.BEHAVIOUR_TYPE_GRAVITY;
|
|
60
|
-
return _this;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
(0, _createClass2["default"])(Gravity, null, [{
|
|
64
|
-
key: "fromJSON",
|
|
65
|
-
value: function fromJSON(json) {
|
|
66
|
-
var gravity = json.gravity,
|
|
67
|
-
life = json.life,
|
|
68
|
-
easing = json.easing,
|
|
69
|
-
_json$isEnabled = json.isEnabled,
|
|
70
|
-
isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
|
|
71
|
-
return new Gravity(gravity, life, (0, _ease.getEasingByName)(easing), isEnabled);
|
|
72
|
-
}
|
|
73
|
-
}]);
|
|
74
|
-
return Gravity;
|
|
75
|
-
}(_Force2["default"]);
|
|
76
|
-
|
|
77
|
-
exports["default"] = Gravity;
|
|
78
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvR3Jhdml0eS5qcyJdLCJuYW1lcyI6WyJHcmF2aXR5IiwiZ3Jhdml0eSIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJ0eXBlIiwianNvbiIsIkZvcmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ3FCQSxPOzs7OztBQUNuQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRSxtQkFBWUMsT0FBWixFQUFxQkMsSUFBckIsRUFBMkJDLE1BQTNCLEVBQXFEO0FBQUE7O0FBQUEsUUFBbEJDLFNBQWtCLHVFQUFOLElBQU07QUFBQTtBQUNuRCw4QkFBTSxDQUFOLEVBQVMsQ0FBQ0gsT0FBVixFQUFtQixDQUFuQixFQUFzQkMsSUFBdEIsRUFBNEJDLE1BQTVCLEVBQW9DQyxTQUFwQztBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFVBQUtDLElBQUwsR0FBWUEsNkJBQVo7QUFQbUQ7QUFRcEQ7Ozs7NkJBRWVDLEksRUFBTTtBQUFBLFVBQ1pMLE9BRFksR0FDZ0NLLElBRGhDLENBQ1pMLE9BRFk7QUFBQSxVQUNIQyxJQURHLEdBQ2dDSSxJQURoQyxDQUNISixJQURHO0FBQUEsVUFDR0MsTUFESCxHQUNnQ0csSUFEaEMsQ0FDR0gsTUFESDtBQUFBLDRCQUNnQ0csSUFEaEMsQ0FDV0YsU0FEWDtBQUFBLFVBQ1dBLFNBRFgsZ0NBQ3VCLElBRHZCO0FBR3BCLGFBQU8sSUFBSUosT0FBSixDQUFZQyxPQUFaLEVBQXFCQyxJQUFyQixFQUEyQiwyQkFBZ0JDLE1BQWhCLENBQTNCLEVBQW9EQyxTQUFwRCxDQUFQO0FBQ0Q7OztFQXhCa0NHLGtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZvcmNlIGZyb20gJy4vRm9yY2UnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9HUkFWSVRZIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBmb3JjZXMgcGFydGljbGVzIGRvd24gdGhlIHkgYXhpcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdyYXZpdHkgZXh0ZW5kcyBGb3JjZSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgR3Jhdml0eSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBncmF2aXR5IC0gdGhlIGZvcmNlIHRvIHB1bGwgdGhlIHBhcnRpY2xlIGRvd24gdGhlIHkgYXhpc1xuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIHRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZWFzaW5nIC0gdGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2VcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihncmF2aXR5LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcigwLCAtZ3Jhdml0eSwgMCwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IGdyYXZpdHksIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgR3Jhdml0eShncmF2aXR5LCBsaWZlLCBnZXRFYXNpbmdCeU5hbWUoZWFzaW5nKSwgaXNFbmFibGVkKTtcbiAgfVxufVxuIl19
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _math = require("../math");
|
|
23
|
-
|
|
24
|
-
var _Behaviour2 = _interopRequireDefault(require("./Behaviour"));
|
|
25
|
-
|
|
26
|
-
var _constants = require("./constants");
|
|
27
|
-
|
|
28
|
-
var _ease = require("../ease");
|
|
29
|
-
|
|
30
|
-
var _types = require("./types");
|
|
31
|
-
|
|
32
|
-
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); }; }
|
|
33
|
-
|
|
34
|
-
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; } }
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Behaviour that causes particles to drift to random coordinates in 3D space.
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
var RandomDrift = /*#__PURE__*/function (_Behaviour) {
|
|
41
|
-
(0, _inherits2["default"])(RandomDrift, _Behaviour);
|
|
42
|
-
|
|
43
|
-
var _super = _createSuper(RandomDrift);
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Constructs a RandomDrift behaviour instance.
|
|
47
|
-
*
|
|
48
|
-
* @param {number} driftX - x axis drift
|
|
49
|
-
* @param {number} driftY - y axis drift
|
|
50
|
-
* @param {number} driftZ - z axis drift
|
|
51
|
-
* @param {number} [delay=DEFAULT_RANDOM_DRIFT_DELAY] - drift delay
|
|
52
|
-
* @param {number} life - The life of the particle
|
|
53
|
-
* @param {function} easing - The behaviour's decaying trend
|
|
54
|
-
* @return void
|
|
55
|
-
*/
|
|
56
|
-
function RandomDrift(driftX, driftY, driftZ) {
|
|
57
|
-
var _this;
|
|
58
|
-
|
|
59
|
-
var delay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.DEFAULT_RANDOM_DRIFT_DELAY;
|
|
60
|
-
var life = arguments.length > 4 ? arguments[4] : undefined;
|
|
61
|
-
var easing = arguments.length > 5 ? arguments[5] : undefined;
|
|
62
|
-
var isEnabled = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : true;
|
|
63
|
-
(0, _classCallCheck2["default"])(this, RandomDrift);
|
|
64
|
-
_this = _super.call(this, life, easing, _types.BEHAVIOUR_TYPE_RANDOM_DRIFT, isEnabled);
|
|
65
|
-
|
|
66
|
-
_this.reset(driftX, driftY, driftZ, delay);
|
|
67
|
-
/**
|
|
68
|
-
* @desc Internal time used for calculating drift vs internal delay.
|
|
69
|
-
* @type {number}
|
|
70
|
-
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
_this.time = 0;
|
|
74
|
-
return _this;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Resets the behaviour properties.
|
|
78
|
-
*
|
|
79
|
-
* @param {number} driftX - x axis drift
|
|
80
|
-
* @param {number} driftY - y axis drift
|
|
81
|
-
* @param {number} driftZ - z axis drift
|
|
82
|
-
* @param {number} [delay=DEFAULT_RANDOM_DRIFT_DELAY] - drift delay
|
|
83
|
-
* @param {number} life - The life of the particle
|
|
84
|
-
* @param {function} easing - The behaviour's decaying trend
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
(0, _createClass2["default"])(RandomDrift, [{
|
|
89
|
-
key: "reset",
|
|
90
|
-
value: function reset(driftX, driftY, driftZ) {
|
|
91
|
-
var delay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.DEFAULT_RANDOM_DRIFT_DELAY;
|
|
92
|
-
var life = arguments.length > 4 ? arguments[4] : undefined;
|
|
93
|
-
var easing = arguments.length > 5 ? arguments[5] : undefined;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* @desc A Vector3D that stores the drift properties.
|
|
97
|
-
* @type {Vector3D}
|
|
98
|
-
*/
|
|
99
|
-
this.randomForce = this.normalizeForce(new _math.Vector3D(driftX, driftY, driftZ));
|
|
100
|
-
/**
|
|
101
|
-
* @desc A Span containing the delay supplied.
|
|
102
|
-
* @type {Span}
|
|
103
|
-
*/
|
|
104
|
-
|
|
105
|
-
this.delayPan = (0, _math.createSpan)(delay);
|
|
106
|
-
this.time = 0;
|
|
107
|
-
life && (0, _get2["default"])((0, _getPrototypeOf2["default"])(RandomDrift.prototype), "reset", this).call(this, life, easing);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Mutates the particle.acceleration property.
|
|
111
|
-
*
|
|
112
|
-
* @param {object} particle - the particle to apply the behaviour to
|
|
113
|
-
* @param {number} time - engine time
|
|
114
|
-
* @param {integer} index - the particle index
|
|
115
|
-
* @return void
|
|
116
|
-
*/
|
|
117
|
-
|
|
118
|
-
}, {
|
|
119
|
-
key: "mutate",
|
|
120
|
-
value: function mutate(particle, time, index) {
|
|
121
|
-
this.energize(particle, time, index);
|
|
122
|
-
this.time += time;
|
|
123
|
-
|
|
124
|
-
if (this.time >= this.delayPan.getValue()) {
|
|
125
|
-
var ax = _math.MathUtils.randomAToB(-this.randomForce.x, this.randomForce.x);
|
|
126
|
-
|
|
127
|
-
var ay = _math.MathUtils.randomAToB(-this.randomForce.y, this.randomForce.y);
|
|
128
|
-
|
|
129
|
-
var az = _math.MathUtils.randomAToB(-this.randomForce.z, this.randomForce.z);
|
|
130
|
-
|
|
131
|
-
particle.acceleration.addValue(ax, ay, az);
|
|
132
|
-
this.time = 0;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}], [{
|
|
136
|
-
key: "fromJSON",
|
|
137
|
-
value: function fromJSON(json) {
|
|
138
|
-
var x = json.x,
|
|
139
|
-
y = json.y,
|
|
140
|
-
z = json.z,
|
|
141
|
-
delay = json.delay,
|
|
142
|
-
life = json.life,
|
|
143
|
-
easing = json.easing,
|
|
144
|
-
_json$isEnabled = json.isEnabled,
|
|
145
|
-
isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
|
|
146
|
-
return new RandomDrift(x, y, z, delay, life, (0, _ease.getEasingByName)(easing), isEnabled);
|
|
147
|
-
}
|
|
148
|
-
}]);
|
|
149
|
-
return RandomDrift;
|
|
150
|
-
}(_Behaviour2["default"]);
|
|
151
|
-
|
|
152
|
-
exports["default"] = RandomDrift;
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUmFuZG9tRHJpZnQuanMiXSwibmFtZXMiOlsiUmFuZG9tRHJpZnQiLCJkcmlmdFgiLCJkcmlmdFkiLCJkcmlmdFoiLCJkZWxheSIsIkRFRkFVTFRfUkFORE9NX0RSSUZUX0RFTEFZIiwibGlmZSIsImVhc2luZyIsImlzRW5hYmxlZCIsInR5cGUiLCJyZXNldCIsInRpbWUiLCJyYW5kb21Gb3JjZSIsIm5vcm1hbGl6ZUZvcmNlIiwiVmVjdG9yM0QiLCJkZWxheVBhbiIsInBhcnRpY2xlIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsImdldFZhbHVlIiwiYXgiLCJNYXRoVXRpbHMiLCJyYW5kb21BVG9CIiwieCIsImF5IiwieSIsImF6IiwieiIsImFjY2VsZXJhdGlvbiIsImFkZFZhbHVlIiwianNvbiIsIkJlaGF2aW91ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ3FCQSxXOzs7OztBQUNuQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0UsdUJBQ0VDLE1BREYsRUFFRUMsTUFGRixFQUdFQyxNQUhGLEVBUUU7QUFBQTs7QUFBQSxRQUpBQyxLQUlBLHVFQUpRQyxxQ0FJUjtBQUFBLFFBSEFDLElBR0E7QUFBQSxRQUZBQyxNQUVBO0FBQUEsUUFEQUMsU0FDQSx1RUFEWSxJQUNaO0FBQUE7QUFDQSw4QkFBTUYsSUFBTixFQUFZQyxNQUFaLEVBQW9CRSxrQ0FBcEIsRUFBMEJELFNBQTFCOztBQUVBLFVBQUtFLEtBQUwsQ0FBV1QsTUFBWCxFQUFtQkMsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxLQUFuQztBQUVBO0FBQ0o7QUFDQTtBQUNBOzs7QUFDSSxVQUFLTyxJQUFMLEdBQVksQ0FBWjtBQVRBO0FBVUQ7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7MEJBRUlWLE0sRUFDQUMsTSxFQUNBQyxNLEVBSUE7QUFBQSxVQUhBQyxLQUdBLHVFQUhRQyxxQ0FHUjtBQUFBLFVBRkFDLElBRUE7QUFBQSxVQURBQyxNQUNBOztBQUNBO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksV0FBS0ssV0FBTCxHQUFtQixLQUFLQyxjQUFMLENBQ2pCLElBQUlDLGNBQUosQ0FBYWIsTUFBYixFQUFxQkMsTUFBckIsRUFBNkJDLE1BQTdCLENBRGlCLENBQW5CO0FBR0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksV0FBS1ksUUFBTCxHQUFnQixzQkFBV1gsS0FBWCxDQUFoQjtBQUNBLFdBQUtPLElBQUwsR0FBWSxDQUFaO0FBRUFMLE1BQUFBLElBQUksNkdBQWdCQSxJQUFoQixFQUFzQkMsTUFBdEIsQ0FBSjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OzsyQkFDU1MsUSxFQUFVTCxJLEVBQU1NLEssRUFBTztBQUM1QixXQUFLQyxRQUFMLENBQWNGLFFBQWQsRUFBd0JMLElBQXhCLEVBQThCTSxLQUE5QjtBQUVBLFdBQUtOLElBQUwsSUFBYUEsSUFBYjs7QUFFQSxVQUFJLEtBQUtBLElBQUwsSUFBYSxLQUFLSSxRQUFMLENBQWNJLFFBQWQsRUFBakIsRUFBMkM7QUFDekMsWUFBTUMsRUFBRSxHQUFHQyxnQkFBVUMsVUFBVixDQUFxQixDQUFDLEtBQUtWLFdBQUwsQ0FBaUJXLENBQXZDLEVBQTBDLEtBQUtYLFdBQUwsQ0FBaUJXLENBQTNELENBQVg7O0FBQ0EsWUFBTUMsRUFBRSxHQUFHSCxnQkFBVUMsVUFBVixDQUFxQixDQUFDLEtBQUtWLFdBQUwsQ0FBaUJhLENBQXZDLEVBQTBDLEtBQUtiLFdBQUwsQ0FBaUJhLENBQTNELENBQVg7O0FBQ0EsWUFBTUMsRUFBRSxHQUFHTCxnQkFBVUMsVUFBVixDQUFxQixDQUFDLEtBQUtWLFdBQUwsQ0FBaUJlLENBQXZDLEVBQTBDLEtBQUtmLFdBQUwsQ0FBaUJlLENBQTNELENBQVg7O0FBRUFYLFFBQUFBLFFBQVEsQ0FBQ1ksWUFBVCxDQUFzQkMsUUFBdEIsQ0FBK0JULEVBQS9CLEVBQW1DSSxFQUFuQyxFQUF1Q0UsRUFBdkM7QUFFQSxhQUFLZixJQUFMLEdBQVksQ0FBWjtBQUNEO0FBQ0Y7Ozs2QkFFZW1CLEksRUFBTTtBQUFBLFVBQ1pQLENBRFksR0FDdUNPLElBRHZDLENBQ1pQLENBRFk7QUFBQSxVQUNURSxDQURTLEdBQ3VDSyxJQUR2QyxDQUNUTCxDQURTO0FBQUEsVUFDTkUsQ0FETSxHQUN1Q0csSUFEdkMsQ0FDTkgsQ0FETTtBQUFBLFVBQ0h2QixLQURHLEdBQ3VDMEIsSUFEdkMsQ0FDSDFCLEtBREc7QUFBQSxVQUNJRSxJQURKLEdBQ3VDd0IsSUFEdkMsQ0FDSXhCLElBREo7QUFBQSxVQUNVQyxNQURWLEdBQ3VDdUIsSUFEdkMsQ0FDVXZCLE1BRFY7QUFBQSw0QkFDdUN1QixJQUR2QyxDQUNrQnRCLFNBRGxCO0FBQUEsVUFDa0JBLFNBRGxCLGdDQUM4QixJQUQ5QjtBQUdwQixhQUFPLElBQUlSLFdBQUosQ0FDTHVCLENBREssRUFFTEUsQ0FGSyxFQUdMRSxDQUhLLEVBSUx2QixLQUpLLEVBS0xFLElBTEssRUFNTCwyQkFBZ0JDLE1BQWhCLENBTkssRUFPTEMsU0FQSyxDQUFQO0FBU0Q7OztFQXZHc0N1QixzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdGhVdGlscywgVmVjdG9yM0QsIGNyZWF0ZVNwYW4gfSBmcm9tICcuLi9tYXRoJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfUkFORE9NX0RSSUZUIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBjYXVzZXMgcGFydGljbGVzIHRvIGRyaWZ0IHRvIHJhbmRvbSBjb29yZGluYXRlcyBpbiAzRCBzcGFjZS5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhbmRvbURyaWZ0IGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBSYW5kb21EcmlmdCBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkcmlmdFggLSB4IGF4aXMgZHJpZnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRyaWZ0WSAtIHkgYXhpcyBkcmlmdFxuICAgKiBAcGFyYW0ge251bWJlcn0gZHJpZnRaIC0geiBheGlzIGRyaWZ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGVsYXk9REVGQVVMVF9SQU5ET01fRFJJRlRfREVMQVldIC0gZHJpZnQgZGVsYXlcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgZHJpZnRYLFxuICAgIGRyaWZ0WSxcbiAgICBkcmlmdFosXG4gICAgZGVsYXkgPSBERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWSxcbiAgICBsaWZlLFxuICAgIGVhc2luZyxcbiAgICBpc0VuYWJsZWQgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKGxpZmUsIGVhc2luZywgdHlwZSwgaXNFbmFibGVkKTtcblxuICAgIHRoaXMucmVzZXQoZHJpZnRYLCBkcmlmdFksIGRyaWZ0WiwgZGVsYXkpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgSW50ZXJuYWwgdGltZSB1c2VkIGZvciBjYWxjdWxhdGluZyBkcmlmdCB2cyBpbnRlcm5hbCBkZWxheS5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMudGltZSA9IDA7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBiZWhhdmlvdXIgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRyaWZ0WCAtIHggYXhpcyBkcmlmdFxuICAgKiBAcGFyYW0ge251bWJlcn0gZHJpZnRZIC0geSBheGlzIGRyaWZ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkcmlmdFogLSB6IGF4aXMgZHJpZnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtkZWxheT1ERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWV0gLSBkcmlmdCBkZWxheVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICovXG4gIHJlc2V0KFxuICAgIGRyaWZ0WCxcbiAgICBkcmlmdFksXG4gICAgZHJpZnRaLFxuICAgIGRlbGF5ID0gREVGQVVMVF9SQU5ET01fRFJJRlRfREVMQVksXG4gICAgbGlmZSxcbiAgICBlYXNpbmdcbiAgKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgQSBWZWN0b3IzRCB0aGF0IHN0b3JlcyB0aGUgZHJpZnQgcHJvcGVydGllcy5cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5yYW5kb21Gb3JjZSA9IHRoaXMubm9ybWFsaXplRm9yY2UoXG4gICAgICBuZXcgVmVjdG9yM0QoZHJpZnRYLCBkcmlmdFksIGRyaWZ0WilcbiAgICApO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIEEgU3BhbiBjb250YWluaW5nIHRoZSBkZWxheSBzdXBwbGllZC5cbiAgICAgKiBAdHlwZSB7U3Bhbn1cbiAgICAgKi9cbiAgICB0aGlzLmRlbGF5UGFuID0gY3JlYXRlU3BhbihkZWxheSk7XG4gICAgdGhpcy50aW1lID0gMDtcblxuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXRhdGVzIHRoZSBwYXJ0aWNsZS5hY2NlbGVyYXRpb24gcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICB0aGlzLnRpbWUgKz0gdGltZTtcblxuICAgIGlmICh0aGlzLnRpbWUgPj0gdGhpcy5kZWxheVBhbi5nZXRWYWx1ZSgpKSB7XG4gICAgICBjb25zdCBheCA9IE1hdGhVdGlscy5yYW5kb21BVG9CKC10aGlzLnJhbmRvbUZvcmNlLngsIHRoaXMucmFuZG9tRm9yY2UueCk7XG4gICAgICBjb25zdCBheSA9IE1hdGhVdGlscy5yYW5kb21BVG9CKC10aGlzLnJhbmRvbUZvcmNlLnksIHRoaXMucmFuZG9tRm9yY2UueSk7XG4gICAgICBjb25zdCBheiA9IE1hdGhVdGlscy5yYW5kb21BVG9CKC10aGlzLnJhbmRvbUZvcmNlLnosIHRoaXMucmFuZG9tRm9yY2Uueik7XG5cbiAgICAgIHBhcnRpY2xlLmFjY2VsZXJhdGlvbi5hZGRWYWx1ZShheCwgYXksIGF6KTtcblxuICAgICAgdGhpcy50aW1lID0gMDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgeCwgeSwgeiwgZGVsYXksIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgUmFuZG9tRHJpZnQoXG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIHosXG4gICAgICBkZWxheSxcbiAgICAgIGxpZmUsXG4gICAgICBnZXRFYXNpbmdCeU5hbWUoZWFzaW5nKSxcbiAgICAgIGlzRW5hYmxlZFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _Attraction2 = _interopRequireDefault(require("./Attraction"));
|
|
23
|
-
|
|
24
|
-
var _math = require("../math");
|
|
25
|
-
|
|
26
|
-
var _ease = require("../ease");
|
|
27
|
-
|
|
28
|
-
var _types = require("./types");
|
|
29
|
-
|
|
30
|
-
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); }; }
|
|
31
|
-
|
|
32
|
-
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; } }
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Behaviour that causes particles to be repelled from a target position.
|
|
36
|
-
*
|
|
37
|
-
*/
|
|
38
|
-
var Repulsion = /*#__PURE__*/function (_Attraction) {
|
|
39
|
-
(0, _inherits2["default"])(Repulsion, _Attraction);
|
|
40
|
-
|
|
41
|
-
var _super = _createSuper(Repulsion);
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Constructs an Repulsion behaviour instance.
|
|
45
|
-
*
|
|
46
|
-
* @param {Vector3D} targetPosition - The position the particles will be repelled from
|
|
47
|
-
* @param {number} force - The repulsion force scalar multiplier
|
|
48
|
-
* @param {number} radius - The repulsion radius
|
|
49
|
-
* @param {number} life - The life of the particle
|
|
50
|
-
* @param {function} easing - The behaviour's decaying trend
|
|
51
|
-
* @return void
|
|
52
|
-
*/
|
|
53
|
-
function Repulsion(targetPosition, force, radius, life, easing) {
|
|
54
|
-
var _this;
|
|
55
|
-
|
|
56
|
-
var isEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
|
57
|
-
(0, _classCallCheck2["default"])(this, Repulsion);
|
|
58
|
-
_this = _super.call(this, targetPosition, force, radius, life, easing, isEnabled);
|
|
59
|
-
/**
|
|
60
|
-
* @desc Repulsion is attraction with negative force.
|
|
61
|
-
* @type {number}
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
_this.force *= -1;
|
|
65
|
-
/**
|
|
66
|
-
* @desc The class type.
|
|
67
|
-
* @type {string}
|
|
68
|
-
*/
|
|
69
|
-
|
|
70
|
-
_this.type = _types.BEHAVIOUR_TYPE_REPULSION;
|
|
71
|
-
return _this;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Resets the behaviour properties.
|
|
75
|
-
*
|
|
76
|
-
* @param {Vector3D} targetPosition - the position the particles will be attracted to
|
|
77
|
-
* @param {number} force - the attraction force multiplier
|
|
78
|
-
* @param {number} radius - the attraction radius
|
|
79
|
-
* @param {number} life - the life of the particle
|
|
80
|
-
* @param {function} easing - The behaviour's decaying trend
|
|
81
|
-
* @return void
|
|
82
|
-
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
(0, _createClass2["default"])(Repulsion, [{
|
|
86
|
-
key: "reset",
|
|
87
|
-
value: function reset(targetPosition, force, radius, life, easing) {
|
|
88
|
-
(0, _get2["default"])((0, _getPrototypeOf2["default"])(Repulsion.prototype), "reset", this).call(this, targetPosition, force, radius, life, easing);
|
|
89
|
-
this.force *= -1;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Creates a Body initializer from JSON.
|
|
93
|
-
*
|
|
94
|
-
* @param {object} json - The JSON to construct the instance from.
|
|
95
|
-
* @property {number} json.x - The target position x value
|
|
96
|
-
* @property {number} json.y - The target position y value
|
|
97
|
-
* @property {number} json.z - The target position z value
|
|
98
|
-
* @property {number} json.force - The attraction force scalar multiplier
|
|
99
|
-
* @property {number} json.life - The life of the particle
|
|
100
|
-
* @property {string} json.easing - The behaviour's decaying trend
|
|
101
|
-
* @return {Body}
|
|
102
|
-
*/
|
|
103
|
-
|
|
104
|
-
}], [{
|
|
105
|
-
key: "fromJSON",
|
|
106
|
-
value: function fromJSON(json) {
|
|
107
|
-
var x = json.x,
|
|
108
|
-
y = json.y,
|
|
109
|
-
z = json.z,
|
|
110
|
-
force = json.force,
|
|
111
|
-
radius = json.radius,
|
|
112
|
-
life = json.life,
|
|
113
|
-
easing = json.easing,
|
|
114
|
-
_json$isEnabled = json.isEnabled,
|
|
115
|
-
isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
|
|
116
|
-
return new Repulsion(new _math.Vector3D(x, y, z), force, radius, life, (0, _ease.getEasingByName)(easing), isEnabled);
|
|
117
|
-
}
|
|
118
|
-
}]);
|
|
119
|
-
return Repulsion;
|
|
120
|
-
}(_Attraction2["default"]);
|
|
121
|
-
|
|
122
|
-
exports["default"] = Repulsion;
|
|
123
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUmVwdWxzaW9uLmpzIl0sIm5hbWVzIjpbIlJlcHVsc2lvbiIsInRhcmdldFBvc2l0aW9uIiwiZm9yY2UiLCJyYWRpdXMiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwidHlwZSIsImpzb24iLCJ4IiwieSIsInoiLCJWZWN0b3IzRCIsIkF0dHJhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNxQkEsUzs7Ozs7QUFDbkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRSxxQkFBWUMsY0FBWixFQUE0QkMsS0FBNUIsRUFBbUNDLE1BQW5DLEVBQTJDQyxJQUEzQyxFQUFpREMsTUFBakQsRUFBMkU7QUFBQTs7QUFBQSxRQUFsQkMsU0FBa0IsdUVBQU4sSUFBTTtBQUFBO0FBQ3pFLDhCQUFNTCxjQUFOLEVBQXNCQyxLQUF0QixFQUE2QkMsTUFBN0IsRUFBcUNDLElBQXJDLEVBQTJDQyxNQUEzQyxFQUFtREMsU0FBbkQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxVQUFLSixLQUFMLElBQWMsQ0FBQyxDQUFmO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksVUFBS0ssSUFBTCxHQUFZQSwrQkFBWjtBQWJ5RTtBQWMxRTtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzswQkFDUU4sYyxFQUFnQkMsSyxFQUFPQyxNLEVBQVFDLEksRUFBTUMsTSxFQUFRO0FBQ2pELDZHQUFZSixjQUFaLEVBQTRCQyxLQUE1QixFQUFtQ0MsTUFBbkMsRUFBMkNDLElBQTNDLEVBQWlEQyxNQUFqRDtBQUNBLFdBQUtILEtBQUwsSUFBYyxDQUFDLENBQWY7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs2QkFDa0JNLEksRUFBTTtBQUFBLFVBQ1pDLENBRFksR0FDK0NELElBRC9DLENBQ1pDLENBRFk7QUFBQSxVQUNUQyxDQURTLEdBQytDRixJQUQvQyxDQUNURSxDQURTO0FBQUEsVUFDTkMsQ0FETSxHQUMrQ0gsSUFEL0MsQ0FDTkcsQ0FETTtBQUFBLFVBQ0hULEtBREcsR0FDK0NNLElBRC9DLENBQ0hOLEtBREc7QUFBQSxVQUNJQyxNQURKLEdBQytDSyxJQUQvQyxDQUNJTCxNQURKO0FBQUEsVUFDWUMsSUFEWixHQUMrQ0ksSUFEL0MsQ0FDWUosSUFEWjtBQUFBLFVBQ2tCQyxNQURsQixHQUMrQ0csSUFEL0MsQ0FDa0JILE1BRGxCO0FBQUEsNEJBQytDRyxJQUQvQyxDQUMwQkYsU0FEMUI7QUFBQSxVQUMwQkEsU0FEMUIsZ0NBQ3NDLElBRHRDO0FBR3BCLGFBQU8sSUFBSU4sU0FBSixDQUNMLElBQUlZLGNBQUosQ0FBYUgsQ0FBYixFQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBREssRUFFTFQsS0FGSyxFQUdMQyxNQUhLLEVBSUxDLElBSkssRUFLTCwyQkFBZ0JDLE1BQWhCLENBTEssRUFNTEMsU0FOSyxDQUFQO0FBUUQ7OztFQWpFb0NPLHVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF0dHJhY3Rpb24gZnJvbSAnLi9BdHRyYWN0aW9uJztcbmltcG9ydCB7IFZlY3RvcjNEIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX1JFUFVMU0lPTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG4vKipcbiAqIEJlaGF2aW91ciB0aGF0IGNhdXNlcyBwYXJ0aWNsZXMgdG8gYmUgcmVwZWxsZWQgZnJvbSBhIHRhcmdldCBwb3NpdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcHVsc2lvbiBleHRlbmRzIEF0dHJhY3Rpb24ge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBSZXB1bHNpb24gYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB0YXJnZXRQb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0aGUgcGFydGljbGVzIHdpbGwgYmUgcmVwZWxsZWQgZnJvbVxuICAgKiBAcGFyYW0ge251bWJlcn0gZm9yY2UgLSBUaGUgcmVwdWxzaW9uIGZvcmNlIHNjYWxhciBtdWx0aXBsaWVyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcmVwdWxzaW9uIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YXJnZXRQb3NpdGlvbiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodGFyZ2V0UG9zaXRpb24sIGZvcmNlLCByYWRpdXMsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFJlcHVsc2lvbiBpcyBhdHRyYWN0aW9uIHdpdGggbmVnYXRpdmUgZm9yY2UuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmZvcmNlICo9IC0xO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7VmVjdG9yM0R9IHRhcmdldFBvc2l0aW9uIC0gdGhlIHBvc2l0aW9uIHRoZSBwYXJ0aWNsZXMgd2lsbCBiZSBhdHRyYWN0ZWQgdG9cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZvcmNlIC0gdGhlIGF0dHJhY3Rpb24gZm9yY2UgbXVsdGlwbGllclxuICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gdGhlIGF0dHJhY3Rpb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHRhcmdldFBvc2l0aW9uLCBmb3JjZSwgcmFkaXVzLCBsaWZlLCBlYXNpbmcpIHtcbiAgICBzdXBlci5yZXNldCh0YXJnZXRQb3NpdGlvbiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nKTtcbiAgICB0aGlzLmZvcmNlICo9IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBCb2R5IGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnggLSBUaGUgdGFyZ2V0IHBvc2l0aW9uIHggdmFsdWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ueSAtIFRoZSB0YXJnZXQgcG9zaXRpb24geSB2YWx1ZVxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi56IC0gVGhlIHRhcmdldCBwb3NpdGlvbiB6IHZhbHVlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmZvcmNlIC0gVGhlIGF0dHJhY3Rpb24gZm9yY2Ugc2NhbGFyIG11bHRpcGxpZXJcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30ganNvbi5lYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB4LCB5LCB6LCBmb3JjZSwgcmFkaXVzLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJlcHVsc2lvbihcbiAgICAgIG5ldyBWZWN0b3IzRCh4LCB5LCB6KSxcbiAgICAgIGZvcmNlLFxuICAgICAgcmFkaXVzLFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _constants = require("../constants");
|
|
23
|
-
|
|
24
|
-
var _math = require("../math");
|
|
25
|
-
|
|
26
|
-
var _Behaviour2 = _interopRequireDefault(require("./Behaviour"));
|
|
27
|
-
|
|
28
|
-
var _ease = require("../ease");
|
|
29
|
-
|
|
30
|
-
var _types = require("./types");
|
|
31
|
-
|
|
32
|
-
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); }; }
|
|
33
|
-
|
|
34
|
-
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; } }
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Behaviour that rotates particles.
|
|
38
|
-
*/
|
|
39
|
-
var Rotate = /*#__PURE__*/function (_Behaviour) {
|
|
40
|
-
(0, _inherits2["default"])(Rotate, _Behaviour);
|
|
41
|
-
|
|
42
|
-
var _super = _createSuper(Rotate);
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Constructs a Rotate behaviour instance.
|
|
46
|
-
*
|
|
47
|
-
* @param {number} x - X axis rotation
|
|
48
|
-
* @param {number} y - Y axis rotation
|
|
49
|
-
* @param {number} z - Z axis rotation
|
|
50
|
-
* @param {number} life - The life of the behaviour
|
|
51
|
-
* @param {function} easing - The easing equation to use for transforms
|
|
52
|
-
* @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not
|
|
53
|
-
* @return void
|
|
54
|
-
*/
|
|
55
|
-
function Rotate(x, y, z, life, easing) {
|
|
56
|
-
var _this;
|
|
57
|
-
|
|
58
|
-
var isEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
|
59
|
-
(0, _classCallCheck2["default"])(this, Rotate);
|
|
60
|
-
_this = _super.call(this, life, easing, _types.BEHAVIOUR_TYPE_ROTATE, isEnabled);
|
|
61
|
-
|
|
62
|
-
_this.reset(x, y, z);
|
|
63
|
-
|
|
64
|
-
return _this;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Gets the rotation type.
|
|
68
|
-
*
|
|
69
|
-
* @return {string}
|
|
70
|
-
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
(0, _createClass2["default"])(Rotate, [{
|
|
74
|
-
key: "reset",
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Resets the behaviour properties.
|
|
78
|
-
*
|
|
79
|
-
* @param {number} x - X axis rotation
|
|
80
|
-
* @param {number} y - Y axis rotation
|
|
81
|
-
* @param {number} z - Z axis rotation
|
|
82
|
-
* @param {number} life - the life of the behaviour
|
|
83
|
-
* @param {function} easing - the easing equation to use for transforms
|
|
84
|
-
* @return void
|
|
85
|
-
*/
|
|
86
|
-
value: function reset(x, y, z, life, easing) {
|
|
87
|
-
/**
|
|
88
|
-
* @desc X axis rotation.
|
|
89
|
-
* @type {number|Span}
|
|
90
|
-
*/
|
|
91
|
-
this.x = x || 0;
|
|
92
|
-
/**
|
|
93
|
-
* @desc Y axis rotation.
|
|
94
|
-
* @type {number|Span}
|
|
95
|
-
*/
|
|
96
|
-
|
|
97
|
-
this.y = y || 0;
|
|
98
|
-
/**
|
|
99
|
-
* @desc Z axis rotation.
|
|
100
|
-
* @type {number|Span}
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
|
-
this.z = z || 0;
|
|
104
|
-
|
|
105
|
-
if (x === undefined || x == 'same') {
|
|
106
|
-
this.rotationType = 'same';
|
|
107
|
-
} else if (y == undefined) {
|
|
108
|
-
this.rotationType = 'set';
|
|
109
|
-
} else if (z === undefined) {
|
|
110
|
-
this.rotationType = 'to';
|
|
111
|
-
} else {
|
|
112
|
-
this.rotationType = 'add';
|
|
113
|
-
this.x = (0, _math.createSpan)(this.x * _constants.DR);
|
|
114
|
-
this.y = (0, _math.createSpan)(this.y * _constants.DR);
|
|
115
|
-
this.z = (0, _math.createSpan)(this.z * _constants.DR);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
life && (0, _get2["default"])((0, _getPrototypeOf2["default"])(Rotate.prototype), "reset", this).call(this, life, easing);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Initializes the behaviour on a particle.
|
|
122
|
-
*
|
|
123
|
-
* @param {object} particle - the particle to initialize the behaviour on
|
|
124
|
-
* @return void
|
|
125
|
-
*/
|
|
126
|
-
|
|
127
|
-
}, {
|
|
128
|
-
key: "initialize",
|
|
129
|
-
value: function initialize(particle) {
|
|
130
|
-
switch (this.rotationType) {
|
|
131
|
-
case 'same':
|
|
132
|
-
break;
|
|
133
|
-
|
|
134
|
-
case 'set':
|
|
135
|
-
this._setRotation(particle.rotation, this.x);
|
|
136
|
-
|
|
137
|
-
break;
|
|
138
|
-
|
|
139
|
-
case 'to':
|
|
140
|
-
particle.transform.fR = particle.transform.fR || new _math.Vector3D();
|
|
141
|
-
particle.transform.tR = particle.transform.tR || new _math.Vector3D();
|
|
142
|
-
|
|
143
|
-
this._setRotation(particle.transform.fR, this.x);
|
|
144
|
-
|
|
145
|
-
this._setRotation(particle.transform.tR, this.y);
|
|
146
|
-
|
|
147
|
-
break;
|
|
148
|
-
|
|
149
|
-
case 'add':
|
|
150
|
-
particle.transform.addR = new _math.Vector3D(this.x.getValue(), this.y.getValue(), this.z.getValue());
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Sets the particle's rotation prior to the behaviour being applied.
|
|
156
|
-
*
|
|
157
|
-
* NOTE It's hard to see here, but this is mutating the particle's rotation
|
|
158
|
-
* even though the particle is not being passed in directly.
|
|
159
|
-
*
|
|
160
|
-
* NOTE the else if below will never be reached because the value being passed in
|
|
161
|
-
* will never be of type Vector3D.
|
|
162
|
-
*
|
|
163
|
-
* @param {Vector3D} particleRotation - the particle's rotation vector
|
|
164
|
-
* @param {string|number} value - the value to set the rotation value to, if 'random'
|
|
165
|
-
* rotation is randomised
|
|
166
|
-
* @return void
|
|
167
|
-
*/
|
|
168
|
-
|
|
169
|
-
}, {
|
|
170
|
-
key: "_setRotation",
|
|
171
|
-
value: function _setRotation(particleRotation, value) {
|
|
172
|
-
particleRotation = particleRotation || new _math.Vector3D();
|
|
173
|
-
|
|
174
|
-
if (value == 'random') {
|
|
175
|
-
var x = _math.MathUtils.randomAToB(-_constants.PI, _constants.PI);
|
|
176
|
-
|
|
177
|
-
var y = _math.MathUtils.randomAToB(-_constants.PI, _constants.PI);
|
|
178
|
-
|
|
179
|
-
var z = _math.MathUtils.randomAToB(-_constants.PI, _constants.PI);
|
|
180
|
-
|
|
181
|
-
particleRotation.set(x, y, z);
|
|
182
|
-
} // we can't ever get here because value will never be a Vector3D!
|
|
183
|
-
// consider refactoring to
|
|
184
|
-
// if (value instance of Span) { vec3.add(value.getValue()); }
|
|
185
|
-
else if (value instanceof _math.Vector3D) {
|
|
186
|
-
particleRotation.copy(value);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Mutates the particle.rotation property.
|
|
191
|
-
*
|
|
192
|
-
* @see http://stackoverflow.com/questions/21622956/how-to-convert-direction-vector-to-euler-angles
|
|
193
|
-
* @param {object} particle - the particle to apply the behaviour to
|
|
194
|
-
* @param {number} time - engine time
|
|
195
|
-
* @param {integer} index - the particle index
|
|
196
|
-
* @return void
|
|
197
|
-
*/
|
|
198
|
-
|
|
199
|
-
}, {
|
|
200
|
-
key: "mutate",
|
|
201
|
-
value: function mutate(particle, time, index) {
|
|
202
|
-
this.energize(particle, time, index);
|
|
203
|
-
|
|
204
|
-
switch (this.rotationType) {
|
|
205
|
-
// orients the particle in the direction it is moving
|
|
206
|
-
case 'same':
|
|
207
|
-
if (!particle.rotation) {
|
|
208
|
-
particle.rotation = new _math.Vector3D();
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
particle.rotation.copy(particle.velocity);
|
|
212
|
-
break;
|
|
213
|
-
|
|
214
|
-
case 'set':
|
|
215
|
-
//
|
|
216
|
-
break;
|
|
217
|
-
|
|
218
|
-
case 'to':
|
|
219
|
-
particle.rotation.x = _math.MathUtils.lerp(particle.transform.fR.x, particle.transform.tR.x, this.energy);
|
|
220
|
-
particle.rotation.y = _math.MathUtils.lerp(particle.transform.fR.y, particle.transform.tR.y, this.energy);
|
|
221
|
-
particle.rotation.z = _math.MathUtils.lerp(particle.transform.fR.z, particle.transform.tR.z, this.energy);
|
|
222
|
-
break;
|
|
223
|
-
|
|
224
|
-
case 'add':
|
|
225
|
-
particle.rotation.add(particle.transform.addR);
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}, {
|
|
230
|
-
key: "rotationType",
|
|
231
|
-
get: function get() {
|
|
232
|
-
return this._rotationType;
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Sets the rotation type.
|
|
236
|
-
*
|
|
237
|
-
* @param {string}
|
|
238
|
-
* @return void
|
|
239
|
-
*/
|
|
240
|
-
,
|
|
241
|
-
set: function set(rotationType) {
|
|
242
|
-
/**
|
|
243
|
-
* @desc The rotation type. ENUM of ['same', 'set', 'to', 'add'].
|
|
244
|
-
* @type {string}
|
|
245
|
-
*/
|
|
246
|
-
this._rotationType = rotationType;
|
|
247
|
-
}
|
|
248
|
-
}], [{
|
|
249
|
-
key: "fromJSON",
|
|
250
|
-
value: function fromJSON(json) {
|
|
251
|
-
var x = json.x,
|
|
252
|
-
y = json.y,
|
|
253
|
-
z = json.z,
|
|
254
|
-
life = json.life,
|
|
255
|
-
easing = json.easing,
|
|
256
|
-
_json$isEnabled = json.isEnabled,
|
|
257
|
-
isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
|
|
258
|
-
return new Rotate(x, y, z, life, (0, _ease.getEasingByName)(easing), isEnabled);
|
|
259
|
-
}
|
|
260
|
-
}]);
|
|
261
|
-
return Rotate;
|
|
262
|
-
}(_Behaviour2["default"]);
|
|
263
|
-
|
|
264
|
-
exports["default"] = Rotate;
|
|
265
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUm90YXRlLmpzIl0sIm5hbWVzIjpbIlJvdGF0ZSIsIngiLCJ5IiwieiIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJ0eXBlIiwicmVzZXQiLCJ1bmRlZmluZWQiLCJyb3RhdGlvblR5cGUiLCJEUiIsInBhcnRpY2xlIiwiX3NldFJvdGF0aW9uIiwicm90YXRpb24iLCJ0cmFuc2Zvcm0iLCJmUiIsIlZlY3RvcjNEIiwidFIiLCJhZGRSIiwiZ2V0VmFsdWUiLCJwYXJ0aWNsZVJvdGF0aW9uIiwidmFsdWUiLCJNYXRoVXRpbHMiLCJyYW5kb21BVG9CIiwiUEkiLCJzZXQiLCJjb3B5IiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJ2ZWxvY2l0eSIsImxlcnAiLCJlbmVyZ3kiLCJhZGQiLCJfcm90YXRpb25UeXBlIiwianNvbiIsIkJlaGF2aW91ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBO0FBQ0E7QUFDQTtJQUNxQkEsTTs7Ozs7QUFDbkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLGtCQUFZQyxDQUFaLEVBQWVDLENBQWYsRUFBa0JDLENBQWxCLEVBQXFCQyxJQUFyQixFQUEyQkMsTUFBM0IsRUFBcUQ7QUFBQTs7QUFBQSxRQUFsQkMsU0FBa0IsdUVBQU4sSUFBTTtBQUFBO0FBQ25ELDhCQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JFLDRCQUFwQixFQUEwQkQsU0FBMUI7O0FBRUEsVUFBS0UsS0FBTCxDQUFXUCxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCOztBQUhtRDtBQUlwRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQW1CRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTswQkFDUUYsQyxFQUFHQyxD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LDJCQUFnQkMsTUFBaEIsQ0FBMUIsRUFBbURDLFNBQW5ELENBQVA7QUFDRDs7O0VBM01pQytCLHNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRFIsIFBJIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1hdGhVdGlscywgVmVjdG9yM0QsIGNyZWF0ZVNwYW4gfSBmcm9tICcuLi9tYXRoJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX1JPVEFURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgcm90YXRlcyBwYXJ0aWNsZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdGF0ZSBleHRlbmRzIEJlaGF2aW91ciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUm90YXRlIGJlaGF2aW91ciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBYIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHogLSBaIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgYmVoYXZpb3VyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBlYXNpbmcgZXF1YXRpb24gdG8gdXNlIGZvciB0cmFuc2Zvcm1zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoeCwgeSwgeiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldCh4LCB5LCB6KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByb3RhdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgcm90YXRpb25UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9yb3RhdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcm90YXRpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgc2V0IHJvdGF0aW9uVHlwZShyb3RhdGlvblR5cGUpIHtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcm90YXRpb24gdHlwZS4gRU5VTSBvZiBbJ3NhbWUnLCAnc2V0JywgJ3RvJywgJ2FkZCddLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5fcm90YXRpb25UeXBlID0gcm90YXRpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gWCBheGlzIHJvdGF0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gWSBheGlzIHJvdGF0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB6IC0gWiBheGlzIHJvdGF0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSB0aGUgZWFzaW5nIGVxdWF0aW9uIHRvIHVzZSBmb3IgdHJhbnNmb3Jtc1xuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHgsIHksIHosIGxpZmUsIGVhc2luZykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFggYXhpcyByb3RhdGlvbi5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfFNwYW59XG4gICAgICovXG4gICAgdGhpcy54ID0geCB8fCAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgWSBheGlzIHJvdGF0aW9uLlxuICAgICAqIEB0eXBlIHtudW1iZXJ8U3Bhbn1cbiAgICAgKi9cbiAgICB0aGlzLnkgPSB5IHx8IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBaIGF4aXMgcm90YXRpb24uXG4gICAgICogQHR5cGUge251bWJlcnxTcGFufVxuICAgICAqL1xuICAgIHRoaXMueiA9IHogfHwgMDtcblxuICAgIGlmICh4ID09PSB1bmRlZmluZWQgfHwgeCA9PSAnc2FtZScpIHtcbiAgICAgIHRoaXMucm90YXRpb25UeXBlID0gJ3NhbWUnO1xuICAgIH0gZWxzZSBpZiAoeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucm90YXRpb25UeXBlID0gJ3NldCc7XG4gICAgfSBlbHNlIGlmICh6ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucm90YXRpb25UeXBlID0gJ3RvJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3RhdGlvblR5cGUgPSAnYWRkJztcbiAgICAgIHRoaXMueCA9IGNyZWF0ZVNwYW4odGhpcy54ICogRFIpO1xuICAgICAgdGhpcy55ID0gY3JlYXRlU3Bhbih0aGlzLnkgKiBEUik7XG4gICAgICB0aGlzLnogPSBjcmVhdGVTcGFuKHRoaXMueiAqIERSKTtcbiAgICB9XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJlaGF2aW91ciBvbiBhIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgYmVoYXZpb3VyIG9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHN3aXRjaCAodGhpcy5yb3RhdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgJ3NhbWUnOlxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgdGhpcy5fc2V0Um90YXRpb24ocGFydGljbGUucm90YXRpb24sIHRoaXMueCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICd0byc6XG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5mUiA9IHBhcnRpY2xlLnRyYW5zZm9ybS5mUiB8fCBuZXcgVmVjdG9yM0QoKTtcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLnRSID0gcGFydGljbGUudHJhbnNmb3JtLnRSIHx8IG5ldyBWZWN0b3IzRCgpO1xuICAgICAgICB0aGlzLl9zZXRSb3RhdGlvbihwYXJ0aWNsZS50cmFuc2Zvcm0uZlIsIHRoaXMueCk7XG4gICAgICAgIHRoaXMuX3NldFJvdGF0aW9uKHBhcnRpY2xlLnRyYW5zZm9ybS50UiwgdGhpcy55KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2FkZCc6XG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5hZGRSID0gbmV3IFZlY3RvcjNEKFxuICAgICAgICAgIHRoaXMueC5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHRoaXMueS5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHRoaXMuei5nZXRWYWx1ZSgpXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIHJvdGF0aW9uIHByaW9yIHRvIHRoZSBiZWhhdmlvdXIgYmVpbmcgYXBwbGllZC5cbiAgICpcbiAgICogTk9URSBJdCdzIGhhcmQgdG8gc2VlIGhlcmUsIGJ1dCB0aGlzIGlzIG11dGF0aW5nIHRoZSBwYXJ0aWNsZSdzIHJvdGF0aW9uXG4gICAqIGV2ZW4gdGhvdWdoIHRoZSBwYXJ0aWNsZSBpcyBub3QgYmVpbmcgcGFzc2VkIGluIGRpcmVjdGx5LlxuICAgKlxuICAgKiBOT1RFIHRoZSBlbHNlIGlmIGJlbG93IHdpbGwgbmV2ZXIgYmUgcmVhY2hlZCBiZWNhdXNlIHRoZSB2YWx1ZSBiZWluZyBwYXNzZWQgaW5cbiAgICogd2lsbCBuZXZlciBiZSBvZiB0eXBlIFZlY3RvcjNELlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSBwYXJ0aWNsZVJvdGF0aW9uIC0gdGhlIHBhcnRpY2xlJ3Mgcm90YXRpb24gdmVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gdmFsdWUgLSB0aGUgdmFsdWUgdG8gc2V0IHRoZSByb3RhdGlvbiB2YWx1ZSB0bywgaWYgJ3JhbmRvbSdcbiAgICogcm90YXRpb24gaXMgcmFuZG9taXNlZFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIF9zZXRSb3RhdGlvbihwYXJ0aWNsZVJvdGF0aW9uLCB2YWx1ZSkge1xuICAgIHBhcnRpY2xlUm90YXRpb24gPSBwYXJ0aWNsZVJvdGF0aW9uIHx8IG5ldyBWZWN0b3IzRCgpO1xuICAgIGlmICh2YWx1ZSA9PSAncmFuZG9tJykge1xuICAgICAgdmFyIHggPSBNYXRoVXRpbHMucmFuZG9tQVRvQigtUEksIFBJKTtcbiAgICAgIHZhciB5ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLVBJLCBQSSk7XG4gICAgICB2YXIgeiA9IE1hdGhVdGlscy5yYW5kb21BVG9CKC1QSSwgUEkpO1xuXG4gICAgICBwYXJ0aWNsZVJvdGF0aW9uLnNldCh4LCB5LCB6KTtcbiAgICB9XG4gICAgLy8gd2UgY2FuJ3QgZXZlciBnZXQgaGVyZSBiZWNhdXNlIHZhbHVlIHdpbGwgbmV2ZXIgYmUgYSBWZWN0b3IzRCFcbiAgICAvLyBjb25zaWRlciByZWZhY3RvcmluZyB0b1xuICAgIC8vICBpZiAodmFsdWUgaW5zdGFuY2Ugb2YgU3BhbikgeyB2ZWMzLmFkZCh2YWx1ZS5nZXRWYWx1ZSgpKTsgfVxuICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVmVjdG9yM0QpIHtcbiAgICAgIHBhcnRpY2xlUm90YXRpb24uY29weSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE11dGF0ZXMgdGhlIHBhcnRpY2xlLnJvdGF0aW9uIHByb3BlcnR5LlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjE2MjI5NTYvaG93LXRvLWNvbnZlcnQtZGlyZWN0aW9uLXZlY3Rvci10by1ldWxlci1hbmdsZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGFwcGx5IHRoZSBiZWhhdmlvdXIgdG9cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBlbmdpbmUgdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gdGhlIHBhcnRpY2xlIGluZGV4XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgbXV0YXRlKHBhcnRpY2xlLCB0aW1lLCBpbmRleCkge1xuICAgIHRoaXMuZW5lcmdpemUocGFydGljbGUsIHRpbWUsIGluZGV4KTtcblxuICAgIHN3aXRjaCAodGhpcy5yb3RhdGlvblR5cGUpIHtcbiAgICAgIC8vIG9yaWVudHMgdGhlIHBhcnRpY2xlIGluIHRoZSBkaXJlY3Rpb24gaXQgaXMgbW92aW5nXG4gICAgICBjYXNlICdzYW1lJzpcbiAgICAgICAgaWYgKCFwYXJ0aWNsZS5yb3RhdGlvbikge1xuICAgICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uID0gbmV3IFZlY3RvcjNEKCk7XG4gICAgICAgIH1cblxuICAgICAgICBwYXJ0aWNsZS5yb3RhdGlvbi5jb3B5KHBhcnRpY2xlLnZlbG9jaXR5KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3NldCc6XG4gICAgICAgIC8vXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICd0byc6XG4gICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLnggPSBNYXRoVXRpbHMubGVycChcbiAgICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uZlIueCxcbiAgICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0udFIueCxcbiAgICAgICAgICB0aGlzLmVuZXJneVxuICAgICAgICApO1xuICAgICAgICBwYXJ0aWNsZS5yb3RhdGlvbi55ID0gTWF0aFV0aWxzLmxlcnAoXG4gICAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmZSLnksXG4gICAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLnRSLnksXG4gICAgICAgICAgdGhpcy5lbmVyZ3lcbiAgICAgICAgKTtcbiAgICAgICAgcGFydGljbGUucm90YXRpb24ueiA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5mUi56LFxuICAgICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS50Ui56LFxuICAgICAgICAgIHRoaXMuZW5lcmd5XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICBwYXJ0aWNsZS5yb3RhdGlvbi5hZGQocGFydGljbGUudHJhbnNmb3JtLmFkZFIpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgeCwgeSwgeiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBSb3RhdGUoeCwgeSwgeiwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ==
|