custom-pixi-particles 7.0.0 → 7.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 (164) hide show
  1. package/README.md +6 -4
  2. package/package.json +6 -5
  3. package/dist/index.d.ts +0 -15
  4. package/dist/index.js +0 -45
  5. package/dist/index.js.map +0 -1
  6. package/dist/lib/Model.d.ts +0 -32
  7. package/dist/lib/Model.js +0 -44
  8. package/dist/lib/Model.js.map +0 -1
  9. package/dist/lib/Particle.d.ts +0 -234
  10. package/dist/lib/Particle.js +0 -201
  11. package/dist/lib/Particle.js.map +0 -1
  12. package/dist/lib/ParticlePool.d.ts +0 -37
  13. package/dist/lib/ParticlePool.js +0 -56
  14. package/dist/lib/ParticlePool.js.map +0 -1
  15. package/dist/lib/behaviour/AngularVelocityBehaviour.d.ts +0 -61
  16. package/dist/lib/behaviour/AngularVelocityBehaviour.js +0 -118
  17. package/dist/lib/behaviour/AngularVelocityBehaviour.js.map +0 -1
  18. package/dist/lib/behaviour/AttractionRepulsionBehaviour.d.ts +0 -42
  19. package/dist/lib/behaviour/AttractionRepulsionBehaviour.js +0 -78
  20. package/dist/lib/behaviour/AttractionRepulsionBehaviour.js.map +0 -1
  21. package/dist/lib/behaviour/Behaviour.d.ts +0 -33
  22. package/dist/lib/behaviour/Behaviour.js +0 -45
  23. package/dist/lib/behaviour/Behaviour.js.map +0 -1
  24. package/dist/lib/behaviour/BehaviourNames.d.ts +0 -22
  25. package/dist/lib/behaviour/BehaviourNames.js +0 -23
  26. package/dist/lib/behaviour/BehaviourNames.js.map +0 -1
  27. package/dist/lib/behaviour/CollisionBehaviour.d.ts +0 -86
  28. package/dist/lib/behaviour/CollisionBehaviour.js +0 -140
  29. package/dist/lib/behaviour/CollisionBehaviour.js.map +0 -1
  30. package/dist/lib/behaviour/ColorBehaviour.d.ts +0 -67
  31. package/dist/lib/behaviour/ColorBehaviour.js +0 -193
  32. package/dist/lib/behaviour/ColorBehaviour.js.map +0 -1
  33. package/dist/lib/behaviour/EmitDirectionBehaviour.d.ts +0 -52
  34. package/dist/lib/behaviour/EmitDirectionBehaviour.js +0 -105
  35. package/dist/lib/behaviour/EmitDirectionBehaviour.js.map +0 -1
  36. package/dist/lib/behaviour/EmitterBehaviours.d.ts +0 -69
  37. package/dist/lib/behaviour/EmitterBehaviours.js +0 -116
  38. package/dist/lib/behaviour/EmitterBehaviours.js.map +0 -1
  39. package/dist/lib/behaviour/ForceFieldsBehaviour.d.ts +0 -53
  40. package/dist/lib/behaviour/ForceFieldsBehaviour.js +0 -80
  41. package/dist/lib/behaviour/ForceFieldsBehaviour.js.map +0 -1
  42. package/dist/lib/behaviour/GroupingBehaviour.d.ts +0 -57
  43. package/dist/lib/behaviour/GroupingBehaviour.js +0 -143
  44. package/dist/lib/behaviour/GroupingBehaviour.js.map +0 -1
  45. package/dist/lib/behaviour/LifeBehaviour.d.ts +0 -47
  46. package/dist/lib/behaviour/LifeBehaviour.js +0 -65
  47. package/dist/lib/behaviour/LifeBehaviour.js.map +0 -1
  48. package/dist/lib/behaviour/LightEffectBehaviour.d.ts +0 -59
  49. package/dist/lib/behaviour/LightEffectBehaviour.js +0 -94
  50. package/dist/lib/behaviour/LightEffectBehaviour.js.map +0 -1
  51. package/dist/lib/behaviour/NoiseBasedMotionBehaviour.d.ts +0 -35
  52. package/dist/lib/behaviour/NoiseBasedMotionBehaviour.js +0 -93
  53. package/dist/lib/behaviour/NoiseBasedMotionBehaviour.js.map +0 -1
  54. package/dist/lib/behaviour/PositionBehaviour.d.ts +0 -164
  55. package/dist/lib/behaviour/PositionBehaviour.js +0 -484
  56. package/dist/lib/behaviour/PositionBehaviour.js.map +0 -1
  57. package/dist/lib/behaviour/RotationBehaviour.d.ts +0 -59
  58. package/dist/lib/behaviour/RotationBehaviour.js +0 -100
  59. package/dist/lib/behaviour/RotationBehaviour.js.map +0 -1
  60. package/dist/lib/behaviour/SizeBehaviour.d.ts +0 -61
  61. package/dist/lib/behaviour/SizeBehaviour.js +0 -156
  62. package/dist/lib/behaviour/SizeBehaviour.js.map +0 -1
  63. package/dist/lib/behaviour/SoundReactiveBehaviour.d.ts +0 -58
  64. package/dist/lib/behaviour/SoundReactiveBehaviour.js +0 -132
  65. package/dist/lib/behaviour/SoundReactiveBehaviour.js.map +0 -1
  66. package/dist/lib/behaviour/SpawnBehaviour.d.ts +0 -89
  67. package/dist/lib/behaviour/SpawnBehaviour.js +0 -705
  68. package/dist/lib/behaviour/SpawnBehaviour.js.map +0 -1
  69. package/dist/lib/behaviour/StretchBehaviour.d.ts +0 -30
  70. package/dist/lib/behaviour/StretchBehaviour.js +0 -59
  71. package/dist/lib/behaviour/StretchBehaviour.js.map +0 -1
  72. package/dist/lib/behaviour/TemperatureBehaviour.d.ts +0 -47
  73. package/dist/lib/behaviour/TemperatureBehaviour.js +0 -64
  74. package/dist/lib/behaviour/TemperatureBehaviour.js.map +0 -1
  75. package/dist/lib/behaviour/TimelineBehaviour.d.ts +0 -73
  76. package/dist/lib/behaviour/TimelineBehaviour.js +0 -100
  77. package/dist/lib/behaviour/TimelineBehaviour.js.map +0 -1
  78. package/dist/lib/behaviour/TurbulenceBehaviour.d.ts +0 -73
  79. package/dist/lib/behaviour/TurbulenceBehaviour.js +0 -133
  80. package/dist/lib/behaviour/TurbulenceBehaviour.js.map +0 -1
  81. package/dist/lib/behaviour/index.d.ts +0 -23
  82. package/dist/lib/behaviour/index.js +0 -24
  83. package/dist/lib/behaviour/index.js.map +0 -1
  84. package/dist/lib/customPixiParticlesSettingsInterface.d.ts +0 -19
  85. package/dist/lib/customPixiParticlesSettingsInterface.js +0 -2
  86. package/dist/lib/customPixiParticlesSettingsInterface.js.map +0 -1
  87. package/dist/lib/emission/AbstractEmission.d.ts +0 -30
  88. package/dist/lib/emission/AbstractEmission.js +0 -39
  89. package/dist/lib/emission/AbstractEmission.js.map +0 -1
  90. package/dist/lib/emission/EmissionTypes.d.ts +0 -6
  91. package/dist/lib/emission/EmissionTypes.js +0 -6
  92. package/dist/lib/emission/EmissionTypes.js.map +0 -1
  93. package/dist/lib/emission/RandomEmission.d.ts +0 -44
  94. package/dist/lib/emission/RandomEmission.js +0 -66
  95. package/dist/lib/emission/RandomEmission.js.map +0 -1
  96. package/dist/lib/emission/StandardEmission.d.ts +0 -62
  97. package/dist/lib/emission/StandardEmission.js +0 -87
  98. package/dist/lib/emission/StandardEmission.js.map +0 -1
  99. package/dist/lib/emission/UniformEmission.d.ts +0 -56
  100. package/dist/lib/emission/UniformEmission.js +0 -83
  101. package/dist/lib/emission/UniformEmission.js.map +0 -1
  102. package/dist/lib/emission/index.d.ts +0 -6
  103. package/dist/lib/emission/index.js +0 -7
  104. package/dist/lib/emission/index.js.map +0 -1
  105. package/dist/lib/emitter/Duration.d.ts +0 -27
  106. package/dist/lib/emitter/Duration.js +0 -41
  107. package/dist/lib/emitter/Duration.js.map +0 -1
  108. package/dist/lib/emitter/Emitter.d.ts +0 -116
  109. package/dist/lib/emitter/Emitter.js +0 -240
  110. package/dist/lib/emitter/Emitter.js.map +0 -1
  111. package/dist/lib/emitter/index.d.ts +0 -3
  112. package/dist/lib/emitter/index.js +0 -4
  113. package/dist/lib/emitter/index.js.map +0 -1
  114. package/dist/lib/index.d.ts +0 -20
  115. package/dist/lib/index.js +0 -21
  116. package/dist/lib/index.js.map +0 -1
  117. package/dist/lib/parser/BehaviourParser.d.ts +0 -21
  118. package/dist/lib/parser/BehaviourParser.js +0 -72
  119. package/dist/lib/parser/BehaviourParser.js.map +0 -1
  120. package/dist/lib/parser/CompatibilityHelper.d.ts +0 -12
  121. package/dist/lib/parser/CompatibilityHelper.js +0 -19
  122. package/dist/lib/parser/CompatibilityHelper.js.map +0 -1
  123. package/dist/lib/parser/EmitControllerParser.d.ts +0 -27
  124. package/dist/lib/parser/EmitControllerParser.js +0 -39
  125. package/dist/lib/parser/EmitControllerParser.js.map +0 -1
  126. package/dist/lib/parser/EmitterParser.d.ts +0 -67
  127. package/dist/lib/parser/EmitterParser.js +0 -168
  128. package/dist/lib/parser/EmitterParser.js.map +0 -1
  129. package/dist/lib/parser/index.d.ts +0 -5
  130. package/dist/lib/parser/index.js +0 -6
  131. package/dist/lib/parser/index.js.map +0 -1
  132. package/dist/lib/pixi/Renderer.d.ts +0 -125
  133. package/dist/lib/pixi/Renderer.js +0 -566
  134. package/dist/lib/pixi/Renderer.js.map +0 -1
  135. package/dist/lib/pixi/TestRenderer.d.ts +0 -125
  136. package/dist/lib/pixi/TestRenderer.js +0 -560
  137. package/dist/lib/pixi/TestRenderer.js.map +0 -1
  138. package/dist/lib/util/Color.d.ts +0 -133
  139. package/dist/lib/util/Color.js +0 -173
  140. package/dist/lib/util/Color.js.map +0 -1
  141. package/dist/lib/util/List.d.ts +0 -49
  142. package/dist/lib/util/List.js +0 -87
  143. package/dist/lib/util/List.js.map +0 -1
  144. package/dist/lib/util/MinMax.d.ts +0 -34
  145. package/dist/lib/util/MinMax.js +0 -46
  146. package/dist/lib/util/MinMax.js.map +0 -1
  147. package/dist/lib/util/Point.d.ts +0 -34
  148. package/dist/lib/util/Point.js +0 -46
  149. package/dist/lib/util/Point.js.map +0 -1
  150. package/dist/lib/util/Random.d.ts +0 -24
  151. package/dist/lib/util/Random.js +0 -30
  152. package/dist/lib/util/Random.js.map +0 -1
  153. package/dist/lib/util/ThereBack.d.ts +0 -14
  154. package/dist/lib/util/ThereBack.js +0 -23
  155. package/dist/lib/util/ThereBack.js.map +0 -1
  156. package/dist/lib/util/index.d.ts +0 -5
  157. package/dist/lib/util/index.js +0 -6
  158. package/dist/lib/util/index.js.map +0 -1
  159. package/dist/lib/util/maths.d.ts +0 -10
  160. package/dist/lib/util/maths.js +0 -13
  161. package/dist/lib/util/maths.js.map +0 -1
  162. package/dist/lib/util/turbulencePool.d.ts +0 -4
  163. package/dist/lib/util/turbulencePool.js +0 -7
  164. package/dist/lib/util/turbulencePool.js.map +0 -1
@@ -1,484 +0,0 @@
1
- import { Point } from '../util';
2
- import { Behaviour, BehaviourNames } from './index';
3
- import MinMax from '../util/MinMax';
4
- import ThereBack from '../util/ThereBack';
5
- export default class PositionBehaviour extends Behaviour {
6
- constructor() {
7
- super(...arguments);
8
- this.enabled = false;
9
- this.priority = 100;
10
- this.warp = false;
11
- this.warpSpeed = 0;
12
- this.warpBaseSpeed = 0;
13
- this.sinX = false;
14
- this.sinY = false;
15
- this.sinXVal = new Point();
16
- this.sinYVal = new Point();
17
- this.sinXValVariance = new Point();
18
- this.sinYValVariance = new Point();
19
- this.positionVariance = new Point();
20
- this.velocity = new Point();
21
- this.velocityVariance = new Point();
22
- this.acceleration = new Point();
23
- this.accelerationVariance = new Point();
24
- this.cameraZConverter = 10;
25
- this.warpFov = 20;
26
- this.warpStretch = 5;
27
- this.warpDistanceScaleConverter = 2000;
28
- this.warpDistanceToCenter = false;
29
- this.fromAtoB = false;
30
- this.fromAtoBTwoWays = false;
31
- this.pointA = new Point();
32
- this.pointB = new Point();
33
- this.thereDuration = new MinMax();
34
- this.thereAmplitude = new MinMax();
35
- this.backDuration = new MinMax();
36
- this.backAmplitude = new MinMax();
37
- this.there = new ThereBack();
38
- this.back = new ThereBack();
39
- /**
40
- * Function that initializes a particle
41
- * @param {Particle} particle - The particle to be initialized
42
- * @param {Model} model - The model of the particle
43
- */
44
- this.init = (particle, model) => {
45
- if (!this.fromAtoB) {
46
- particle.velocity.x = this.calculate(this.velocity.x, this.velocityVariance.x);
47
- particle.velocity.y = this.calculate(this.velocity.y, this.velocityVariance.y);
48
- particle.acceleration.x = this.calculate(this.acceleration.x, this.accelerationVariance.x);
49
- particle.acceleration.y = this.calculate(this.acceleration.y, this.accelerationVariance.y);
50
- if (this.sinX) {
51
- particle.sinXVal.x = this.calculate(this.sinXVal.x, this.sinXValVariance.x);
52
- particle.sinXVal.y = this.calculate(this.sinXVal.y, this.sinXValVariance.y);
53
- }
54
- if (this.sinY) {
55
- particle.sinYVal.x = this.calculate(this.sinYVal.x, this.sinYValVariance.x);
56
- particle.sinYVal.y = this.calculate(this.sinYVal.y, this.sinYValVariance.y);
57
- }
58
- particle.x = particle.movement.x;
59
- particle.y = particle.movement.y;
60
- this.restartWarp(particle, true, model);
61
- }
62
- else {
63
- particle.thereDuration =
64
- Math.random() * (this.thereDuration.max - this.thereDuration.min) + this.thereDuration.min;
65
- particle.thereAmplitude =
66
- Math.random() * (this.thereAmplitude.max - this.thereAmplitude.min) + this.thereAmplitude.min;
67
- particle.backDuration = Math.random() * (this.backDuration.max - this.backDuration.min) + this.backDuration.min;
68
- particle.backAmplitude =
69
- Math.random() * (this.backAmplitude.max - this.backAmplitude.min) + this.backAmplitude.min;
70
- particle.pointA.copyFrom(this.pointA);
71
- particle.pointB.copyFrom(this.pointB);
72
- particle.xStart = this.pointA.x;
73
- particle.yStart = this.pointA.y;
74
- particle.xTarget = this.pointB.x;
75
- particle.yTarget = this.pointB.y;
76
- particle.there.copyFrom(this.there);
77
- particle.back.copyFrom(this.back);
78
- }
79
- };
80
- /**
81
- * Restarts the warp of a particle
82
- * @param {Particle} particle - The particle to restart the warp on
83
- * @param {boolean} initial - True if this is the initial warp, false if it is a subsequent one
84
- * @param {Model} model - The model containing the camera Z property
85
- */
86
- this.restartWarp = (particle, initial, model) => {
87
- if (!this.warp)
88
- return;
89
- const { sizeStart } = particle;
90
- if (initial) {
91
- particle.z = Math.random() * this.warpDistanceScaleConverter;
92
- }
93
- else {
94
- particle.z = model.cameraZ + Math.random() * this.warpDistanceScaleConverter;
95
- }
96
- const distance = Math.random() * this.positionVariance.x + 1;
97
- const deg = Math.random() * (Math.PI * 2);
98
- particle.warpSizeStart.x = (1 - distance / this.positionVariance.x) * 0.5 * sizeStart.x;
99
- particle.warpSizeStart.y = (1 - distance / this.positionVariance.y) * 0.5 * sizeStart.y;
100
- if (this.warpDistanceToCenter) {
101
- particle.movement.x = Math.cos(deg) * distance;
102
- particle.movement.y = Math.sin(deg) * distance;
103
- }
104
- else {
105
- particle.x = Math.cos(deg) * distance;
106
- particle.y = Math.sin(deg) * distance;
107
- }
108
- particle.color.alpha = (1 - distance / this.positionVariance.x) * 0.5;
109
- };
110
- /**
111
- * Adds a random variance to the given value
112
- * @param {number} value - The value to calculate
113
- * @param {number} variance - The random variance to add
114
- * @returns {number} The calculated value
115
- */
116
- this.calculate = (value, variance) => {
117
- return value + this.varianceFrom(variance);
118
- };
119
- /**
120
- * Applies the particle's velocity and acceleration to move it and calculate its size, rotation, and position.
121
- * @param {Particle} particle - The particle to be moved
122
- * @param {number} deltaTime - The time delta for the movement calculation
123
- * @param {Model} model - The model containing information about the particle's movement
124
- */
125
- this.apply = (particle, deltaTime, model) => {
126
- if (particle.skipPositionBehaviour)
127
- return;
128
- if (!this.fromAtoB) {
129
- const { acceleration, sinXVal, sinYVal, z, warpSizeStart, movement } = particle;
130
- const { cameraZ } = model;
131
- const PI = Math.PI;
132
- particle.velocity.x += acceleration.x * deltaTime;
133
- particle.velocity.y += acceleration.y * deltaTime;
134
- const movementX = movement.x + particle.velocity.x * deltaTime;
135
- const movementY = movement.y + particle.velocity.y * deltaTime;
136
- particle.movement.x = movementX;
137
- particle.movement.y = movementY;
138
- if (this.sinX) {
139
- particle.x = movementX + Math.sin(PI * (movementY / sinXVal.x)) * sinXVal.y;
140
- }
141
- else {
142
- particle.x = movementX;
143
- }
144
- if (this.sinY) {
145
- particle.y = movementY + Math.sin(PI * (movementX / sinYVal.x)) * sinYVal.y;
146
- }
147
- else {
148
- particle.y = movementY;
149
- }
150
- if (model.warp) {
151
- if (z < cameraZ) {
152
- this.restartWarp(particle, false, model);
153
- }
154
- const newZ = z - cameraZ;
155
- const dxCenter = movementX;
156
- const dyCenter = movementY;
157
- const distanceCenter = Math.sqrt(dxCenter * dxCenter + dyCenter * dyCenter);
158
- const distanceScale = Math.max(0, (this.warpDistanceScaleConverter - newZ) / this.warpDistanceScaleConverter);
159
- const fovZ = this.warpFov / newZ;
160
- particle.x = movementX * fovZ;
161
- particle.y = movementY * fovZ;
162
- particle.size.x = distanceScale * warpSizeStart.x;
163
- particle.size.y =
164
- distanceScale * warpSizeStart.y + distanceScale * this.warpSpeed * this.warpStretch * distanceCenter;
165
- particle.rotation = Math.atan2(dyCenter, dxCenter) + PI / 2;
166
- }
167
- }
168
- else {
169
- let progress = particle.progress;
170
- if (this.fromAtoBTwoWays && progress >= 1) {
171
- particle.direction = -particle.direction;
172
- particle.progress = 0;
173
- progress = 0;
174
- particle.time = 0;
175
- }
176
- else if (progress > 1) {
177
- return;
178
- }
179
- let easedProgress = progress;
180
- if (particle.direction === 1) {
181
- if (particle.there.ease === 'back.inOut') {
182
- easedProgress = this._easeBackInOut(progress);
183
- }
184
- else if (particle.there.ease === 'back.in') {
185
- easedProgress = this._easeBackIn(progress);
186
- }
187
- else if (particle.there.ease === 'back.out') {
188
- easedProgress = this._easeBackOut(progress);
189
- }
190
- else if (particle.there.ease === 'power1.in') {
191
- easedProgress = this._easePower1In(progress);
192
- }
193
- else if (particle.there.ease === 'power1.out') {
194
- easedProgress = this._easePower1Out(progress);
195
- }
196
- else if (particle.there.ease === 'power1.inOut') {
197
- easedProgress = this._easePower1InOut(progress);
198
- }
199
- else if (particle.there.ease === 'bounce.in') {
200
- easedProgress = this._easeBounceIn(progress);
201
- }
202
- else if (particle.there.ease === 'bounce.out') {
203
- easedProgress = this._easeBounceOut(progress);
204
- }
205
- else if (particle.there.ease === 'bounce.inOut') {
206
- easedProgress = this._easeBounceInOut(progress);
207
- }
208
- else if (particle.there.ease === 'elastic.in') {
209
- easedProgress = this._easeElasticIn(progress);
210
- }
211
- else if (particle.there.ease === 'elastic.out') {
212
- easedProgress = this._easeElasticOut(progress);
213
- }
214
- else if (particle.there.ease === 'elastic.inOut') {
215
- easedProgress = this._easeElasticInOut(progress);
216
- }
217
- else if (particle.there.ease === 'steps') {
218
- easedProgress = this._easeSteps(progress);
219
- }
220
- const xInterpolated = this._lerp(particle.xStart, particle.xTarget, easedProgress);
221
- const yInterpolated = this._lerp(particle.yStart, particle.yTarget, easedProgress);
222
- if (particle.there.x === 'Sin') {
223
- particle.x = xInterpolated + Math.sin(progress * Math.PI) * particle.thereAmplitude;
224
- }
225
- else if (particle.there.x === 'Cos') {
226
- particle.x = xInterpolated + Math.cos(progress * Math.PI) * particle.thereAmplitude;
227
- }
228
- else if (particle.there.x === 'Tan') {
229
- particle.x = xInterpolated + Math.tan(progress * Math.PI) * particle.thereAmplitude;
230
- }
231
- else {
232
- particle.x = xInterpolated + easedProgress;
233
- }
234
- if (particle.there.y === 'Sin') {
235
- particle.y = yInterpolated + Math.sin(progress * Math.PI) * particle.thereAmplitude;
236
- }
237
- else if (particle.there.y === 'Cos') {
238
- particle.y = yInterpolated + Math.cos(progress * Math.PI) * particle.thereAmplitude;
239
- }
240
- else if (particle.there.y === 'Tan') {
241
- particle.y = yInterpolated + Math.tan(progress * Math.PI) * particle.thereAmplitude;
242
- }
243
- else {
244
- particle.y = yInterpolated + easedProgress;
245
- }
246
- }
247
- else {
248
- if (particle.back.ease === 'back.inOut') {
249
- easedProgress = this._easeBackInOut(progress);
250
- }
251
- else if (particle.back.ease === 'back.in') {
252
- easedProgress = this._easeBackIn(progress);
253
- }
254
- else if (particle.back.ease === 'back.out') {
255
- easedProgress = this._easeBackOut(progress);
256
- }
257
- else if (particle.back.ease === 'power1.in') {
258
- easedProgress = this._easePower1In(progress);
259
- }
260
- else if (particle.back.ease === 'power1.out') {
261
- easedProgress = this._easePower1Out(progress);
262
- }
263
- else if (particle.back.ease === 'power1.inOut') {
264
- easedProgress = this._easePower1InOut(progress);
265
- }
266
- else if (particle.back.ease === 'bounce.in') {
267
- easedProgress = this._easeBounceIn(progress);
268
- }
269
- else if (particle.back.ease === 'bounce.out') {
270
- easedProgress = this._easeBounceOut(progress);
271
- }
272
- else if (particle.back.ease === 'bounce.inOut') {
273
- easedProgress = this._easeBounceInOut(progress);
274
- }
275
- else if (particle.back.ease === 'elastic.in') {
276
- easedProgress = this._easeElasticIn(progress);
277
- }
278
- else if (particle.back.ease === 'elastic.out') {
279
- easedProgress = this._easeElasticOut(progress);
280
- }
281
- else if (particle.back.ease === 'elastic.inOut') {
282
- easedProgress = this._easeElasticInOut(progress);
283
- }
284
- else if (particle.back.ease === 'steps') {
285
- easedProgress = this._easeSteps(progress);
286
- }
287
- const xInterpolated = this._lerp(particle.xTarget, particle.xStart, easedProgress);
288
- const yInterpolated = this._lerp(particle.yTarget, particle.yStart, easedProgress);
289
- if (particle.back.x === 'Sin') {
290
- particle.x = xInterpolated + Math.sin(progress * Math.PI) * particle.backAmplitude;
291
- }
292
- else if (particle.back.x === 'Cos') {
293
- particle.x = xInterpolated + Math.cos(progress * Math.PI) * particle.backAmplitude;
294
- }
295
- else if (particle.back.x === 'Tan') {
296
- particle.x = xInterpolated + Math.tan(progress * Math.PI) * particle.backAmplitude;
297
- }
298
- else {
299
- particle.x = xInterpolated + easedProgress;
300
- }
301
- if (particle.back.y === 'Sin') {
302
- particle.y = yInterpolated + Math.sin(progress * Math.PI) * particle.backAmplitude;
303
- }
304
- else if (particle.back.y === 'Cos') {
305
- particle.y = yInterpolated + Math.cos(progress * Math.PI) * particle.backAmplitude;
306
- }
307
- else if (particle.back.y === 'Tan') {
308
- particle.y = yInterpolated + Math.tan(progress * Math.PI) * particle.backAmplitude;
309
- }
310
- else {
311
- particle.y = yInterpolated + easedProgress;
312
- }
313
- }
314
- particle.time += deltaTime;
315
- if (particle.direction === 1) {
316
- particle.progress = particle.time / particle.thereDuration;
317
- }
318
- else {
319
- particle.progress = particle.time / particle.backDuration;
320
- }
321
- }
322
- };
323
- }
324
- /**
325
- * Gets the name of the behaviour
326
- * @return {BehaviourNames} The name of the behaviour
327
- */
328
- getName() {
329
- return BehaviourNames.POSITION_BEHAVIOUR;
330
- }
331
- _lerp(start, end, t) {
332
- return start * (1 - t) + end * t;
333
- }
334
- _easeBackInOut(t, c1 = 1.70158, c2 = c1 * 1.525) {
335
- return t < 0.5
336
- ? (Math.pow(2 * t, 2) * ((c2 + 1) * 2 * t - c2)) / 2
337
- : (Math.pow(2 * t - 2, 2) * ((c2 + 1) * (t * 2 - 2) + c2) + 2) / 2;
338
- }
339
- _easeBackIn(t, c1 = 1.70158) {
340
- t = Math.min(Math.max(t, 0), 1);
341
- return t * t * ((c1 + 1) * t - c1);
342
- }
343
- _easeBackOut(t, c1 = 1.70158) {
344
- t = Math.min(Math.max(t, 0), 1);
345
- const tInv = t - 1;
346
- return tInv * tInv * ((c1 + 1) * tInv + c1) + 1;
347
- }
348
- _easePower1In(t) {
349
- return t;
350
- }
351
- _easePower1Out(t) {
352
- return 1 - Math.pow(1 - t, 2);
353
- }
354
- _easePower1InOut(t) {
355
- return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;
356
- }
357
- _easeBounceIn(t) {
358
- return 1 - this._easeBounceOut(1 - t);
359
- }
360
- _easeBounceOut(t) {
361
- const n1 = 7.5625;
362
- const d1 = 2.75;
363
- if (t < 1 / d1) {
364
- return n1 * t * t;
365
- }
366
- else if (t < 2 / d1) {
367
- return n1 * (t -= 1.5 / d1) * t + 0.75;
368
- }
369
- else if (t < 2.5 / d1) {
370
- return n1 * (t -= 2.25 / d1) * t + 0.9375;
371
- }
372
- else {
373
- return n1 * (t -= 2.625 / d1) * t + 0.984375;
374
- }
375
- }
376
- _easeBounceInOut(t) {
377
- return t < 0.5 ? (1 - this._easeBounceOut(1 - 2 * t)) / 2 : (1 + this._easeBounceOut(2 * t - 1)) / 2;
378
- }
379
- _easeElasticIn(t) {
380
- const c4 = (2 * Math.PI) / 3;
381
- return t === 0 ? 0 : t === 1 ? 1 : -Math.pow(2, 10 * t - 10) * Math.sin((t * 10 - 10.75) * c4);
382
- }
383
- _easeElasticOut(t) {
384
- const c4 = (2 * Math.PI) / 3;
385
- return t === 0 ? 0 : t === 1 ? 1 : Math.pow(2, -10 * t) * Math.sin((t * 10 - 0.75) * c4) + 1;
386
- }
387
- _easeElasticInOut(t) {
388
- const c5 = (2 * Math.PI) / 4.5;
389
- return t === 0
390
- ? 0
391
- : t === 1
392
- ? 1
393
- : t < 0.5
394
- ? -(Math.pow(2, 20 * t - 10) * Math.sin((20 * t - 11.125) * c5)) / 2
395
- : (Math.pow(2, -20 * t + 10) * Math.sin((20 * t - 11.125) * c5)) / 2 + 1;
396
- }
397
- _easeSteps(t, numSteps = 12) {
398
- const stepSize = 1 / numSteps;
399
- const stepIndex = Math.floor(t / stepSize);
400
- return stepIndex * stepSize;
401
- }
402
- /**
403
- * @description Retrieves the properties of the object.
404
- * @returns {Object} The properties of the object.
405
- */
406
- getProps() {
407
- return {
408
- enabled: this.enabled,
409
- priority: this.priority,
410
- fromAtoB: this.fromAtoB,
411
- fromAtoBTwoWays: this.fromAtoBTwoWays,
412
- there: {
413
- x: this.there.x,
414
- y: this.there.y,
415
- ease: this.there.ease,
416
- },
417
- back: {
418
- x: this.back.x,
419
- y: this.back.y,
420
- ease: this.back.ease,
421
- },
422
- pointA: {
423
- x: this.pointA.x,
424
- y: this.pointA.y,
425
- },
426
- pointB: {
427
- x: this.pointB.x,
428
- y: this.pointB.y,
429
- },
430
- thereDuration: {
431
- x: this.thereDuration.min,
432
- y: this.thereDuration.max,
433
- },
434
- thereAmplitude: {
435
- x: this.thereAmplitude.min,
436
- y: this.thereAmplitude.max,
437
- },
438
- backDuration: {
439
- x: this.backDuration.min,
440
- y: this.backDuration.max,
441
- },
442
- backAmplitude: {
443
- x: this.backAmplitude.min,
444
- y: this.backAmplitude.max,
445
- },
446
- warp: this.warp,
447
- sinX: this.sinX,
448
- sinY: this.sinY,
449
- sinXVal: this.sinXVal,
450
- sinYVal: this.sinYVal,
451
- sinXValVariance: this.sinXValVariance,
452
- sinYValVariance: this.sinYValVariance,
453
- positionVariance: {
454
- x: this.positionVariance.x,
455
- y: this.positionVariance.y,
456
- },
457
- velocity: {
458
- x: this.velocity.x,
459
- y: this.velocity.y,
460
- },
461
- velocityVariance: {
462
- x: this.velocityVariance.x,
463
- y: this.velocityVariance.y,
464
- },
465
- acceleration: {
466
- x: this.acceleration.x,
467
- y: this.acceleration.y,
468
- },
469
- accelerationVariance: {
470
- x: this.accelerationVariance.x,
471
- y: this.accelerationVariance.y,
472
- },
473
- warpSpeed: this.warpSpeed,
474
- warpBaseSpeed: this.warpBaseSpeed,
475
- cameraZConverter: this.cameraZConverter,
476
- warpFov: this.warpFov,
477
- warpStretch: this.warpStretch,
478
- warpDistanceScaleConverter: this.warpDistanceScaleConverter,
479
- warpDistanceToCenter: this.warpDistanceToCenter,
480
- name: this.getName(),
481
- };
482
- }
483
- }
484
- //# sourceMappingURL=PositionBehaviour.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PositionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/PositionBehaviour.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { Behaviour } from './index';
2
- import Particle from '../Particle';
3
- /**
4
- * RotationBehaviour is a Behaviour class used to control the rotation of particles.
5
- * @extends Behaviour
6
- */
7
- export default class RotationBehaviour extends Behaviour {
8
- enabled: boolean;
9
- priority: number;
10
- rotation: number;
11
- variance: number;
12
- oscillate: boolean;
13
- oscillationSpeed: number;
14
- oscillationAmplitude: number;
15
- useNoise: boolean;
16
- noiseScale: number;
17
- acceleration: number;
18
- clockwise: boolean;
19
- /**
20
- * Initialise the Behaviour for a particle
21
- * @param {Particle} particle - The particle to be initialised
22
- */
23
- init: (particle: Particle) => void;
24
- /**
25
- * Applies the Behaviour to a particle
26
- * @param {Particle} particle - The particle to apply the Behaviour to
27
- * @param {number} deltaTime - The delta time of the runtime
28
- */
29
- apply: (particle: Particle, deltaTime: number) => void;
30
- /**
31
- * Pseudo-random noise generator for smooth transitions
32
- * @param {number} seed - Input seed for generating noise
33
- * @returns {number} - Noise value between 0 and 1
34
- */
35
- pseudoRandomNoise(seed: number): number;
36
- /**
37
- * Gets the name of the Behaviour
38
- * @returns {string} - The name of the Behaviour
39
- */
40
- getName(): string;
41
- /**
42
- * Gets the properties of the Behaviour
43
- * @returns {object} - The properties of the Behaviour
44
- */
45
- getProps(): {
46
- enabled: boolean;
47
- priority: number;
48
- rotation: number;
49
- variance: number;
50
- oscillate: boolean;
51
- oscillationSpeed: number;
52
- oscillationAmplitude: number;
53
- useNoise: boolean;
54
- noiseScale: number;
55
- acceleration: number;
56
- clockwise: boolean;
57
- name: string;
58
- };
59
- }