@flighthq/spring 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/spring.d.ts.map +1 -1
- package/dist/spring.js +2 -1
- package/dist/spring.js.map +1 -1
- package/dist/spring2D.d.ts.map +1 -1
- package/dist/spring2D.js +2 -1
- package/dist/spring2D.js.map +1 -1
- package/dist/spring3D.d.ts.map +1 -1
- package/dist/spring3D.js +3 -2
- package/dist/spring3D.js.map +1 -1
- package/dist/springConfig.d.ts +3 -3
- package/dist/springConfig.d.ts.map +1 -1
- package/dist/springConfig.js.map +1 -1
- package/package.json +4 -3
- package/src/spring2D.test.ts +10 -6
- package/src/spring3D.test.ts +14 -9
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.799.62ef0c7](https://github.com/flighthq/flight/tree/62ef0c74f09f24177aac3695b2487b2d743d4fe6/packages/spring)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/62ef0c74f09f24177aac3695b2487b2d743d4fe6/LICENSE.md)
|
package/dist/spring.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"
|
|
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;AAKrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzE;AAKD,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAE5E;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,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { approxEqual, approxZero, TAU } from '@flighthq/math/contract';
|
|
2
3
|
// Add `velocity` to the spring's current velocity without changing its position. This is the
|
|
3
4
|
// allocation-free flick/throw control: repeated impulses compose additively, and the next analytic
|
|
@@ -9,7 +10,7 @@ export function applySpringImpulse(spring, velocity) {
|
|
|
9
10
|
// allocating function for scalar springs; `updateSpring`, `resetSpring`, and the settle query all
|
|
10
11
|
// write into or read an existing spring.
|
|
11
12
|
export function createSpring(value = 0, velocity = 0) {
|
|
12
|
-
return { value, velocity };
|
|
13
|
+
return createEntity({ value, velocity });
|
|
13
14
|
}
|
|
14
15
|
// Report whether `spring` has come to rest at `target`: its `value` is within `positionEpsilon` of
|
|
15
16
|
// 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,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAGvE,6FAA6F;AAC7F,mGAAmG;AACnG,wDAAwD;AACxD,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAgB;IACjE,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAC9B,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,yCAAyC;AACzC,MAAM,UAAU,YAAY,CAAC,QAAgB,CAAC,EAAE,WAAmB,CAAC;IAClE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"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"}
|
package/dist/spring2D.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring2D.d.ts","sourceRoot":"","sources":["../src/spring2D.ts"],"names":[],"mappings":"
|
|
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;AAKvE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAGnG;AAID,wBAAgB,cAAc,CAC5B,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAU,GACpB,QAAQ,CAEV;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,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { applySpringImpulse, createSpring, isSpringSettled, resetSpring, updateSpring } from './spring';
|
|
2
3
|
// Add independent velocity impulses to both axes without allocating or changing either value.
|
|
3
4
|
export function applySpringImpulse2D(spring2D, velocityX, velocityY) {
|
|
@@ -7,7 +8,7 @@ export function applySpringImpulse2D(spring2D, velocityX, velocityY) {
|
|
|
7
8
|
// Allocate a 2D spring as a pair of scalar springs, each at its `value*` (default 0) and `velocity*`
|
|
8
9
|
// (default 0).
|
|
9
10
|
export function createSpring2D(valueX = 0, valueY = 0, velocityX = 0, velocityY = 0) {
|
|
10
|
-
return { x: createSpring(valueX, velocityX), y: createSpring(valueY, velocityY) };
|
|
11
|
+
return createEntity({ x: createSpring(valueX, velocityX), y: createSpring(valueY, velocityY) });
|
|
11
12
|
}
|
|
12
13
|
// Report whether both axes of `spring2D` have settled at (`targetX`, `targetY`) — the per-component
|
|
13
14
|
// `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":"
|
|
1
|
+
{"version":3,"file":"spring2D.js","sourceRoot":"","sources":["../src/spring2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,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,qGAAqG;AACrG,eAAe;AACf,MAAM,UAAU,cAAc,CAC5B,SAAiB,CAAC,EAClB,SAAiB,CAAC,EAClB,YAAoB,CAAC,EACrB,YAAoB,CAAC;IAErB,OAAO,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AAClG,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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring3D.d.ts","sourceRoot":"","sources":["../src/spring3D.ts"],"names":[],"mappings":"
|
|
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;AAKvE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,IAAI,CAIN;AAID,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,CAMV;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,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { applySpringImpulse, createSpring, isSpringSettled, resetSpring, updateSpring } from './spring';
|
|
2
3
|
// Add independent velocity impulses to all three axes without allocating or changing their values.
|
|
3
4
|
export function applySpringImpulse3D(spring3D, velocityX, velocityY, velocityZ) {
|
|
@@ -8,11 +9,11 @@ export function applySpringImpulse3D(spring3D, velocityX, velocityY, velocityZ)
|
|
|
8
9
|
// Allocate a 3D spring as three scalar springs, each at its `value*` (default 0) and `velocity*`
|
|
9
10
|
// (default 0).
|
|
10
11
|
export function createSpring3D(valueX = 0, valueY = 0, valueZ = 0, velocityX = 0, velocityY = 0, velocityZ = 0) {
|
|
11
|
-
return {
|
|
12
|
+
return createEntity({
|
|
12
13
|
x: createSpring(valueX, velocityX),
|
|
13
14
|
y: createSpring(valueY, velocityY),
|
|
14
15
|
z: createSpring(valueZ, velocityZ),
|
|
15
|
-
};
|
|
16
|
+
});
|
|
16
17
|
}
|
|
17
18
|
// Report whether all three axes of `spring3D` have settled at (`targetX`, `targetY`, `targetZ`) —
|
|
18
19
|
// 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":"
|
|
1
|
+
{"version":3,"file":"spring3D.js","sourceRoot":"","sources":["../src/spring3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExG,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAClC,QAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,SAAiB;IAEjB,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,iGAAiG;AACjG,eAAe;AACf,MAAM,UAAU,cAAc,CAC5B,SAAiB,CAAC,EAClB,SAAiB,CAAC,EAClB,SAAiB,CAAC,EAClB,YAAoB,CAAC,EACrB,YAAoB,CAAC,EACrB,YAAoB,CAAC;IAErB,OAAO,YAAY,CAAC;QAClB,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;QAClC,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;QAClC,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;KACnC,CAAC,CAAC;AACL,CAAC;AAED,kGAAkG;AAClG,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAC/B,QAA4B,EAC5B,OAAe,EACf,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;QACtE,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,4FAA4F;AAC5F,MAAM,UAAU,aAAa,CAC3B,QAAkB,EAClB,MAAc,EACd,MAAc,EACd,MAAc,EACd,YAAoB,CAAC,EACrB,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;IAC3C,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,qGAAqG;AACrG,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAC5B,QAAkB,EAClB,OAAe,EACf,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;IACrD,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/springConfig.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { SpringConfig } from '@flighthq/types/contract';
|
|
1
|
+
import type { NonEntityCreateResult, SpringConfig } 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): SpringConfig
|
|
6
|
-
export declare function createSpringConfigFromPhysical(stiffness: number, damping: number, mass: number): SpringConfig
|
|
5
|
+
export declare function createSpringConfig(frequency: number, dampingRatio: number): NonEntityCreateResult<SpringConfig, 'options'>;
|
|
6
|
+
export declare function createSpringConfigFromPhysical(stiffness: number, damping: number, mass: number): NonEntityCreateResult<SpringConfig, 'options'>;
|
|
7
7
|
//# sourceMappingURL=springConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"springConfig.d.ts","sourceRoot":"","sources":["../src/springConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"springConfig.d.ts","sourceRoot":"","sources":["../src/springConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIpF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAAuD,CAAC;AAG9G,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAAwD,CAAC;AAG/G,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAoD,CAAC;AAK1G,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,qBAAqB,CAAC,YAAY,EAAE,SAAS,CAAC,CAEhD;AAMD,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,qBAAqB,CAAC,YAAY,EAAE,SAAS,CAAC,CAKhD"}
|
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,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE9G,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAA2B,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AAE/G,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAA2B,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE1G,4FAA4F;AAC5F,mGAAmG;AACnG,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,
|
|
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,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE9G,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAA2B,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AAE/G,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAA2B,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE1G,4FAA4F;AAC5F,mGAAmG;AACnG,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,YAAoB;IAEpB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACrC,CAAC;AAED,oGAAoG;AACpG,qFAAqF;AACrF,sFAAsF;AACtF,qEAAqE;AACrE,MAAM,UAAU,8BAA8B,CAC5C,SAAiB,EACjB,OAAe,EACf,IAAY;IAEZ,OAAO;QACL,YAAY,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACzD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG;KAC7C,CAAC;AACJ,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.799.62ef0c7",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,8 +38,9 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/
|
|
42
|
-
"@flighthq/
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.799.62ef0c7",
|
|
42
|
+
"@flighthq/math": "0.5.1-next.799.62ef0c7",
|
|
43
|
+
"@flighthq/types": "0.5.1-next.799.62ef0c7"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
46
|
"typescript": "^5.3.0"
|
package/src/spring2D.test.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
1
2
|
import { describe, expect, it } from 'vitest';
|
|
2
3
|
|
|
3
4
|
import { applySpringImpulse2D, createSpring2D, isSpring2DSettled, resetSpring2D, updateSpring2D } from './spring2D';
|
|
@@ -9,14 +10,17 @@ describe('applySpringImpulse2D', () => {
|
|
|
9
10
|
|
|
10
11
|
applySpringImpulse2D(spring, 3, -5);
|
|
11
12
|
|
|
12
|
-
expect(spring.x).
|
|
13
|
-
expect(spring.y).
|
|
13
|
+
expect(spring.x).toMatchObject({ value: 10, velocity: 4 });
|
|
14
|
+
expect(spring.y).toMatchObject({ value: 20, velocity: -3 });
|
|
14
15
|
});
|
|
15
16
|
});
|
|
16
17
|
|
|
17
18
|
describe('createSpring2D', () => {
|
|
18
19
|
it('defaults both axes to value 0 and velocity 0', () => {
|
|
19
20
|
const spring = createSpring2D();
|
|
21
|
+
expect(Object.hasOwn(spring, EntityRuntimeKey)).toBe(true);
|
|
22
|
+
expect(Object.hasOwn(spring.x, EntityRuntimeKey)).toBe(true);
|
|
23
|
+
expect(Object.hasOwn(spring.y, EntityRuntimeKey)).toBe(true);
|
|
20
24
|
expect(spring.x.value).toBe(0);
|
|
21
25
|
expect(spring.x.velocity).toBe(0);
|
|
22
26
|
expect(spring.y.value).toBe(0);
|
|
@@ -51,12 +55,12 @@ describe('resetSpring2D', () => {
|
|
|
51
55
|
resetSpring2D(spring, 10, 20, 30, 40);
|
|
52
56
|
expect(spring.x).toBe(x);
|
|
53
57
|
expect(spring.y).toBe(y);
|
|
54
|
-
expect(spring.x).
|
|
55
|
-
expect(spring.y).
|
|
58
|
+
expect(spring.x).toMatchObject({ value: 10, velocity: 30 });
|
|
59
|
+
expect(spring.y).toMatchObject({ value: 20, velocity: 40 });
|
|
56
60
|
|
|
57
61
|
resetSpring2D(spring, -10, -20);
|
|
58
|
-
expect(spring.x).
|
|
59
|
-
expect(spring.y).
|
|
62
|
+
expect(spring.x).toMatchObject({ value: -10, velocity: 0 });
|
|
63
|
+
expect(spring.y).toMatchObject({ value: -20, velocity: 0 });
|
|
60
64
|
});
|
|
61
65
|
});
|
|
62
66
|
|
package/src/spring3D.test.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
1
2
|
import { describe, expect, it } from 'vitest';
|
|
2
3
|
|
|
3
4
|
import { applySpringImpulse3D, createSpring3D, isSpring3DSettled, resetSpring3D, updateSpring3D } from './spring3D';
|
|
@@ -9,15 +10,19 @@ describe('applySpringImpulse3D', () => {
|
|
|
9
10
|
|
|
10
11
|
applySpringImpulse3D(spring, 3, -5, 7);
|
|
11
12
|
|
|
12
|
-
expect(spring.x).
|
|
13
|
-
expect(spring.y).
|
|
14
|
-
expect(spring.z).
|
|
13
|
+
expect(spring.x).toMatchObject({ value: 10, velocity: 4 });
|
|
14
|
+
expect(spring.y).toMatchObject({ value: 20, velocity: -3 });
|
|
15
|
+
expect(spring.z).toMatchObject({ value: 30, velocity: 10 });
|
|
15
16
|
});
|
|
16
17
|
});
|
|
17
18
|
|
|
18
19
|
describe('createSpring3D', () => {
|
|
19
20
|
it('defaults all axes to value 0 and velocity 0', () => {
|
|
20
21
|
const spring = createSpring3D();
|
|
22
|
+
expect(Object.hasOwn(spring, EntityRuntimeKey)).toBe(true);
|
|
23
|
+
expect(Object.hasOwn(spring.x, EntityRuntimeKey)).toBe(true);
|
|
24
|
+
expect(Object.hasOwn(spring.y, EntityRuntimeKey)).toBe(true);
|
|
25
|
+
expect(Object.hasOwn(spring.z, EntityRuntimeKey)).toBe(true);
|
|
21
26
|
expect(spring.x.value).toBe(0);
|
|
22
27
|
expect(spring.y.value).toBe(0);
|
|
23
28
|
expect(spring.z.value).toBe(0);
|
|
@@ -58,14 +63,14 @@ describe('resetSpring3D', () => {
|
|
|
58
63
|
expect(spring.x).toBe(x);
|
|
59
64
|
expect(spring.y).toBe(y);
|
|
60
65
|
expect(spring.z).toBe(z);
|
|
61
|
-
expect(spring.x).
|
|
62
|
-
expect(spring.y).
|
|
63
|
-
expect(spring.z).
|
|
66
|
+
expect(spring.x).toMatchObject({ value: 10, velocity: 40 });
|
|
67
|
+
expect(spring.y).toMatchObject({ value: 20, velocity: 50 });
|
|
68
|
+
expect(spring.z).toMatchObject({ value: 30, velocity: 60 });
|
|
64
69
|
|
|
65
70
|
resetSpring3D(spring, -10, -20, -30);
|
|
66
|
-
expect(spring.x).
|
|
67
|
-
expect(spring.y).
|
|
68
|
-
expect(spring.z).
|
|
71
|
+
expect(spring.x).toMatchObject({ value: -10, velocity: 0 });
|
|
72
|
+
expect(spring.y).toMatchObject({ value: -20, velocity: 0 });
|
|
73
|
+
expect(spring.z).toMatchObject({ value: -30, velocity: 0 });
|
|
69
74
|
});
|
|
70
75
|
});
|
|
71
76
|
|