three-nebula 10.0.3 → 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.
Files changed (247) hide show
  1. package/.claude/rules/no-coauthor.md +4 -0
  2. package/CHANGELOG.md +33 -0
  3. package/dist/three-nebula.cjs +109 -0
  4. package/dist/three-nebula.cjs.map +1 -0
  5. package/dist/three-nebula.mjs +2968 -0
  6. package/dist/three-nebula.mjs.map +1 -0
  7. package/dist/three-nebula.umd.js +109 -0
  8. package/dist/three-nebula.umd.js.map +1 -0
  9. package/package.json +32 -56
  10. package/specs/01-emitter-hierarchy.md +200 -0
  11. package/specs/02-determinism-scrubbing.md +188 -0
  12. package/specs/03-sound-renderer.md +183 -0
  13. package/specs/04-schema-versioning.md +140 -0
  14. package/specs/05-content-addressed-assets.md +288 -0
  15. package/specs/README.md +80 -0
  16. package/build/cjs/behaviour/Alpha.js +0 -189
  17. package/build/cjs/behaviour/Attraction.js +0 -189
  18. package/build/cjs/behaviour/Behaviour.js +0 -253
  19. package/build/cjs/behaviour/Collision.js +0 -146
  20. package/build/cjs/behaviour/Color.js +0 -148
  21. package/build/cjs/behaviour/CrossZone.js +0 -141
  22. package/build/cjs/behaviour/Force.js +0 -126
  23. package/build/cjs/behaviour/Gravity.js +0 -78
  24. package/build/cjs/behaviour/RandomDrift.js +0 -153
  25. package/build/cjs/behaviour/Repulsion.js +0 -123
  26. package/build/cjs/behaviour/Rotate.js +0 -265
  27. package/build/cjs/behaviour/Scale.js +0 -177
  28. package/build/cjs/behaviour/Spring.js +0 -133
  29. package/build/cjs/behaviour/constants.js +0 -28
  30. package/build/cjs/behaviour/index.js +0 -112
  31. package/build/cjs/behaviour/types.js +0 -33
  32. package/build/cjs/constants/index.js +0 -61
  33. package/build/cjs/core/Particle.js +0 -390
  34. package/build/cjs/core/Pool.js +0 -203
  35. package/build/cjs/core/System.js +0 -366
  36. package/build/cjs/core/constants.js +0 -163
  37. package/build/cjs/core/fromJSON.js +0 -128
  38. package/build/cjs/core/fromJSONAsync.js +0 -239
  39. package/build/cjs/core/index.js +0 -32
  40. package/build/cjs/core/three/Euler.js +0 -233
  41. package/build/cjs/core/three/Math.js +0 -91
  42. package/build/cjs/core/three/Matrix4.js +0 -745
  43. package/build/cjs/core/three/Quaternion.js +0 -451
  44. package/build/cjs/core/three/Vector3.js +0 -464
  45. package/build/cjs/core/three/constants.js +0 -298
  46. package/build/cjs/core/three/index.js +0 -48
  47. package/build/cjs/core/types.js +0 -13
  48. package/build/cjs/debug/Debug.js +0 -209
  49. package/build/cjs/debug/constants.js +0 -19
  50. package/build/cjs/debug/index.js +0 -24
  51. package/build/cjs/debug/log.js +0 -38
  52. package/build/cjs/ease/index.js +0 -149
  53. package/build/cjs/emitter/Emitter.js +0 -791
  54. package/build/cjs/emitter/FollowEmitter.js +0 -146
  55. package/build/cjs/emitter/constants.js +0 -20
  56. package/build/cjs/emitter/index.js +0 -24
  57. package/build/cjs/emitter/types.js +0 -11
  58. package/build/cjs/events/EventDispatcher.js +0 -105
  59. package/build/cjs/events/constants.js +0 -23
  60. package/build/cjs/events/index.js +0 -27
  61. package/build/cjs/index.js +0 -151
  62. package/build/cjs/initializer/Body.js +0 -122
  63. package/build/cjs/initializer/BodySprite.js +0 -146
  64. package/build/cjs/initializer/Initializer.js +0 -109
  65. package/build/cjs/initializer/InitializerUtil.js +0 -54
  66. package/build/cjs/initializer/Life.js +0 -106
  67. package/build/cjs/initializer/Mass.js +0 -101
  68. package/build/cjs/initializer/Position.js +0 -152
  69. package/build/cjs/initializer/Radius.js +0 -118
  70. package/build/cjs/initializer/Rate.js +0 -150
  71. package/build/cjs/initializer/Texture.js +0 -139
  72. package/build/cjs/initializer/Velocity/PolarVelocity.js +0 -102
  73. package/build/cjs/initializer/Velocity/RadialVelocity.js +0 -111
  74. package/build/cjs/initializer/Velocity/VectorVelocity.js +0 -108
  75. package/build/cjs/initializer/Velocity/Velocity.js +0 -94
  76. package/build/cjs/initializer/Velocity/index.js +0 -32
  77. package/build/cjs/initializer/constants.js +0 -43
  78. package/build/cjs/initializer/index.js +0 -100
  79. package/build/cjs/initializer/types.js +0 -35
  80. package/build/cjs/math/ArraySpan.js +0 -103
  81. package/build/cjs/math/Box.js +0 -46
  82. package/build/cjs/math/ColorSpan.js +0 -113
  83. package/build/cjs/math/MathUtils.js +0 -57
  84. package/build/cjs/math/Polar3D.js +0 -115
  85. package/build/cjs/math/Span.js +0 -88
  86. package/build/cjs/math/Vector3D.js +0 -76
  87. package/build/cjs/math/constants.js +0 -35
  88. package/build/cjs/math/index.js +0 -122
  89. package/build/cjs/math/integration.js +0 -59
  90. package/build/cjs/math/types.js +0 -19
  91. package/build/cjs/renderer/BaseRenderer.js +0 -108
  92. package/build/cjs/renderer/CustomRenderer.js +0 -65
  93. package/build/cjs/renderer/GPURenderer/Desktop/index.js +0 -350
  94. package/build/cjs/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -13
  95. package/build/cjs/renderer/GPURenderer/Desktop/shaders/index.js +0 -22
  96. package/build/cjs/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -17
  97. package/build/cjs/renderer/GPURenderer/Mobile/index.js +0 -364
  98. package/build/cjs/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -13
  99. package/build/cjs/renderer/GPURenderer/Mobile/shaders/index.js +0 -22
  100. package/build/cjs/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -15
  101. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -53
  102. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -93
  103. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -9
  104. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/index.js +0 -221
  105. package/build/cjs/renderer/GPURenderer/common/constants.js +0 -22
  106. package/build/cjs/renderer/GPURenderer/common/index.js +0 -38
  107. package/build/cjs/renderer/GPURenderer/common/shaders/constants.js +0 -9
  108. package/build/cjs/renderer/GPURenderer/common/stores/Target.js +0 -43
  109. package/build/cjs/renderer/GPURenderer/common/stores/UniqueList.js +0 -51
  110. package/build/cjs/renderer/GPURenderer/common/stores/index.js +0 -22
  111. package/build/cjs/renderer/GPURenderer/index.js +0 -97
  112. package/build/cjs/renderer/MeshRenderer.js +0 -136
  113. package/build/cjs/renderer/SpriteRenderer.js +0 -63
  114. package/build/cjs/renderer/index.js +0 -40
  115. package/build/cjs/renderer/types.js +0 -21
  116. package/build/cjs/utils/ColorUtil.js +0 -39
  117. package/build/cjs/utils/PUID.js +0 -26
  118. package/build/cjs/utils/THREEUtil.js +0 -40
  119. package/build/cjs/utils/Util.js +0 -69
  120. package/build/cjs/utils/index.js +0 -61
  121. package/build/cjs/utils/uid.js +0 -14
  122. package/build/cjs/zone/BoxZone.js +0 -178
  123. package/build/cjs/zone/LineZone.js +0 -101
  124. package/build/cjs/zone/MeshZone.js +0 -101
  125. package/build/cjs/zone/PointZone.js +0 -99
  126. package/build/cjs/zone/ScreenZone.js +0 -164
  127. package/build/cjs/zone/SphereZone.js +0 -155
  128. package/build/cjs/zone/Zone.js +0 -172
  129. package/build/cjs/zone/index.js +0 -56
  130. package/build/cjs/zone/types.js +0 -21
  131. package/build/esm/behaviour/Alpha.js +0 -134
  132. package/build/esm/behaviour/Attraction.js +0 -135
  133. package/build/esm/behaviour/Behaviour.js +0 -215
  134. package/build/esm/behaviour/Collision.js +0 -100
  135. package/build/esm/behaviour/Color.js +0 -101
  136. package/build/esm/behaviour/CrossZone.js +0 -82
  137. package/build/esm/behaviour/Force.js +0 -83
  138. package/build/esm/behaviour/Gravity.js +0 -40
  139. package/build/esm/behaviour/RandomDrift.js +0 -97
  140. package/build/esm/behaviour/Repulsion.js +0 -81
  141. package/build/esm/behaviour/Rotate.js +0 -214
  142. package/build/esm/behaviour/Scale.js +0 -131
  143. package/build/esm/behaviour/Spring.js +0 -90
  144. package/build/esm/behaviour/constants.js +0 -11
  145. package/build/esm/behaviour/index.js +0 -14
  146. package/build/esm/behaviour/types.js +0 -14
  147. package/build/esm/constants/index.js +0 -42
  148. package/build/esm/core/Particle.js +0 -357
  149. package/build/esm/core/Pool.js +0 -161
  150. package/build/esm/core/System.js +0 -320
  151. package/build/esm/core/constants.js +0 -127
  152. package/build/esm/core/fromJSON.js +0 -107
  153. package/build/esm/core/fromJSONAsync.js +0 -210
  154. package/build/esm/core/index.js +0 -4
  155. package/build/esm/core/three/Euler.js +0 -224
  156. package/build/esm/core/three/Math.js +0 -84
  157. package/build/esm/core/three/Matrix4.js +0 -739
  158. package/build/esm/core/three/Quaternion.js +0 -445
  159. package/build/esm/core/three/Vector3.js +0 -457
  160. package/build/esm/core/three/constants.js +0 -148
  161. package/build/esm/core/three/index.js +0 -5
  162. package/build/esm/core/types.js +0 -4
  163. package/build/esm/debug/Debug.js +0 -195
  164. package/build/esm/debug/constants.js +0 -7
  165. package/build/esm/debug/index.js +0 -3
  166. package/build/esm/debug/log.js +0 -31
  167. package/build/esm/ease/index.js +0 -113
  168. package/build/esm/emitter/Emitter.js +0 -701
  169. package/build/esm/emitter/FollowEmitter.js +0 -97
  170. package/build/esm/emitter/constants.js +0 -7
  171. package/build/esm/emitter/index.js +0 -3
  172. package/build/esm/emitter/types.js +0 -3
  173. package/build/esm/events/EventDispatcher.js +0 -82
  174. package/build/esm/events/constants.js +0 -9
  175. package/build/esm/events/index.js +0 -4
  176. package/build/esm/index.js +0 -13
  177. package/build/esm/initializer/Body.js +0 -83
  178. package/build/esm/initializer/BodySprite.js +0 -108
  179. package/build/esm/initializer/Initializer.js +0 -84
  180. package/build/esm/initializer/InitializerUtil.js +0 -48
  181. package/build/esm/initializer/Life.js +0 -66
  182. package/build/esm/initializer/Mass.js +0 -60
  183. package/build/esm/initializer/Position.js +0 -98
  184. package/build/esm/initializer/Radius.js +0 -75
  185. package/build/esm/initializer/Rate.js +0 -107
  186. package/build/esm/initializer/Texture.js +0 -101
  187. package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
  188. package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
  189. package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
  190. package/build/esm/initializer/Velocity/Velocity.js +0 -52
  191. package/build/esm/initializer/Velocity/index.js +0 -4
  192. package/build/esm/initializer/constants.js +0 -26
  193. package/build/esm/initializer/index.js +0 -11
  194. package/build/esm/initializer/types.js +0 -15
  195. package/build/esm/math/ArraySpan.js +0 -62
  196. package/build/esm/math/Box.js +0 -25
  197. package/build/esm/math/ColorSpan.js +0 -71
  198. package/build/esm/math/MathUtils.js +0 -48
  199. package/build/esm/math/Polar3D.js +0 -81
  200. package/build/esm/math/Span.js +0 -63
  201. package/build/esm/math/Vector3D.js +0 -34
  202. package/build/esm/math/constants.js +0 -24
  203. package/build/esm/math/index.js +0 -10
  204. package/build/esm/math/integration.js +0 -47
  205. package/build/esm/math/types.js +0 -7
  206. package/build/esm/renderer/BaseRenderer.js +0 -78
  207. package/build/esm/renderer/CustomRenderer.js +0 -23
  208. package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -331
  209. package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -23
  210. package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
  211. package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -33
  212. package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -349
  213. package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -20
  214. package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
  215. package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -30
  216. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -27
  217. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
  218. package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
  219. package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
  220. package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
  221. package/build/esm/renderer/GPURenderer/common/index.js +0 -4
  222. package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
  223. package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -24
  224. package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
  225. package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
  226. package/build/esm/renderer/GPURenderer/index.js +0 -57
  227. package/build/esm/renderer/MeshRenderer.js +0 -94
  228. package/build/esm/renderer/SpriteRenderer.js +0 -26
  229. package/build/esm/renderer/index.js +0 -5
  230. package/build/esm/renderer/types.js +0 -8
  231. package/build/esm/utils/ColorUtil.js +0 -32
  232. package/build/esm/utils/PUID.js +0 -19
  233. package/build/esm/utils/THREEUtil.js +0 -31
  234. package/build/esm/utils/Util.js +0 -60
  235. package/build/esm/utils/index.js +0 -13
  236. package/build/esm/utils/uid.js +0 -3
  237. package/build/esm/zone/BoxZone.js +0 -133
  238. package/build/esm/zone/LineZone.js +0 -61
  239. package/build/esm/zone/MeshZone.js +0 -60
  240. package/build/esm/zone/PointZone.js +0 -59
  241. package/build/esm/zone/ScreenZone.js +0 -116
  242. package/build/esm/zone/SphereZone.js +0 -113
  243. package/build/esm/zone/Zone.js +0 -141
  244. package/build/esm/zone/index.js +0 -7
  245. package/build/esm/zone/types.js +0 -8
  246. package/build/three-nebula.js +0 -2
  247. package/build/three-nebula.js.map +0 -1
@@ -1,152 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
13
-
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
-
18
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
-
20
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
-
22
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
23
-
24
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
-
26
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
-
28
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
-
30
- var Zone = _interopRequireWildcard(require("../zone"));
31
-
32
- var _Initializer2 = _interopRequireDefault(require("./Initializer"));
33
-
34
- var _constants = require("../core/constants");
35
-
36
- var _types = require("./types");
37
-
38
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
-
40
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
-
42
- 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); }; }
43
-
44
- 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; } }
45
-
46
- /**
47
- * Sets the starting position property for initialized particles.
48
- * This is derived from a zone randomly chosen from those supplied to the constructor.
49
- *
50
- */
51
- var Position = /*#__PURE__*/function (_Initializer) {
52
- (0, _inherits2["default"])(Position, _Initializer);
53
-
54
- var _super = _createSuper(Position);
55
-
56
- /**
57
- * Constructs a Position initializer instance.
58
- *
59
- * @param {Zone|array<Zone>}
60
- * @return void
61
- */
62
- function Position() {
63
- var _this;
64
-
65
- (0, _classCallCheck2["default"])(this, Position);
66
- _this = _super.call(this, _types.INITIALIZER_TYPE_POSITION);
67
-
68
- _this.reset.apply((0, _assertThisInitialized2["default"])(_this), arguments);
69
-
70
- return _this;
71
- }
72
- /**
73
- * Resets the initializer properties.
74
- * Clears all previously set zones and resets the zones according to args passed.
75
- *
76
- * @param {Zone|array<Zone>}
77
- * @return void
78
- */
79
-
80
-
81
- (0, _createClass2["default"])(Position, [{
82
- key: "reset",
83
- value: function reset() {
84
- if (!this.zones) {
85
- this.zones = [];
86
- } else {
87
- this.zones.length = 0;
88
- }
89
- /**
90
- * @desc The zones to use as bounds for calculating the particle's starting position.
91
- * @type {array<Zone>}
92
- */
93
-
94
-
95
- this.zones = this.zones.concat(Array.prototype.slice.call(arguments));
96
- }
97
- /**
98
- * Adds a zone or zones to this.zones.
99
- *
100
- * @param {Zone|array<Zone>}
101
- * @return void
102
- */
103
-
104
- }, {
105
- key: "addZone",
106
- value: function addZone() {
107
- this.zones = this.zones.concat(Array.prototype.slice.call(arguments));
108
- }
109
- /**
110
- * Creates a Position initializer from JSON.
111
- *
112
- * @param {object} json - The JSON to construct the instance from.
113
- * @param {string} json.zoneType - The type of zone to use for initial position
114
- * @return {Position}
115
- */
116
-
117
- }], [{
118
- key: "fromJSON",
119
- value: function fromJSON(json) {
120
- var zoneType = json.zoneType,
121
- params = (0, _objectWithoutProperties2["default"])(json, ["zoneType"]);
122
-
123
- if (!_constants.SUPPORTED_JSON_ZONE_TYPES.includes(zoneType)) {
124
- throw new Error("The zone type ".concat(zoneType, " is invalid or not yet supported"));
125
- }
126
-
127
- return new Position((0, _construct2["default"])(Zone[zoneType], (0, _toConsumableArray2["default"])(Object.values(params))));
128
- }
129
- }]);
130
- return Position;
131
- }(_Initializer2["default"]);
132
- /**
133
- * Sets the particle's initial position.
134
- *
135
- * @param {Particle} particle - the particle to initialize the property on
136
- * @return void
137
- */
138
-
139
-
140
- exports["default"] = Position;
141
-
142
- Position.prototype.initialize = function () {
143
- var zone;
144
- return function (target) {
145
- zone = this.zones[Math.random() * this.zones.length >> 0];
146
- zone.getPosition();
147
- target.position.x = zone.vector.x;
148
- target.position.y = zone.vector.y;
149
- target.position.z = zone.vector.z;
150
- };
151
- }();
152
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Qb3NpdGlvbi5qcyJdLCJuYW1lcyI6WyJQb3NpdGlvbiIsInR5cGUiLCJyZXNldCIsImFwcGx5IiwiYXJndW1lbnRzIiwiem9uZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJBcnJheSIsInByb3RvdHlwZSIsInNsaWNlIiwiY2FsbCIsImpzb24iLCJ6b25lVHlwZSIsInBhcmFtcyIsIlNVUFBPUlRFRF9KU09OX1pPTkVfVFlQRVMiLCJpbmNsdWRlcyIsIkVycm9yIiwiWm9uZSIsIk9iamVjdCIsInZhbHVlcyIsIkluaXRpYWxpemVyIiwiaW5pdGlhbGl6ZSIsInpvbmUiLCJ0YXJnZXQiLCJNYXRoIiwicmFuZG9tIiwiZ2V0UG9zaXRpb24iLCJwb3NpdGlvbiIsIngiLCJ2ZWN0b3IiLCJ5IiwieiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDcUJBLFE7Ozs7O0FBQ25CO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLHNCQUFjO0FBQUE7O0FBQUE7QUFDWiw4QkFBTUMsZ0NBQU47O0FBRUEsVUFBS0MsS0FBTCxDQUFXQyxLQUFYLGlEQUF1QkMsU0FBdkI7O0FBSFk7QUFJYjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs0QkFDVTtBQUNOLFVBQUksQ0FBQyxLQUFLQyxLQUFWLEVBQWlCO0FBQ2YsYUFBS0EsS0FBTCxHQUFhLEVBQWI7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLQSxLQUFMLENBQVdDLE1BQVgsR0FBb0IsQ0FBcEI7QUFDRDtBQUVEO0FBQ0o7QUFDQTtBQUNBOzs7QUFDSSxXQUFLRCxLQUFMLEdBQWEsS0FBS0EsS0FBTCxDQUFXRSxNQUFYLENBQWtCQyxLQUFLLENBQUNDLFNBQU4sQ0FBZ0JDLEtBQWhCLENBQXNCQyxJQUF0QixDQUEyQlAsU0FBM0IsQ0FBbEIsQ0FBYjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzhCQUNZO0FBQ1IsV0FBS0MsS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV0UsTUFBWCxDQUFrQkMsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJQLFNBQTNCLENBQWxCLENBQWI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzZCQUNrQlEsSSxFQUFNO0FBQUEsVUFDWkMsUUFEWSxHQUNZRCxJQURaLENBQ1pDLFFBRFk7QUFBQSxVQUNDQyxNQURELDZDQUNZRixJQURaOztBQUdwQixVQUFJLENBQUNHLHFDQUEwQkMsUUFBMUIsQ0FBbUNILFFBQW5DLENBQUwsRUFBbUQ7QUFDakQsY0FBTSxJQUFJSSxLQUFKLHlCQUNhSixRQURiLHNDQUFOO0FBR0Q7O0FBRUQsYUFBTyxJQUFJYixRQUFKLDZCQUFpQmtCLElBQUksQ0FBQ0wsUUFBRCxDQUFyQixzQ0FBbUNNLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjTixNQUFkLENBQW5DLEdBQVA7QUFDRDs7O0VBN0RtQ08sd0I7QUFnRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDQXJCLFFBQVEsQ0FBQ1MsU0FBVCxDQUFtQmEsVUFBbkIsR0FBaUMsWUFBVztBQUMxQyxNQUFJQyxJQUFKO0FBRUEsU0FBTyxVQUFTQyxNQUFULEVBQWlCO0FBQ3RCRCxJQUFBQSxJQUFJLEdBQUcsS0FBS2xCLEtBQUwsQ0FBWW9CLElBQUksQ0FBQ0MsTUFBTCxLQUFnQixLQUFLckIsS0FBTCxDQUFXQyxNQUE1QixJQUF1QyxDQUFsRCxDQUFQO0FBRUFpQixJQUFBQSxJQUFJLENBQUNJLFdBQUw7QUFFQUgsSUFBQUEsTUFBTSxDQUFDSSxRQUFQLENBQWdCQyxDQUFoQixHQUFvQk4sSUFBSSxDQUFDTyxNQUFMLENBQVlELENBQWhDO0FBQ0FMLElBQUFBLE1BQU0sQ0FBQ0ksUUFBUCxDQUFnQkcsQ0FBaEIsR0FBb0JSLElBQUksQ0FBQ08sTUFBTCxDQUFZQyxDQUFoQztBQUNBUCxJQUFBQSxNQUFNLENBQUNJLFFBQVAsQ0FBZ0JJLENBQWhCLEdBQW9CVCxJQUFJLENBQUNPLE1BQUwsQ0FBWUUsQ0FBaEM7QUFDRCxHQVJEO0FBU0QsQ0FaK0IsRUFBaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBab25lIGZyb20gJy4uL3pvbmUnO1xuXG5pbXBvcnQgSW5pdGlhbGl6ZXIgZnJvbSAnLi9Jbml0aWFsaXplcic7XG5pbXBvcnQgeyBTVVBQT1JURURfSlNPTl9aT05FX1RZUEVTIH0gZnJvbSAnLi4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gcHJvcGVydHkgZm9yIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqIFRoaXMgaXMgZGVyaXZlZCBmcm9tIGEgem9uZSByYW5kb21seSBjaG9zZW4gZnJvbSB0aG9zZSBzdXBwbGllZCB0byB0aGUgY29uc3RydWN0b3IuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3NpdGlvbiBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBQb3NpdGlvbiBpbml0aWFsaXplciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtab25lfGFycmF5PFpvbmU+fVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5yZXNldC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgaW5pdGlhbGl6ZXIgcHJvcGVydGllcy5cbiAgICogQ2xlYXJzIGFsbCBwcmV2aW91c2x5IHNldCB6b25lcyBhbmQgcmVzZXRzIHRoZSB6b25lcyBhY2NvcmRpbmcgdG8gYXJncyBwYXNzZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZXxhcnJheTxab25lPn1cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldCgpIHtcbiAgICBpZiAoIXRoaXMuem9uZXMpIHtcbiAgICAgIHRoaXMuem9uZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy56b25lcy5sZW5ndGggPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB6b25lcyB0byB1c2UgYXMgYm91bmRzIGZvciBjYWxjdWxhdGluZyB0aGUgcGFydGljbGUncyBzdGFydGluZyBwb3NpdGlvbi5cbiAgICAgKiBAdHlwZSB7YXJyYXk8Wm9uZT59XG4gICAgICovXG4gICAgdGhpcy56b25lcyA9IHRoaXMuem9uZXMuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB6b25lIG9yIHpvbmVzIHRvIHRoaXMuem9uZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZXxhcnJheTxab25lPn1cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBhZGRab25lKCkge1xuICAgIHRoaXMuem9uZXMgPSB0aGlzLnpvbmVzLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUG9zaXRpb24gaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGpzb24uem9uZVR5cGUgLSBUaGUgdHlwZSBvZiB6b25lIHRvIHVzZSBmb3IgaW5pdGlhbCBwb3NpdGlvblxuICAgKiBAcmV0dXJuIHtQb3NpdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB6b25lVHlwZSwgLi4ucGFyYW1zIH0gPSBqc29uO1xuXG4gICAgaWYgKCFTVVBQT1JURURfSlNPTl9aT05FX1RZUEVTLmluY2x1ZGVzKHpvbmVUeXBlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIHpvbmUgdHlwZSAke3pvbmVUeXBlfSBpcyBpbnZhbGlkIG9yIG5vdCB5ZXQgc3VwcG9ydGVkYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFBvc2l0aW9uKG5ldyBab25lW3pvbmVUeXBlXSguLi5PYmplY3QudmFsdWVzKHBhcmFtcykpKTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHMgdGhlIHBhcnRpY2xlJ3MgaW5pdGlhbCBwb3NpdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICogQHJldHVybiB2b2lkXG4gKi9cblBvc2l0aW9uLnByb3RvdHlwZS5pbml0aWFsaXplID0gKGZ1bmN0aW9uKCkge1xuICBsZXQgem9uZTtcblxuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgem9uZSA9IHRoaXMuem9uZXNbKE1hdGgucmFuZG9tKCkgKiB0aGlzLnpvbmVzLmxlbmd0aCkgPj4gMF07XG5cbiAgICB6b25lLmdldFBvc2l0aW9uKCk7XG5cbiAgICB0YXJnZXQucG9zaXRpb24ueCA9IHpvbmUudmVjdG9yLng7XG4gICAgdGFyZ2V0LnBvc2l0aW9uLnkgPSB6b25lLnZlY3Rvci55O1xuICAgIHRhcmdldC5wb3NpdGlvbi56ID0gem9uZS52ZWN0b3IuejtcbiAgfTtcbn0pKCk7XG4iXX0=
@@ -1,118 +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 _Initializer2 = _interopRequireDefault(require("./Initializer"));
21
-
22
- var _math = require("../math");
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
- * Sets the radius property on initialized particles.
32
- *
33
- */
34
- var Radius = /*#__PURE__*/function (_Initializer) {
35
- (0, _inherits2["default"])(Radius, _Initializer);
36
-
37
- var _super = _createSuper(Radius);
38
-
39
- /**
40
- * Constructs a Radius initializer instance.
41
- *
42
- * @param {number} width - The width of the particle radius
43
- * @param {number} height - The height of the particle radius
44
- * @param {boolean} [center=false] - Determines whether to average the radius value
45
- * @return void
46
- */
47
- function Radius(width, height) {
48
- var _this;
49
-
50
- var center = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
51
- var isEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
52
- (0, _classCallCheck2["default"])(this, Radius);
53
- _this = _super.call(this, _types.INITIALIZER_TYPE_RADIUS, isEnabled);
54
- /**
55
- * @desc The radius span which is used to set the particle radius value.
56
- * @type {Span}
57
- */
58
-
59
- _this.radius = (0, _math.createSpan)(width, height, center);
60
- return _this;
61
- }
62
- /**
63
- * Resets the initializer properties.
64
- * Clears all previously set zones and resets the zones according to args passed.
65
- *
66
- * @param {number} width - The width of the particle radius
67
- * @param {number} height - The height of the particle radius
68
- * @param {boolean} [center=false] - Determines whether to average the radius value
69
- * @return void
70
- */
71
-
72
-
73
- (0, _createClass2["default"])(Radius, [{
74
- key: "reset",
75
- value: function reset(width, height) {
76
- var center = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
77
- this.radius = (0, _math.createSpan)(width, height, center);
78
- }
79
- /**
80
- * Sets the particle's initial radius.
81
- *
82
- * @param {Particle} particle - the particle to initialize the property on
83
- * @return void
84
- */
85
-
86
- }, {
87
- key: "initialize",
88
- value: function initialize(particle) {
89
- particle.radius = this.radius.getValue();
90
- particle.transform.oldRadius = particle.radius;
91
- }
92
- /**
93
- * Creates a Radius initializer from JSON.
94
- *
95
- * @param {object} json - The JSON to construct the instance from.
96
- * @property {number} json.width - The width of the particle radius
97
- * @property {number} json.height - The height of the particle radius
98
- * @property {number} json.center - The center of the particle radius
99
- * @return {Radius}
100
- */
101
-
102
- }], [{
103
- key: "fromJSON",
104
- value: function fromJSON(json) {
105
- var width = json.width,
106
- height = json.height,
107
- _json$center = json.center,
108
- center = _json$center === void 0 ? false : _json$center,
109
- _json$isEnabled = json.isEnabled,
110
- isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
111
- return new Radius(width, height, center, isEnabled);
112
- }
113
- }]);
114
- return Radius;
115
- }(_Initializer2["default"]);
116
-
117
- exports["default"] = Radius;
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9SYWRpdXMuanMiXSwibmFtZXMiOlsiUmFkaXVzIiwid2lkdGgiLCJoZWlnaHQiLCJjZW50ZXIiLCJpc0VuYWJsZWQiLCJ0eXBlIiwicmFkaXVzIiwicGFydGljbGUiLCJnZXRWYWx1ZSIsInRyYW5zZm9ybSIsIm9sZFJhZGl1cyIsImpzb24iLCJJbml0aWFsaXplciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNxQkEsTTs7Ozs7QUFDbkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLGtCQUFZQyxLQUFaLEVBQW1CQyxNQUFuQixFQUE2RDtBQUFBOztBQUFBLFFBQWxDQyxNQUFrQyx1RUFBekIsS0FBeUI7QUFBQSxRQUFsQkMsU0FBa0IsdUVBQU4sSUFBTTtBQUFBO0FBQzNELDhCQUFNQyw4QkFBTixFQUFZRCxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksVUFBS0UsTUFBTCxHQUFjLHNCQUFXTCxLQUFYLEVBQWtCQyxNQUFsQixFQUEwQkMsTUFBMUIsQ0FBZDtBQVAyRDtBQVE1RDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7MEJBQ1FGLEssRUFBT0MsTSxFQUF3QjtBQUFBLFVBQWhCQyxNQUFnQix1RUFBUCxLQUFPO0FBQ25DLFdBQUtHLE1BQUwsR0FBYyxzQkFBV0wsS0FBWCxFQUFrQkMsTUFBbEIsRUFBMEJDLE1BQTFCLENBQWQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OzsrQkFDYUksUSxFQUFVO0FBQ25CQSxNQUFBQSxRQUFRLENBQUNELE1BQVQsR0FBa0IsS0FBS0EsTUFBTCxDQUFZRSxRQUFaLEVBQWxCO0FBQ0FELE1BQUFBLFFBQVEsQ0FBQ0UsU0FBVCxDQUFtQkMsU0FBbkIsR0FBK0JILFFBQVEsQ0FBQ0QsTUFBeEM7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs2QkFDa0JLLEksRUFBTTtBQUFBLFVBQ1pWLEtBRFksR0FDd0NVLElBRHhDLENBQ1pWLEtBRFk7QUFBQSxVQUNMQyxNQURLLEdBQ3dDUyxJQUR4QyxDQUNMVCxNQURLO0FBQUEseUJBQ3dDUyxJQUR4QyxDQUNHUixNQURIO0FBQUEsVUFDR0EsTUFESCw2QkFDWSxLQURaO0FBQUEsNEJBQ3dDUSxJQUR4QyxDQUNtQlAsU0FEbkI7QUFBQSxVQUNtQkEsU0FEbkIsZ0NBQytCLElBRC9CO0FBR3BCLGFBQU8sSUFBSUosTUFBSixDQUFXQyxLQUFYLEVBQWtCQyxNQUFsQixFQUEwQkMsTUFBMUIsRUFBa0NDLFNBQWxDLENBQVA7QUFDRDs7O0VBeERpQ1Esd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSW5pdGlhbGl6ZXIgZnJvbSAnLi9Jbml0aWFsaXplcic7XG5pbXBvcnQgeyBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1JBRElVUyBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG4vKipcbiAqIFNldHMgdGhlIHJhZGl1cyBwcm9wZXJ0eSBvbiBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSYWRpdXMgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmFkaXVzIGluaXRpYWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIHBhcnRpY2xlIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgcGFydGljbGUgcmFkaXVzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NlbnRlcj1mYWxzZV0gLSBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXZlcmFnZSB0aGUgcmFkaXVzIHZhbHVlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3Iod2lkdGgsIGhlaWdodCwgY2VudGVyID0gZmFsc2UsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcih0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHJhZGl1cyBzcGFuIHdoaWNoIGlzIHVzZWQgdG8gc2V0IHRoZSBwYXJ0aWNsZSByYWRpdXMgdmFsdWUuXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy5yYWRpdXMgPSBjcmVhdGVTcGFuKHdpZHRoLCBoZWlnaHQsIGNlbnRlcik7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBpbml0aWFsaXplciBwcm9wZXJ0aWVzLlxuICAgKiBDbGVhcnMgYWxsIHByZXZpb3VzbHkgc2V0IHpvbmVzIGFuZCByZXNldHMgdGhlIHpvbmVzIGFjY29yZGluZyB0byBhcmdzIHBhc3NlZC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIHJhZGl1c1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjZW50ZXI9ZmFsc2VdIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGF2ZXJhZ2UgdGhlIHJhZGl1cyB2YWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHdpZHRoLCBoZWlnaHQsIGNlbnRlciA9IGZhbHNlKSB7XG4gICAgdGhpcy5yYWRpdXMgPSBjcmVhdGVTcGFuKHdpZHRoLCBoZWlnaHQsIGNlbnRlcik7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIHJhZGl1cy5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUucmFkaXVzID0gdGhpcy5yYWRpdXMuZ2V0VmFsdWUoKTtcbiAgICBwYXJ0aWNsZS50cmFuc2Zvcm0ub2xkUmFkaXVzID0gcGFydGljbGUucmFkaXVzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSYWRpdXMgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ud2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIHBhcnRpY2xlIHJhZGl1c1xuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5oZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uY2VudGVyIC0gVGhlIGNlbnRlciBvZiB0aGUgcGFydGljbGUgcmFkaXVzXG4gICAqIEByZXR1cm4ge1JhZGl1c31cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBjZW50ZXIgPSBmYWxzZSwgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgUmFkaXVzKHdpZHRoLCBoZWlnaHQsIGNlbnRlciwgaXNFbmFibGVkKTtcbiAgfVxufVxuIl19
@@ -1,150 +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 _constants = require("./constants");
21
-
22
- var _math = require("../math");
23
-
24
- var _Initializer2 = _interopRequireDefault(require("./Initializer"));
25
-
26
- var _types = require("./types");
27
-
28
- 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); }; }
29
-
30
- 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; } }
31
-
32
- /**
33
- * Calculates the rate of particle emission.
34
- *
35
- * NOTE This doesn't need to be an initializer, it doesn't have an initialize
36
- * method, it overrides the base init method and it is only relevent to the Emitter class.
37
- * It would be better to move this to the Emitter module itself as a standalone class.
38
- *
39
- */
40
- var Rate = /*#__PURE__*/function (_Initializer) {
41
- (0, _inherits2["default"])(Rate, _Initializer);
42
-
43
- var _super = _createSuper(Rate);
44
-
45
- /**
46
- * Constructs a Rate instance.
47
- *
48
- * @param {number|array|Span} numPan - The number of particles to emit
49
- * @param {number|array|Span} timePan - The time between each particle emission
50
- * @return void
51
- */
52
- function Rate() {
53
- var _this;
54
-
55
- var numPan = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.DEFAULT_RATE_NUM_PAN;
56
- var timePan = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.DEFAULT_RATE_TIME_PAN;
57
- (0, _classCallCheck2["default"])(this, Rate);
58
- _this = _super.call(this, _types.INITIALIZER_TYPE_RATE);
59
- /**
60
- * @desc Sets the number of particles to emit.
61
- * @type {Span}
62
- */
63
-
64
- _this.numPan = (0, _math.createSpan)(numPan);
65
- /**
66
- * @desc Sets the time between each particle emission.
67
- * @type {Span}
68
- */
69
-
70
- _this.timePan = (0, _math.createSpan)(timePan);
71
- /**
72
- * @desc The rate's start time.
73
- * @type {number}
74
- */
75
-
76
- _this.startTime = 0;
77
- /**
78
- * @desc The rate's next time.
79
- * @type {number}
80
- */
81
-
82
- _this.nextTime = 0;
83
-
84
- _this.init();
85
-
86
- return _this;
87
- }
88
- /**
89
- * Sets the startTime and nextTime properties.
90
- *
91
- * @return void
92
- */
93
-
94
-
95
- (0, _createClass2["default"])(Rate, [{
96
- key: "init",
97
- value: function init() {
98
- this.startTime = 0;
99
- this.nextTime = this.timePan.getValue();
100
- }
101
- /**
102
- * Gets the number of particles to emit.
103
- *
104
- * @param {number} time - Current particle engine time
105
- * @return {number}
106
- */
107
-
108
- }, {
109
- key: "getValue",
110
- value: function getValue(time) {
111
- this.startTime += time;
112
-
113
- if (this.startTime >= this.nextTime) {
114
- this.init();
115
-
116
- if (this.numPan.b == 1) {
117
- if (this.numPan.getValue('Float') > 0.5) return 1;else return 0;
118
- } else {
119
- return this.numPan.getValue('Int');
120
- }
121
- }
122
-
123
- return 0;
124
- }
125
- /**
126
- * Creates a Rate initializer from JSON.
127
- *
128
- * @param {object} json - The JSON to construct the instance from.
129
- * @property {number} json.particlesMin - The minimum number of particles to emit
130
- * @property {number} json.particlesMax - The maximum number of particles to emit
131
- * @property {number} json.perSecondMin - The minimum per second emit rate
132
- * @property {number} json.perSecondMax - The maximum per second emit rate
133
- * @return {Rate}
134
- */
135
-
136
- }], [{
137
- key: "fromJSON",
138
- value: function fromJSON(json) {
139
- var particlesMin = json.particlesMin,
140
- particlesMax = json.particlesMax,
141
- perSecondMin = json.perSecondMin,
142
- perSecondMax = json.perSecondMax;
143
- return new Rate(new _math.Span(particlesMin, particlesMax), new _math.Span(perSecondMin, perSecondMax));
144
- }
145
- }]);
146
- return Rate;
147
- }(_Initializer2["default"]);
148
-
149
- exports["default"] = Rate;
150
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9SYXRlLmpzIl0sIm5hbWVzIjpbIlJhdGUiLCJudW1QYW4iLCJERUZBVUxUX1JBVEVfTlVNX1BBTiIsInRpbWVQYW4iLCJERUZBVUxUX1JBVEVfVElNRV9QQU4iLCJ0eXBlIiwic3RhcnRUaW1lIiwibmV4dFRpbWUiLCJpbml0IiwiZ2V0VmFsdWUiLCJ0aW1lIiwiYiIsImpzb24iLCJwYXJ0aWNsZXNNaW4iLCJwYXJ0aWNsZXNNYXgiLCJwZXJTZWNvbmRNaW4iLCJwZXJTZWNvbmRNYXgiLCJTcGFuIiwiSW5pdGlhbGl6ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNxQkEsSTs7Ozs7QUFDbkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRSxrQkFBNEU7QUFBQTs7QUFBQSxRQUFoRUMsTUFBZ0UsdUVBQXZEQywrQkFBdUQ7QUFBQSxRQUFqQ0MsT0FBaUMsdUVBQXZCQyxnQ0FBdUI7QUFBQTtBQUMxRSw4QkFBTUMsNEJBQU47QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxVQUFLSixNQUFMLEdBQWMsc0JBQVdBLE1BQVgsQ0FBZDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFVBQUtFLE9BQUwsR0FBZSxzQkFBV0EsT0FBWCxDQUFmO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksVUFBS0csU0FBTCxHQUFpQixDQUFqQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFVBQUtDLFFBQUwsR0FBZ0IsQ0FBaEI7O0FBRUEsVUFBS0MsSUFBTDs7QUEzQjBFO0FBNEIzRTtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7Ozs7OzJCQUNTO0FBQ0wsV0FBS0YsU0FBTCxHQUFpQixDQUFqQjtBQUNBLFdBQUtDLFFBQUwsR0FBZ0IsS0FBS0osT0FBTCxDQUFhTSxRQUFiLEVBQWhCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7NkJBQ1dDLEksRUFBTTtBQUNiLFdBQUtKLFNBQUwsSUFBa0JJLElBQWxCOztBQUVBLFVBQUksS0FBS0osU0FBTCxJQUFrQixLQUFLQyxRQUEzQixFQUFxQztBQUNuQyxhQUFLQyxJQUFMOztBQUVBLFlBQUksS0FBS1AsTUFBTCxDQUFZVSxDQUFaLElBQWlCLENBQXJCLEVBQXdCO0FBQ3RCLGNBQUksS0FBS1YsTUFBTCxDQUFZUSxRQUFaLENBQXFCLE9BQXJCLElBQWdDLEdBQXBDLEVBQXlDLE9BQU8sQ0FBUCxDQUF6QyxLQUNLLE9BQU8sQ0FBUDtBQUNOLFNBSEQsTUFHTztBQUNMLGlCQUFPLEtBQUtSLE1BQUwsQ0FBWVEsUUFBWixDQUFxQixLQUFyQixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxhQUFPLENBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzZCQUNrQkcsSSxFQUFNO0FBQUEsVUFDWkMsWUFEWSxHQUMrQ0QsSUFEL0MsQ0FDWkMsWUFEWTtBQUFBLFVBQ0VDLFlBREYsR0FDK0NGLElBRC9DLENBQ0VFLFlBREY7QUFBQSxVQUNnQkMsWUFEaEIsR0FDK0NILElBRC9DLENBQ2dCRyxZQURoQjtBQUFBLFVBQzhCQyxZQUQ5QixHQUMrQ0osSUFEL0MsQ0FDOEJJLFlBRDlCO0FBR3BCLGFBQU8sSUFBSWhCLElBQUosQ0FDTCxJQUFJaUIsVUFBSixDQUFTSixZQUFULEVBQXVCQyxZQUF2QixDQURLLEVBRUwsSUFBSUcsVUFBSixDQUFTRixZQUFULEVBQXVCQyxZQUF2QixDQUZLLENBQVA7QUFJRDs7O0VBeEYrQkUsd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX1JBVEVfTlVNX1BBTiwgREVGQVVMVF9SQVRFX1RJTUVfUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3BhbiwgY3JlYXRlU3BhbiB9IGZyb20gJy4uL21hdGgnO1xuXG5pbXBvcnQgSW5pdGlhbGl6ZXIgZnJvbSAnLi9Jbml0aWFsaXplcic7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1JBVEUgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIHJhdGUgb2YgcGFydGljbGUgZW1pc3Npb24uXG4gKlxuICogTk9URSBUaGlzIGRvZXNuJ3QgbmVlZCB0byBiZSBhbiBpbml0aWFsaXplciwgaXQgZG9lc24ndCBoYXZlIGFuIGluaXRpYWxpemVcbiAqIG1ldGhvZCwgaXQgb3ZlcnJpZGVzIHRoZSBiYXNlIGluaXQgbWV0aG9kIGFuZCBpdCBpcyBvbmx5IHJlbGV2ZW50IHRvIHRoZSBFbWl0dGVyIGNsYXNzLlxuICogSXQgd291bGQgYmUgYmV0dGVyIHRvIG1vdmUgdGhpcyB0byB0aGUgRW1pdHRlciBtb2R1bGUgaXRzZWxmIGFzIGEgc3RhbmRhbG9uZSBjbGFzcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhdGUgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmF0ZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ8YXJyYXl8U3Bhbn0gbnVtUGFuIC0gVGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gZW1pdFxuICAgKiBAcGFyYW0ge251bWJlcnxhcnJheXxTcGFufSB0aW1lUGFuIC0gVGhlIHRpbWUgYmV0d2VlbiBlYWNoIHBhcnRpY2xlIGVtaXNzaW9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IobnVtUGFuID0gREVGQVVMVF9SQVRFX05VTV9QQU4sIHRpbWVQYW4gPSBERUZBVUxUX1JBVEVfVElNRV9QQU4pIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFNldHMgdGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gZW1pdC5cbiAgICAgKiBAdHlwZSB7U3Bhbn1cbiAgICAgKi9cbiAgICB0aGlzLm51bVBhbiA9IGNyZWF0ZVNwYW4obnVtUGFuKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFNldHMgdGhlIHRpbWUgYmV0d2VlbiBlYWNoIHBhcnRpY2xlIGVtaXNzaW9uLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMudGltZVBhbiA9IGNyZWF0ZVNwYW4odGltZVBhbik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcmF0ZSdzIHN0YXJ0IHRpbWUuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcmF0ZSdzIG5leHQgdGltZS5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMubmV4dFRpbWUgPSAwO1xuXG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RhcnRUaW1lIGFuZCBuZXh0VGltZSBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXQoKSB7XG4gICAgdGhpcy5zdGFydFRpbWUgPSAwO1xuICAgIHRoaXMubmV4dFRpbWUgPSB0aGlzLnRpbWVQYW4uZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgcGFydGljbGVzIHRvIGVtaXQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gQ3VycmVudCBwYXJ0aWNsZSBlbmdpbmUgdGltZVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXRWYWx1ZSh0aW1lKSB7XG4gICAgdGhpcy5zdGFydFRpbWUgKz0gdGltZTtcblxuICAgIGlmICh0aGlzLnN0YXJ0VGltZSA+PSB0aGlzLm5leHRUaW1lKSB7XG4gICAgICB0aGlzLmluaXQoKTtcblxuICAgICAgaWYgKHRoaXMubnVtUGFuLmIgPT0gMSkge1xuICAgICAgICBpZiAodGhpcy5udW1QYW4uZ2V0VmFsdWUoJ0Zsb2F0JykgPiAwLjUpIHJldHVybiAxO1xuICAgICAgICBlbHNlIHJldHVybiAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtUGFuLmdldFZhbHVlKCdJbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUmF0ZSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5wYXJ0aWNsZXNNaW4gLSBUaGUgbWluaW11bSBudW1iZXIgb2YgcGFydGljbGVzIHRvIGVtaXRcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ucGFydGljbGVzTWF4IC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpY2xlcyB0byBlbWl0XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnBlclNlY29uZE1pbiAtIFRoZSBtaW5pbXVtIHBlciBzZWNvbmQgZW1pdCByYXRlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnBlclNlY29uZE1heCAtIFRoZSBtYXhpbXVtIHBlciBzZWNvbmQgZW1pdCByYXRlXG4gICAqIEByZXR1cm4ge1JhdGV9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgcGFydGljbGVzTWluLCBwYXJ0aWNsZXNNYXgsIHBlclNlY29uZE1pbiwgcGVyU2Vjb25kTWF4IH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBSYXRlKFxuICAgICAgbmV3IFNwYW4ocGFydGljbGVzTWluLCBwYXJ0aWNsZXNNYXgpLFxuICAgICAgbmV3IFNwYW4ocGVyU2Vjb25kTWluLCBwZXJTZWNvbmRNYXgpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,139 +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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
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 _Initializer2 = _interopRequireDefault(require("./Initializer"));
25
-
26
- var _types = require("./types");
27
-
28
- var _utils = require("../utils");
29
-
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
-
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
-
34
- 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); }; }
35
-
36
- 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; } }
37
-
38
- /**
39
- * Sets the body property to be a THREE.Sprite with a texture map on initialized particles.
40
- *
41
- */
42
- var Texture = /*#__PURE__*/function (_Initializer) {
43
- (0, _inherits2["default"])(Texture, _Initializer);
44
-
45
- var _super = _createSuper(Texture);
46
-
47
- /**
48
- * Constructs an Texture initializer.
49
- *
50
- * @param {object} THREE - The Web GL API we are using eg., THREE
51
- * @param {string} texture - The sprite texture
52
- * @param {object|undefined} materialProperties - The sprite material properties
53
- * @param {?Texture} loadedTexture - Preloaded THREE.Texture instance
54
- */
55
- function Texture(THREE, loadedTexture) {
56
- var _this;
57
-
58
- var materialProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.DEFAULT_MATERIAL_PROPERTIES;
59
- var isEnabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
60
- (0, _classCallCheck2["default"])(this, Texture);
61
- _this = _super.call(this, _types.INITIALIZER_TYPE_TEXTURE, isEnabled);
62
- var Sprite = THREE.Sprite,
63
- SpriteMaterial = THREE.SpriteMaterial;
64
- /**
65
- * @desc The material properties for this object's SpriteMaterial
66
- * NOTE This is required for testing purposes
67
- * @type {object}
68
- */
69
-
70
- _this.materialProperties = (0, _utils.withDefaults)(_constants.DEFAULT_MATERIAL_PROPERTIES, materialProperties);
71
- /**
72
- * @desc The texture for the THREE.SpriteMaterial map.
73
- * @type {Texture}
74
- */
75
-
76
- _this.texture = loadedTexture;
77
- /**
78
- * @desc THREE.SpriteMaterial instance.
79
- * @type {SpriteMaterial}
80
- */
81
-
82
- _this.material = new SpriteMaterial(_objectSpread(_objectSpread({}, {
83
- map: loadedTexture
84
- }), _this.materialProperties));
85
- /**
86
- * @desc THREE.Sprite instance.
87
- * @type {Sprite}
88
- */
89
-
90
- _this.sprite = new Sprite(_this.material);
91
- return _this;
92
- }
93
- /**
94
- * Sets the particle body to the sprite.
95
- *
96
- * @param {Particle} particle - The particle to set the body of
97
- * @return void
98
- */
99
-
100
-
101
- (0, _createClass2["default"])(Texture, [{
102
- key: "initialize",
103
- value: function initialize(particle) {
104
- particle.body = this.sprite;
105
- }
106
- /**
107
- * Creates a Texture initializer from JSON.
108
- *
109
- * @param {object} json - The JSON to construct the instance from
110
- * @param {object} THREE - The Web GL API we are using eg., THREE
111
- * @param {Texture} json.loadedTexture - The loaded sprite texture
112
- * @param {object} json.materialProperties - The sprite material properties
113
- * @return {BodySprite}
114
- */
115
-
116
- }], [{
117
- key: "fromJSON",
118
- value: function fromJSON(json, THREE) {
119
- var loadedTexture = json.loadedTexture,
120
- _json$materialPropert = json.materialProperties,
121
- materialProperties = _json$materialPropert === void 0 ? _constants.DEFAULT_JSON_MATERIAL_PROPERTIES : _json$materialPropert,
122
- _json$isEnabled = json.isEnabled,
123
- isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
124
-
125
- var ensureMappedBlendingMode = function ensureMappedBlendingMode(properties) {
126
- var blending = properties.blending;
127
- return _objectSpread(_objectSpread({}, properties), {}, {
128
- blending: blending ? _constants.SUPPORTED_MATERIAL_BLENDING_MODES[blending] : _constants.SUPPORTED_MATERIAL_BLENDING_MODES[_constants.DEFAULT_JSON_MATERIAL_PROPERTIES.blending]
129
- });
130
- };
131
-
132
- return new Texture(THREE, loadedTexture, (0, _utils.withDefaults)(_constants.DEFAULT_JSON_MATERIAL_PROPERTIES, ensureMappedBlendingMode(materialProperties)), isEnabled);
133
- }
134
- }]);
135
- return Texture;
136
- }(_Initializer2["default"]);
137
-
138
- exports["default"] = Texture;
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9UZXh0dXJlLmpzIl0sIm5hbWVzIjpbIlRleHR1cmUiLCJUSFJFRSIsImxvYWRlZFRleHR1cmUiLCJtYXRlcmlhbFByb3BlcnRpZXMiLCJERUZBVUxUX01BVEVSSUFMX1BST1BFUlRJRVMiLCJpc0VuYWJsZWQiLCJ0eXBlIiwiU3ByaXRlIiwiU3ByaXRlTWF0ZXJpYWwiLCJ0ZXh0dXJlIiwibWF0ZXJpYWwiLCJtYXAiLCJzcHJpdGUiLCJwYXJ0aWNsZSIsImJvZHkiLCJqc29uIiwiREVGQVVMVF9KU09OX01BVEVSSUFMX1BST1BFUlRJRVMiLCJlbnN1cmVNYXBwZWRCbGVuZGluZ01vZGUiLCJwcm9wZXJ0aWVzIiwiYmxlbmRpbmciLCJTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVMiLCJJbml0aWFsaXplciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBTUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtJQUNxQkEsTzs7Ozs7QUFDbkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLG1CQUNFQyxLQURGLEVBRUVDLGFBRkYsRUFLRTtBQUFBOztBQUFBLFFBRkFDLGtCQUVBLHVFQUZxQkMsc0NBRXJCO0FBQUEsUUFEQUMsU0FDQSx1RUFEWSxJQUNaO0FBQUE7QUFDQSw4QkFBTUMsK0JBQU4sRUFBWUQsU0FBWjtBQURBLFFBR1FFLE1BSFIsR0FHbUNOLEtBSG5DLENBR1FNLE1BSFI7QUFBQSxRQUdnQkMsY0FIaEIsR0FHbUNQLEtBSG5DLENBR2dCTyxjQUhoQjtBQUtBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBQ0ksVUFBS0wsa0JBQUwsR0FBMEIseUJBQ3hCQyxzQ0FEd0IsRUFFeEJELGtCQUZ3QixDQUExQjtBQUtBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFVBQUtNLE9BQUwsR0FBZVAsYUFBZjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFVBQUtRLFFBQUwsR0FBZ0IsSUFBSUYsY0FBSixpQ0FDWDtBQUFFRyxNQUFBQSxHQUFHLEVBQUVUO0FBQVAsS0FEVyxHQUVYLE1BQUtDLGtCQUZNLEVBQWhCO0FBS0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksVUFBS1MsTUFBTCxHQUFjLElBQUlMLE1BQUosQ0FBVyxNQUFLRyxRQUFoQixDQUFkO0FBbENBO0FBbUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzsrQkFDYUcsUSxFQUFVO0FBQ25CQSxNQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS0YsTUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs2QkFDa0JHLEksRUFBTWQsSyxFQUFPO0FBQUEsVUFFekJDLGFBRnlCLEdBS3ZCYSxJQUx1QixDQUV6QmIsYUFGeUI7QUFBQSxrQ0FLdkJhLElBTHVCLENBR3pCWixrQkFIeUI7QUFBQSxVQUd6QkEsa0JBSHlCLHNDQUdKYSwyQ0FISTtBQUFBLDRCQUt2QkQsSUFMdUIsQ0FJekJWLFNBSnlCO0FBQUEsVUFJekJBLFNBSnlCLGdDQUliLElBSmE7O0FBTzNCLFVBQU1ZLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBMkIsQ0FBQUMsVUFBVSxFQUFJO0FBQUEsWUFDckNDLFFBRHFDLEdBQ3hCRCxVQUR3QixDQUNyQ0MsUUFEcUM7QUFHN0MsK0NBQ0tELFVBREw7QUFFRUMsVUFBQUEsUUFBUSxFQUFFQSxRQUFRLEdBQ2RDLDZDQUFrQ0QsUUFBbEMsQ0FEYyxHQUVkQyw2Q0FDQUosNENBQWlDRyxRQURqQztBQUpOO0FBUUQsT0FYRDs7QUFhQSxhQUFPLElBQUluQixPQUFKLENBQ0xDLEtBREssRUFFTEMsYUFGSyxFQUdMLHlCQUNFYywyQ0FERixFQUVFQyx3QkFBd0IsQ0FBQ2Qsa0JBQUQsQ0FGMUIsQ0FISyxFQU9MRSxTQVBLLENBQVA7QUFTRDs7O0VBbkdrQ2dCLHdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9KU09OX01BVEVSSUFMX1BST1BFUlRJRVMsXG4gIERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB3aXRoRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSB0byBiZSBhIFRIUkVFLlNwcml0ZSB3aXRoIGEgdGV4dHVyZSBtYXAgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dHVyZSBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gVGV4dHVyZSBpbml0aWFsaXplci5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVGhlIFdlYiBHTCBBUEkgd2UgYXJlIHVzaW5nIGVnLiwgVEhSRUVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUgc3ByaXRlIHRleHR1cmVcbiAgICogQHBhcmFtIHtvYmplY3R8dW5kZWZpbmVkfSBtYXRlcmlhbFByb3BlcnRpZXMgLSBUaGUgc3ByaXRlIG1hdGVyaWFsIHByb3BlcnRpZXNcbiAgICogQHBhcmFtIHs/VGV4dHVyZX0gbG9hZGVkVGV4dHVyZSAtIFByZWxvYWRlZCBUSFJFRS5UZXh0dXJlIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBUSFJFRSxcbiAgICBsb2FkZWRUZXh0dXJlLFxuICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgICBpc0VuYWJsZWQgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICBjb25zdCB7IFNwcml0ZSwgU3ByaXRlTWF0ZXJpYWwgfSA9IFRIUkVFO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIG1hdGVyaWFsIHByb3BlcnRpZXMgZm9yIHRoaXMgb2JqZWN0J3MgU3ByaXRlTWF0ZXJpYWxcbiAgICAgKiBOT1RFIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgICAqL1xuICAgIHRoaXMubWF0ZXJpYWxQcm9wZXJ0aWVzID0gd2l0aERlZmF1bHRzKFxuICAgICAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgbWF0ZXJpYWxQcm9wZXJ0aWVzXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB0ZXh0dXJlIGZvciB0aGUgVEhSRUUuU3ByaXRlTWF0ZXJpYWwgbWFwLlxuICAgICAqIEB0eXBlIHtUZXh0dXJlfVxuICAgICAqL1xuICAgIHRoaXMudGV4dHVyZSA9IGxvYWRlZFRleHR1cmU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGVNYXRlcmlhbCBpbnN0YW5jZS5cbiAgICAgKiBAdHlwZSB7U3ByaXRlTWF0ZXJpYWx9XG4gICAgICovXG4gICAgdGhpcy5tYXRlcmlhbCA9IG5ldyBTcHJpdGVNYXRlcmlhbCh7XG4gICAgICAuLi57IG1hcDogbG9hZGVkVGV4dHVyZSB9LFxuICAgICAgLi4udGhpcy5tYXRlcmlhbFByb3BlcnRpZXMsXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGUgaW5zdGFuY2UuXG4gICAgICogQHR5cGUge1Nwcml0ZX1cbiAgICAgKi9cbiAgICB0aGlzLnNwcml0ZSA9IG5ldyBTcHJpdGUodGhpcy5tYXRlcmlhbCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUgYm9keSB0byB0aGUgc3ByaXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0byBzZXQgdGhlIGJvZHkgb2ZcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUuYm9keSA9IHRoaXMuc3ByaXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUZXh0dXJlIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb21cbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVGhlIFdlYiBHTCBBUEkgd2UgYXJlIHVzaW5nIGVnLiwgVEhSRUVcbiAgICogQHBhcmFtIHtUZXh0dXJlfSBqc29uLmxvYWRlZFRleHR1cmUgLSBUaGUgbG9hZGVkIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uLm1hdGVyaWFsUHJvcGVydGllcyAtIFRoZSBzcHJpdGUgbWF0ZXJpYWwgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCb2R5U3ByaXRlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIFRIUkVFKSB7XG4gICAgY29uc3Qge1xuICAgICAgbG9hZGVkVGV4dHVyZSxcbiAgICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgaXNFbmFibGVkID0gdHJ1ZSxcbiAgICB9ID0ganNvbjtcblxuICAgIGNvbnN0IGVuc3VyZU1hcHBlZEJsZW5kaW5nTW9kZSA9IHByb3BlcnRpZXMgPT4ge1xuICAgICAgY29uc3QgeyBibGVuZGluZyB9ID0gcHJvcGVydGllcztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgYmxlbmRpbmc6IGJsZW5kaW5nXG4gICAgICAgICAgPyBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbYmxlbmRpbmddXG4gICAgICAgICAgOiBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbXG4gICAgICAgICAgICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUy5ibGVuZGluZ1xuICAgICAgICAgIF0sXG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFRleHR1cmUoXG4gICAgICBUSFJFRSxcbiAgICAgIGxvYWRlZFRleHR1cmUsXG4gICAgICB3aXRoRGVmYXVsdHMoXG4gICAgICAgIERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgICBlbnN1cmVNYXBwZWRCbGVuZGluZ01vZGUobWF0ZXJpYWxQcm9wZXJ0aWVzKVxuICAgICAgKSxcbiAgICAgIGlzRW5hYmxlZFxuICAgICk7XG4gIH1cbn1cbiJdfQ==