@drawtonomy/sdk 0.2.0 → 0.3.0
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.ja.md +16 -0
- package/README.md +16 -0
- package/dist/ExtensionClient.d.ts +0 -3
- package/dist/ExtensionClient.d.ts.map +1 -1
- package/dist/ExtensionClient.js +0 -6
- package/dist/ExtensionClient.js.map +1 -1
- package/dist/geometry.d.ts +33 -0
- package/dist/geometry.d.ts.map +1 -0
- package/dist/geometry.js +172 -0
- package/dist/geometry.js.map +1 -0
- package/dist/helpers.d.ts +22 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +66 -2
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +9 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -5
package/README.ja.md
CHANGED
|
@@ -82,6 +82,7 @@ https://drawtonomy.com?ext=http://localhost:3001/manifest.json
|
|
|
82
82
|
| `deleteShapes(ids)` | `shapes:write` | シェイプを削除 |
|
|
83
83
|
| `requestShapes(filter?)` | `shapes:read` | シェイプを読み取り |
|
|
84
84
|
| `requestSnapshot()` | `snapshot:read` | スナップショットを取得 |
|
|
85
|
+
| `exportScene(format)` | `snapshot:export` | シーンをエクスポート(svg/png/jpeg/pdf/eps) |
|
|
85
86
|
| `requestViewport()` | `viewport:read` | ビューポート情報を取得 |
|
|
86
87
|
| `requestSelection()` | `selection:read` | 選択状態を取得 |
|
|
87
88
|
| `notify(message, level?)` | `ui:notify` | 通知を表示 |
|
|
@@ -100,8 +101,23 @@ https://drawtonomy.com?ext=http://localhost:3001/manifest.json
|
|
|
100
101
|
| `createRectangle(x, y, w, h, options?)` | 矩形を作成 |
|
|
101
102
|
| `createEllipse(x, y, w, h, options?)` | 楕円を作成 |
|
|
102
103
|
| `createText(x, y, text, options?)` | テキストを作成 |
|
|
104
|
+
| `createPathWithFootprints(points, options?)` | パス+フットプリントを一括作成 |
|
|
103
105
|
| `createSnapshot(shapes)` | スナップショットを作成 |
|
|
104
106
|
|
|
107
|
+
### 幾何計算関数
|
|
108
|
+
|
|
109
|
+
| 関数 | 説明 |
|
|
110
|
+
|------|------|
|
|
111
|
+
| `evaluatePathAt(points, t)` | パラメトリックt [0..1]での位置と接線を取得 |
|
|
112
|
+
| `snapToPath(points, query)` | 点をパス上の最近傍に投影 |
|
|
113
|
+
| `computeArcLengths(points)` | 累積弧長を計算 |
|
|
114
|
+
| `totalArcLength(points)` | パス全長を取得 |
|
|
115
|
+
| `uniformTValues(count)` | 等間隔のt値を生成 |
|
|
116
|
+
| `computeHeadings(points)` | 各点の進行方向角度を計算 |
|
|
117
|
+
| `interpolatePosition(p1, p2, t)` | 2点間の線形補間 |
|
|
118
|
+
| `getBoundingBox(points)` | バウンディングボックスを取得 |
|
|
119
|
+
| `distanceToSegment(point, a, b)` | 点からセグメントまでの距離 |
|
|
120
|
+
|
|
105
121
|
## デプロイ
|
|
106
122
|
|
|
107
123
|
エクステンションは任意のHTTPSホスティングサービスにデプロイできます。
|
package/README.md
CHANGED
|
@@ -84,6 +84,7 @@ http://localhost:3000/?ext=http://localhost:3001/manifest.json
|
|
|
84
84
|
| `deleteShapes(ids)` | `shapes:write` | Delete shapes |
|
|
85
85
|
| `requestShapes(filter?)` | `shapes:read` | Read shapes |
|
|
86
86
|
| `requestSnapshot()` | `snapshot:read` | Get snapshot |
|
|
87
|
+
| `exportScene(format)` | `snapshot:export` | Export scene (svg/png/jpeg/pdf/eps) |
|
|
87
88
|
| `requestViewport()` | `viewport:read` | Get viewport info |
|
|
88
89
|
| `requestSelection()` | `selection:read` | Get selection state |
|
|
89
90
|
| `notify(message, level?)` | `ui:notify` | Show notification |
|
|
@@ -102,8 +103,23 @@ http://localhost:3000/?ext=http://localhost:3001/manifest.json
|
|
|
102
103
|
| `createRectangle(x, y, w, h, options?)` | Create a rectangle |
|
|
103
104
|
| `createEllipse(x, y, w, h, options?)` | Create an ellipse |
|
|
104
105
|
| `createText(x, y, text, options?)` | Create text |
|
|
106
|
+
| `createPathWithFootprints(points, options?)` | Create path with footprints |
|
|
105
107
|
| `createSnapshot(shapes)` | Create a snapshot |
|
|
106
108
|
|
|
109
|
+
### Geometry Functions
|
|
110
|
+
|
|
111
|
+
| Function | Description |
|
|
112
|
+
|----------|-------------|
|
|
113
|
+
| `evaluatePathAt(points, t)` | Get position + tangent at parametric t [0..1] |
|
|
114
|
+
| `snapToPath(points, query)` | Project a point onto the nearest path location |
|
|
115
|
+
| `computeArcLengths(points)` | Compute cumulative arc lengths |
|
|
116
|
+
| `totalArcLength(points)` | Get total path length |
|
|
117
|
+
| `uniformTValues(count)` | Generate evenly-spaced t values |
|
|
118
|
+
| `computeHeadings(points)` | Compute heading angles for each point |
|
|
119
|
+
| `interpolatePosition(p1, p2, t)` | Linear interpolation between two points |
|
|
120
|
+
| `getBoundingBox(points)` | Get bounding box |
|
|
121
|
+
| `distanceToSegment(point, a, b)` | Point-to-segment distance |
|
|
122
|
+
|
|
107
123
|
## Deployment
|
|
108
124
|
|
|
109
125
|
Extensions can be deployed to any HTTPS hosting service.
|
|
@@ -30,9 +30,6 @@ export declare class ExtensionClient {
|
|
|
30
30
|
requestSelection(): Promise<{
|
|
31
31
|
ids: string[];
|
|
32
32
|
}>;
|
|
33
|
-
requestSettings(): Promise<{
|
|
34
|
-
showPoints: boolean;
|
|
35
|
-
}>;
|
|
36
33
|
notify(message: string, level?: 'info' | 'success' | 'error'): void;
|
|
37
34
|
resize(height: number, width?: number): void;
|
|
38
35
|
private send;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionClient.d.ts","sourceRoot":"","sources":["../src/ExtensionClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAQhB,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,cAAc,CAAQ;gBAElB,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAcrE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAMzC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;IAI7B,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAI3E,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE;IAMpB,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASzD,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS9C,eAAe,IAAI,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQjG,gBAAgB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ExtensionClient.d.ts","sourceRoot":"","sources":["../src/ExtensionClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAQhB,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,cAAc,CAAQ;gBAElB,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAcrE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAMzC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;IAI7B,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAI3E,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE;IAMpB,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASzD,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS9C,eAAe,IAAI,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQjG,gBAAgB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,SAAS,GAAG,OAAgB;IAMpE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAMrC,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,gBAAgB,CAAI;IAE5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;CAUxB"}
|
package/dist/ExtensionClient.js
CHANGED
|
@@ -53,12 +53,6 @@ export class ExtensionClient {
|
|
|
53
53
|
this.send({ type: 'ext:selection-request', payload: { requestId } });
|
|
54
54
|
return await this.waitForResponse(requestId);
|
|
55
55
|
}
|
|
56
|
-
// --- settings:read ---
|
|
57
|
-
async requestSettings() {
|
|
58
|
-
const requestId = this.nextRequestId();
|
|
59
|
-
this.send({ type: 'ext:settings-request', payload: { requestId } });
|
|
60
|
-
return await this.waitForResponse(requestId);
|
|
61
|
-
}
|
|
62
56
|
// --- ui:notify ---
|
|
63
57
|
notify(message, level = 'info') {
|
|
64
58
|
this.send({ type: 'ext:notify', payload: { message, level } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionClient.js","sourceRoot":"","sources":["../src/ExtensionClient.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,eAAe;IAO1B,YAAY,UAAkB,EAAE,OAAqC;QAH7D,oBAAe,GAAG,IAAI,GAAG,EAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"ExtensionClient.js","sourceRoot":"","sources":["../src/ExtensionClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface Point2D {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export interface PathEvalResult {
|
|
6
|
+
position: Point2D;
|
|
7
|
+
/** Rotation degrees: 0=up(-Y), 90=right(+X), 180=down(+Y), 270=left(-X) */
|
|
8
|
+
tangentAngleDeg: number;
|
|
9
|
+
tangentVec: Point2D;
|
|
10
|
+
}
|
|
11
|
+
export interface SnapResult {
|
|
12
|
+
/** Parametric position [0..1] along the path */
|
|
13
|
+
t: number;
|
|
14
|
+
snappedPoint: Point2D;
|
|
15
|
+
/** Perpendicular distance from query point to the path */
|
|
16
|
+
distance: number;
|
|
17
|
+
segmentIndex: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function computeArcLengths(points: Point2D[]): number[];
|
|
20
|
+
export declare function totalArcLength(points: Point2D[]): number;
|
|
21
|
+
export declare function evaluatePathAt(points: Point2D[], t: number): PathEvalResult;
|
|
22
|
+
export declare function snapToPath(points: Point2D[], queryPoint: Point2D): SnapResult;
|
|
23
|
+
export declare function uniformTValues(count: number): number[];
|
|
24
|
+
export declare function computeHeadings(points: Point2D[]): number[];
|
|
25
|
+
export declare function interpolatePosition(p1: Point2D, p2: Point2D, t: number): Point2D;
|
|
26
|
+
export declare function getBoundingBox(points: Point2D[]): {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
width: number;
|
|
30
|
+
height: number;
|
|
31
|
+
};
|
|
32
|
+
export declare function distanceToSegment(point: Point2D, segStart: Point2D, segEnd: Point2D): number;
|
|
33
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,CAAC,EAAE,MAAM,CAAA;IACT,YAAY,EAAE,OAAO,CAAA;IACrB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAU7D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAIxD;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,CA4C3E;AAID,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,UAAU,CAiD7E;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAItD;AAID,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAY3D;AAID,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAKhF;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWzG;AAID,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAe5F"}
|
package/dist/geometry.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// SDK Geometry - Pure geometric utilities for path computation
|
|
2
|
+
// No dependency on Editor or Renderer
|
|
3
|
+
// --- Arc Length ---
|
|
4
|
+
export function computeArcLengths(points) {
|
|
5
|
+
if (points.length === 0)
|
|
6
|
+
return [];
|
|
7
|
+
const lengths = new Array(points.length);
|
|
8
|
+
lengths[0] = 0;
|
|
9
|
+
for (let i = 1; i < points.length; i++) {
|
|
10
|
+
const dx = points[i].x - points[i - 1].x;
|
|
11
|
+
const dy = points[i].y - points[i - 1].y;
|
|
12
|
+
lengths[i] = lengths[i - 1] + Math.sqrt(dx * dx + dy * dy);
|
|
13
|
+
}
|
|
14
|
+
return lengths;
|
|
15
|
+
}
|
|
16
|
+
export function totalArcLength(points) {
|
|
17
|
+
if (points.length < 2)
|
|
18
|
+
return 0;
|
|
19
|
+
const lengths = computeArcLengths(points);
|
|
20
|
+
return lengths[lengths.length - 1];
|
|
21
|
+
}
|
|
22
|
+
// --- Evaluate position + tangent at parametric t ---
|
|
23
|
+
export function evaluatePathAt(points, t) {
|
|
24
|
+
const fallback = {
|
|
25
|
+
position: points[0] ?? { x: 0, y: 0 },
|
|
26
|
+
tangentAngleDeg: 0,
|
|
27
|
+
tangentVec: { x: 0, y: -1 },
|
|
28
|
+
};
|
|
29
|
+
if (points.length < 2)
|
|
30
|
+
return fallback;
|
|
31
|
+
const arcLengths = computeArcLengths(points);
|
|
32
|
+
const totalLen = arcLengths[arcLengths.length - 1];
|
|
33
|
+
if (totalLen === 0)
|
|
34
|
+
return fallback;
|
|
35
|
+
const clampedT = Math.max(0, Math.min(1, t));
|
|
36
|
+
const targetLen = clampedT * totalLen;
|
|
37
|
+
// Binary search for the segment containing targetLen
|
|
38
|
+
let lo = 0;
|
|
39
|
+
let hi = points.length - 2;
|
|
40
|
+
while (lo < hi) {
|
|
41
|
+
const mid = (lo + hi) >> 1;
|
|
42
|
+
if (arcLengths[mid + 1] < targetLen)
|
|
43
|
+
lo = mid + 1;
|
|
44
|
+
else
|
|
45
|
+
hi = mid;
|
|
46
|
+
}
|
|
47
|
+
const segStart = points[lo];
|
|
48
|
+
const segEnd = points[lo + 1];
|
|
49
|
+
const segLen = arcLengths[lo + 1] - arcLengths[lo];
|
|
50
|
+
const localT = segLen > 0 ? (targetLen - arcLengths[lo]) / segLen : 0;
|
|
51
|
+
const position = {
|
|
52
|
+
x: segStart.x + (segEnd.x - segStart.x) * localT,
|
|
53
|
+
y: segStart.y + (segEnd.y - segStart.y) * localT,
|
|
54
|
+
};
|
|
55
|
+
const dx = segEnd.x - segStart.x;
|
|
56
|
+
const dy = segEnd.y - segStart.y;
|
|
57
|
+
const len = Math.sqrt(dx * dx + dy * dy);
|
|
58
|
+
const tangentVec = len > 0 ? { x: dx / len, y: dy / len } : { x: 0, y: -1 };
|
|
59
|
+
// 0°=up(-Y), 90°=right(+X), 180°=down(+Y), 270°=left(-X)
|
|
60
|
+
const angleRad = Math.atan2(dx, -dy);
|
|
61
|
+
const tangentAngleDeg = ((angleRad * 180) / Math.PI + 360) % 360;
|
|
62
|
+
return { position, tangentAngleDeg, tangentVec };
|
|
63
|
+
}
|
|
64
|
+
// --- Snap a world-space point onto the path ---
|
|
65
|
+
export function snapToPath(points, queryPoint) {
|
|
66
|
+
const fallback = {
|
|
67
|
+
t: 0,
|
|
68
|
+
snappedPoint: points[0] ?? { x: 0, y: 0 },
|
|
69
|
+
distance: Infinity,
|
|
70
|
+
segmentIndex: 0,
|
|
71
|
+
};
|
|
72
|
+
if (points.length < 2)
|
|
73
|
+
return fallback;
|
|
74
|
+
const arcLengths = computeArcLengths(points);
|
|
75
|
+
const totalLen = arcLengths[arcLengths.length - 1];
|
|
76
|
+
if (totalLen === 0)
|
|
77
|
+
return fallback;
|
|
78
|
+
let bestDist = Infinity;
|
|
79
|
+
let bestT = 0;
|
|
80
|
+
let bestPoint = points[0];
|
|
81
|
+
let bestSeg = 0;
|
|
82
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
83
|
+
const a = points[i];
|
|
84
|
+
const b = points[i + 1];
|
|
85
|
+
const abx = b.x - a.x;
|
|
86
|
+
const aby = b.y - a.y;
|
|
87
|
+
const abLenSq = abx * abx + aby * aby;
|
|
88
|
+
if (abLenSq === 0)
|
|
89
|
+
continue;
|
|
90
|
+
const apx = queryPoint.x - a.x;
|
|
91
|
+
const apy = queryPoint.y - a.y;
|
|
92
|
+
const localT = Math.max(0, Math.min(1, (apx * abx + apy * aby) / abLenSq));
|
|
93
|
+
const proj = { x: a.x + abx * localT, y: a.y + aby * localT };
|
|
94
|
+
const dx = queryPoint.x - proj.x;
|
|
95
|
+
const dy = queryPoint.y - proj.y;
|
|
96
|
+
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
97
|
+
if (dist < bestDist) {
|
|
98
|
+
bestDist = dist;
|
|
99
|
+
bestPoint = proj;
|
|
100
|
+
bestSeg = i;
|
|
101
|
+
bestT = (arcLengths[i] + (arcLengths[i + 1] - arcLengths[i]) * localT) / totalLen;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
t: Math.round(bestT * 10000) / 10000,
|
|
106
|
+
snappedPoint: bestPoint,
|
|
107
|
+
distance: bestDist,
|
|
108
|
+
segmentIndex: bestSeg,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// --- Uniform spacing ---
|
|
112
|
+
export function uniformTValues(count) {
|
|
113
|
+
if (count <= 0)
|
|
114
|
+
return [];
|
|
115
|
+
if (count === 1)
|
|
116
|
+
return [0.5];
|
|
117
|
+
return Array.from({ length: count }, (_, i) => i / (count - 1));
|
|
118
|
+
}
|
|
119
|
+
// --- Heading computation ---
|
|
120
|
+
export function computeHeadings(points) {
|
|
121
|
+
if (points.length < 2)
|
|
122
|
+
return points.map(() => 0);
|
|
123
|
+
const headings = [];
|
|
124
|
+
for (let i = 0; i < points.length; i++) {
|
|
125
|
+
const prev = points[Math.max(0, i - 1)];
|
|
126
|
+
const next = points[Math.min(points.length - 1, i + 1)];
|
|
127
|
+
const dx = next.x - prev.x;
|
|
128
|
+
const dy = next.y - prev.y;
|
|
129
|
+
const angleRad = Math.atan2(dx, -dy);
|
|
130
|
+
headings.push(((angleRad * 180) / Math.PI + 360) % 360);
|
|
131
|
+
}
|
|
132
|
+
return headings;
|
|
133
|
+
}
|
|
134
|
+
// --- Interpolation ---
|
|
135
|
+
export function interpolatePosition(p1, p2, t) {
|
|
136
|
+
return {
|
|
137
|
+
x: p1.x + (p2.x - p1.x) * t,
|
|
138
|
+
y: p1.y + (p2.y - p1.y) * t,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// --- Bounding box ---
|
|
142
|
+
export function getBoundingBox(points) {
|
|
143
|
+
if (points.length === 0)
|
|
144
|
+
return { x: 0, y: 0, width: 0, height: 0 };
|
|
145
|
+
let minX = Infinity, minY = Infinity;
|
|
146
|
+
let maxX = -Infinity, maxY = -Infinity;
|
|
147
|
+
for (const pt of points) {
|
|
148
|
+
minX = Math.min(minX, pt.x);
|
|
149
|
+
minY = Math.min(minY, pt.y);
|
|
150
|
+
maxX = Math.max(maxX, pt.x);
|
|
151
|
+
maxY = Math.max(maxY, pt.y);
|
|
152
|
+
}
|
|
153
|
+
return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
|
|
154
|
+
}
|
|
155
|
+
// --- Point-to-segment distance ---
|
|
156
|
+
export function distanceToSegment(point, segStart, segEnd) {
|
|
157
|
+
const dx = segEnd.x - segStart.x;
|
|
158
|
+
const dy = segEnd.y - segStart.y;
|
|
159
|
+
const lenSq = dx * dx + dy * dy;
|
|
160
|
+
if (lenSq === 0) {
|
|
161
|
+
const ex = point.x - segStart.x;
|
|
162
|
+
const ey = point.y - segStart.y;
|
|
163
|
+
return Math.sqrt(ex * ex + ey * ey);
|
|
164
|
+
}
|
|
165
|
+
const t = Math.max(0, Math.min(1, ((point.x - segStart.x) * dx + (point.y - segStart.y) * dy) / lenSq));
|
|
166
|
+
const projX = segStart.x + t * dx;
|
|
167
|
+
const projY = segStart.y + t * dy;
|
|
168
|
+
const ex = point.x - projX;
|
|
169
|
+
const ey = point.y - projY;
|
|
170
|
+
return Math.sqrt(ex * ex + ey * ey);
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -50,5 +50,27 @@ export declare function createEllipse(x: number, y: number, w: number, h: number
|
|
|
50
50
|
export declare function createText(x: number, y: number, text: string, options?: Partial<TextProps> & {
|
|
51
51
|
id?: string;
|
|
52
52
|
}): BaseShape<'text', TextProps>;
|
|
53
|
+
export interface PathWithFootprintsOptions {
|
|
54
|
+
/** Number of footprints for uniform spacing (default: 5) */
|
|
55
|
+
count?: number;
|
|
56
|
+
/** Vehicle template (default: 'sedan') */
|
|
57
|
+
template?: string;
|
|
58
|
+
/** Path and footprint color (default: 'green') */
|
|
59
|
+
color?: string;
|
|
60
|
+
/** Path stroke width (default: 3) */
|
|
61
|
+
strokeWidth?: number;
|
|
62
|
+
/** Dashed line (default: true) */
|
|
63
|
+
dashed?: boolean;
|
|
64
|
+
/** Arrow at path end (default: true) */
|
|
65
|
+
arrowHead?: boolean;
|
|
66
|
+
/** Anchor offset along travel direction (default: 0) */
|
|
67
|
+
anchorOffset?: number;
|
|
68
|
+
/** Footprint opacity (default: 1) */
|
|
69
|
+
footprintOpacity?: number;
|
|
70
|
+
}
|
|
71
|
+
export declare function createPathWithFootprints(pathPoints: Array<{
|
|
72
|
+
x: number;
|
|
73
|
+
y: number;
|
|
74
|
+
}>, options?: PathWithFootprintsOptions): BaseShape<string, any>[];
|
|
53
75
|
export declare function createSnapshot(shapes: BaseShape[]): DrawtonomySnapshot;
|
|
54
76
|
//# sourceMappingURL=helpers.d.ts.map
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,SAAS,EACT,kBAAkB,EACnB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { evaluatePathAt, uniformTValues } from './geometry';
|
|
1
2
|
let idCounter = 0;
|
|
2
3
|
function nextId(prefix = 'ext') {
|
|
3
4
|
return `${prefix}_${++idCounter}_${Date.now().toString(36)}`;
|
|
@@ -106,8 +107,8 @@ export function createVehicle(x, y, options) {
|
|
|
106
107
|
rotation: options?.templateId ? 0 : 0,
|
|
107
108
|
zIndex: 0,
|
|
108
109
|
props: {
|
|
109
|
-
w: options?.w ??
|
|
110
|
-
h: options?.h ??
|
|
110
|
+
w: options?.w ?? 30,
|
|
111
|
+
h: options?.h ?? 56,
|
|
111
112
|
color: options?.color ?? 'black',
|
|
112
113
|
size: options?.size ?? 'm',
|
|
113
114
|
attributes: options?.attributes ?? { type: 'vehicle', subtype: 'car' },
|
|
@@ -193,6 +194,69 @@ export function createText(x, y, text, options) {
|
|
|
193
194
|
},
|
|
194
195
|
};
|
|
195
196
|
}
|
|
197
|
+
export function createPathWithFootprints(pathPoints, options) {
|
|
198
|
+
const shapes = [];
|
|
199
|
+
const count = options?.count ?? 5;
|
|
200
|
+
const templateId = options?.template ?? 'sedan';
|
|
201
|
+
const color = options?.color ?? 'green';
|
|
202
|
+
const anchorOffset = options?.anchorOffset ?? 0;
|
|
203
|
+
// Create path vertex points
|
|
204
|
+
const ptShapes = pathPoints.map(p => createPoint(p.x, p.y, { visible: true, osmId: '' }));
|
|
205
|
+
shapes.push(...ptShapes);
|
|
206
|
+
// Compute footprint positions using arc-length parameterization
|
|
207
|
+
const tValues = uniformTValues(count);
|
|
208
|
+
const footprintIds = [];
|
|
209
|
+
// Create the path linestring
|
|
210
|
+
const pathLs = createLinestring(0, 0, ptShapes.map(p => p.id), {
|
|
211
|
+
color,
|
|
212
|
+
strokeWidth: options?.strokeWidth ?? 3,
|
|
213
|
+
attributes: {
|
|
214
|
+
type: 'linestring',
|
|
215
|
+
subtype: options?.dashed !== false ? 'dashed' : 'solid',
|
|
216
|
+
},
|
|
217
|
+
isPath: true,
|
|
218
|
+
arrowHead: options?.arrowHead !== false ? 'end' : null,
|
|
219
|
+
arrowHeadSize: 15,
|
|
220
|
+
opacity: 0.85,
|
|
221
|
+
});
|
|
222
|
+
// Compute interval in pixels for footprint config
|
|
223
|
+
let totalLen = 0;
|
|
224
|
+
for (let i = 1; i < pathPoints.length; i++) {
|
|
225
|
+
const dx = pathPoints[i].x - pathPoints[i - 1].x;
|
|
226
|
+
const dy = pathPoints[i].y - pathPoints[i - 1].y;
|
|
227
|
+
totalLen += Math.sqrt(dx * dx + dy * dy);
|
|
228
|
+
}
|
|
229
|
+
const interval = count > 1 ? Math.round(totalLen / (count - 1)) : Math.round(totalLen);
|
|
230
|
+
// Create footprint vehicles
|
|
231
|
+
for (let i = 0; i < tValues.length; i++) {
|
|
232
|
+
const evalResult = evaluatePathAt(pathPoints, tValues[i]);
|
|
233
|
+
const rotationDeg = evalResult.tangentAngleDeg;
|
|
234
|
+
// Apply anchor offset along tangent direction
|
|
235
|
+
let fx = evalResult.position.x;
|
|
236
|
+
let fy = evalResult.position.y;
|
|
237
|
+
if (anchorOffset !== 0) {
|
|
238
|
+
fx -= anchorOffset * evalResult.tangentVec.x;
|
|
239
|
+
fy -= anchorOffset * evalResult.tangentVec.y;
|
|
240
|
+
}
|
|
241
|
+
const vehicle = createVehicle(fx, fy, {
|
|
242
|
+
templateId,
|
|
243
|
+
color,
|
|
244
|
+
opacity: options?.footprintOpacity ?? 1,
|
|
245
|
+
w: 30,
|
|
246
|
+
h: 56,
|
|
247
|
+
});
|
|
248
|
+
vehicle.rotation = rotationDeg;
|
|
249
|
+
vehicle.props.parentPathId = pathLs.id;
|
|
250
|
+
footprintIds.push(vehicle.id);
|
|
251
|
+
shapes.push(vehicle);
|
|
252
|
+
}
|
|
253
|
+
// Set footprint config on path
|
|
254
|
+
const pathProps = pathLs.props;
|
|
255
|
+
pathProps.footprint = { interval, offset: 0, templateId, anchorOffset };
|
|
256
|
+
pathProps.footprintIds = footprintIds;
|
|
257
|
+
shapes.push(pathLs);
|
|
258
|
+
return shapes;
|
|
259
|
+
}
|
|
196
260
|
// --- Snapshot ---
|
|
197
261
|
export function createSnapshot(shapes) {
|
|
198
262
|
return {
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3D,IAAI,SAAS,GAAG,CAAC,CAAA;AAEjB,SAAS,MAAM,CAAC,MAAM,GAAG,KAAK;IAC5B,OAAO,GAAG,MAAM,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,SAAS,GAAG,CAAC,CAAA;AACf,CAAC;AAED,gBAAgB;AAEhB,MAAM,UAAU,WAAW,CACzB,CAAS,EACT,CAAS,EACT,OAA+C;IAE/C,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;YAChC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;YACjC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC5B;KACF,CAAA;AACH,CAAC;AAED,qBAAqB;AAErB,MAAM,UAAU,gBAAgB,CAC9B,CAAS,EACT,CAAS,EACT,QAAkB,EAClB,OAAoD;IAEpD,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,YAAY;QAClB,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,QAAQ;YACR,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;YAChC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC;YACtC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE;YAC3E,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC5B;KACF,CAAA;AACH,CAAC;AAED,eAAe;AAEf,MAAM,UAAU,UAAU,CACxB,CAAS,EACT,CAAS,EACT,cAAsB,EACtB,eAAuB,EACvB,OAA8C;IAE9C,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,EAAE,MAAM;QACZ,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,cAAc;YACd,eAAe;YACf,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;YACxC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,KAAK;YAC1C,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS;YAClC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG;YAC1B,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;YAC1F,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;YACzB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;YACzB,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC5B;KACF,CAAA;AACH,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA2C,EAC3C,WAA4C,EAC5C,OAAmC;IAEnC,MAAM,MAAM,GAA6B,EAAE,CAAA;IAE3C,8BAA8B;IAC9B,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QACrC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QACrC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IAC5E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEpB,cAAc;IACd,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAC1E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,kBAAkB;AAElB,MAAM,UAAU,aAAa,CAC3B,CAAS,EACT,CAAS,EACT,OAAiD;IAEjD,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,EAAE,SAAS;QACf,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;YACnB,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;YACnB,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;YAChC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG;YAC1B,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACtE,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YAC3B,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS;SAC7C;KACF,CAAA;AACH,CAAC;AAED,qBAAqB;AAErB,MAAM,UAAU,gBAAgB,CAC9B,CAAS,EACT,CAAS,EACT,OAAoD;IAEpD,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,EAAE,YAAY;QAClB,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;YACnB,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;YACnB,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;YAChC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG;YAC1B,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC5E,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YAC3B,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,QAAQ;SAC5C;KACF,CAAA;AACH,CAAC;AAED,oBAAoB;AAEpB,MAAM,UAAU,eAAe,CAC7B,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,OAAmD;IAEnD,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,EAAE,WAAW;QACjB,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,CAAC;YACD,CAAC;YACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS;YAClC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM;YAC7B,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC;SACvC;KACF,CAAA;AACH,CAAC;AAED,kBAAkB;AAElB,MAAM,UAAU,aAAa,CAC3B,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,OAAiD;IAEjD,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,EAAE,SAAS;QACf,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,CAAC;YACD,CAAC;YACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS;YAClC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM;YAC7B,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC;SACvC;KACF,CAAA;AACH,CAAC;AAED,eAAe;AAEf,MAAM,UAAU,UAAU,CACxB,CAAS,EACT,CAAS,EACT,IAAY,EACZ,OAA8C;IAE9C,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,EAAE,MAAM;QACZ,CAAC;QACD,CAAC;QACD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,KAAK,EAAE;YACL,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,GAAG;YACpB,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;YACnB,IAAI;YACJ,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;YAChC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE;YACjC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM;YAC7B,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,MAAM;YACvC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;SACpC;KACF,CAAA;AACH,CAAC;AAuBD,MAAM,UAAU,wBAAwB,CACtC,UAA2C,EAC3C,OAAmC;IAEnC,MAAM,MAAM,GAA6B,EAAE,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAA;IACjC,MAAM,UAAU,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAA;IAC/C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAA;IACvC,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,CAAC,CAAA;IAE/C,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACzF,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;IAExB,gEAAgE;IAChE,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,YAAY,GAAa,EAAE,CAAA;IAEjC,6BAA6B;IAC7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC7D,KAAK;QACL,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC;QACtC,UAAU,EAAE;YACV,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;SACxD;QACD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QACtD,aAAa,EAAE,EAAE;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;IAEF,kDAAkD;IAClD,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEtF,4BAA4B;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAA;QAE9C,8CAA8C;QAC9C,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9B,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9B,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,EAAE,IAAI,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;YAC5C,EAAE,IAAI,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,KAAK;YACL,OAAO,EAAE,OAAO,EAAE,gBAAgB,IAAI,CAAC;YACvC,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;SACN,CAAC,CAED;QAAC,OAAe,CAAC,QAAQ,GAAG,WAAW,CAEvC;QAAC,OAAO,CAAC,KAAa,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAA;QAEhD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;IAED,+BAA+B;IAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAY,CAAA;IACrC,SAAS,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;IACvE,SAAS,CAAC,YAAY,GAAG,YAAY,CAAA;IAErC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,mBAAmB;AAEnB,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM;KACP,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -33,6 +33,13 @@ export interface LinestringProps {
|
|
|
33
33
|
strokeWidth?: number;
|
|
34
34
|
opacity?: number;
|
|
35
35
|
}> | null;
|
|
36
|
+
footprint?: {
|
|
37
|
+
interval: number;
|
|
38
|
+
offset: number;
|
|
39
|
+
templateId: string;
|
|
40
|
+
anchorOffset?: number;
|
|
41
|
+
};
|
|
42
|
+
footprintIds?: string[];
|
|
36
43
|
}
|
|
37
44
|
export interface LaneProps {
|
|
38
45
|
leftBoundaryId: string | null;
|
|
@@ -64,6 +71,7 @@ export interface VehicleProps {
|
|
|
64
71
|
};
|
|
65
72
|
osmId: string;
|
|
66
73
|
templateId: string;
|
|
74
|
+
parentPathId?: string;
|
|
67
75
|
}
|
|
68
76
|
export interface PedestrianProps {
|
|
69
77
|
w: number;
|
|
@@ -170,7 +178,7 @@ export interface DrawtonomySnapshot {
|
|
|
170
178
|
z: number;
|
|
171
179
|
};
|
|
172
180
|
}
|
|
173
|
-
export type ExtensionCapability = 'shapes:write' | 'shapes:read' | 'snapshot:read' | '
|
|
181
|
+
export type ExtensionCapability = 'shapes:write' | 'shapes:read' | 'snapshot:read' | 'snapshot:export' | 'viewport:read' | 'selection:read' | 'ui:panel' | 'ui:notify';
|
|
174
182
|
export interface ExtensionManifest {
|
|
175
183
|
id: string;
|
|
176
184
|
name: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtF,EAAE,EAAE,OAAO,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drawtonomy/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "SDK for building drawtonomy extensions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"scripts": {
|
|
19
19
|
"build": "tsc",
|
|
20
|
+
"test": "vitest run",
|
|
20
21
|
"prepublishOnly": "npm run build"
|
|
21
22
|
},
|
|
22
23
|
"keywords": [
|
|
@@ -28,9 +29,7 @@
|
|
|
28
29
|
],
|
|
29
30
|
"license": "Apache-2.0",
|
|
30
31
|
"devDependencies": {
|
|
31
|
-
"typescript": "^5.7.0"
|
|
32
|
-
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"@drawtonomy/sdk": "^0.1.0"
|
|
32
|
+
"typescript": "^5.7.0",
|
|
33
|
+
"vitest": "^4.1.2"
|
|
35
34
|
}
|
|
36
35
|
}
|