@flighthq/motionpath 0.5.1-next.920.da8f530 → 0.5.1-next.973.788d3d7

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 CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/motionpath`. The `@f
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/motionpath@0.5.1-next.920.da8f530](https://github.com/flighthq/flight/tree/da8f530894916f9baa6a9f6822b4f393b9e70a85/packages/motionpath)
17
- - [License](https://github.com/flighthq/flight/blob/da8f530894916f9baa6a9f6822b4f393b9e70a85/LICENSE.md)
16
+ - [Source for @flighthq/motionpath@0.5.1-next.973.788d3d7](https://github.com/flighthq/flight/tree/788d3d7375cca3a0233cecedda1a4e031bd26dec/packages/motionpath)
17
+ - [License](https://github.com/flighthq/flight/blob/788d3d7375cca3a0233cecedda1a4e031bd26dec/LICENSE.md)
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { createMotionPath, getMotionPathHeading, getMotionPathPosition, getMotionPathProgress, setMotionPathDistance, setMotionPathProgress, updateMotionPath, } from './contract';
1
+ export { createMotionPath, getMotionPathHeading, getMotionPathPosition, getMotionPathProgress, isMotionPathAtEnd, setMotionPathDistance, setMotionPathProgress, setMotionPathDirection, updateMotionPath, } from './contract';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { createMotionPath, getMotionPathHeading, getMotionPathPosition, getMotionPathProgress, setMotionPathDistance, setMotionPathProgress, updateMotionPath, } from './contract';
1
+ export { createMotionPath, getMotionPathHeading, getMotionPathPosition, getMotionPathProgress, isMotionPathAtEnd, setMotionPathDistance, setMotionPathProgress, setMotionPathDirection, updateMotionPath, } from './contract';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -4,6 +4,8 @@ export declare function getMotionPathHeading(mp: Readonly<MotionPath>): number;
4
4
  export declare function getMotionPathPosition(mp: Readonly<MotionPath>, pointOut: Vector2Like, tangentOut: Vector2Like): boolean;
5
5
  export declare function getMotionPathProgress(mp: Readonly<MotionPath>): number;
6
6
  export declare function initializeMotionPath(out: EntityConstruction<MotionPath>, path: Path, speed?: number, loopMode?: MotionPathLoopMode, tolerance?: number): void;
7
+ export declare function isMotionPathAtEnd(mp: Readonly<MotionPath>): boolean;
8
+ export declare function setMotionPathDirection(mp: MotionPath, direction: 1 | -1): void;
7
9
  export declare function setMotionPathDistance(mp: MotionPath, distance: number): void;
8
10
  export declare function setMotionPathProgress(mp: MotionPath, t: number): void;
9
11
  export declare function updateMotionPath(mp: MotionPath, deltaTime: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"motionPath.d.ts","sourceRoot":"","sources":["../src/motionPath.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEtH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,KAAK,SAAI,EACT,QAAQ,GAAE,kBAA4B,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,UAAU,CAIZ;AAMD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAGrE;AAMD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,EACxB,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,WAAW,GACtB,OAAO,CAET;AAMD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAEtE;AASD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACnC,IAAI,EAAE,IAAI,EACV,KAAK,SAAI,EACT,QAAQ,GAAE,kBAA4B,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAON;AAID,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAM5E;AAID,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAKrE;AAMD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQxE"}
1
+ {"version":3,"file":"motionPath.d.ts","sourceRoot":"","sources":["../src/motionPath.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEtH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,KAAK,SAAI,EACT,QAAQ,GAAE,kBAA4B,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,UAAU,CAIZ;AAMD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAGrE;AAMD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,EACxB,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,WAAW,GACtB,OAAO,CAET;AAID,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAEtE;AASD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACnC,IAAI,EAAE,IAAI,EACV,KAAK,SAAI,EACT,QAAQ,GAAE,kBAA4B,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAON;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAEnE;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAE9E;AAID,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAM5E;AAID,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAKrE;AAMD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQxE"}
@@ -21,7 +21,6 @@ export function getMotionPathHeading(mp) {
21
21
  export function getMotionPathPosition(mp, pointOut, tangentOut) {
22
22
  return getPathPositionAtDistance(mp.path, mp.distance, pointOut, tangentOut);
23
23
  }
24
- const scratchTangent = createVector2();
25
24
  // Return the marker's normalized progress along the path, `distance / length` in `[0, 1]`. A
26
25
  // zero-length path reports 0.
27
26
  export function getMotionPathProgress(mp) {
@@ -42,6 +41,12 @@ export function initializeMotionPath(out, path, speed = 0, loopMode = 'clamp', t
42
41
  out.path = path;
43
42
  out.speed = speed;
44
43
  }
44
+ export function isMotionPathAtEnd(mp) {
45
+ return mp.direction > 0 ? mp.distance >= mp.length : mp.distance <= 0;
46
+ }
47
+ export function setMotionPathDirection(mp, direction) {
48
+ mp.direction = direction;
49
+ }
45
50
  // Seek the marker to an absolute arc-length `distance`, clamping to the valid `[0, length]` range.
46
51
  // Does not change `direction` or `speed`.
47
52
  export function setMotionPathDistance(mp, distance) {
@@ -122,4 +127,5 @@ function applyMotionPathLoopMode(mp, move, length) {
122
127
  clamped = length;
123
128
  mp.distance = clamped;
124
129
  }
130
+ const scratchTangent = createVector2();
125
131
  //# sourceMappingURL=motionPath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"motionPath.js","sourceRoot":"","sources":["../src/motionPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"motionPath.js","sourceRoot":"","sources":["../src/motionPath.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/motionpath",
3
- "version": "0.5.1-next.920.da8f530",
3
+ "version": "0.5.1-next.973.788d3d7",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,10 +38,10 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/entity": "0.5.1-next.920.da8f530",
42
- "@flighthq/geometry": "0.5.1-next.920.da8f530",
43
- "@flighthq/path": "0.5.1-next.920.da8f530",
44
- "@flighthq/types": "0.5.1-next.920.da8f530"
41
+ "@flighthq/entity": "0.5.1-next.973.788d3d7",
42
+ "@flighthq/geometry": "0.5.1-next.973.788d3d7",
43
+ "@flighthq/path": "0.5.1-next.973.788d3d7",
44
+ "@flighthq/types": "0.5.1-next.973.788d3d7"
45
45
  },
46
46
  "devDependencies": {
47
47
  "typescript": "^5.3.0"
@@ -7,9 +7,11 @@ import {
7
7
  getMotionPathHeading,
8
8
  getMotionPathPosition,
9
9
  getMotionPathProgress,
10
+ isMotionPathAtEnd,
10
11
  initializeMotionPath,
11
12
  setMotionPathDistance,
12
13
  setMotionPathProgress,
14
+ setMotionPathDirection,
13
15
  updateMotionPath,
14
16
  } from './motionPath';
15
17
 
@@ -100,6 +102,29 @@ describe('initializeMotionPath', () => {
100
102
  });
101
103
  });
102
104
 
105
+ describe('isMotionPathAtEnd', () => {
106
+ it('reports the terminal edge in the current direction', () => {
107
+ const mp = createMotionPath(line());
108
+ expect(isMotionPathAtEnd(mp)).toBe(false);
109
+ setMotionPathDistance(mp, 100);
110
+ expect(isMotionPathAtEnd(mp)).toBe(true);
111
+ setMotionPathDirection(mp, -1);
112
+ expect(isMotionPathAtEnd(mp)).toBe(false);
113
+ setMotionPathDistance(mp, 0);
114
+ expect(isMotionPathAtEnd(mp)).toBe(true);
115
+ });
116
+ });
117
+
118
+ describe('setMotionPathDirection', () => {
119
+ it('changes traversal direction without changing distance', () => {
120
+ const mp = createMotionPath(line());
121
+ setMotionPathDistance(mp, 25);
122
+ setMotionPathDirection(mp, -1);
123
+ expect(mp.direction).toBe(-1);
124
+ expect(mp.distance).toBe(25);
125
+ });
126
+ });
127
+
103
128
  // A straight horizontal line from (0,0) to (100,0): arc length 100.
104
129
  describe('setMotionPathDistance', () => {
105
130
  it('seeks to an absolute arc-length distance', () => {