@flighthq/particles 0.5.1-next.731.0ae0aa4 → 0.5.1-next.799.62ef0c7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/particleEmitterConfig.d.ts +2 -2
- package/dist/particleEmitterConfig.d.ts.map +1 -1
- package/dist/particleEmitterConfig.js.map +1 -1
- package/dist/particleEmitterSignals.d.ts.map +1 -1
- package/dist/particleEmitterSignals.js +3 -2
- package/dist/particleEmitterSignals.js.map +1 -1
- package/dist/particleEmitterState.d.ts.map +1 -1
- package/dist/particleEmitterState.js +3 -2
- package/dist/particleEmitterState.js.map +1 -1
- package/dist/particleObjectsState.d.ts.map +1 -1
- package/dist/particleObjectsState.js +3 -2
- package/dist/particleObjectsState.js.map +1 -1
- package/package.json +5 -4
- package/src/applyParticleCollisions.test.ts +3 -2
- package/src/applyParticleForces.test.ts +3 -2
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/particles`. The `@fl
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/particles@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/particles@0.5.1-next.799.62ef0c7](https://github.com/flighthq/flight/tree/62ef0c74f09f24177aac3695b2487b2d743d4fe6/packages/particles)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/62ef0c74f09f24177aac3695b2487b2d743d4fe6/LICENSE.md)
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { ParticleEmitterConfig } from '@flighthq/types/contract';
|
|
2
|
-
export declare function createParticleEmitterConfig(config?: Partial<ParticleEmitterConfig>): ParticleEmitterConfig
|
|
1
|
+
import type { NonEntityCreateResult, ParticleEmitterConfig } from '@flighthq/types/contract';
|
|
2
|
+
export declare function createParticleEmitterConfig(config?: Partial<ParticleEmitterConfig>): NonEntityCreateResult<ParticleEmitterConfig, 'options'>;
|
|
3
3
|
//# sourceMappingURL=particleEmitterConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleEmitterConfig.d.ts","sourceRoot":"","sources":["../src/particleEmitterConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"particleEmitterConfig.d.ts","sourceRoot":"","sources":["../src/particleEmitterConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE7F,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,qBAAqB,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAuDzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleEmitterConfig.js","sourceRoot":"","sources":["../src/particleEmitterConfig.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,
|
|
1
|
+
{"version":3,"file":"particleEmitterConfig.js","sourceRoot":"","sources":["../src/particleEmitterConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleEmitterSignals.d.ts","sourceRoot":"","sources":["../src/particleEmitterSignals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"particleEmitterSignals.d.ts","sourceRoot":"","sources":["../src/particleEmitterSignals.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE;oFACoF;AACpF,wBAAgB,4BAA4B,IAAI,sBAAsB,CAMrE;AAED;;;;;;;;;gEASgE;AAChE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAGlF;AAED;8CAC8C;AAC9C,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAEtF"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { createSignal } from '@flighthq/signals/contract';
|
|
2
3
|
/** Create a fresh {@link ParticleEmitterSignals} group. Called by
|
|
3
4
|
* {@link enableParticleEmitterSignals} on first use; exported for unit testing. */
|
|
4
5
|
export function createParticleEmitterSignals() {
|
|
5
|
-
return {
|
|
6
|
+
return createEntity({
|
|
6
7
|
onEmitterComplete: createSignal(),
|
|
7
8
|
onParticleDeath: createSignal(),
|
|
8
9
|
onParticleSpawn: createSignal(),
|
|
9
|
-
};
|
|
10
|
+
});
|
|
10
11
|
}
|
|
11
12
|
/** Opt-in signals for a typed-array particle emitter.
|
|
12
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleEmitterSignals.js","sourceRoot":"","sources":["../src/particleEmitterSignals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D;oFACoF;AACpF,MAAM,UAAU,4BAA4B;IAC1C,OAAO;
|
|
1
|
+
{"version":3,"file":"particleEmitterSignals.js","sourceRoot":"","sources":["../src/particleEmitterSignals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D;oFACoF;AACpF,MAAM,UAAU,4BAA4B;IAC1C,OAAO,YAAY,CAAC;QAClB,iBAAiB,EAAE,YAAY,EAAE;QACjC,eAAe,EAAE,YAAY,EAAE;QAC/B,eAAe,EAAE,YAAY,EAAE;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;gEASgE;AAChE,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,CAAC,GAAG,KAA2D,CAAC;IACtE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,4BAA4B,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;8CAC8C;AAC9C,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAQ,KAA4D,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAC5F,CAAC;AAED,+EAA+E;AAC/E,wFAAwF;AACxF,MAAM,WAAW,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleEmitterState.d.ts","sourceRoot":"","sources":["../src/particleEmitterState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"particleEmitterState.d.ts","sourceRoot":"","sources":["../src/particleEmitterState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGnF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,wBAAgB,0BAA0B,CAAC,MAAM,GAAE,YAA0B,GAAG,oBAAoB,CAgBnG;AAED;;mEAEmE;AACnE,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,OAAO,GACxB,IAAI,CAgBN"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { reserveFloat32Array } from '@flighthq/geometry/contract';
|
|
2
3
|
// Velocity stride: [vx, vy, vz] per particle.
|
|
3
4
|
export const PARTICLE_VELOCITY_STRIDE = 3;
|
|
4
5
|
export function createParticleEmitterState(random = Math.random) {
|
|
5
|
-
return {
|
|
6
|
+
return createEntity({
|
|
6
7
|
burstTimer: 0,
|
|
7
8
|
colorBirth: new Float32Array(),
|
|
8
9
|
colorDeath: new Float32Array(),
|
|
@@ -16,7 +17,7 @@ export function createParticleEmitterState(random = Math.random) {
|
|
|
16
17
|
scales: new Float32Array(),
|
|
17
18
|
spawnAccumulator: 0,
|
|
18
19
|
velocities: new Float32Array(),
|
|
19
|
-
};
|
|
20
|
+
});
|
|
20
21
|
}
|
|
21
22
|
/** Grow the per-particle state arrays to hold at least `capacity` particles.
|
|
22
23
|
* No-op when already large enough. `colorBirth`/`colorDeath` are only grown when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleEmitterState.js","sourceRoot":"","sources":["../src/particleEmitterState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,UAAU,0BAA0B,CAAC,SAAuB,IAAI,CAAC,MAAM;IAC3E,OAAO;
|
|
1
|
+
{"version":3,"file":"particleEmitterState.js","sourceRoot":"","sources":["../src/particleEmitterState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,UAAU,0BAA0B,CAAC,SAAuB,IAAI,CAAC,MAAM;IAC3E,OAAO,YAAY,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI,YAAY,EAAE;QAC9B,UAAU,EAAE,IAAI,YAAY,EAAE;QAC9B,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,IAAI,YAAY,EAAE;QAC7B,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,MAAM;QACN,cAAc,EAAE,IAAI,YAAY,EAAE;QAClC,MAAM,EAAE,IAAI,YAAY,EAAE;QAC1B,gBAAgB,EAAE,CAAC;QACnB,UAAU,EAAE,IAAI,YAAY,EAAE;KAC/B,CAAC,CAAC;AACL,CAAC;AAED;;mEAEmE;AACnE,MAAM,UAAU,kCAAkC,CAChD,KAA2B,EAC3B,QAAgB,EAChB,gBAAyB;IAEzB,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC3C,IAAI,gBAAgB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;YACvE,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO;IACT,CAAC;IACD,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,wBAAwB,CAAC,CAAC;IAC9F,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC3E,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACvE,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleObjectsState.d.ts","sourceRoot":"","sources":["../src/particleObjectsState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"particleObjectsState.d.ts","sourceRoot":"","sources":["../src/particleObjectsState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEnF,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,YAA0B,GAAG,oBAAoB,CAarH;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMtG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { reserveFloat32Array } from '@flighthq/geometry/contract';
|
|
2
3
|
export function createParticleObjectsState(capacity, random = Math.random) {
|
|
3
|
-
return {
|
|
4
|
+
return createEntity({
|
|
4
5
|
burstTimer: 0,
|
|
5
6
|
emitterAge: 0,
|
|
6
7
|
lifetimes: new Float32Array(capacity * 2),
|
|
@@ -11,7 +12,7 @@ export function createParticleObjectsState(capacity, random = Math.random) {
|
|
|
11
12
|
scales: new Float32Array(capacity),
|
|
12
13
|
spawnAccumulator: 0,
|
|
13
14
|
velocities: new Float32Array(capacity * 2),
|
|
14
|
-
};
|
|
15
|
+
});
|
|
15
16
|
}
|
|
16
17
|
export function ensureParticleObjectsStateCapacity(state, capacity) {
|
|
17
18
|
if (state.lifetimes.length >= capacity * 2)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particleObjectsState.js","sourceRoot":"","sources":["../src/particleObjectsState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,MAAM,UAAU,0BAA0B,CAAC,QAAgB,EAAE,SAAuB,IAAI,CAAC,MAAM;IAC7F,OAAO;
|
|
1
|
+
{"version":3,"file":"particleObjectsState.js","sourceRoot":"","sources":["../src/particleObjectsState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,MAAM,UAAU,0BAA0B,CAAC,QAAgB,EAAE,SAAuB,IAAI,CAAC,MAAM;IAC7F,OAAO,YAAY,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,IAAI,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzC,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,MAAM;QACN,cAAc,EAAE,IAAI,YAAY,CAAC,QAAQ,CAAC;QAC1C,MAAM,EAAE,IAAI,YAAY,CAAC,QAAQ,CAAC;QAClC,gBAAgB,EAAE,CAAC;QACnB,UAAU,EAAE,IAAI,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAA2B,EAAE,QAAgB;IAC9F,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO;IACnD,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACvE,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC7E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/particles",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.799.62ef0c7",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,9 +38,10 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/
|
|
42
|
-
"@flighthq/
|
|
43
|
-
"@flighthq/
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.799.62ef0c7",
|
|
42
|
+
"@flighthq/geometry": "0.5.1-next.799.62ef0c7",
|
|
43
|
+
"@flighthq/signals": "0.5.1-next.799.62ef0c7",
|
|
44
|
+
"@flighthq/types": "0.5.1-next.799.62ef0c7"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@flighthq/math": "*",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import type { ParticleEmitter2D, ParticleEmitterData } from '@flighthq/types/contract';
|
|
2
3
|
import type { ParticleObject } from '@flighthq/types/contract';
|
|
3
4
|
|
|
@@ -8,7 +9,7 @@ import { createParticleObjectsState } from './particleObjectsState';
|
|
|
8
9
|
// Node-free SoA emitter fixture: applyParticleCollisions reads only `emitter.data`, so the display
|
|
9
10
|
// node from @flighthq/particleemitter is not needed to unit-test the collision pass.
|
|
10
11
|
function createEmitterFixture(capacity: number): ParticleEmitter2D {
|
|
11
|
-
const data: ParticleEmitterData = {
|
|
12
|
+
const data: ParticleEmitterData = createEntity({
|
|
12
13
|
alphas: new Float32Array(capacity),
|
|
13
14
|
atlas: null,
|
|
14
15
|
colors: new Float32Array(capacity * 3),
|
|
@@ -18,7 +19,7 @@ function createEmitterFixture(capacity: number): ParticleEmitter2D {
|
|
|
18
19
|
transforms: new Float32Array(capacity * 4),
|
|
19
20
|
velocities: new Float32Array(capacity * 2),
|
|
20
21
|
worldSpace: false,
|
|
21
|
-
};
|
|
22
|
+
});
|
|
22
23
|
return { data, x: 0, y: 0 } as unknown as ParticleEmitter2D;
|
|
23
24
|
}
|
|
24
25
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import type { ParticleEmitter2D, ParticleEmitterData } from '@flighthq/types/contract';
|
|
2
3
|
import type { ParticleObject } from '@flighthq/types/contract';
|
|
3
4
|
|
|
@@ -11,7 +12,7 @@ import { updateParticleObjects } from './updateParticleObjects';
|
|
|
11
12
|
// node from @flighthq/particleemitter is not needed to unit-test the force pass. Keeping this
|
|
12
13
|
// fixture local preserves particles as a pure sim leaf.
|
|
13
14
|
function createEmitterFixture(capacity: number): ParticleEmitter2D {
|
|
14
|
-
const data: ParticleEmitterData = {
|
|
15
|
+
const data: ParticleEmitterData = createEntity({
|
|
15
16
|
alphas: new Float32Array(capacity),
|
|
16
17
|
atlas: null,
|
|
17
18
|
colors: new Float32Array(capacity * 3),
|
|
@@ -21,7 +22,7 @@ function createEmitterFixture(capacity: number): ParticleEmitter2D {
|
|
|
21
22
|
transforms: new Float32Array(capacity * 4),
|
|
22
23
|
velocities: new Float32Array(capacity * 2),
|
|
23
24
|
worldSpace: false,
|
|
24
|
-
};
|
|
25
|
+
});
|
|
25
26
|
return { data, x: 0, y: 0 } as unknown as ParticleEmitter2D;
|
|
26
27
|
}
|
|
27
28
|
|