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,24 +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
- Object.defineProperty(exports, "Debug", {
9
- enumerable: true,
10
- get: function get() {
11
- return _Debug["default"];
12
- }
13
- });
14
- Object.defineProperty(exports, "log", {
15
- enumerable: true,
16
- get: function get() {
17
- return _log["default"];
18
- }
19
- });
20
-
21
- var _Debug = _interopRequireDefault(require("./Debug"));
22
-
23
- var _log = _interopRequireDefault(require("./log"));
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBEZWJ1ZyB9IGZyb20gJy4vRGVidWcnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb2cgfSBmcm9tICcuL2xvZyc7XG4iXX0=
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = _default;
7
-
8
- /**
9
- * You can use this emit particles.
10
- *
11
- * This method will console.log the fixed number of your info in updata or requestAnimationFrame
12
- *
13
- * use like this log('+12',mc); log 12 times
14
- *
15
- * @return void
16
- */
17
- function _default() {
18
- var once = 0;
19
-
20
- if (window.console && window.console.trace) {
21
- var arg = Array.prototype.slice.call(arguments);
22
- var s1 = arguments[0] + '';
23
-
24
- if (s1.indexOf('+') == 0) {
25
- var n = parseInt(arguments[0]);
26
-
27
- if (once < n) {
28
- arg.shift();
29
- console.trace.apply(console, arg);
30
- once++;
31
- }
32
- } else {
33
- arg.unshift('+15');
34
- this.apply(console, arg);
35
- }
36
- }
37
- }
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9sb2cuanMiXSwibmFtZXMiOlsib25jZSIsIndpbmRvdyIsImNvbnNvbGUiLCJ0cmFjZSIsImFyZyIsIkFycmF5IiwicHJvdG90eXBlIiwic2xpY2UiLCJjYWxsIiwiYXJndW1lbnRzIiwiczEiLCJpbmRleE9mIiwibiIsInBhcnNlSW50Iiwic2hpZnQiLCJhcHBseSIsInVuc2hpZnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZSxvQkFBVztBQUN4QixNQUFJQSxJQUFJLEdBQUcsQ0FBWDs7QUFFQSxNQUFJQyxNQUFNLENBQUNDLE9BQVAsSUFBa0JELE1BQU0sQ0FBQ0MsT0FBUCxDQUFlQyxLQUFyQyxFQUE0QztBQUMxQyxRQUFJQyxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQkMsS0FBaEIsQ0FBc0JDLElBQXRCLENBQTJCQyxTQUEzQixDQUFWO0FBQ0EsUUFBSUMsRUFBRSxHQUFHRCxTQUFTLENBQUMsQ0FBRCxDQUFULEdBQWUsRUFBeEI7O0FBRUEsUUFBSUMsRUFBRSxDQUFDQyxPQUFILENBQVcsR0FBWCxLQUFtQixDQUF2QixFQUEwQjtBQUN4QixVQUFJQyxDQUFDLEdBQUdDLFFBQVEsQ0FBQ0osU0FBUyxDQUFDLENBQUQsQ0FBVixDQUFoQjs7QUFFQSxVQUFJVCxJQUFJLEdBQUdZLENBQVgsRUFBYztBQUNaUixRQUFBQSxHQUFHLENBQUNVLEtBQUo7QUFDQVosUUFBQUEsT0FBTyxDQUFDQyxLQUFSLENBQWNZLEtBQWQsQ0FBb0JiLE9BQXBCLEVBQTZCRSxHQUE3QjtBQUNBSixRQUFBQSxJQUFJO0FBQ0w7QUFDRixLQVJELE1BUU87QUFDTEksTUFBQUEsR0FBRyxDQUFDWSxPQUFKLENBQVksS0FBWjtBQUNBLFdBQUtELEtBQUwsQ0FBV2IsT0FBWCxFQUFvQkUsR0FBcEI7QUFDRDtBQUNGO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFlvdSBjYW4gdXNlIHRoaXMgZW1pdCBwYXJ0aWNsZXMuXG4gKlxuICogVGhpcyBtZXRob2Qgd2lsbCBjb25zb2xlLmxvZyB0aGUgZml4ZWQgbnVtYmVyIG9mIHlvdXIgaW5mbyAgaW4gdXBkYXRhIG9yIHJlcXVlc3RBbmltYXRpb25GcmFtZVxuICpcbiAqIHVzZSBsaWtlIHRoaXMgbG9nKCcrMTInLG1jKTsgbG9nIDEyIHRpbWVzXG4gKlxuICogQHJldHVybiB2b2lkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICBsZXQgb25jZSA9IDA7XG5cbiAgaWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLnRyYWNlKSB7XG4gICAgdmFyIGFyZyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgdmFyIHMxID0gYXJndW1lbnRzWzBdICsgJyc7XG5cbiAgICBpZiAoczEuaW5kZXhPZignKycpID09IDApIHtcbiAgICAgIHZhciBuID0gcGFyc2VJbnQoYXJndW1lbnRzWzBdKTtcblxuICAgICAgaWYgKG9uY2UgPCBuKSB7XG4gICAgICAgIGFyZy5zaGlmdCgpO1xuICAgICAgICBjb25zb2xlLnRyYWNlLmFwcGx5KGNvbnNvbGUsIGFyZyk7XG4gICAgICAgIG9uY2UrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYXJnLnVuc2hpZnQoJysxNScpO1xuICAgICAgdGhpcy5hcHBseShjb25zb2xlLCBhcmcpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,149 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getEasingByName = exports.setEasingByName = exports.easeInOutBack = exports.easeOutBack = exports.easeInBack = exports.easeInOutCirc = exports.easeOutCirc = exports.easeInCirc = exports.easeInOutExpo = exports.easeOutExpo = exports.easeInExpo = exports.easeInOutSine = exports.easeOutSine = exports.easeInSine = exports.easeInOutQuart = exports.easeOutQuart = exports.easeInQuart = exports.easeInOutCubic = exports.easeOutCubic = exports.easeInCubic = exports.easeInOutQuad = exports.easeOutQuad = exports.easeInQuad = exports.easeLinear = exports.ease = void 0;
7
-
8
- var _constants = require("../constants");
9
-
10
- /**
11
- * The Ease class provides a collection of easing functions for use with System
12
- */
13
- var ease = {
14
- easeLinear: function easeLinear(value) {
15
- return value;
16
- },
17
- easeInQuad: function easeInQuad(value) {
18
- return Math.pow(value, 2);
19
- },
20
- easeOutQuad: function easeOutQuad(value) {
21
- return -(Math.pow(value - 1, 2) - 1);
22
- },
23
- easeInOutQuad: function easeInOutQuad(value) {
24
- if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 2);
25
- return -0.5 * ((value -= 2) * value - 2);
26
- },
27
- easeInCubic: function easeInCubic(value) {
28
- return Math.pow(value, 3);
29
- },
30
- easeOutCubic: function easeOutCubic(value) {
31
- return Math.pow(value - 1, 3) + 1;
32
- },
33
- easeInOutCubic: function easeInOutCubic(value) {
34
- if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 3);
35
- return 0.5 * (Math.pow(value - 2, 3) + 2);
36
- },
37
- easeInQuart: function easeInQuart(value) {
38
- return Math.pow(value, 4);
39
- },
40
- easeOutQuart: function easeOutQuart(value) {
41
- return -(Math.pow(value - 1, 4) - 1);
42
- },
43
- easeInOutQuart: function easeInOutQuart(value) {
44
- if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 4);
45
- return -0.5 * ((value -= 2) * Math.pow(value, 3) - 2);
46
- },
47
- easeInSine: function easeInSine(value) {
48
- return -Math.cos(value * (_constants.PI / 2)) + 1;
49
- },
50
- easeOutSine: function easeOutSine(value) {
51
- return Math.sin(value * (_constants.PI / 2));
52
- },
53
- easeInOutSine: function easeInOutSine(value) {
54
- return -0.5 * (Math.cos(_constants.PI * value) - 1);
55
- },
56
- easeInExpo: function easeInExpo(value) {
57
- return value === 0 ? 0 : Math.pow(2, 10 * (value - 1));
58
- },
59
- easeOutExpo: function easeOutExpo(value) {
60
- return value === 1 ? 1 : -Math.pow(2, -10 * value) + 1;
61
- },
62
- easeInOutExpo: function easeInOutExpo(value) {
63
- if (value === 0) return 0;
64
- if (value === 1) return 1;
65
- if ((value /= 0.5) < 1) return 0.5 * Math.pow(2, 10 * (value - 1));
66
- return 0.5 * (-Math.pow(2, -10 * --value) + 2);
67
- },
68
- easeInCirc: function easeInCirc(value) {
69
- return -(Math.sqrt(1 - value * value) - 1);
70
- },
71
- easeOutCirc: function easeOutCirc(value) {
72
- return Math.sqrt(1 - Math.pow(value - 1, 2));
73
- },
74
- easeInOutCirc: function easeInOutCirc(value) {
75
- if ((value /= 0.5) < 1) return -0.5 * (Math.sqrt(1 - value * value) - 1);
76
- return 0.5 * (Math.sqrt(1 - (value -= 2) * value) + 1);
77
- },
78
- easeInBack: function easeInBack(value) {
79
- var s = 1.70158;
80
- return value * value * ((s + 1) * value - s);
81
- },
82
- easeOutBack: function easeOutBack(value) {
83
- var s = 1.70158;
84
- return (value = value - 1) * value * ((s + 1) * value + s) + 1;
85
- },
86
- easeInOutBack: function easeInOutBack(value) {
87
- var s = 1.70158;
88
- if ((value /= 0.5) < 1) return 0.5 * (value * value * (((s *= 1.525) + 1) * value - s));
89
- return 0.5 * ((value -= 2) * value * (((s *= 1.525) + 1) * value + s) + 2);
90
- }
91
- };
92
- exports.ease = ease;
93
- var easeLinear = ease.easeLinear,
94
- easeInQuad = ease.easeInQuad,
95
- easeOutQuad = ease.easeOutQuad,
96
- easeInOutQuad = ease.easeInOutQuad,
97
- easeInCubic = ease.easeInCubic,
98
- easeOutCubic = ease.easeOutCubic,
99
- easeInOutCubic = ease.easeInOutCubic,
100
- easeInQuart = ease.easeInQuart,
101
- easeOutQuart = ease.easeOutQuart,
102
- easeInOutQuart = ease.easeInOutQuart,
103
- easeInSine = ease.easeInSine,
104
- easeOutSine = ease.easeOutSine,
105
- easeInOutSine = ease.easeInOutSine,
106
- easeInExpo = ease.easeInExpo,
107
- easeOutExpo = ease.easeOutExpo,
108
- easeInOutExpo = ease.easeInOutExpo,
109
- easeInCirc = ease.easeInCirc,
110
- easeOutCirc = ease.easeOutCirc,
111
- easeInOutCirc = ease.easeInOutCirc,
112
- easeInBack = ease.easeInBack,
113
- easeOutBack = ease.easeOutBack,
114
- easeInOutBack = ease.easeInOutBack;
115
- exports.easeInOutBack = easeInOutBack;
116
- exports.easeOutBack = easeOutBack;
117
- exports.easeInBack = easeInBack;
118
- exports.easeInOutCirc = easeInOutCirc;
119
- exports.easeOutCirc = easeOutCirc;
120
- exports.easeInCirc = easeInCirc;
121
- exports.easeInOutExpo = easeInOutExpo;
122
- exports.easeOutExpo = easeOutExpo;
123
- exports.easeInExpo = easeInExpo;
124
- exports.easeInOutSine = easeInOutSine;
125
- exports.easeOutSine = easeOutSine;
126
- exports.easeInSine = easeInSine;
127
- exports.easeInOutQuart = easeInOutQuart;
128
- exports.easeOutQuart = easeOutQuart;
129
- exports.easeInQuart = easeInQuart;
130
- exports.easeInOutCubic = easeInOutCubic;
131
- exports.easeOutCubic = easeOutCubic;
132
- exports.easeInCubic = easeInCubic;
133
- exports.easeInOutQuad = easeInOutQuad;
134
- exports.easeOutQuad = easeOutQuad;
135
- exports.easeInQuad = easeInQuad;
136
- exports.easeLinear = easeLinear;
137
-
138
- var setEasingByName = function setEasingByName(easeName) {
139
- if (ease[easeName]) return ease[easeName];else return ease.easeLinear;
140
- };
141
-
142
- exports.setEasingByName = setEasingByName;
143
-
144
- var getEasingByName = function getEasingByName(name) {
145
- return ease[name] ? ease[name] : ease.easeLinear;
146
- };
147
-
148
- exports.getEasingByName = getEasingByName;
149
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lYXNlL2luZGV4LmpzIl0sIm5hbWVzIjpbImVhc2UiLCJlYXNlTGluZWFyIiwidmFsdWUiLCJlYXNlSW5RdWFkIiwiTWF0aCIsInBvdyIsImVhc2VPdXRRdWFkIiwiZWFzZUluT3V0UXVhZCIsImVhc2VJbkN1YmljIiwiZWFzZU91dEN1YmljIiwiZWFzZUluT3V0Q3ViaWMiLCJlYXNlSW5RdWFydCIsImVhc2VPdXRRdWFydCIsImVhc2VJbk91dFF1YXJ0IiwiZWFzZUluU2luZSIsImNvcyIsIlBJIiwiZWFzZU91dFNpbmUiLCJzaW4iLCJlYXNlSW5PdXRTaW5lIiwiZWFzZUluRXhwbyIsImVhc2VPdXRFeHBvIiwiZWFzZUluT3V0RXhwbyIsImVhc2VJbkNpcmMiLCJzcXJ0IiwiZWFzZU91dENpcmMiLCJlYXNlSW5PdXRDaXJjIiwiZWFzZUluQmFjayIsInMiLCJlYXNlT3V0QmFjayIsImVhc2VJbk91dEJhY2siLCJzZXRFYXNpbmdCeU5hbWUiLCJlYXNlTmFtZSIsImdldEVhc2luZ0J5TmFtZSIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSxJQUFJLEdBQUc7QUFDbEJDLEVBQUFBLFVBQVUsRUFBRSxvQkFBU0MsS0FBVCxFQUFnQjtBQUMxQixXQUFPQSxLQUFQO0FBQ0QsR0FIaUI7QUFLbEJDLEVBQUFBLFVBQVUsRUFBRSxvQkFBU0QsS0FBVCxFQUFnQjtBQUMxQixXQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBVCxFQUFnQixDQUFoQixDQUFQO0FBQ0QsR0FQaUI7QUFTbEJJLEVBQUFBLFdBQVcsRUFBRSxxQkFBU0osS0FBVCxFQUFnQjtBQUMzQixXQUFPLEVBQUVFLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFLLEdBQUcsQ0FBakIsRUFBb0IsQ0FBcEIsSUFBeUIsQ0FBM0IsQ0FBUDtBQUNELEdBWGlCO0FBYWxCSyxFQUFBQSxhQUFhLEVBQUUsdUJBQVNMLEtB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QUFqQixHQUEwQmxDLElBQUksQ0FBQ0MsVUFERTtBQUFBLENBQTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIFRoZSBFYXNlIGNsYXNzIHByb3ZpZGVzIGEgY29sbGVjdGlvbiBvZiBlYXNpbmcgZnVuY3Rpb25zIGZvciB1c2Ugd2l0aCBTeXN0ZW1cbiAqL1xuZXhwb3J0IGNvbnN0IGVhc2UgPSB7XG4gIGVhc2VMaW5lYXI6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuXG4gIGVhc2VJblF1YWQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGgucG93KHZhbHVlLCAyKTtcbiAgfSxcblxuICBlYXNlT3V0UXVhZDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gLShNYXRoLnBvdyh2YWx1ZSAtIDEsIDIpIC0gMSk7XG4gIH0sXG5cbiAgZWFzZUluT3V0UXVhZDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAoKHZhbHVlIC89IDAuNSkgPCAxKSByZXR1cm4gMC41ICogTWF0aC5wb3codmFsdWUsIDIpO1xuXG4gICAgcmV0dXJuIC0wLjUgKiAoKHZhbHVlIC09IDIpICogdmFsdWUgLSAyKTtcbiAgfSxcblxuICBlYXNlSW5DdWJpYzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5wb3codmFsdWUsIDMpO1xuICB9LFxuXG4gIGVhc2VPdXRDdWJpYzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5wb3codmFsdWUgLSAxLCAzKSArIDE7XG4gIH0sXG5cbiAgZWFzZUluT3V0Q3ViaWM6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIDAuNSAqIE1hdGgucG93KHZhbHVlLCAzKTtcblxuICAgIHJldHVybiAwLjUgKiAoTWF0aC5wb3codmFsdWUgLSAyLCAzKSArIDIpO1xuICB9LFxuXG4gIGVhc2VJblF1YXJ0OiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBNYXRoLnBvdyh2YWx1ZSwgNCk7XG4gIH0sXG5cbiAgZWFzZU91dFF1YXJ0OiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiAtKE1hdGgucG93KHZhbHVlIC0gMSwgNCkgLSAxKTtcbiAgfSxcblxuICBlYXNlSW5PdXRRdWFydDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAoKHZhbHVlIC89IDAuNSkgPCAxKSByZXR1cm4gMC41ICogTWF0aC5wb3codmFsdWUsIDQpO1xuXG4gICAgcmV0dXJuIC0wLjUgKiAoKHZhbHVlIC09IDIpICogTWF0aC5wb3codmFsdWUsIDMpIC0gMik7XG4gIH0sXG5cbiAgZWFzZUluU2luZTogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gLU1hdGguY29zKHZhbHVlICogKFBJIC8gMikpICsgMTtcbiAgfSxcblxuICBlYXNlT3V0U2luZTogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5zaW4odmFsdWUgKiAoUEkgLyAyKSk7XG4gIH0sXG5cbiAgZWFzZUluT3V0U2luZTogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gLTAuNSAqIChNYXRoLmNvcyhQSSAqIHZhbHVlKSAtIDEpO1xuICB9LFxuXG4gIGVhc2VJbkV4cG86IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAwID8gMCA6IE1hdGgucG93KDIsIDEwICogKHZhbHVlIC0gMSkpO1xuICB9LFxuXG4gIGVhc2VPdXRFeHBvOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMSA/IDEgOiAtTWF0aC5wb3coMiwgLTEwICogdmFsdWUpICsgMTtcbiAgfSxcblxuICBlYXNlSW5PdXRFeHBvOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gMCkgcmV0dXJuIDA7XG4gICAgaWYgKHZhbHVlID09PSAxKSByZXR1cm4gMTtcbiAgICBpZiAoKHZhbHVlIC89IDAuNSkgPCAxKSByZXR1cm4gMC41ICogTWF0aC5wb3coMiwgMTAgKiAodmFsdWUgLSAxKSk7XG5cbiAgICByZXR1cm4gMC41ICogKC1NYXRoLnBvdygyLCAtMTAgKiAtLXZhbHVlKSArIDIpO1xuICB9LFxuXG4gIGVhc2VJbkNpcmM6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIC0oTWF0aC5zcXJ0KDEgLSB2YWx1ZSAqIHZhbHVlKSAtIDEpO1xuICB9LFxuXG4gIGVhc2VPdXRDaXJjOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBNYXRoLnNxcnQoMSAtIE1hdGgucG93KHZhbHVlIC0gMSwgMikpO1xuICB9LFxuXG4gIGVhc2VJbk91dENpcmM6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIC0wLjUgKiAoTWF0aC5zcXJ0KDEgLSB2YWx1ZSAqIHZhbHVlKSAtIDEpO1xuXG4gICAgcmV0dXJuIDAuNSAqIChNYXRoLnNxcnQoMSAtICh2YWx1ZSAtPSAyKSAqIHZhbHVlKSArIDEpO1xuICB9LFxuXG4gIGVhc2VJbkJhY2s6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHMgPSAxLjcwMTU4O1xuXG4gICAgcmV0dXJuIHZhbHVlICogdmFsdWUgKiAoKHMgKyAxKSAqIHZhbHVlIC0gcyk7XG4gIH0sXG5cbiAgZWFzZU91dEJhY2s6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHMgPSAxLjcwMTU4O1xuXG4gICAgcmV0dXJuICh2YWx1ZSA9IHZhbHVlIC0gMSkgKiB2YWx1ZSAqICgocyArIDEpICogdmFsdWUgKyBzKSArIDE7XG4gIH0sXG5cbiAgZWFzZUluT3V0QmFjazogZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgcyA9IDEuNzAxNTg7XG5cbiAgICBpZiAoKHZhbHVlIC89IDAuNSkgPCAxKVxuICAgICAgcmV0dXJuIDAuNSAqICh2YWx1ZSAqIHZhbHVlICogKCgocyAqPSAxLjUyNSkgKyAxKSAqIHZhbHVlIC0gcykpO1xuXG4gICAgcmV0dXJuIDAuNSAqICgodmFsdWUgLT0gMikgKiB2YWx1ZSAqICgoKHMgKj0gMS41MjUpICsgMSkgKiB2YWx1ZSArIHMpICsgMik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB7XG4gIGVhc2VMaW5lYXIsXG4gIGVhc2VJblF1YWQsXG4gIGVhc2VPdXRRdWFkLFxuICBlYXNlSW5PdXRRdWFkLFxuICBlYXNlSW5DdWJpYyxcbiAgZWFzZU91dEN1YmljLFxuICBlYXNlSW5PdXRDdWJpYyxcbiAgZWFzZUluUXVhcnQsXG4gIGVhc2VPdXRRdWFydCxcbiAgZWFzZUluT3V0UXVhcnQsXG4gIGVhc2VJblNpbmUsXG4gIGVhc2VPdXRTaW5lLFxuICBlYXNlSW5PdXRTaW5lLFxuICBlYXNlSW5FeHBvLFxuICBlYXNlT3V0RXhwbyxcbiAgZWFzZUluT3V0RXhwbyxcbiAgZWFzZUluQ2lyYyxcbiAgZWFzZU91dENpcmMsXG4gIGVhc2VJbk91dENpcmMsXG4gIGVhc2VJbkJhY2ssXG4gIGVhc2VPdXRCYWNrLFxuICBlYXNlSW5PdXRCYWNrXG59ID0gZWFzZTtcblxuZXhwb3J0IGNvbnN0IHNldEVhc2luZ0J5TmFtZSA9IGVhc2VOYW1lID0+IHtcbiAgaWYgKGVhc2VbZWFzZU5hbWVdKSByZXR1cm4gZWFzZVtlYXNlTmFtZV07XG4gIGVsc2UgcmV0dXJuIGVhc2UuZWFzZUxpbmVhcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFYXNpbmdCeU5hbWUgPSBuYW1lID0+XG4gIGVhc2VbbmFtZV0gPyBlYXNlW25hbWVdIDogZWFzZS5lYXNlTGluZWFyO1xuIl19