@drawtonomy/sdk 0.2.1 → 0.4.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 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.
@@ -1,4 +1,4 @@
1
- import type { InitPayload, ShapeFilter, BaseShape, DrawtonomySnapshot } from './types';
1
+ import type { InitPayload, ShapeFilter, BaseShape, DrawtonomySnapshot, ExportFormat, ExportResponse } from './types';
2
2
  export declare class ExtensionClient {
3
3
  private manifestId;
4
4
  private initPromise;
@@ -20,6 +20,14 @@ export declare class ExtensionClient {
20
20
  deleteShapes(ids: string[]): void;
21
21
  requestShapes(filter?: ShapeFilter): Promise<BaseShape[]>;
22
22
  requestSnapshot(): Promise<DrawtonomySnapshot>;
23
+ /**
24
+ * Export the scene in the specified format.
25
+ * When `returnData` is true, returns a Base64 data URI string instead of triggering a file download.
26
+ * Requires `snapshot:export` capability.
27
+ */
28
+ requestExport(format: ExportFormat, options?: {
29
+ returnData?: boolean;
30
+ }): Promise<ExportResponse>;
23
31
  requestViewport(): Promise<{
24
32
  x: number;
25
33
  y: number;
@@ -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;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"}
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,EAClB,YAAY,EACZ,cAAc,EACf,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;IASpD;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAQhG,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"}
@@ -41,6 +41,17 @@ export class ExtensionClient {
41
41
  const response = await this.waitForResponse(requestId);
42
42
  return response.snapshot;
43
43
  }
44
+ // --- snapshot:export ---
45
+ /**
46
+ * Export the scene in the specified format.
47
+ * When `returnData` is true, returns a Base64 data URI string instead of triggering a file download.
48
+ * Requires `snapshot:export` capability.
49
+ */
50
+ async requestExport(format, options) {
51
+ const requestId = this.nextRequestId();
52
+ this.send({ type: 'ext:export-request', payload: { requestId, format, returnData: options?.returnData } });
53
+ return await this.waitForResponse(requestId);
54
+ }
44
55
  // --- viewport:read ---
45
56
  async requestViewport() {
46
57
  const requestId = this.nextRequestId();
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionClient.js","sourceRoot":"","sources":["../src/ExtensionClient.ts"],"names":[],"mappings":"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"}
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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
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)}`;
@@ -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 {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './types';
2
2
  export * from './helpers';
3
+ export * from './geometry';
3
4
  export { ExtensionClient } from './ExtensionClient';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -1,5 +1,6 @@
1
1
  // @drawtonomy/sdk - Entry Point
2
2
  export * from './types';
3
3
  export * from './helpers';
4
+ export * from './geometry';
4
5
  export { ExtensionClient } from './ExtensionClient';
5
6
  //# 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,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' | 'viewport:read' | 'selection:read' | 'ui:panel' | 'ui:notify';
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;
@@ -185,6 +193,13 @@ export interface ExtensionManifest {
185
193
  capabilities: ExtensionCapability[];
186
194
  minHostVersion?: string;
187
195
  }
196
+ export type ExportFormat = 'svg' | 'png' | 'jpeg' | 'eps' | 'pdf' | 'drawtonomy.svg' | 'json';
197
+ export interface ExportResponse {
198
+ requestId: string;
199
+ data: string;
200
+ mimeType: string;
201
+ filename: string;
202
+ }
188
203
  export interface ShapeFilter {
189
204
  types?: string[];
190
205
  ids?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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.2.1",
3
+ "version": "0.4.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,8 @@
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
+ "jsdom": "^29.0.1",
33
+ "typescript": "^5.7.0",
34
+ "vitest": "^4.1.2"
35
35
  }
36
36
  }