three-nebula 11.0.0 → 11.1.1

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 (248) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/three-nebula.cjs +109 -0
  3. package/dist/three-nebula.cjs.map +1 -0
  4. package/dist/three-nebula.mjs +2969 -0
  5. package/dist/three-nebula.mjs.map +1 -0
  6. package/dist/three-nebula.umd.js +109 -0
  7. package/dist/three-nebula.umd.js.map +1 -0
  8. package/package.json +23 -47
  9. package/specs/01-emitter-hierarchy.md +200 -0
  10. package/specs/02-determinism-scrubbing.md +188 -0
  11. package/specs/03-sound-renderer.md +183 -0
  12. package/specs/04-schema-versioning.md +140 -0
  13. package/specs/05-content-addressed-assets.md +288 -0
  14. package/specs/README.md +80 -0
  15. package/build/cjs/behaviour/Alpha.js +0 -189
  16. package/build/cjs/behaviour/Attraction.js +0 -189
  17. package/build/cjs/behaviour/Behaviour.js +0 -253
  18. package/build/cjs/behaviour/Collision.js +0 -146
  19. package/build/cjs/behaviour/Color.js +0 -148
  20. package/build/cjs/behaviour/CrossZone.js +0 -141
  21. package/build/cjs/behaviour/Force.js +0 -126
  22. package/build/cjs/behaviour/Gravity.js +0 -78
  23. package/build/cjs/behaviour/RandomDrift.js +0 -153
  24. package/build/cjs/behaviour/Repulsion.js +0 -123
  25. package/build/cjs/behaviour/Rotate.js +0 -265
  26. package/build/cjs/behaviour/Scale.js +0 -177
  27. package/build/cjs/behaviour/Spring.js +0 -133
  28. package/build/cjs/behaviour/constants.js +0 -28
  29. package/build/cjs/behaviour/index.js +0 -112
  30. package/build/cjs/behaviour/types.js +0 -33
  31. package/build/cjs/constants/index.js +0 -61
  32. package/build/cjs/core/Particle.js +0 -390
  33. package/build/cjs/core/Pool.js +0 -203
  34. package/build/cjs/core/System.js +0 -366
  35. package/build/cjs/core/constants.js +0 -163
  36. package/build/cjs/core/fromJSON.js +0 -128
  37. package/build/cjs/core/fromJSONAsync.js +0 -239
  38. package/build/cjs/core/index.js +0 -32
  39. package/build/cjs/core/three/Euler.js +0 -233
  40. package/build/cjs/core/three/Math.js +0 -91
  41. package/build/cjs/core/three/Matrix4.js +0 -745
  42. package/build/cjs/core/three/Quaternion.js +0 -451
  43. package/build/cjs/core/three/Vector3.js +0 -464
  44. package/build/cjs/core/three/constants.js +0 -298
  45. package/build/cjs/core/three/index.js +0 -48
  46. package/build/cjs/core/types.js +0 -13
  47. package/build/cjs/debug/Debug.js +0 -209
  48. package/build/cjs/debug/constants.js +0 -19
  49. package/build/cjs/debug/index.js +0 -24
  50. package/build/cjs/debug/log.js +0 -38
  51. package/build/cjs/ease/index.js +0 -149
  52. package/build/cjs/emitter/Emitter.js +0 -798
  53. package/build/cjs/emitter/FollowEmitter.js +0 -146
  54. package/build/cjs/emitter/constants.js +0 -20
  55. package/build/cjs/emitter/index.js +0 -24
  56. package/build/cjs/emitter/types.js +0 -11
  57. package/build/cjs/events/EventDispatcher.js +0 -105
  58. package/build/cjs/events/constants.js +0 -23
  59. package/build/cjs/events/index.js +0 -27
  60. package/build/cjs/index.js +0 -151
  61. package/build/cjs/initializer/Body.js +0 -122
  62. package/build/cjs/initializer/BodySprite.js +0 -146
  63. package/build/cjs/initializer/Initializer.js +0 -109
  64. package/build/cjs/initializer/InitializerUtil.js +0 -54
  65. package/build/cjs/initializer/Life.js +0 -106
  66. package/build/cjs/initializer/Mass.js +0 -101
  67. package/build/cjs/initializer/Position.js +0 -152
  68. package/build/cjs/initializer/Radius.js +0 -118
  69. package/build/cjs/initializer/Rate.js +0 -150
  70. package/build/cjs/initializer/Rotation.js +0 -95
  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 -108
  79. package/build/cjs/initializer/types.js +0 -37
  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 -371
  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 -385
  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 -58
  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 -45
  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 -68
  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 -12
  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 -708
  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/Rotation.js +0 -54
  187. package/build/esm/initializer/Texture.js +0 -101
  188. package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
  189. package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
  190. package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
  191. package/build/esm/initializer/Velocity/Velocity.js +0 -52
  192. package/build/esm/initializer/Velocity/index.js +0 -4
  193. package/build/esm/initializer/constants.js +0 -26
  194. package/build/esm/initializer/index.js +0 -12
  195. package/build/esm/initializer/types.js +0 -16
  196. package/build/esm/math/ArraySpan.js +0 -62
  197. package/build/esm/math/Box.js +0 -25
  198. package/build/esm/math/ColorSpan.js +0 -71
  199. package/build/esm/math/MathUtils.js +0 -48
  200. package/build/esm/math/Polar3D.js +0 -81
  201. package/build/esm/math/Span.js +0 -63
  202. package/build/esm/math/Vector3D.js +0 -34
  203. package/build/esm/math/constants.js +0 -24
  204. package/build/esm/math/index.js +0 -10
  205. package/build/esm/math/integration.js +0 -47
  206. package/build/esm/math/types.js +0 -7
  207. package/build/esm/renderer/BaseRenderer.js +0 -78
  208. package/build/esm/renderer/CustomRenderer.js +0 -23
  209. package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -357
  210. package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -30
  211. package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
  212. package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -36
  213. package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -375
  214. package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -27
  215. package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
  216. package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -33
  217. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -30
  218. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
  219. package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
  220. package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
  221. package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
  222. package/build/esm/renderer/GPURenderer/common/index.js +0 -4
  223. package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
  224. package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -26
  225. package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
  226. package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
  227. package/build/esm/renderer/GPURenderer/index.js +0 -57
  228. package/build/esm/renderer/MeshRenderer.js +0 -93
  229. package/build/esm/renderer/SpriteRenderer.js +0 -30
  230. package/build/esm/renderer/index.js +0 -5
  231. package/build/esm/renderer/types.js +0 -8
  232. package/build/esm/utils/ColorUtil.js +0 -32
  233. package/build/esm/utils/PUID.js +0 -19
  234. package/build/esm/utils/THREEUtil.js +0 -31
  235. package/build/esm/utils/Util.js +0 -60
  236. package/build/esm/utils/index.js +0 -13
  237. package/build/esm/utils/uid.js +0 -3
  238. package/build/esm/zone/BoxZone.js +0 -133
  239. package/build/esm/zone/LineZone.js +0 -61
  240. package/build/esm/zone/MeshZone.js +0 -60
  241. package/build/esm/zone/PointZone.js +0 -59
  242. package/build/esm/zone/ScreenZone.js +0 -116
  243. package/build/esm/zone/SphereZone.js +0 -113
  244. package/build/esm/zone/Zone.js +0 -141
  245. package/build/esm/zone/index.js +0 -7
  246. package/build/esm/zone/types.js +0 -8
  247. package/build/three-nebula.js +0 -2
  248. package/build/three-nebula.js.map +0 -1
@@ -1,97 +0,0 @@
1
- import Emitter from './Emitter';
2
- import THREEUtil from '../utils/THREEUtil';
3
- import Util from '../utils/Util';
4
- import { EMITTER_TYPE_FOLLOW as type } from './types';
5
- export default class FollowEmitter extends Emitter {
6
- /**
7
- * The FollowEmitter class inherits from System.Emitter
8
- *
9
- * use the FollowEmitter will emit particle when mousemoving
10
- *
11
- * @class System.FollowEmitter
12
- * @constructor
13
- * @param {Element} mouseTarget mouseevent's target;
14
- * @param {Number} ease the easing of following speed;
15
- * @default 0.7
16
- * @param {Object} pObj the parameters object;
17
- */
18
- constructor(mouseTarget, ease, pObj) {
19
- super(pObj);
20
- /**
21
- * @desc The class type.
22
- * @type {string}
23
- */
24
-
25
- this.type = type;
26
- this.mouseTarget = Util.initValue(mouseTarget, window);
27
- this.ease = Util.initValue(ease, 0.7);
28
- this._allowEmitting = false;
29
- this.initEventHandler();
30
- }
31
-
32
- initEventHandler() {
33
- var self = this;
34
-
35
- this.mousemoveHandler = function (e) {
36
- self.mousemove.call(self, e);
37
- };
38
-
39
- this.mousedownHandler = function (e) {
40
- self.mousedown.call(self, e);
41
- };
42
-
43
- this.mouseupHandler = function (e) {
44
- self.mouseup.call(self, e);
45
- };
46
-
47
- this.mouseTarget.addEventListener('mousemove', this.mousemoveHandler, false);
48
- }
49
- /**
50
- * start emit particle
51
- * @method emit
52
- */
53
-
54
-
55
- emit() {
56
- this._allowEmitting = true;
57
- }
58
- /**
59
- * stop emiting
60
- * @method stopEmit
61
- */
62
-
63
-
64
- stopEmit() {
65
- this._allowEmitting = false;
66
- }
67
-
68
- setCameraAndCanvas(camera, canvas) {
69
- this.camera = camera;
70
- this.canvas = canvas;
71
- }
72
-
73
- mousemove(e) {
74
- if (e.layerX || e.layerX == 0) {
75
- this.position.x += (e.layerX - this.position.x) * this.ease;
76
- this.position.y += (e.layerY - this.position.y) * this.ease;
77
- } else if (e.offsetX || e.offsetX == 0) {
78
- this.position.x += (e.offsetX - this.position.x) * this.ease;
79
- this.position.y += (e.offsetY - this.position.y) * this.ease;
80
- }
81
-
82
- this.position.copy(THREEUtil.toSpacePos(this.position, this.camera, this.canvas));
83
- if (this._allowEmitting) super.emit('once');
84
- }
85
- /**
86
- * Destory this Emitter
87
- * @method destroy
88
- */
89
-
90
-
91
- destroy() {
92
- super.destroy();
93
- this.mouseTarget.removeEventListener('mousemove', this.mousemoveHandler, false);
94
- }
95
-
96
- }
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL0ZvbGxvd0VtaXR0ZXIuanMiXSwibmFtZXMiOlsiRW1pdHRlciIsIlRIUkVFVXRpbCIsIlV0aWwiLCJFTUlUVEVSX1RZUEVfRk9MTE9XIiwidHlwZSIsIkZvbGxvd0VtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsIm1vdXNlVGFyZ2V0IiwiZWFzZSIsInBPYmoiLCJpbml0VmFsdWUiLCJ3aW5kb3ciLCJfYWxsb3dFbWl0dGluZyIsImluaXRFdmVudEhhbmRsZXIiLCJzZWxmIiwibW91c2Vtb3ZlSGFuZGxlciIsImUiLCJtb3VzZW1vdmUiLCJjYWxsIiwibW91c2Vkb3duSGFuZGxlciIsIm1vdXNlZG93biIsIm1vdXNldXBIYW5kbGVyIiwibW91c2V1cCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlbWl0Iiwic3RvcEVtaXQiLCJzZXRDYW1lcmFBbmRDYW52YXMiLCJjYW1lcmEiLCJjYW52YXMiLCJsYXllclgiLCJwb3NpdGlvbiIsIngiLCJ5IiwibGF5ZXJZIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJjb3B5IiwidG9TcGFjZVBvcyIsImRlc3Ryb3kiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxPQUFQLE1BQW9CLFdBQXBCO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixvQkFBdEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGVBQWpCO0FBQ0EsU0FBU0MsbUJBQW1CLElBQUlDLElBQWhDLFFBQTRDLFNBQTVDO0FBRUEsZUFBZSxNQUFNQyxhQUFOLFNBQTRCTCxPQUE1QixDQUFvQztBQUNqRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxXQUFELEVBQWNDLElBQWQsRUFBb0JDLElBQXBCLEVBQTBCO0FBQ25DLFVBQU1BLElBQU47QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLTCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRyxXQUFMLEdBQW1CTCxJQUFJLENBQUNRLFNBQUwsQ0FBZUgsV0FBZixFQUE0QkksTUFBNUIsQ0FBbkI7QUFDQSxTQUFLSCxJQUFMLEdBQVlOLElBQUksQ0FBQ1EsU0FBTCxDQUFlRixJQUFmLEVBQXFCLEdBQXJCLENBQVo7QUFDQSxTQUFLSSxjQUFMLEdBQXNCLEtBQXRCO0FBQ0EsU0FBS0MsZ0JBQUw7QUFDRDs7QUFFREEsRUFBQUEsZ0JBQWdCLEdBQUc7QUFDakIsUUFBSUMsSUFBSSxHQUFHLElBQVg7O0FBRUEsU0FBS0MsZ0JBQUwsR0FBd0IsVUFBU0MsQ0FBVCxFQUFZO0FBQ2xDRixNQUFBQSxJQUFJLENBQUNHLFNBQUwsQ0FBZUMsSUFBZixDQUFvQkosSUFBcEIsRUFBMEJFLENBQTFCO0FBQ0QsS0FGRDs7QUFJQSxTQUFLRyxnQkFBTCxHQUF3QixVQUFTSCxDQUFULEVBQVk7QUFDbENGLE1BQUFBLElBQUksQ0FBQ00sU0FBTCxDQUFlRixJQUFmLENBQW9CSixJQUFwQixFQUEwQkUsQ0FBMUI7QUFDRCxLQUZEOztBQUlBLFNBQUtLLGNBQUwsR0FBc0IsVUFBU0wsQ0FBVCxFQUFZO0FBQ2hDRixNQUFBQSxJQUFJLENBQUNRLE9BQUwsQ0FBYUosSUFBYixDQUFrQkosSUFBbEIsRUFBd0JFLENBQXhCO0FBQ0QsS0FGRDs7QUFJQSxTQUFLVCxXQUFMLENBQWlCZ0IsZ0JBQWpCLENBQ0UsV0FERixFQUVFLEtBQUtSLGdCQUZQLEVBR0UsS0FIRjtBQUtEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7OztBQUNFUyxFQUFBQSxJQUFJLEdBQUc7QUFDTCxTQUFLWixjQUFMLEdBQXNCLElBQXRCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7O0FBQ0VhLEVBQUFBLFFBQVEsR0FBRztBQUNULFNBQUtiLGNBQUwsR0FBc0IsS0FBdEI7QUFDRDs7QUFFRGMsRUFBQUEsa0JBQWtCLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxFQUFpQjtBQUNqQyxTQUFLRCxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLQyxNQUFMLEdBQWNBLE1BQWQ7QUFDRDs7QUFFRFgsRUFBQUEsU0FBUyxDQUFDRCxDQUFELEVBQUk7QUFDWCxRQUFJQSxDQUFDLENBQUNhLE1BQUYsSUFBWWIsQ0FBQyxDQUFDYSxNQUFGLElBQVksQ0FBNUIsRUFBK0I7QUFDN0IsV0FBS0MsUUFBTCxDQUFjQyxDQUFkLElBQW1CLENBQUNmLENBQUMsQ0FBQ2EsTUFBRixHQUFXLEtBQUtDLFFBQUwsQ0FBY0MsQ0FBMUIsSUFBK0IsS0FBS3ZCLElBQXZEO0FBQ0EsV0FBS3NCLFFBQUwsQ0FBY0UsQ0FBZCxJQUFtQixDQUFDaEIsQ0FBQyxDQUFDaUIsTUFBRixHQUFXLEtBQUtILFFBQUwsQ0FBY0UsQ0FBMUIsSUFBK0IsS0FBS3hCLElBQXZEO0FBQ0QsS0FIRCxNQUdPLElBQUlRLENBQUMsQ0FBQ2tCLE9BQUYsSUFBYWxCLENBQUMsQ0FBQ2tCLE9BQUYsSUFBYSxDQUE5QixFQUFpQztBQUN0QyxXQUFLSixRQUFMLENBQWNDLENBQWQsSUFBbUIsQ0FBQ2YsQ0FBQyxDQUFDa0IsT0FBRixHQUFZLEtBQUtKLFFBQUwsQ0FBY0MsQ0FBM0IsSUFBZ0MsS0FBS3ZCLElBQXhEO0FBQ0EsV0FBS3NCLFFBQUwsQ0FBY0UsQ0FBZCxJQUFtQixDQUFDaEIsQ0FBQyxDQUFDbUIsT0FBRixHQUFZLEtBQUtMLFFBQUwsQ0FBY0UsQ0FBM0IsSUFBZ0MsS0FBS3hCLElBQXhEO0FBQ0Q7O0FBRUQsU0FBS3NCLFFBQUwsQ0FBY00sSUFBZCxDQUNFbkMsU0FBUyxDQUFDb0MsVUFBVixDQUFxQixLQUFLUCxRQUExQixFQUFvQyxLQUFLSCxNQUF6QyxFQUFpRCxLQUFLQyxNQUF0RCxDQURGO0FBSUEsUUFBSSxLQUFLaEIsY0FBVCxFQUF5QixNQUFNWSxJQUFOLENBQVcsTUFBWDtBQUMxQjtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7QUFDRWMsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsVUFBTUEsT0FBTjtBQUNBLFNBQUsvQixXQUFMLENBQWlCZ0MsbUJBQWpCLENBQ0UsV0FERixFQUVFLEtBQUt4QixnQkFGUCxFQUdFLEtBSEY7QUFLRDs7QUFqR2dEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVtaXR0ZXIgZnJvbSAnLi9FbWl0dGVyJztcbmltcG9ydCBUSFJFRVV0aWwgZnJvbSAnLi4vdXRpbHMvVEhSRUVVdGlsJztcbmltcG9ydCBVdGlsIGZyb20gJy4uL3V0aWxzL1V0aWwnO1xuaW1wb3J0IHsgRU1JVFRFUl9UWVBFX0ZPTExPVyBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvbGxvd0VtaXR0ZXIgZXh0ZW5kcyBFbWl0dGVyIHtcbiAgLyoqXG4gICAqIFRoZSBGb2xsb3dFbWl0dGVyIGNsYXNzIGluaGVyaXRzIGZyb20gU3lzdGVtLkVtaXR0ZXJcbiAgICpcbiAgICogdXNlIHRoZSBGb2xsb3dFbWl0dGVyIHdpbGwgZW1pdCBwYXJ0aWNsZSB3aGVuIG1vdXNlbW92aW5nXG4gICAqXG4gICAqIEBjbGFzcyBTeXN0ZW0uRm9sbG93RW1pdHRlclxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtFbGVtZW50fSBtb3VzZVRhcmdldCBtb3VzZWV2ZW50J3MgdGFyZ2V0O1xuICAgKiBAcGFyYW0ge051bWJlcn0gZWFzZSB0aGUgZWFzaW5nIG9mIGZvbGxvd2luZyBzcGVlZDtcbiAgICogQGRlZmF1bHQgMC43XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwT2JqIHRoZSBwYXJhbWV0ZXJzIG9iamVjdDtcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1vdXNlVGFyZ2V0LCBlYXNlLCBwT2JqKSB7XG4gICAgc3VwZXIocE9iaik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5tb3VzZVRhcmdldCA9IFV0aWwuaW5pdFZhbHVlKG1vdXNlVGFyZ2V0LCB3aW5kb3cpO1xuICAgIHRoaXMuZWFzZSA9IFV0aWwuaW5pdFZhbHVlKGVhc2UsIDAuNyk7XG4gICAgdGhpcy5fYWxsb3dFbWl0dGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdEV2ZW50SGFuZGxlcigpO1xuICB9XG5cbiAgaW5pdEV2ZW50SGFuZGxlcigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB0aGlzLm1vdXNlbW92ZUhhbmRsZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBzZWxmLm1vdXNlbW92ZS5jYWxsKHNlbGYsIGUpO1xuICAgIH07XG5cbiAgICB0aGlzLm1vdXNlZG93bkhhbmRsZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBzZWxmLm1vdXNlZG93bi5jYWxsKHNlbGYsIGUpO1xuICAgIH07XG5cbiAgICB0aGlzLm1vdXNldXBIYW5kbGVyID0gZnVuY3Rpb24oZSkge1xuICAgICAgc2VsZi5tb3VzZXVwLmNhbGwoc2VsZiwgZSk7XG4gICAgfTtcblxuICAgIHRoaXMubW91c2VUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgdGhpcy5tb3VzZW1vdmVIYW5kbGVyLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHN0YXJ0IGVtaXQgcGFydGljbGVcbiAgICogQG1ldGhvZCBlbWl0XG4gICAqL1xuICBlbWl0KCkge1xuICAgIHRoaXMuX2FsbG93RW1pdHRpbmcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIHN0b3AgZW1pdGluZ1xuICAgKiBAbWV0aG9kIHN0b3BFbWl0XG4gICAqL1xuICBzdG9wRW1pdCgpIHtcbiAgICB0aGlzLl9hbGxvd0VtaXR0aW5nID0gZmFsc2U7XG4gIH1cblxuICBzZXRDYW1lcmFBbmRDYW52YXMoY2FtZXJhLCBjYW52YXMpIHtcbiAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcbiAgfVxuXG4gIG1vdXNlbW92ZShlKSB7XG4gICAgaWYgKGUubGF5ZXJYIHx8IGUubGF5ZXJYID09IDApIHtcbiAgICAgIHRoaXMucG9zaXRpb24ueCArPSAoZS5sYXllclggLSB0aGlzLnBvc2l0aW9uLngpICogdGhpcy5lYXNlO1xuICAgICAgdGhpcy5wb3NpdGlvbi55ICs9IChlLmxheWVyWSAtIHRoaXMucG9zaXRpb24ueSkgKiB0aGlzLmVhc2U7XG4gICAgfSBlbHNlIGlmIChlLm9mZnNldFggfHwgZS5vZmZzZXRYID09IDApIHtcbiAgICAgIHRoaXMucG9zaXRpb24ueCArPSAoZS5vZmZzZXRYIC0gdGhpcy5wb3NpdGlvbi54KSAqIHRoaXMuZWFzZTtcbiAgICAgIHRoaXMucG9zaXRpb24ueSArPSAoZS5vZmZzZXRZIC0gdGhpcy5wb3NpdGlvbi55KSAqIHRoaXMuZWFzZTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uLmNvcHkoXG4gICAgICBUSFJFRVV0aWwudG9TcGFjZVBvcyh0aGlzLnBvc2l0aW9uLCB0aGlzLmNhbWVyYSwgdGhpcy5jYW52YXMpXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9hbGxvd0VtaXR0aW5nKSBzdXBlci5lbWl0KCdvbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdG9yeSB0aGlzIEVtaXR0ZXJcbiAgICogQG1ldGhvZCBkZXN0cm95XG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB0aGlzLm1vdXNlVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgIHRoaXMubW91c2Vtb3ZlSGFuZGxlcixcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,7 +0,0 @@
1
- import { Rate } from '../initializer';
2
- export const DEFAULT_DAMPING = 0.006;
3
- export const DEFAULT_BIND_EMITTER = true;
4
- export const DEFAULT_EMITTER_RATE = new Rate(1, 0.1);
5
- export const DEFAULT_BIND_EMITTER_EVENT = false;
6
- export const DEFAULT_EMITTER_INDEX = undefined;
7
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJSYXRlIiwiREVGQVVMVF9EQU1QSU5HIiwiREVGQVVMVF9CSU5EX0VNSVRURVIiLCJERUZBVUxUX0VNSVRURVJfUkFURSIsIkRFRkFVTFRfQklORF9FTUlUVEVSX0VWRU5UIiwiREVGQVVMVF9FTUlUVEVSX0lOREVYIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxJQUFULFFBQXFCLGdCQUFyQjtBQUVBLE9BQU8sTUFBTUMsZUFBZSxHQUFHLEtBQXhCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxJQUE3QjtBQUNQLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUcsSUFBSUgsSUFBSixDQUFTLENBQVQsRUFBWSxHQUFaLENBQTdCO0FBQ1AsT0FBTyxNQUFNSSwwQkFBMEIsR0FBRyxLQUFuQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUdDLFNBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmF0ZSB9IGZyb20gJy4uL2luaXRpYWxpemVyJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFNUElORyA9IDAuMDA2O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQklORF9FTUlUVEVSID0gdHJ1ZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VNSVRURVJfUkFURSA9IG5ldyBSYXRlKDEsIDAuMSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9CSU5EX0VNSVRURVJfRVZFTlQgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VNSVRURVJfSU5ERVggPSB1bmRlZmluZWQ7XG4iXX0=
@@ -1,3 +0,0 @@
1
- export { default as FollowEmitter } from './FollowEmitter';
2
- export { default as Emitter } from './Emitter';
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJGb2xsb3dFbWl0dGVyIiwiRW1pdHRlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxJQUFJQyxhQUFwQixRQUF5QyxpQkFBekM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLE9BQXBCLFFBQW1DLFdBQW5DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xsb3dFbWl0dGVyIH0gZnJvbSAnLi9Gb2xsb3dFbWl0dGVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW1pdHRlciB9IGZyb20gJy4vRW1pdHRlcic7XG4iXX0=
@@ -1,3 +0,0 @@
1
- export const EMITTER_TYPE_EMITTER = 'Emitter';
2
- export const EMITTER_TYPE_FOLLOW = 'FollowEmitter';
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL3R5cGVzLmpzIl0sIm5hbWVzIjpbIkVNSVRURVJfVFlQRV9FTUlUVEVSIiwiRU1JVFRFUl9UWVBFX0ZPTExPVyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxvQkFBb0IsR0FBRyxTQUE3QjtBQUNQLE9BQU8sTUFBTUMsbUJBQW1CLEdBQUcsZUFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRU1JVFRFUl9UWVBFX0VNSVRURVIgPSAnRW1pdHRlcic7XG5leHBvcnQgY29uc3QgRU1JVFRFUl9UWVBFX0ZPTExPVyA9ICdGb2xsb3dFbWl0dGVyJztcbiJdfQ==
@@ -1,82 +0,0 @@
1
- /*
2
- * EventDispatcher
3
- * Visit http://createjs.com/ for documentation, updates and examples.
4
- *
5
- **/
6
- export default class EventDispatcher {
7
- constructor() {
8
- this.listeners = null;
9
- }
10
-
11
- set listeners(listeners) {
12
- this._listeners = listeners;
13
- }
14
-
15
- get listeners() {
16
- return this._listeners;
17
- }
18
-
19
- addEventListener(type, listener) {
20
- if (!this.listeners) {
21
- this.listeners = {};
22
- } else {
23
- this.removeEventListener(type, listener);
24
- }
25
-
26
- if (!this.listeners[type]) this.listeners[type] = [];
27
- this.listeners[type].push(listener);
28
- return listener;
29
- }
30
-
31
- removeEventListener(type, listener) {
32
- if (!this.listeners) return;
33
- if (!this.listeners[type]) return;
34
- var arr = this.listeners[type];
35
-
36
- for (var i = 0, l = arr.length; i < l; i++) {
37
- if (arr[i] == listener) {
38
- if (l == 1) {
39
- delete this.listeners[type];
40
- } // allows for faster checks.
41
- else {
42
- arr.splice(i, 1);
43
- }
44
-
45
- break;
46
- }
47
- }
48
- }
49
-
50
- removeAllEventListeners(type) {
51
- if (!type) this.listeners = null;else if (this.listeners) delete this.listeners[type];
52
- }
53
-
54
- dispatchEvent(eventName, eventTarget) {
55
- var ret = false,
56
- listeners = this.listeners;
57
-
58
- if (eventName && listeners) {
59
- var arr = listeners[eventName];
60
- if (!arr) return ret;
61
- arr = arr.slice(); //Should use a copy into a temporary here instead...
62
- // to avoid issues with items being removed or added during the dispatch
63
-
64
- var handler,
65
- i = arr.length;
66
-
67
- while (i--) {
68
- handler = arr[i];
69
- ret = ret || handler(eventTarget);
70
- }
71
- }
72
-
73
- return !!ret;
74
- }
75
-
76
- hasEventListener(type) {
77
- var listeners = this.listeners;
78
- return !!(listeners && listeners[type]);
79
- }
80
-
81
- }
82
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvRXZlbnREaXNwYXRjaGVyLmpzIl0sIm5hbWVzIjpbIkV2ZW50RGlzcGF0Y2hlciIsImNvbnN0cnVjdG9yIiwibGlzdGVuZXJzIiwiX2xpc3RlbmVycyIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0eXBlIiwibGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicHVzaCIsImFyciIsImkiLCJsIiwibGVuZ3RoIiwic3BsaWNlIiwicmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMiLCJkaXNwYXRjaEV2ZW50IiwiZXZlbnROYW1lIiwiZXZlbnRUYXJnZXQiLCJyZXQiLCJzbGljZSIsImhhbmRsZXIiLCJoYXNFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsZUFBZSxNQUFNQSxlQUFOLENBQXNCO0FBQ25DQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxTQUFMLEdBQWlCLElBQWpCO0FBQ0Q7O0FBRVksTUFBVEEsU0FBUyxDQUFDQSxTQUFELEVBQVk7QUFDdkIsU0FBS0MsVUFBTCxHQUFrQkQsU0FBbEI7QUFDRDs7QUFFWSxNQUFUQSxTQUFTLEdBQUc7QUFDZCxXQUFPLEtBQUtDLFVBQVo7QUFDRDs7QUFFREMsRUFBQUEsZ0JBQWdCLENBQUNDLElBQUQsRUFBT0MsUUFBUCxFQUFpQjtBQUMvQixRQUFJLENBQUMsS0FBS0osU0FBVixFQUFxQjtBQUNuQixXQUFLQSxTQUFMLEdBQWlCLEVBQWpCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS0ssbUJBQUwsQ0FBeUJGLElBQXpCLEVBQStCQyxRQUEvQjtBQUNEOztBQUVELFFBQUksQ0FBQyxLQUFLSixTQUFMLENBQWVHLElBQWYsQ0FBTCxFQUEyQixLQUFLSCxTQUFMLENBQWVHLElBQWYsSUFBdUIsRUFBdkI7QUFDM0IsU0FBS0gsU0FBTCxDQUFlRyxJQUFmLEVBQXFCRyxJQUFyQixDQUEwQkYsUUFBMUI7QUFFQSxXQUFPQSxRQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLG1CQUFtQixDQUFDRixJQUFELEVBQU9DLFFBQVAsRUFBaUI7QUFDbEMsUUFBSSxDQUFDLEtBQUtKLFNBQVYsRUFBcUI7QUFDckIsUUFBSSxDQUFDLEtBQUtBLFNBQUwsQ0FBZUcsSUFBZixDQUFMLEVBQTJCO0FBRTNCLFFBQUlJLEdBQUcsR0FBRyxLQUFLUCxTQUFMLENBQWVHLElBQWYsQ0FBVjs7QUFFQSxTQUFLLElBQUlLLENBQUMsR0FBRyxDQUFSLEVBQVdDLENBQUMsR0FBR0YsR0FBRyxDQUFDRyxNQUF4QixFQUFnQ0YsQ0FBQyxHQUFHQyxDQUFwQyxFQUF1Q0QsQ0FBQyxFQUF4QyxFQUE0QztBQUMxQyxVQUFJRCxHQUFHLENBQUNDLENBQUQsQ0FBSCxJQUFVSixRQUFkLEVBQXdCO0FBQ3RCLFlBQUlLLENBQUMsSUFBSSxDQUFULEVBQVk7QUFDVixpQkFBTyxLQUFLVCxTQUFMLENBQWVHLElBQWYsQ0FBUDtBQUNELFNBRkQsQ0FHQTtBQUhBLGFBSUs7QUFDSEksVUFBQUEsR0FBRyxDQUFDSSxNQUFKLENBQVdILENBQVgsRUFBYyxDQUFkO0FBQ0Q7O0FBQ0Q7QUFDRDtBQUNGO0FBQ0Y7O0FBRURJLEVBQUFBLHVCQUF1QixDQUFDVCxJQUFELEVBQU87QUFDNUIsUUFBSSxDQUFDQSxJQUFMLEVBQVcsS0FBS0gsU0FBTCxHQUFpQixJQUFqQixDQUFYLEtBQ0ssSUFBSSxLQUFLQSxTQUFULEVBQW9CLE9BQU8sS0FBS0EsU0FBTCxDQUFlRyxJQUFmLENBQVA7QUFDMUI7O0FBRURVLEVBQUFBLGFBQWEsQ0FBQ0MsU0FBRCxFQUFZQyxXQUFaLEVBQXlCO0FBQ3BDLFFBQUlDLEdBQUcsR0FBRyxLQUFWO0FBQUEsUUFDRWhCLFNBQVMsR0FBRyxLQUFLQSxTQURuQjs7QUFHQSxRQUFJYyxTQUFTLElBQUlkLFNBQWpCLEVBQTRCO0FBQzFCLFVBQUlPLEdBQUcsR0FBR1AsU0FBUyxDQUFDYyxTQUFELENBQW5CO0FBRUEsVUFBSSxDQUFDUCxHQUFMLEVBQVUsT0FBT1MsR0FBUDtBQUVWVCxNQUFBQSxHQUFHLEdBQUdBLEdBQUcsQ0FBQ1UsS0FBSixFQUFOLENBTDBCLENBS0E7QUFDMUI7O0FBRUEsVUFBSUMsT0FBSjtBQUFBLFVBQ0VWLENBQUMsR0FBR0QsR0FBRyxDQUFDRyxNQURWOztBQUdBLGFBQU9GLENBQUMsRUFBUixFQUFZO0FBQ1ZVLFFBQUFBLE9BQU8sR0FBR1gsR0FBRyxDQUFDQyxDQUFELENBQWI7QUFFQVEsUUFBQUEsR0FBRyxHQUFHQSxHQUFHLElBQUlFLE9BQU8sQ0FBQ0gsV0FBRCxDQUFwQjtBQUNEO0FBQ0Y7O0FBRUQsV0FBTyxDQUFDLENBQUNDLEdBQVQ7QUFDRDs7QUFFREcsRUFBQUEsZ0JBQWdCLENBQUNoQixJQUFELEVBQU87QUFDckIsUUFBSUgsU0FBUyxHQUFHLEtBQUtBLFNBQXJCO0FBRUEsV0FBTyxDQUFDLEVBQUVBLFNBQVMsSUFBSUEsU0FBUyxDQUFDRyxJQUFELENBQXhCLENBQVI7QUFDRDs7QUFoRmtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEV2ZW50RGlzcGF0Y2hlclxuICogVmlzaXQgaHR0cDovL2NyZWF0ZWpzLmNvbS8gZm9yIGRvY3VtZW50YXRpb24sIHVwZGF0ZXMgYW5kIGV4YW1wbGVzLlxuICpcbiAqKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXZlbnREaXNwYXRjaGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMgPSBudWxsO1xuICB9XG5cbiAgc2V0IGxpc3RlbmVycyhsaXN0ZW5lcnMpIHtcbiAgICB0aGlzLl9saXN0ZW5lcnMgPSBsaXN0ZW5lcnM7XG4gIH1cblxuICBnZXQgbGlzdGVuZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0ZW5lcnM7XG4gIH1cblxuICBhZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmVycykge1xuICAgICAgdGhpcy5saXN0ZW5lcnMgPSB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzW3R5cGVdKSB0aGlzLmxpc3RlbmVyc1t0eXBlXSA9IFtdO1xuICAgIHRoaXMubGlzdGVuZXJzW3R5cGVdLnB1c2gobGlzdGVuZXIpO1xuXG4gICAgcmV0dXJuIGxpc3RlbmVyO1xuICB9XG5cbiAgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgIGlmICghdGhpcy5saXN0ZW5lcnMpIHJldHVybjtcbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzW3R5cGVdKSByZXR1cm47XG5cbiAgICB2YXIgYXJyID0gdGhpcy5saXN0ZW5lcnNbdHlwZV07XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGFyci5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChhcnJbaV0gPT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKGwgPT0gMSkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhbGxvd3MgZm9yIGZhc3RlciBjaGVja3MuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFyci5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnModHlwZSkge1xuICAgIGlmICghdHlwZSkgdGhpcy5saXN0ZW5lcnMgPSBudWxsO1xuICAgIGVsc2UgaWYgKHRoaXMubGlzdGVuZXJzKSBkZWxldGUgdGhpcy5saXN0ZW5lcnNbdHlwZV07XG4gIH1cblxuICBkaXNwYXRjaEV2ZW50KGV2ZW50TmFtZSwgZXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgcmV0ID0gZmFsc2UsXG4gICAgICBsaXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVycztcblxuICAgIGlmIChldmVudE5hbWUgJiYgbGlzdGVuZXJzKSB7XG4gICAgICB2YXIgYXJyID0gbGlzdGVuZXJzW2V2ZW50TmFtZV07XG5cbiAgICAgIGlmICghYXJyKSByZXR1cm4gcmV0O1xuXG4gICAgICBhcnIgPSBhcnIuc2xpY2UoKTsgICAgICAgIC8vU2hvdWxkIHVzZSBhIGNvcHkgaW50byBhIHRlbXBvcmFyeSBoZXJlIGluc3RlYWQuLi5cbiAgICAgIC8vIHRvIGF2b2lkIGlzc3VlcyB3aXRoIGl0ZW1zIGJlaW5nIHJlbW92ZWQgb3IgYWRkZWQgZHVyaW5nIHRoZSBkaXNwYXRjaFxuXG4gICAgICB2YXIgaGFuZGxlcixcbiAgICAgICAgaSA9IGFyci5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgaGFuZGxlciA9IGFycltpXTtcblxuICAgICAgICByZXQgPSByZXQgfHwgaGFuZGxlcihldmVudFRhcmdldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmV0O1xuICB9XG5cbiAgaGFzRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG4gICAgdmFyIGxpc3RlbmVycyA9IHRoaXMubGlzdGVuZXJzO1xuXG4gICAgcmV0dXJuICEhKGxpc3RlbmVycyAmJiBsaXN0ZW5lcnNbdHlwZV0pO1xuICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- export const SYSTEM_UPDATE = 'SYSTEM_UPDATE';
2
- export const PARTICLE_CREATED = 'PARTICLE_CREATED';
3
- export const PARTICLE_UPDATE = 'PARTICLE_UPDATE';
4
- export const PARTICLE_DEAD = 'PARTICLE_DEAD';
5
- export const EMITTER_ADDED = 'EMITTER_ADDED';
6
- export const EMITTER_REMOVED = 'EMITTER_REMOVED';
7
- export const EMITTER_DEAD = 'EMITTER_DEAD';
8
- export const SYSTEM_UPDATE_AFTER = 'SYSTEM_UPDATE_AFTER';
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIlNZU1RFTV9VUERBVEUiLCJQQVJUSUNMRV9DUkVBVEVEIiwiUEFSVElDTEVfVVBEQVRFIiwiUEFSVElDTEVfREVBRCIsIkVNSVRURVJfQURERUQiLCJFTUlUVEVSX1JFTU9WRUQiLCJFTUlUVEVSX0RFQUQiLCJTWVNURU1fVVBEQVRFX0FGVEVSIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGFBQWEsR0FBRyxlQUF0QjtBQUNQLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsa0JBQXpCO0FBQ1AsT0FBTyxNQUFNQyxlQUFlLEdBQUcsaUJBQXhCO0FBQ1AsT0FBTyxNQUFNQyxhQUFhLEdBQUcsZUFBdEI7QUFDUCxPQUFPLE1BQU1DLGFBQWEsR0FBRyxlQUF0QjtBQUNQLE9BQU8sTUFBTUMsZUFBZSxHQUFHLGlCQUF4QjtBQUNQLE9BQU8sTUFBTUMsWUFBWSxHQUFHLGNBQXJCO0FBQ1AsT0FBTyxNQUFNQyxtQkFBbUIsR0FBRyxxQkFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU1lTVEVNX1VQREFURSA9ICdTWVNURU1fVVBEQVRFJztcbmV4cG9ydCBjb25zdCBQQVJUSUNMRV9DUkVBVEVEID0gJ1BBUlRJQ0xFX0NSRUFURUQnO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX1VQREFURSA9ICdQQVJUSUNMRV9VUERBVEUnO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX0RFQUQgPSAnUEFSVElDTEVfREVBRCc7XG5leHBvcnQgY29uc3QgRU1JVFRFUl9BRERFRCA9ICdFTUlUVEVSX0FEREVEJztcbmV4cG9ydCBjb25zdCBFTUlUVEVSX1JFTU9WRUQgPSAnRU1JVFRFUl9SRU1PVkVEJztcbmV4cG9ydCBjb25zdCBFTUlUVEVSX0RFQUQgPSAnRU1JVFRFUl9ERUFEJztcbmV4cG9ydCBjb25zdCBTWVNURU1fVVBEQVRFX0FGVEVSID0gJ1NZU1RFTV9VUERBVEVfQUZURVInO1xuIl19
@@ -1,4 +0,0 @@
1
- import EventDispatcher from './EventDispatcher';
2
- export default EventDispatcher;
3
- export * from './constants';
4
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvaW5kZXguanMiXSwibmFtZXMiOlsiRXZlbnREaXNwYXRjaGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFQLE1BQTRCLG1CQUE1QjtBQUVBLGVBQWVBLGVBQWY7QUFDQSxjQUFjLGFBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXZlbnREaXNwYXRjaGVyIGZyb20gJy4vRXZlbnREaXNwYXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnREaXNwYXRjaGVyO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuIl19
@@ -1,13 +0,0 @@
1
- import { System } from './core';
2
- export * from './behaviour';
3
- export * from './debug';
4
- export * from './ease';
5
- export * from './emitter';
6
- export * from './initializer';
7
- export * from './math';
8
- export * from './renderer';
9
- export * from './utils';
10
- export * from './zone';
11
- export { System, Particle, Pool } from './core';
12
- export default System;
13
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJTeXN0ZW0iLCJQYXJ0aWNsZSIsIlBvb2wiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQVQsUUFBdUIsUUFBdkI7QUFFQSxjQUFjLGFBQWQ7QUFDQSxjQUFjLFNBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxjQUFjLFdBQWQ7QUFDQSxjQUFjLGVBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxjQUFjLFlBQWQ7QUFDQSxjQUFjLFNBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxTQUFTQSxNQUFULEVBQWlCQyxRQUFqQixFQUEyQkMsSUFBM0IsUUFBdUMsUUFBdkM7QUFDQSxlQUFlRixNQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3lzdGVtIH0gZnJvbSAnLi9jb3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9iZWhhdmlvdXInO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJ1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Vhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbWl0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaW5pdGlhbGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRoJztcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3pvbmUnO1xuZXhwb3J0IHsgU3lzdGVtLCBQYXJ0aWNsZSwgUG9vbCB9IGZyb20gJy4vY29yZSc7XG5leHBvcnQgZGVmYXVsdCBTeXN0ZW07XG4iXX0=
@@ -1,83 +0,0 @@
1
- import Initializer from './Initializer';
2
- import { createArraySpan } from '../math';
3
- import { INITIALIZER_TYPE_BODY as type } from './types';
4
- /**
5
- * Sets the body property on initialized particles.
6
- *
7
- */
8
-
9
- export default class Body extends Initializer {
10
- /**
11
- * Constructs a Body initalizer instance.
12
- *
13
- * @param {string|number|object} body - The content for the particle body, can
14
- * be a color or an object (mesh)
15
- * @param {?number} w - The width of the particle body
16
- * @param {?number} h - The height of the particle body
17
- * @return void
18
- */
19
- constructor(body, w, h, isEnabled = true) {
20
- super(type, isEnabled);
21
- /**
22
- * @desc The content for the particle body
23
- * @type {ArraySpan}
24
- */
25
-
26
- this.body = createArraySpan(body);
27
- /**
28
- * @desc The width of the particle Body
29
- * @type {number}
30
- */
31
-
32
- this.w = w;
33
- /**
34
- * @desc The height of the particle Body
35
- * @type {number}
36
- */
37
-
38
- this.h = h || w;
39
- }
40
- /**
41
- * Sets the particle's initial body.
42
- *
43
- * @param {Particle} particle - the particle to initialize the property on
44
- * @return void
45
- */
46
-
47
-
48
- initialize(particle) {
49
- var body = this.body.getValue();
50
-
51
- if (this.w) {
52
- particle.body = {
53
- width: this.w,
54
- height: this.h,
55
- body: body
56
- };
57
- } else {
58
- particle.body = body;
59
- }
60
- }
61
- /**
62
- * Creates a Body initializer from JSON.
63
- *
64
- * @param {object} json - The JSON to construct the instance from.
65
- * @property {number} json.body - The color for the particle body
66
- * @property {number} json.width - The width of the particle body
67
- * @property {number} json.height - The height of the particle body
68
- * @return {Body}
69
- */
70
-
71
-
72
- static fromJSON(json) {
73
- const {
74
- body,
75
- width,
76
- height,
77
- isEnabled = true
78
- } = json;
79
- return new Body(body, width, height, isEnabled);
80
- }
81
-
82
- }
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Cb2R5LmpzIl0sIm5hbWVzIjpbIkluaXRpYWxpemVyIiwiY3JlYXRlQXJyYXlTcGFuIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZIiwidHlwZSIsIkJvZHkiLCJjb25zdHJ1Y3RvciIsImJvZHkiLCJ3IiwiaCIsImlzRW5hYmxlZCIsImluaXRpYWxpemUiLCJwYXJ0aWNsZSIsImdldFZhbHVlIiwid2lkdGgiLCJoZWlnaHQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZUFBeEI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MscUJBQXFCLElBQUlDLElBQWxDLFFBQThDLFNBQTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxJQUFOLFNBQW1CSixXQUFuQixDQUErQjtBQUM1QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxJQUFELEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxTQUFTLEdBQUcsSUFBekIsRUFBK0I7QUFDeEMsVUFBTU4sSUFBTixFQUFZTSxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0gsSUFBTCxHQUFZTCxlQUFlLENBQUNLLElBQUQsQ0FBM0I7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQUMsSUFBSUQsQ0FBZDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkIsUUFBSUwsSUFBSSxHQUFHLEtBQUtBLElBQUwsQ0FBVU0sUUFBVixFQUFYOztBQUVBLFFBQUksS0FBS0wsQ0FBVCxFQUFZO0FBQ1ZJLE1BQUFBLFFBQVEsQ0FBQ0wsSUFBVCxHQUFnQjtBQUNkTyxRQUFBQSxLQUFLLEVBQUUsS0FBS04sQ0FERTtBQUVkTyxRQUFBQSxNQUFNLEVBQUUsS0FBS04sQ0FGQztBQUdkRixRQUFBQSxJQUFJLEVBQUVBO0FBSFEsT0FBaEI7QUFLRCxLQU5ELE1BTU87QUFDTEssTUFBQUEsUUFBUSxDQUFDTCxJQUFULEdBQWdCQSxJQUFoQjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSUyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVWLE1BQUFBLElBQUY7QUFBUU8sTUFBQUEsS0FBUjtBQUFlQyxNQUFBQSxNQUFmO0FBQXVCTCxNQUFBQSxTQUFTLEdBQUc7QUFBbkMsUUFBNENPLElBQWxEO0FBRUEsV0FBTyxJQUFJWixJQUFKLENBQVNFLElBQVQsRUFBZU8sS0FBZixFQUFzQkMsTUFBdEIsRUFBOEJMLFNBQTlCLENBQVA7QUFDRDs7QUFqRTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX0JPRFkgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBTZXRzIHRoZSBib2R5IHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvZHkgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgQm9keSBpbml0YWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8b2JqZWN0fSBib2R5IC0gVGhlIGNvbnRlbnQgZm9yIHRoZSBwYXJ0aWNsZSBib2R5LCBjYW5cbiAgICogYmUgYSBjb2xvciBvciBhbiBvYmplY3QgKG1lc2gpXG4gICAqIEBwYXJhbSB7P251bWJlcn0gdyAtIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgYm9keVxuICAgKiBAcGFyYW0gez9udW1iZXJ9IGggLSBUaGUgaGVpZ2h0IG9mIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoYm9keSwgdywgaCwgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY29udGVudCBmb3IgdGhlIHBhcnRpY2xlIGJvZHlcbiAgICAgKiBAdHlwZSB7QXJyYXlTcGFufVxuICAgICAqL1xuICAgIHRoaXMuYm9keSA9IGNyZWF0ZUFycmF5U3Bhbihib2R5KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgQm9keVxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy53ID0gdztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIEJvZHlcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuaCA9IGggfHwgdztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGluaXRpYWwgYm9keS5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgdmFyIGJvZHkgPSB0aGlzLmJvZHkuZ2V0VmFsdWUoKTtcblxuICAgIGlmICh0aGlzLncpIHtcbiAgICAgIHBhcnRpY2xlLmJvZHkgPSB7XG4gICAgICAgIHdpZHRoOiB0aGlzLncsXG4gICAgICAgIGhlaWdodDogdGhpcy5oLFxuICAgICAgICBib2R5OiBib2R5LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFydGljbGUuYm9keSA9IGJvZHk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBCb2R5IGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmJvZHkgLSBUaGUgY29sb3IgZm9yIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLndpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIGJvZHlcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBib2R5LCB3aWR0aCwgaGVpZ2h0LCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBCb2R5KGJvZHksIHdpZHRoLCBoZWlnaHQsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,108 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
- 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; }
4
-
5
- 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) { _defineProperty(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; }
6
-
7
- import { DEFAULT_JSON_MATERIAL_PROPERTIES, DEFAULT_MATERIAL_PROPERTIES, SUPPORTED_MATERIAL_BLENDING_MODES } from './constants';
8
- import Initializer from './Initializer';
9
- import { INITIALIZER_TYPE_BODY_SPRITE as type } from './types';
10
- import { withDefaults } from '../utils';
11
- /**
12
- * Sets the body property to be a THREE.Sprite on initialized particles.
13
- *
14
- * NOTE The texture map MUST be set on the SpriteMaterial in the TextureLoader.load
15
- * callback. Not doing so will cause WebGL buffer errors.
16
- */
17
-
18
- export default class BodySprite extends Initializer {
19
- /**
20
- * Constructs a BodySprite initializer.
21
- *
22
- * @param {object} THREE - The Web GL API we are using eg., THREE
23
- * @param {string} texture - The sprite texture
24
- * @param {object} materialProperties - The sprite material properties
25
- * @throws {Error} If the TextureLoader fails to load the supplied texture
26
- * @return void
27
- */
28
- constructor(THREE, texture, materialProperties = DEFAULT_MATERIAL_PROPERTIES, isEnabled = true) {
29
- super(type, isEnabled);
30
- const {
31
- Sprite,
32
- SpriteMaterial,
33
- TextureLoader
34
- } = THREE;
35
- /**
36
- * @desc The material properties for this object's SpriteMaterial
37
- * NOTE This is required for testing purposes
38
- * @type {object}
39
- */
40
-
41
- this.materialProperties = withDefaults(DEFAULT_MATERIAL_PROPERTIES, materialProperties);
42
- new TextureLoader().load(texture, map => {
43
- /**
44
- * @desc The texture for the THREE.SpriteMaterial map.
45
- * @type {Texture}
46
- */
47
- this.texture = map;
48
- /**
49
- * @desc THREE.SpriteMaterial instance.
50
- * @type {SpriteMaterial}
51
- */
52
-
53
- this.material = new SpriteMaterial(_objectSpread(_objectSpread({}, {
54
- map
55
- }), this.materialProperties));
56
- /**
57
- * @desc THREE.Sprite instance.
58
- * @type {Sprite}
59
- */
60
-
61
- this.sprite = new Sprite(this.material);
62
- }, undefined, error => {
63
- throw new Error(error);
64
- });
65
- }
66
- /**
67
- * Sets the particle body to the sprite.
68
- *
69
- * @param {Particle} particle - The particle to set the body of
70
- * @return void
71
- */
72
-
73
-
74
- initialize(particle) {
75
- particle.body = this.sprite;
76
- }
77
- /**
78
- * Creates a BodySprite initializer from JSON.
79
- *
80
- * @param {object} json - The JSON to construct the instance from
81
- * @param {object} THREE - The Web GL API we are using eg., THREE
82
- * @param {string} json.texture - The sprite texture
83
- * @param {object} json.materialProperties - The sprite material properties
84
- * @return {BodySprite}
85
- */
86
-
87
-
88
- static fromJSON(json, THREE) {
89
- const {
90
- texture,
91
- materialProperties = DEFAULT_JSON_MATERIAL_PROPERTIES,
92
- isEnabled = true
93
- } = json;
94
-
95
- const ensureMappedBlendingMode = properties => {
96
- const {
97
- blending
98
- } = properties;
99
- return _objectSpread(_objectSpread({}, properties), {}, {
100
- blending: blending ? SUPPORTED_MATERIAL_BLENDING_MODES[blending] : SUPPORTED_MATERIAL_BLENDING_MODES[DEFAULT_JSON_MATERIAL_PROPERTIES.blending]
101
- });
102
- };
103
-
104
- return new BodySprite(THREE, texture, withDefaults(DEFAULT_JSON_MATERIAL_PROPERTIES, ensureMappedBlendingMode(materialProperties)), isEnabled);
105
- }
106
-
107
- }
108
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Cb2R5U3ByaXRlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTIiwiREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTIiwiU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTIiwiSW5pdGlhbGl6ZXIiLCJJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFIiwidHlwZSIsIndpdGhEZWZhdWx0cyIsIkJvZHlTcHJpdGUiLCJjb25zdHJ1Y3RvciIsIlRIUkVFIiwidGV4dHVyZSIsIm1hdGVyaWFsUHJvcGVydGllcyIsImlzRW5hYmxlZCIsIlNwcml0ZSIsIlNwcml0ZU1hdGVyaWFsIiwiVGV4dHVyZUxvYWRlciIsImxvYWQiLCJtYXAiLCJtYXRlcmlhbCIsInNwcml0ZSIsInVuZGVmaW5lZCIsImVycm9yIiwiRXJyb3IiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJib2R5IiwiZnJvbUpTT04iLCJqc29uIiwiZW5zdXJlTWFwcGVkQmxlbmRpbmdNb2RlIiwicHJvcGVydGllcyIsImJsZW5kaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxnQ0FERixFQUVFQywyQkFGRixFQUdFQyxpQ0FIRixRQUlPLGFBSlA7QUFNQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MsNEJBQTRCLElBQUlDLElBQXpDLFFBQXFELFNBQXJEO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixVQUE3QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFVBQU4sU0FBeUJKLFdBQXpCLENBQXFDO0FBQ2xEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQ1RDLEtBRFMsRUFFVEMsT0FGUyxFQUdUQyxrQkFBa0IsR0FBR1YsMkJBSFosRUFJVFcsU0FBUyxHQUFHLElBSkgsRUFLVDtBQUNBLFVBQU1QLElBQU4sRUFBWU8sU0FBWjtBQUVBLFVBQU07QUFBRUMsTUFBQUEsTUFBRjtBQUFVQyxNQUFBQSxjQUFWO0FBQTBCQyxNQUFBQTtBQUExQixRQUE0Q04sS0FBbEQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUNJLFNBQUtFLGtCQUFMLEdBQTBCTCxZQUFZLENBQ3BDTCwyQkFEb0MsRUFFcENVLGtCQUZvQyxDQUF0QztBQUtBLFFBQUlJLGFBQUosR0FBb0JDLElBQXBCLENBQ0VOLE9BREYsRUFFRU8sR0FBRyxJQUFJO0FBQ0w7QUFDUjtBQUNBO0FBQ0E7QUFDUSxXQUFLUCxPQUFMLEdBQWVPLEdBQWY7QUFFQTtBQUNSO0FBQ0E7QUFDQTs7QUFDUSxXQUFLQyxRQUFMLEdBQWdCLElBQUlKLGNBQUosaUNBQ1g7QUFBRUcsUUFBQUE7QUFBRixPQURXLEdBRVgsS0FBS04sa0JBRk0sRUFBaEI7QUFLQTtBQUNSO0FBQ0E7QUFDQTs7QUFDUSxXQUFLUSxNQUFMLEdBQWMsSUFBSU4sTUFBSixDQUFXLEtBQUtLLFFBQWhCLENBQWQ7QUFDRCxLQXZCSCxFQXdCRUUsU0F4QkYsRUF5QkVDLEtBQUssSUFBSTtBQUNQLFlBQU0sSUFBSUMsS0FBSixDQUFVRCxLQUFWLENBQU47QUFDRCxLQTNCSDtBQTZCRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VFLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS04sTUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJPLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPbEIsS0FBUCxFQUFjO0FBQzNCLFVBQU07QUFDSkMsTUFBQUEsT0FESTtBQUVKQyxNQUFBQSxrQkFBa0IsR0FBR1gsZ0NBRmpCO0FBR0pZLE1BQUFBLFNBQVMsR0FBRztBQUhSLFFBSUZlLElBSko7O0FBTUEsVUFBTUMsd0JBQXdCLEdBQUdDLFVBQVUsSUFBSTtBQUM3QyxZQUFNO0FBQUVDLFFBQUFBO0FBQUYsVUFBZUQsVUFBckI7QUFFQSw2Q0FDS0EsVUFETDtBQUVFQyxRQUFBQSxRQUFRLEVBQUVBLFFBQVEsR0FDZDVCLGlDQUFpQyxDQUFDNEIsUUFBRCxDQURuQixHQUVkNUIsaUNBQWlDLENBQ2pDRixnQ0FBZ0MsQ0FBQzhCLFFBREE7QUFKdkM7QUFRRCxLQVhEOztBQWFBLFdBQU8sSUFBSXZCLFVBQUosQ0FDTEUsS0FESyxFQUVMQyxPQUZLLEVBR0xKLFlBQVksQ0FDVk4sZ0NBRFUsRUFFVjRCLHdCQUF3QixDQUFDakIsa0JBQUQsQ0FGZCxDQUhQLEVBT0xDLFNBUEssQ0FBUDtBQVNEOztBQTdHaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVMsXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9CT0RZX1NQUklURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB3aXRoRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSB0byBiZSBhIFRIUkVFLlNwcml0ZSBvbiBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKlxuICogTk9URSBUaGUgdGV4dHVyZSBtYXAgTVVTVCBiZSBzZXQgb24gdGhlIFNwcml0ZU1hdGVyaWFsIGluIHRoZSBUZXh0dXJlTG9hZGVyLmxvYWRcbiAqIGNhbGxiYWNrLiBOb3QgZG9pbmcgc28gd2lsbCBjYXVzZSBXZWJHTCBidWZmZXIgZXJyb3JzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCb2R5U3ByaXRlIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIEJvZHlTcHJpdGUgaW5pdGlhbGl6ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQVBJIHdlIGFyZSB1c2luZyBlZy4sIFRIUkVFXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBtYXRlcmlhbFByb3BlcnRpZXMgLSBUaGUgc3ByaXRlIG1hdGVyaWFsIHByb3BlcnRpZXNcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBUZXh0dXJlTG9hZGVyIGZhaWxzIHRvIGxvYWQgdGhlIHN1cHBsaWVkIHRleHR1cmVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBUSFJFRSxcbiAgICB0ZXh0dXJlLFxuICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgICBpc0VuYWJsZWQgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICBjb25zdCB7IFNwcml0ZSwgU3ByaXRlTWF0ZXJpYWwsIFRleHR1cmVMb2FkZXIgfSA9IFRIUkVFO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIG1hdGVyaWFsIHByb3BlcnRpZXMgZm9yIHRoaXMgb2JqZWN0J3MgU3ByaXRlTWF0ZXJpYWxcbiAgICAgKiBOT1RFIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgICAqL1xuICAgIHRoaXMubWF0ZXJpYWxQcm9wZXJ0aWVzID0gd2l0aERlZmF1bHRzKFxuICAgICAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgbWF0ZXJpYWxQcm9wZXJ0aWVzXG4gICAgKTtcblxuICAgIG5ldyBUZXh0dXJlTG9hZGVyKCkubG9hZChcbiAgICAgIHRleHR1cmUsXG4gICAgICBtYXAgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2MgVGhlIHRleHR1cmUgZm9yIHRoZSBUSFJFRS5TcHJpdGVNYXRlcmlhbCBtYXAuXG4gICAgICAgICAqIEB0eXBlIHtUZXh0dXJlfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50ZXh0dXJlID0gbWFwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGVNYXRlcmlhbCBpbnN0YW5jZS5cbiAgICAgICAgICogQHR5cGUge1Nwcml0ZU1hdGVyaWFsfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG5ldyBTcHJpdGVNYXRlcmlhbCh7XG4gICAgICAgICAgLi4ueyBtYXAgfSxcbiAgICAgICAgICAuLi50aGlzLm1hdGVyaWFsUHJvcGVydGllcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjIFRIUkVFLlNwcml0ZSBpbnN0YW5jZS5cbiAgICAgICAgICogQHR5cGUge1Nwcml0ZX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc3ByaXRlID0gbmV3IFNwcml0ZSh0aGlzLm1hdGVyaWFsKTtcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSBib2R5IHRvIHRoZSBzcHJpdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIHRvIHNldCB0aGUgYm9keSBvZlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXRpYWxpemUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS5ib2R5ID0gdGhpcy5zcHJpdGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEJvZHlTcHJpdGUgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbVxuICAgKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFQSSB3ZSBhcmUgdXNpbmcgZWcuLCBUSFJFRVxuICAgKiBAcGFyYW0ge3N0cmluZ30ganNvbi50ZXh0dXJlIC0gVGhlIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uLm1hdGVyaWFsUHJvcGVydGllcyAtIFRoZSBzcHJpdGUgbWF0ZXJpYWwgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCb2R5U3ByaXRlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIFRIUkVFKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGV4dHVyZSxcbiAgICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgaXNFbmFibGVkID0gdHJ1ZSxcbiAgICB9ID0ganNvbjtcblxuICAgIGNvbnN0IGVuc3VyZU1hcHBlZEJsZW5kaW5nTW9kZSA9IHByb3BlcnRpZXMgPT4ge1xuICAgICAgY29uc3QgeyBibGVuZGluZyB9ID0gcHJvcGVydGllcztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgYmxlbmRpbmc6IGJsZW5kaW5nXG4gICAgICAgICAgPyBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbYmxlbmRpbmddXG4gICAgICAgICAgOiBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbXG4gICAgICAgICAgICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUy5ibGVuZGluZ1xuICAgICAgICAgIF0sXG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEJvZHlTcHJpdGUoXG4gICAgICBUSFJFRSxcbiAgICAgIHRleHR1cmUsXG4gICAgICB3aXRoRGVmYXVsdHMoXG4gICAgICAgIERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgICBlbnN1cmVNYXBwZWRCbGVuZGluZ01vZGUobWF0ZXJpYWxQcm9wZXJ0aWVzKVxuICAgICAgKSxcbiAgICAgIGlzRW5hYmxlZFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,84 +0,0 @@
1
- import { INITIALIZER_TYPE_ABSTRACT } from './types';
2
- /**
3
- * The base Emitter / Particle property class.
4
- *
5
- * @abstract
6
- */
7
-
8
- export default class Initializer {
9
- /**
10
- * Constructs an Initializer instance.
11
- *
12
- * @param {string} [type=INITIALIZER_TYPE_ABSTRACT] - The intiializer type
13
- * @param {boolean} [isEnabled=true] - Determines if the initializer should be enabled or not
14
- * @return void
15
- */
16
- constructor(type = INITIALIZER_TYPE_ABSTRACT, isEnabled = true) {
17
- this.type = type;
18
- this.isEnabled = isEnabled;
19
- }
20
- /**
21
- * Initializes the property on the emitter or particle.
22
- *
23
- * @see {@link '../emitter/emitter.js'} setupParticle
24
- * @param {Emitter} emitter - the emitter to initialize the property on
25
- * @param {Particle} particle - the particle to intiialize the property on
26
- * @return void
27
- */
28
-
29
-
30
- init(emitter, particle) {
31
- if (!this.isEnabled) {
32
- return;
33
- }
34
-
35
- if (particle) {
36
- this.initialize(particle);
37
- particle.hasBeenInitialized = true;
38
- } else {
39
- this.initialize(emitter);
40
- emitter.hasBeenInitialized = true;
41
- }
42
- }
43
- /**
44
- * @abstract
45
- */
46
-
47
-
48
- reset() {}
49
- /**
50
- * Place custom property initialization code in this method in the subclass.
51
- *
52
- * @param {object} target - either an Emitter or a Particle
53
- * @abstract
54
- */
55
-
56
-
57
- initialize(target) {} // eslint-disable-line
58
-
59
- /**
60
- * Determines if the initializer requires a Web GL API to be provided to its constructor.
61
- * If true, the WebGL API will need to be provided as the first argument to the constructor
62
- * and fromJSON methods.
63
- *
64
- * @return {boolean}
65
- */
66
-
67
-
68
- static requiresWebGlApi() {
69
- return false;
70
- }
71
- /**
72
- * Returns a new instance of the initializer from the JSON object passed.
73
- *
74
- * @abstract
75
- * @param {object} json - JSON object containing the required constructor properties
76
- * @return {Behaviour}
77
- */
78
-
79
-
80
- static fromJSON(json) {} // eslint-disable-line
81
-
82
-
83
- }
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Jbml0aWFsaXplci5qcyJdLCJuYW1lcyI6WyJJTklUSUFMSVpFUl9UWVBFX0FCU1RSQUNUIiwiSW5pdGlhbGl6ZXIiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJpc0VuYWJsZWQiLCJpbml0IiwiZW1pdHRlciIsInBhcnRpY2xlIiwiaW5pdGlhbGl6ZSIsImhhc0JlZW5Jbml0aWFsaXplZCIsInJlc2V0IiwidGFyZ2V0IiwicmVxdWlyZXNXZWJHbEFwaSIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EseUJBQVQsUUFBMEMsU0FBMUM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsV0FBTixDQUFrQjtBQUMvQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVFQyxFQUFBQSxXQUFXLENBQUNDLElBQUksR0FBR0gseUJBQVIsRUFBbUNJLFNBQVMsR0FBRyxJQUEvQyxFQUFxRDtBQUM5RCxTQUFLRCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLQyxTQUFMLEdBQWlCQSxTQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLElBQUksQ0FBQ0MsT0FBRCxFQUFVQyxRQUFWLEVBQW9CO0FBQ3RCLFFBQUksQ0FBQyxLQUFLSCxTQUFWLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRUQsUUFBSUcsUUFBSixFQUFjO0FBQ1osV0FBS0MsVUFBTCxDQUFnQkQsUUFBaEI7QUFDQUEsTUFBQUEsUUFBUSxDQUFDRSxrQkFBVCxHQUE4QixJQUE5QjtBQUNELEtBSEQsTUFHTztBQUNMLFdBQUtELFVBQUwsQ0FBZ0JGLE9BQWhCO0FBQ0FBLE1BQUFBLE9BQU8sQ0FBQ0csa0JBQVIsR0FBNkIsSUFBN0I7QUFDRDtBQUNGO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRUMsRUFBQUEsS0FBSyxHQUFHLENBQUU7QUFFVjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRixFQUFBQSxVQUFVLENBQUNHLE1BQUQsRUFBUyxDQUFFLENBL0NVLENBK0NUOztBQUV0QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ3lCLFNBQWhCQyxnQkFBZ0IsR0FBRztBQUN4QixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkMsUUFBUSxDQUFDQyxJQUFELEVBQU8sQ0FBRSxDQW5FTyxDQW1FTjs7O0FBbkVNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9BQlNUUkFDVCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIEVtaXR0ZXIgLyBQYXJ0aWNsZSBwcm9wZXJ0eSBjbGFzcy5cbiAqXG4gKiBAYWJzdHJhY3RcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBJbml0aWFsaXplciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPUlOSVRJQUxJWkVSX1RZUEVfQUJTVFJBQ1RdIC0gVGhlIGludGlpYWxpemVyIHR5cGVcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgaW5pdGlhbGl6ZXIgc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG5cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0eXBlID0gSU5JVElBTElaRVJfVFlQRV9BQlNUUkFDVCwgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5pc0VuYWJsZWQgPSBpc0VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHByb3BlcnR5IG9uIHRoZSBlbWl0dGVyIG9yIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAc2VlIHtAbGluayAnLi4vZW1pdHRlci9lbWl0dGVyLmpzJ30gc2V0dXBQYXJ0aWNsZVxuICAgKiBAcGFyYW0ge0VtaXR0ZXJ9IGVtaXR0ZXIgLSB0aGUgZW1pdHRlciB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbnRpaWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXQoZW1pdHRlciwgcGFydGljbGUpIHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBhcnRpY2xlKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemUocGFydGljbGUpO1xuICAgICAgcGFydGljbGUuaGFzQmVlbkluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsaXplKGVtaXR0ZXIpO1xuICAgICAgZW1pdHRlci5oYXNCZWVuSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIHJlc2V0KCkge31cblxuICAvKipcbiAgICogUGxhY2UgY3VzdG9tIHByb3BlcnR5IGluaXRpYWxpemF0aW9uIGNvZGUgaW4gdGhpcyBtZXRob2QgaW4gdGhlIHN1YmNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gdGFyZ2V0IC0gZWl0aGVyIGFuIEVtaXR0ZXIgb3IgYSBQYXJ0aWNsZVxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIGluaXRpYWxpemUodGFyZ2V0KSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGluaXRpYWxpemVyIHJlcXVpcmVzIGEgV2ViIEdMIEFQSSB0byBiZSBwcm92aWRlZCB0byBpdHMgY29uc3RydWN0b3IuXG4gICAqIElmIHRydWUsIHRoZSBXZWJHTCBBUEkgd2lsbCBuZWVkIHRvIGJlIHByb3ZpZGVkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JcbiAgICogYW5kIGZyb21KU09OIG1ldGhvZHMuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgcmVxdWlyZXNXZWJHbEFwaSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgaW5pdGlhbGl6ZXIgZnJvbSB0aGUgSlNPTiBvYmplY3QgcGFzc2VkLlxuICAgKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm4ge0JlaGF2aW91cn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG4iXX0=
@@ -1,48 +0,0 @@
1
- import { Euler } from '../core/three/';
2
- const particleEuler = new Euler();
3
- export default {
4
- particleEuler: null,
5
-
6
- /**
7
- * Loops through the initializers array and calls each initializer's initialize method
8
- * on the supplied particle. This sets the particle's initial properties.
9
- *
10
- * @see {@link '../emitter/Emitter'} setupParticle
11
- * @param {Emitter} emitter - The emitter that has called this method
12
- * @param {Particle} particle - The particle that has just been created
13
- * @param {array<Initializer>} initializers - All of the emitter's initializers
14
- * @return void
15
- */
16
- initialize: function (emitter, particle, initializers) {
17
- let i = initializers.length;
18
-
19
- while (i--) {
20
- initializers[i].init(emitter, particle);
21
- }
22
-
23
- emitter.bindEmitter && this.bindEmitter(emitter, particle);
24
- },
25
-
26
- /**
27
- * Ensures that the emitter's position, velocity and accleration are added
28
- * to each created particle.
29
- *
30
- * @param {Emitter} emitter - The emitter that is emitting the particles
31
- * @param {Particle} particle - The newly created particle
32
- * @return void
33
- */
34
- bindEmitter: function (emitter, particle) {
35
- const {
36
- rotation: {
37
- x,
38
- y,
39
- z
40
- }
41
- } = emitter;
42
- particle.position.add(emitter.position);
43
- particle.velocity.add(emitter.velocity);
44
- particle.acceleration.add(emitter.acceleration);
45
- particle.velocity.applyEuler(particleEuler.set(x, y, z));
46
- }
47
- };
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Jbml0aWFsaXplclV0aWwuanMiXSwibmFtZXMiOlsiRXVsZXIiLCJwYXJ0aWNsZUV1bGVyIiwiaW5pdGlhbGl6ZSIsImVtaXR0ZXIiLCJwYXJ0aWNsZSIsImluaXRpYWxpemVycyIsImkiLCJsZW5ndGgiLCJpbml0IiwiYmluZEVtaXR0ZXIiLCJyb3RhdGlvbiIsIngiLCJ5IiwieiIsInBvc2l0aW9uIiwiYWRkIiwidmVsb2NpdHkiLCJhY2NlbGVyYXRpb24iLCJhcHBseUV1bGVyIiwic2V0Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxLQUFULFFBQXNCLGdCQUF0QjtBQUVBLE1BQU1DLGFBQWEsR0FBRyxJQUFJRCxLQUFKLEVBQXRCO0FBRUEsZUFBZTtBQUNiQyxFQUFBQSxhQUFhLEVBQUUsSUFERjs7QUFFYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxVQUFVLEVBQUUsVUFBU0MsT0FBVCxFQUFrQkMsUUFBbEIsRUFBNEJDLFlBQTVCLEVBQTBDO0FBQ3BELFFBQUlDLENBQUMsR0FBR0QsWUFBWSxDQUFDRSxNQUFyQjs7QUFFQSxXQUFPRCxDQUFDLEVBQVIsRUFBWTtBQUNWRCxNQUFBQSxZQUFZLENBQUNDLENBQUQsQ0FBWixDQUFnQkUsSUFBaEIsQ0FBcUJMLE9BQXJCLEVBQThCQyxRQUE5QjtBQUNEOztBQUVERCxJQUFBQSxPQUFPLENBQUNNLFdBQVIsSUFBdUIsS0FBS0EsV0FBTCxDQUFpQk4sT0FBakIsRUFBMEJDLFFBQTFCLENBQXZCO0FBQ0QsR0FwQlk7O0FBc0JiO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxFQUFFLFVBQVNOLE9BQVQsRUFBa0JDLFFBQWxCLEVBQTRCO0FBQ3ZDLFVBQU07QUFDSk0sTUFBQUEsUUFBUSxFQUFFO0FBQUVDLFFBQUFBLENBQUY7QUFBS0MsUUFBQUEsQ0FBTDtBQUFRQyxRQUFBQTtBQUFSO0FBRE4sUUFFRlYsT0FGSjtBQUlBQyxJQUFBQSxRQUFRLENBQUNVLFFBQVQsQ0FBa0JDLEdBQWxCLENBQXNCWixPQUFPLENBQUNXLFFBQTlCO0FBQ0FWLElBQUFBLFFBQVEsQ0FBQ1ksUUFBVCxDQUFrQkQsR0FBbEIsQ0FBc0JaLE9BQU8sQ0FBQ2EsUUFBOUI7QUFDQVosSUFBQUEsUUFBUSxDQUFDYSxZQUFULENBQXNCRixHQUF0QixDQUEwQlosT0FBTyxDQUFDYyxZQUFsQztBQUNBYixJQUFBQSxRQUFRLENBQUNZLFFBQVQsQ0FBa0JFLFVBQWxCLENBQTZCakIsYUFBYSxDQUFDa0IsR0FBZCxDQUFrQlIsQ0FBbEIsRUFBcUJDLENBQXJCLEVBQXdCQyxDQUF4QixDQUE3QjtBQUNEO0FBdkNZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdWxlciB9IGZyb20gJy4uL2NvcmUvdGhyZWUvJztcblxuY29uc3QgcGFydGljbGVFdWxlciA9IG5ldyBFdWxlcigpO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBhcnRpY2xlRXVsZXI6IG51bGwsXG4gIC8qKlxuICAgKiBMb29wcyB0aHJvdWdoIHRoZSBpbml0aWFsaXplcnMgYXJyYXkgYW5kIGNhbGxzIGVhY2ggaW5pdGlhbGl6ZXIncyBpbml0aWFsaXplIG1ldGhvZFxuICAgKiBvbiB0aGUgc3VwcGxpZWQgcGFydGljbGUuIFRoaXMgc2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBzZWUge0BsaW5rICcuLi9lbWl0dGVyL0VtaXR0ZXInfSBzZXR1cFBhcnRpY2xlXG4gICAqIEBwYXJhbSB7RW1pdHRlcn0gZW1pdHRlciAtIFRoZSBlbWl0dGVyIHRoYXQgaGFzIGNhbGxlZCB0aGlzIG1ldGhvZFxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0aGF0IGhhcyBqdXN0IGJlZW4gY3JlYXRlZFxuICAgKiBAcGFyYW0ge2FycmF5PEluaXRpYWxpemVyPn0gaW5pdGlhbGl6ZXJzIC0gQWxsIG9mIHRoZSBlbWl0dGVyJ3MgaW5pdGlhbGl6ZXJzXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZW1pdHRlciwgcGFydGljbGUsIGluaXRpYWxpemVycykge1xuICAgIGxldCBpID0gaW5pdGlhbGl6ZXJzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIGluaXRpYWxpemVyc1tpXS5pbml0KGVtaXR0ZXIsIHBhcnRpY2xlKTtcbiAgICB9XG5cbiAgICBlbWl0dGVyLmJpbmRFbWl0dGVyICYmIHRoaXMuYmluZEVtaXR0ZXIoZW1pdHRlciwgcGFydGljbGUpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIGVtaXR0ZXIncyBwb3NpdGlvbiwgdmVsb2NpdHkgYW5kIGFjY2xlcmF0aW9uIGFyZSBhZGRlZFxuICAgKiB0byBlYWNoIGNyZWF0ZWQgcGFydGljbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW1pdHRlcn0gZW1pdHRlciAtIFRoZSBlbWl0dGVyIHRoYXQgaXMgZW1pdHRpbmcgdGhlIHBhcnRpY2xlc1xuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBuZXdseSBjcmVhdGVkIHBhcnRpY2xlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgYmluZEVtaXR0ZXI6IGZ1bmN0aW9uKGVtaXR0ZXIsIHBhcnRpY2xlKSB7XG4gICAgY29uc3Qge1xuICAgICAgcm90YXRpb246IHsgeCwgeSwgeiB9LFxuICAgIH0gPSBlbWl0dGVyO1xuXG4gICAgcGFydGljbGUucG9zaXRpb24uYWRkKGVtaXR0ZXIucG9zaXRpb24pO1xuICAgIHBhcnRpY2xlLnZlbG9jaXR5LmFkZChlbWl0dGVyLnZlbG9jaXR5KTtcbiAgICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uYWRkKGVtaXR0ZXIuYWNjZWxlcmF0aW9uKTtcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5hcHBseUV1bGVyKHBhcnRpY2xlRXVsZXIuc2V0KHgsIHksIHopKTtcbiAgfSxcbn07XG4iXX0=