@flighthq/spring 0.5.1-next.815.cc08b93 → 0.5.1-next.903.f434bc2
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/contract.d.ts +4 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +4 -0
- package/dist/contract.js.map +1 -1
- package/dist/spring.d.ts +2 -1
- package/dist/spring.d.ts.map +1 -1
- package/dist/spring.js +9 -3
- package/dist/spring.js.map +1 -1
- package/dist/spring2D.d.ts +2 -1
- package/dist/spring2D.d.ts.map +1 -1
- package/dist/spring2D.js +9 -3
- package/dist/spring2D.js.map +1 -1
- package/dist/spring3D.d.ts +2 -1
- package/dist/spring3D.d.ts.map +1 -1
- package/dist/spring3D.js +10 -7
- package/dist/spring3D.js.map +1 -1
- package/dist/springConfig.d.ts +5 -3
- package/dist/springConfig.d.ts.map +1 -1
- package/dist/springConfig.js +35 -10
- package/dist/springConfig.js.map +1 -1
- package/package.json +4 -4
- package/src/springConfig.test.ts +2 -1
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/spring`. The `@fligh
|
|
|
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/spring@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/spring@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/spring)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
|
package/dist/contract.d.ts
CHANGED
|
@@ -2,4 +2,8 @@ export * from './spring';
|
|
|
2
2
|
export * from './spring2D';
|
|
3
3
|
export * from './spring3D';
|
|
4
4
|
export * from './springConfig';
|
|
5
|
+
export { initializeSpring3D } from './spring3D';
|
|
6
|
+
export { initializeSpring2D } from './spring2D';
|
|
7
|
+
export { initializeSpring } from './spring';
|
|
8
|
+
export { initializeSpringConfig, initializeSpringConfigFromPhysical } from './springConfig';
|
|
5
9
|
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -2,4 +2,8 @@ export * from './spring';
|
|
|
2
2
|
export * from './spring2D';
|
|
3
3
|
export * from './spring3D';
|
|
4
4
|
export * from './springConfig';
|
|
5
|
+
export { initializeSpring3D } from './spring3D';
|
|
6
|
+
export { initializeSpring2D } from './spring2D';
|
|
7
|
+
export { initializeSpring } from './spring';
|
|
8
|
+
export { initializeSpringConfig, initializeSpringConfigFromPhysical } from './springConfig';
|
|
5
9
|
//# sourceMappingURL=contract.js.map
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/spring.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Spring, SpringConfig } from '@flighthq/types/contract';
|
|
1
|
+
import type { Spring, SpringConfig, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applySpringImpulse(spring: Spring, velocity: number): void;
|
|
3
3
|
export declare function createSpring(value?: number, velocity?: number): Spring;
|
|
4
|
+
export declare function initializeSpring(out: EntityConstruction<Spring>, value?: number, velocity?: number): void;
|
|
4
5
|
export declare function isSpringSettled(spring: Readonly<Spring>, target: number, positionEpsilon?: number, velocityEpsilon?: number): boolean;
|
|
5
6
|
export declare function resetSpring(spring: Spring, value: number, velocity?: number): void;
|
|
6
7
|
export declare function updateSpring(spring: Spring, target: number, config: Readonly<SpringConfig>, deltaTime: number): void;
|
package/dist/spring.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAKzF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAI5E;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAU,GAAG,IAAI,CAG/G;AASD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,MAA8B,EAC/C,eAAe,GAAE,MAA8B,GAC9C,OAAO,CAET;AASD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,IAAI,CAGrF;AAmBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA+DpH;AAQD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,SAAS,EAAE,MAAM,GAChB,IAAI,CAQN"}
|
package/dist/spring.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { approxEqual, approxZero, TAU } from '@flighthq/math/contract';
|
|
3
3
|
// Add `velocity` to the spring's current velocity without changing its position. This is the
|
|
4
4
|
// allocation-free flick/throw control: repeated impulses compose additively, and the next analytic
|
|
@@ -6,11 +6,17 @@ import { approxEqual, approxZero, TAU } from '@flighthq/math/contract';
|
|
|
6
6
|
export function applySpringImpulse(spring, velocity) {
|
|
7
7
|
spring.velocity += velocity;
|
|
8
8
|
}
|
|
9
|
+
export function createSpring(value = 0, velocity = 0) {
|
|
10
|
+
const out = allocateEntity();
|
|
11
|
+
initializeSpring(out, value, velocity);
|
|
12
|
+
return finishEntity(out);
|
|
13
|
+
}
|
|
9
14
|
// Allocate a scalar spring at `value` (default 0) with `velocity` (default 0). This is the only
|
|
10
15
|
// allocating function for scalar springs; `updateSpring`, `resetSpring`, and the settle query all
|
|
11
16
|
// write into or read an existing spring.
|
|
12
|
-
export function
|
|
13
|
-
|
|
17
|
+
export function initializeSpring(out, value = 0, velocity = 0) {
|
|
18
|
+
out.value = value;
|
|
19
|
+
out.velocity = velocity;
|
|
14
20
|
}
|
|
15
21
|
// Report whether `spring` has come to rest at `target`: its `value` is within `positionEpsilon` of
|
|
16
22
|
// the target AND its `velocity` is within `velocityEpsilon` of zero. Both conditions are required —
|
package/dist/spring.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"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"}
|
package/dist/spring2D.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Spring2D, SpringConfig } from '@flighthq/types/contract';
|
|
1
|
+
import type { Spring2D, SpringConfig, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applySpringImpulse2D(spring2D: Spring2D, velocityX: number, velocityY: number): void;
|
|
3
3
|
export declare function createSpring2D(valueX?: number, valueY?: number, velocityX?: number, velocityY?: number): Spring2D;
|
|
4
|
+
export declare function initializeSpring2D(out: EntityConstruction<Spring2D>, valueX?: number, valueY?: number, velocityX?: number, velocityY?: number): void;
|
|
4
5
|
export declare function isSpring2DSettled(spring2D: Readonly<Spring2D>, targetX: number, targetY: number, positionEpsilon?: number, velocityEpsilon?: number): boolean;
|
|
5
6
|
export declare function resetSpring2D(spring2D: Spring2D, valueX: number, valueY: number, velocityX?: number, velocityY?: number): void;
|
|
6
7
|
export declare function updateSpring2D(spring2D: Spring2D, targetX: number, targetY: number, config: Readonly<SpringConfig>, deltaTime: number): void;
|
package/dist/spring2D.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring2D.d.ts","sourceRoot":"","sources":["../src/spring2D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"spring2D.d.ts","sourceRoot":"","sources":["../src/spring2D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK3F,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAGnG;AAED,wBAAgB,cAAc,CAC5B,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,GACpB,QAAQ,CAIV;AAID,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACjC,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,GACpB,IAAI,CAGN;AAID,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAKT;AAID,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,GACpB,IAAI,CAGN;AAKD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,SAAS,EAAE,MAAM,GAChB,IAAI,CAGN"}
|
package/dist/spring2D.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { applySpringImpulse, createSpring, isSpringSettled, resetSpring, updateSpring } from './spring';
|
|
3
3
|
// Add independent velocity impulses to both axes without allocating or changing either value.
|
|
4
4
|
export function applySpringImpulse2D(spring2D, velocityX, velocityY) {
|
|
5
5
|
applySpringImpulse(spring2D.x, velocityX);
|
|
6
6
|
applySpringImpulse(spring2D.y, velocityY);
|
|
7
7
|
}
|
|
8
|
+
export function createSpring2D(valueX = 0, valueY = 0, velocityX = 0, velocityY = 0) {
|
|
9
|
+
const out = allocateEntity();
|
|
10
|
+
initializeSpring2D(out, valueX, valueY, velocityX, velocityY);
|
|
11
|
+
return finishEntity(out);
|
|
12
|
+
}
|
|
8
13
|
// Allocate a 2D spring as a pair of scalar springs, each at its `value*` (default 0) and `velocity*`
|
|
9
14
|
// (default 0).
|
|
10
|
-
export function
|
|
11
|
-
|
|
15
|
+
export function initializeSpring2D(out, valueX = 0, valueY = 0, velocityX = 0, velocityY = 0) {
|
|
16
|
+
out.x = createSpring(valueX, velocityX);
|
|
17
|
+
out.y = createSpring(valueY, velocityY);
|
|
12
18
|
}
|
|
13
19
|
// Report whether both axes of `spring2D` have settled at (`targetX`, `targetY`) — the per-component
|
|
14
20
|
// `isSpringSettled` on each axis, combined with AND. Epsilons apply to each axis independently.
|
package/dist/spring2D.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring2D.js","sourceRoot":"","sources":["../src/spring2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"spring2D.js","sourceRoot":"","sources":["../src/spring2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExG,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,SAAiB,EAAE,SAAiB;IAC3F,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAAiB,CAAC,EAClB,SAAiB,CAAC,EAClB,YAAoB,CAAC,EACrB,YAAoB,CAAC;IAErB,MAAM,GAAG,GAAG,cAAc,EAAY,CAAC;IACvC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9D,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,qGAAqG;AACrG,eAAe;AACf,MAAM,UAAU,kBAAkB,CAChC,GAAiC,EACjC,SAAiB,CAAC,EAClB,SAAiB,CAAC,EAClB,YAAoB,CAAC,EACrB,YAAoB,CAAC;IAErB,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,UAAU,iBAAiB,CAC/B,QAA4B,EAC5B,OAAe,EACf,OAAe,EACf,eAAwB,EACxB,eAAwB;IAExB,OAAO,CACL,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC;QACtE,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAC3B,QAAkB,EAClB,MAAc,EACd,MAAc,EACd,YAAoB,CAAC,EACrB,YAAoB,CAAC;IAErB,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,oGAAoG;AACpG,oGAAoG;AACpG,4CAA4C;AAC5C,MAAM,UAAU,cAAc,CAC5B,QAAkB,EAClB,OAAe,EACf,OAAe,EACf,MAA8B,EAC9B,SAAiB;IAEjB,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrD,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/spring3D.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Spring3D, SpringConfig } from '@flighthq/types/contract';
|
|
1
|
+
import type { Spring3D, SpringConfig, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
export declare function applySpringImpulse3D(spring3D: Spring3D, velocityX: number, velocityY: number, velocityZ: number): void;
|
|
3
3
|
export declare function createSpring3D(valueX?: number, valueY?: number, valueZ?: number, velocityX?: number, velocityY?: number, velocityZ?: number): Spring3D;
|
|
4
|
+
export declare function initializeSpring3D(out: EntityConstruction<Spring3D>, valueX?: number, valueY?: number, valueZ?: number, velocityX?: number, velocityY?: number, velocityZ?: number): void;
|
|
4
5
|
export declare function isSpring3DSettled(spring3D: Readonly<Spring3D>, targetX: number, targetY: number, targetZ: number, positionEpsilon?: number, velocityEpsilon?: number): boolean;
|
|
5
6
|
export declare function resetSpring3D(spring3D: Spring3D, valueX: number, valueY: number, valueZ: number, velocityX?: number, velocityY?: number, velocityZ?: number): void;
|
|
6
7
|
export declare function updateSpring3D(spring3D: Spring3D, targetX: number, targetY: number, targetZ: number, config: Readonly<SpringConfig>, deltaTime: number): void;
|
package/dist/spring3D.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring3D.d.ts","sourceRoot":"","sources":["../src/spring3D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"spring3D.d.ts","sourceRoot":"","sources":["../src/spring3D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK3F,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,IAAI,CAIN;AAED,wBAAgB,cAAc,CAC5B,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,GACpB,QAAQ,CAIV;AAID,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACjC,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,GACpB,IAAI,CAIN;AAID,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAMT;AAID,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,GACpB,IAAI,CAIN;AAID,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,SAAS,EAAE,MAAM,GAChB,IAAI,CAIN"}
|
package/dist/spring3D.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { applySpringImpulse, createSpring, isSpringSettled, resetSpring, updateSpring } from './spring';
|
|
3
3
|
// Add independent velocity impulses to all three axes without allocating or changing their values.
|
|
4
4
|
export function applySpringImpulse3D(spring3D, velocityX, velocityY, velocityZ) {
|
|
@@ -6,14 +6,17 @@ export function applySpringImpulse3D(spring3D, velocityX, velocityY, velocityZ)
|
|
|
6
6
|
applySpringImpulse(spring3D.y, velocityY);
|
|
7
7
|
applySpringImpulse(spring3D.z, velocityZ);
|
|
8
8
|
}
|
|
9
|
+
export function createSpring3D(valueX = 0, valueY = 0, valueZ = 0, velocityX = 0, velocityY = 0, velocityZ = 0) {
|
|
10
|
+
const out = allocateEntity();
|
|
11
|
+
initializeSpring3D(out, valueX, valueY, valueZ, velocityX, velocityY, velocityZ);
|
|
12
|
+
return finishEntity(out);
|
|
13
|
+
}
|
|
9
14
|
// Allocate a 3D spring as three scalar springs, each at its `value*` (default 0) and `velocity*`
|
|
10
15
|
// (default 0).
|
|
11
|
-
export function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
z: createSpring(valueZ, velocityZ),
|
|
16
|
-
});
|
|
16
|
+
export function initializeSpring3D(out, valueX = 0, valueY = 0, valueZ = 0, velocityX = 0, velocityY = 0, velocityZ = 0) {
|
|
17
|
+
out.x = createSpring(valueX, velocityX);
|
|
18
|
+
out.y = createSpring(valueY, velocityY);
|
|
19
|
+
out.z = createSpring(valueZ, velocityZ);
|
|
17
20
|
}
|
|
18
21
|
// Report whether all three axes of `spring3D` have settled at (`targetX`, `targetY`, `targetZ`) —
|
|
19
22
|
// the per-component `isSpringSettled` on each axis, combined with AND.
|
package/dist/spring3D.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring3D.js","sourceRoot":"","sources":["../src/spring3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"spring3D.js","sourceRoot":"","sources":["../src/spring3D.ts"],"names":[],"mappings":"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"}
|
package/dist/springConfig.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SpringConfig, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
export declare const SpringPresetBouncy: Readonly<SpringConfig>;
|
|
3
3
|
export declare const SpringPresetGentle: Readonly<SpringConfig>;
|
|
4
4
|
export declare const SpringPresetStiff: Readonly<SpringConfig>;
|
|
5
|
-
export declare function createSpringConfig(frequency: number, dampingRatio: number):
|
|
6
|
-
export declare function createSpringConfigFromPhysical(stiffness: number, damping: number, mass: number):
|
|
5
|
+
export declare function createSpringConfig(frequency: number, dampingRatio: number): SpringConfig;
|
|
6
|
+
export declare function createSpringConfigFromPhysical(stiffness: number, damping: number, mass: number): SpringConfig;
|
|
7
|
+
export declare function initializeSpringConfig(out: EntityConstruction<SpringConfig>, frequency: number, dampingRatio: number): void;
|
|
8
|
+
export declare function initializeSpringConfigFromPhysical(out: EntityConstruction<SpringConfig>, stiffness: number, damping: number, mass: number): void;
|
|
7
9
|
//# sourceMappingURL=springConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"springConfig.d.ts","sourceRoot":"","sources":["../src/springConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"springConfig.d.ts","sourceRoot":"","sources":["../src/springConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAIjF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAOrD,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAOrD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAOpD,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CAIxF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAI7G;AAKD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,kBAAkB,CAAC,YAAY,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,IAAI,CAGN;AAMD,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,kBAAkB,CAAC,YAAY,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,IAAI,CAGN"}
|
package/dist/springConfig.js
CHANGED
|
@@ -1,25 +1,50 @@
|
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { TAU } from '@flighthq/math/contract';
|
|
2
3
|
// Frozen plain-data presets: spread one into a mutable object to customize it without changing the
|
|
3
4
|
// shared profile. Bouncy is quick and underdamped for visible overshoot.
|
|
4
|
-
export const SpringPresetBouncy = Object.freeze(
|
|
5
|
+
export const SpringPresetBouncy = Object.freeze((() => {
|
|
6
|
+
const out = allocateEntity();
|
|
7
|
+
out.dampingRatio = 0.35;
|
|
8
|
+
out.frequency = 2;
|
|
9
|
+
return finishEntity(out);
|
|
10
|
+
})());
|
|
5
11
|
// A slower, well-damped profile for soft UI movement with only a restrained overshoot.
|
|
6
|
-
export const SpringPresetGentle = Object.freeze(
|
|
12
|
+
export const SpringPresetGentle = Object.freeze((() => {
|
|
13
|
+
const out = allocateEntity();
|
|
14
|
+
out.dampingRatio = 0.8;
|
|
15
|
+
out.frequency = 1.5;
|
|
16
|
+
return finishEntity(out);
|
|
17
|
+
})());
|
|
7
18
|
// A high-frequency critical profile for a fast response without overshoot.
|
|
8
|
-
export const SpringPresetStiff = Object.freeze(
|
|
19
|
+
export const SpringPresetStiff = Object.freeze((() => {
|
|
20
|
+
const out = allocateEntity();
|
|
21
|
+
out.dampingRatio = 1;
|
|
22
|
+
out.frequency = 4;
|
|
23
|
+
return finishEntity(out);
|
|
24
|
+
})());
|
|
25
|
+
export function createSpringConfig(frequency, dampingRatio) {
|
|
26
|
+
const out = allocateEntity();
|
|
27
|
+
initializeSpringConfig(out, frequency, dampingRatio);
|
|
28
|
+
return finishEntity(out);
|
|
29
|
+
}
|
|
30
|
+
export function createSpringConfigFromPhysical(stiffness, damping, mass) {
|
|
31
|
+
const out = allocateEntity();
|
|
32
|
+
initializeSpringConfigFromPhysical(out, stiffness, damping, mass);
|
|
33
|
+
return finishEntity(out);
|
|
34
|
+
}
|
|
9
35
|
// Allocate a `SpringConfig` from the designer-intuitive `frequency` (Hz) and `dampingRatio`
|
|
10
36
|
// (0 undamped, <1 underdamped/overshoots, 1 critical/fastest-no-overshoot, >1 overdamped). This is
|
|
11
37
|
// the primary constructor; use `createSpringConfigFromPhysical` when starting from raw physics.
|
|
12
|
-
export function
|
|
13
|
-
|
|
38
|
+
export function initializeSpringConfig(out, frequency, dampingRatio) {
|
|
39
|
+
out.dampingRatio = dampingRatio;
|
|
40
|
+
out.frequency = frequency;
|
|
14
41
|
}
|
|
15
42
|
// Allocate a `SpringConfig` from a physical spring: `stiffness` (k), `damping` (c), and `mass` (m).
|
|
16
43
|
// Converts to the mass-independent form via `frequency = sqrt(k / m) / (2 * PI)` and
|
|
17
44
|
// `dampingRatio = c / (2 * sqrt(k * m))`, the standard undamped-natural-frequency and
|
|
18
45
|
// damping-ratio identities. Expects positive `stiffness` and `mass`.
|
|
19
|
-
export function
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
frequency: Math.sqrt(stiffness / mass) / TAU,
|
|
23
|
-
};
|
|
46
|
+
export function initializeSpringConfigFromPhysical(out, stiffness, damping, mass) {
|
|
47
|
+
out.dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));
|
|
48
|
+
out.frequency = Math.sqrt(stiffness / mass) / TAU;
|
|
24
49
|
}
|
|
25
50
|
//# sourceMappingURL=springConfig.js.map
|
package/dist/springConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"springConfig.js","sourceRoot":"","sources":["../src/springConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAG9C,mGAAmG;AACnG,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAA2B,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"springConfig.js","sourceRoot":"","sources":["../src/springConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAG9C,mGAAmG;AACnG,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAA2B,MAAM,CAAC,MAAM,CACrE,CAAC,GAAG,EAAE;IACJ,MAAM,GAAG,GAAG,cAAc,EAAgB,CAAC;IAC3C,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC,EAAE,CACL,CAAC;AAEF,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAA2B,MAAM,CAAC,MAAM,CACrE,CAAC,GAAG,EAAE;IACJ,MAAM,GAAG,GAAG,cAAc,EAAgB,CAAC;IAC3C,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;IACvB,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;IACpB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC,EAAE,CACL,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAA2B,MAAM,CAAC,MAAM,CACpE,CAAC,GAAG,EAAE;IACJ,MAAM,GAAG,GAAG,cAAc,EAAgB,CAAC;IAC3C,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;IACrB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC,EAAE,CACL,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,YAAoB;IACxE,MAAM,GAAG,GAAG,cAAc,EAAgB,CAAC;IAC3C,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACrD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,SAAiB,EAAE,OAAe,EAAE,IAAY;IAC7F,MAAM,GAAG,GAAG,cAAc,EAAgB,CAAC;IAC3C,kCAAkC,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,4FAA4F;AAC5F,mGAAmG;AACnG,gGAAgG;AAChG,MAAM,UAAU,sBAAsB,CACpC,GAAqC,EACrC,SAAiB,EACjB,YAAoB;IAEpB,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;IAChC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,CAAC;AAED,oGAAoG;AACpG,qFAAqF;AACrF,sFAAsF;AACtF,qEAAqE;AACrE,MAAM,UAAU,kCAAkC,CAChD,GAAqC,EACrC,SAAiB,EACjB,OAAe,EACf,IAAY;IAEZ,GAAG,CAAC,YAAY,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/spring",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.903.f434bc2",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/math": "0.5.1-next.
|
|
43
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.903.f434bc2",
|
|
42
|
+
"@flighthq/math": "0.5.1-next.903.f434bc2",
|
|
43
|
+
"@flighthq/types": "0.5.1-next.903.f434bc2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.3.0"
|
package/src/springConfig.test.ts
CHANGED
|
@@ -40,7 +40,8 @@ describe('spring presets', () => {
|
|
|
40
40
|
expect(Reflect.set(SpringPresetBouncy, 'frequency', 100)).toBe(false);
|
|
41
41
|
|
|
42
42
|
const customized = { ...SpringPresetGentle, frequency: 3 };
|
|
43
|
-
expect(customized).
|
|
43
|
+
expect(customized.dampingRatio).toBe(SpringPresetGentle.dampingRatio);
|
|
44
|
+
expect(customized.frequency).toBe(3);
|
|
44
45
|
expect(SpringPresetGentle.frequency).not.toBe(3);
|
|
45
46
|
});
|
|
46
47
|
|