@drawtonomy/sdk 0.3.0 → 0.5.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/LICENSE +190 -0
- package/README.ja.md +2 -2
- package/README.md +29 -2
- package/dist/ExtensionClient.d.ts +9 -1
- package/dist/ExtensionClient.d.ts.map +1 -1
- package/dist/ExtensionClient.js +11 -0
- package/dist/ExtensionClient.js.map +1 -1
- package/dist/exporter/index.d.ts +9 -0
- package/dist/exporter/index.d.ts.map +1 -0
- package/dist/exporter/index.js +15 -0
- package/dist/exporter/index.js.map +1 -0
- package/dist/exporter/laneCenterline.d.ts +38 -0
- package/dist/exporter/laneCenterline.d.ts.map +1 -0
- package/dist/exporter/laneCenterline.js +94 -0
- package/dist/exporter/laneCenterline.js.map +1 -0
- package/dist/exporter/opendrive.d.ts +6 -0
- package/dist/exporter/opendrive.d.ts.map +1 -0
- package/dist/exporter/opendrive.js +565 -0
- package/dist/exporter/opendrive.js.map +1 -0
- package/dist/exporter/openscenario.d.ts +30 -0
- package/dist/exporter/openscenario.d.ts.map +1 -0
- package/dist/exporter/openscenario.js +393 -0
- package/dist/exporter/openscenario.js.map +1 -0
- package/dist/exporter/packageEsmini.d.ts +18 -0
- package/dist/exporter/packageEsmini.d.ts.map +1 -0
- package/dist/exporter/packageEsmini.js +23 -0
- package/dist/exporter/packageEsmini.js.map +1 -0
- package/dist/exporter/sanitize.d.ts +8 -0
- package/dist/exporter/sanitize.d.ts.map +1 -0
- package/dist/exporter/sanitize.js +29 -0
- package/dist/exporter/sanitize.js.map +1 -0
- package/dist/exporter/trajectory.d.ts +41 -0
- package/dist/exporter/trajectory.d.ts.map +1 -0
- package/dist/exporter/trajectory.js +200 -0
- package/dist/exporter/trajectory.js.map +1 -0
- package/dist/exporter/units.d.ts +16 -0
- package/dist/exporter/units.d.ts.map +1 -0
- package/dist/exporter/units.js +38 -0
- package/dist/exporter/units.js.map +1 -0
- package/dist/exporter/zip.d.ts +13 -0
- package/dist/exporter/zip.d.ts.map +1 -0
- package/dist/exporter/zip.js +137 -0
- package/dist/exporter/zip.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +29 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
// Path → OpenSCENARIO Trajectory conversion utility.
|
|
2
|
+
//
|
|
3
|
+
// Generates the vertex sequence used by <FollowTrajectoryAction> from a path
|
|
4
|
+
// (a polyline + optional footprint configuration).
|
|
5
|
+
//
|
|
6
|
+
// Input:
|
|
7
|
+
// - Control points in canvas coordinates (px, y-down)
|
|
8
|
+
// - Footprint config (interval/offset, or pre-computed tValues)
|
|
9
|
+
// - Default speed (m/s)
|
|
10
|
+
//
|
|
11
|
+
// Output:
|
|
12
|
+
// - Per-sample (x_m, y_m, heading_rad, time_sec) in ENU space (y-up)
|
|
13
|
+
//
|
|
14
|
+
// Modes:
|
|
15
|
+
// - When tValues are provided, each footprint position is mapped to an equal
|
|
16
|
+
// time slice over the total path duration.
|
|
17
|
+
// - Otherwise, footprints are placed at equal arc-length intervals and the
|
|
18
|
+
// time is computed assuming a constant speed.
|
|
19
|
+
//
|
|
20
|
+
// Coordinate systems:
|
|
21
|
+
// - Input: canvas px (x right +, y down +)
|
|
22
|
+
// - Output: ENU meters (x east +, y north +); heading 0 = +X, CCW positive
|
|
23
|
+
//
|
|
24
|
+
// Default speed: 10 m/s (≈ 36 km/h, residential).
|
|
25
|
+
import { PIXELS_PER_METER } from './units';
|
|
26
|
+
export const DEFAULT_PATH_SPEED_MPS = 10;
|
|
27
|
+
/**
|
|
28
|
+
* Cumulative arc lengths along the polyline (in input units).
|
|
29
|
+
* Returns an array of the same length as points; cumLen[i] = sum of segment
|
|
30
|
+
* lengths from index 0 to i.
|
|
31
|
+
*/
|
|
32
|
+
function computeCumulativeLengths(points) {
|
|
33
|
+
const lens = [0];
|
|
34
|
+
for (let i = 1; i < points.length; i++) {
|
|
35
|
+
const dx = points[i].x - points[i - 1].x;
|
|
36
|
+
const dy = points[i].y - points[i - 1].y;
|
|
37
|
+
lens.push(lens[i - 1] + Math.hypot(dx, dy));
|
|
38
|
+
}
|
|
39
|
+
return lens;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Evaluate the polyline at normalized arc-length parameter t in [0, 1].
|
|
43
|
+
* Returns the interpolated point and tangent direction.
|
|
44
|
+
*/
|
|
45
|
+
function evaluateAt(points, cumLens, t) {
|
|
46
|
+
const total = cumLens[cumLens.length - 1];
|
|
47
|
+
if (total <= 0 || points.length < 2) {
|
|
48
|
+
const p = points[0] ?? { x: 0, y: 0 };
|
|
49
|
+
return { x: p.x, y: p.y, tangentDx: 1, tangentDy: 0 };
|
|
50
|
+
}
|
|
51
|
+
const target = Math.max(0, Math.min(1, t)) * total;
|
|
52
|
+
for (let i = 1; i < points.length; i++) {
|
|
53
|
+
if (cumLens[i] >= target) {
|
|
54
|
+
const segLen = cumLens[i] - cumLens[i - 1];
|
|
55
|
+
const localT = segLen > 1e-9 ? (target - cumLens[i - 1]) / segLen : 0;
|
|
56
|
+
const dx = points[i].x - points[i - 1].x;
|
|
57
|
+
const dy = points[i].y - points[i - 1].y;
|
|
58
|
+
return {
|
|
59
|
+
x: points[i - 1].x + dx * localT,
|
|
60
|
+
y: points[i - 1].y + dy * localT,
|
|
61
|
+
tangentDx: dx,
|
|
62
|
+
tangentDy: dy,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const last = points[points.length - 1];
|
|
67
|
+
const prev = points[points.length - 2];
|
|
68
|
+
return { x: last.x, y: last.y, tangentDx: last.x - prev.x, tangentDy: last.y - prev.y };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Canvas (px, y-down) → ENU (m, y-up).
|
|
72
|
+
*/
|
|
73
|
+
function pxToEnu(x, y) {
|
|
74
|
+
return {
|
|
75
|
+
x: x / PIXELS_PER_METER,
|
|
76
|
+
y: -y / PIXELS_PER_METER,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Tangent vector (canvas px space, y-down) → ENU heading (rad, y-up).
|
|
81
|
+
* Canvas y is down (CW positive), ENU y is up (CCW positive); flip dy then atan2.
|
|
82
|
+
*/
|
|
83
|
+
function tangentToEnuHeading(dx, dy) {
|
|
84
|
+
return Math.atan2(-dy, dx);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Build the sample sequence used by <FollowTrajectoryAction> from a path.
|
|
88
|
+
*
|
|
89
|
+
* - tValues mode: each value is treated as a normalized position along the path,
|
|
90
|
+
* distributed across equal time slices over the total duration. A vertex at
|
|
91
|
+
* t=0 is prepended when the first tValue is non-zero so the trajectory starts
|
|
92
|
+
* from the path origin.
|
|
93
|
+
* - interval/offset mode: places samples at equal arc-length intervals and
|
|
94
|
+
* computes time as cumulative_distance / speed.
|
|
95
|
+
*
|
|
96
|
+
* In both cases time strictly increases (small back-steps are nudged forward
|
|
97
|
+
* by 1 ms because trajectory replay rejects non-monotonic timestamps).
|
|
98
|
+
*/
|
|
99
|
+
export function buildPathTrajectory(input) {
|
|
100
|
+
const { points, tValues, interval, offset, speedMps } = input;
|
|
101
|
+
if (points.length < 2)
|
|
102
|
+
return [];
|
|
103
|
+
const speed = speedMps && speedMps > 0 ? speedMps : DEFAULT_PATH_SPEED_MPS;
|
|
104
|
+
const cumLens = computeCumulativeLengths(points);
|
|
105
|
+
const totalLenPx = cumLens[cumLens.length - 1];
|
|
106
|
+
if (totalLenPx <= 0)
|
|
107
|
+
return [];
|
|
108
|
+
const totalLenM = totalLenPx / PIXELS_PER_METER;
|
|
109
|
+
const totalDurationSec = totalLenM / speed;
|
|
110
|
+
const samples = [];
|
|
111
|
+
if (tValues && tValues.length > 0) {
|
|
112
|
+
// Prepend the path origin if the first sample is past the start.
|
|
113
|
+
const firstT = tValues[0];
|
|
114
|
+
if (firstT > 1e-6) {
|
|
115
|
+
const start = evaluateAt(points, cumLens, 0);
|
|
116
|
+
const enu = pxToEnu(start.x, start.y);
|
|
117
|
+
samples.push({
|
|
118
|
+
x: enu.x,
|
|
119
|
+
y: enu.y,
|
|
120
|
+
heading: tangentToEnuHeading(start.tangentDx, start.tangentDy),
|
|
121
|
+
time: 0,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const N = tValues.length;
|
|
125
|
+
const dt = N > 1 ? totalDurationSec / (N - 1) : totalDurationSec;
|
|
126
|
+
for (let i = 0; i < N; i++) {
|
|
127
|
+
const t = Math.max(0, Math.min(1, tValues[i]));
|
|
128
|
+
const ev = evaluateAt(points, cumLens, t);
|
|
129
|
+
const enu = pxToEnu(ev.x, ev.y);
|
|
130
|
+
samples.push({
|
|
131
|
+
x: enu.x,
|
|
132
|
+
y: enu.y,
|
|
133
|
+
heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
|
|
134
|
+
time: i * dt + (firstT > 1e-6 ? dt : 0),
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (interval && interval > 0) {
|
|
139
|
+
// Equal arc-length intervals; time = cumulative_distance / speed.
|
|
140
|
+
const off = offset ?? 0;
|
|
141
|
+
let dPx = off;
|
|
142
|
+
if (dPx > 1e-6) {
|
|
143
|
+
const start = evaluateAt(points, cumLens, 0);
|
|
144
|
+
const enu = pxToEnu(start.x, start.y);
|
|
145
|
+
samples.push({
|
|
146
|
+
x: enu.x,
|
|
147
|
+
y: enu.y,
|
|
148
|
+
heading: tangentToEnuHeading(start.tangentDx, start.tangentDy),
|
|
149
|
+
time: 0,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
while (dPx <= totalLenPx + 1e-6) {
|
|
153
|
+
const t = dPx / totalLenPx;
|
|
154
|
+
const ev = evaluateAt(points, cumLens, t);
|
|
155
|
+
const enu = pxToEnu(ev.x, ev.y);
|
|
156
|
+
const distM = dPx / PIXELS_PER_METER;
|
|
157
|
+
samples.push({
|
|
158
|
+
x: enu.x,
|
|
159
|
+
y: enu.y,
|
|
160
|
+
heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
|
|
161
|
+
time: distM / speed,
|
|
162
|
+
});
|
|
163
|
+
dPx += interval;
|
|
164
|
+
}
|
|
165
|
+
// Force-append the path endpoint if the last interval did not reach it.
|
|
166
|
+
const lastSample = samples[samples.length - 1];
|
|
167
|
+
const endTime = totalDurationSec;
|
|
168
|
+
if (Math.abs(lastSample.time - endTime) > 1e-3) {
|
|
169
|
+
const ev = evaluateAt(points, cumLens, 1);
|
|
170
|
+
const enu = pxToEnu(ev.x, ev.y);
|
|
171
|
+
samples.push({
|
|
172
|
+
x: enu.x,
|
|
173
|
+
y: enu.y,
|
|
174
|
+
heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
|
|
175
|
+
time: endTime,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// Fallback: traverse all control points at constant speed.
|
|
181
|
+
for (let i = 0; i < points.length; i++) {
|
|
182
|
+
const ev = evaluateAt(points, cumLens, cumLens[i] / totalLenPx);
|
|
183
|
+
const enu = pxToEnu(ev.x, ev.y);
|
|
184
|
+
samples.push({
|
|
185
|
+
x: enu.x,
|
|
186
|
+
y: enu.y,
|
|
187
|
+
heading: tangentToEnuHeading(ev.tangentDx, ev.tangentDy),
|
|
188
|
+
time: (cumLens[i] / PIXELS_PER_METER) / speed,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Trajectory replay requires strictly increasing time; nudge tiny regressions.
|
|
193
|
+
for (let i = 1; i < samples.length; i++) {
|
|
194
|
+
if (samples[i].time <= samples[i - 1].time) {
|
|
195
|
+
samples[i].time = samples[i - 1].time + 1e-3;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return samples;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=trajectory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trajectory.js","sourceRoot":"","sources":["../../src/exporter/trajectory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Conversion factor from canvas pixels to meters. */
|
|
2
|
+
export declare const PIXELS_PER_METER = 16.67;
|
|
3
|
+
/** Canvas pixels → meters (scalar). */
|
|
4
|
+
export declare function pxToMeter(px: number): number;
|
|
5
|
+
/** Canvas x → ENU x (no axis flip). */
|
|
6
|
+
export declare function pxToEnuX(x: number): number;
|
|
7
|
+
/** Canvas y → ENU y (axis flipped: canvas y is down, ENU y is up). */
|
|
8
|
+
export declare function pxToEnuY(y: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* Format a number for OpenDRIVE / OpenSCENARIO output: 6 decimal places, no
|
|
11
|
+
* exponential. Non-finite values become "0".
|
|
12
|
+
*/
|
|
13
|
+
export declare function fmt(n: number): string;
|
|
14
|
+
/** XML attribute / text escaping. */
|
|
15
|
+
export declare function escapeXml(s: string): string;
|
|
16
|
+
//# sourceMappingURL=units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/exporter/units.ts"],"names":[],"mappings":"AAMA,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AAErC,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,uCAAuC;AACvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrC;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Coordinate / unit conversions shared by the OpenDRIVE / OpenSCENARIO
|
|
2
|
+
// exporters.
|
|
3
|
+
//
|
|
4
|
+
// The drawtonomy canvas uses pixels with y growing downward.
|
|
5
|
+
// OpenDRIVE / OpenSCENARIO both use ENU meters with y growing upward.
|
|
6
|
+
/** Conversion factor from canvas pixels to meters. */
|
|
7
|
+
export const PIXELS_PER_METER = 16.67;
|
|
8
|
+
/** Canvas pixels → meters (scalar). */
|
|
9
|
+
export function pxToMeter(px) {
|
|
10
|
+
return px / PIXELS_PER_METER;
|
|
11
|
+
}
|
|
12
|
+
/** Canvas x → ENU x (no axis flip). */
|
|
13
|
+
export function pxToEnuX(x) {
|
|
14
|
+
return pxToMeter(x);
|
|
15
|
+
}
|
|
16
|
+
/** Canvas y → ENU y (axis flipped: canvas y is down, ENU y is up). */
|
|
17
|
+
export function pxToEnuY(y) {
|
|
18
|
+
return -pxToMeter(y);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Format a number for OpenDRIVE / OpenSCENARIO output: 6 decimal places, no
|
|
22
|
+
* exponential. Non-finite values become "0".
|
|
23
|
+
*/
|
|
24
|
+
export function fmt(n) {
|
|
25
|
+
if (!Number.isFinite(n))
|
|
26
|
+
return '0';
|
|
27
|
+
return n.toFixed(6);
|
|
28
|
+
}
|
|
29
|
+
/** XML attribute / text escaping. */
|
|
30
|
+
export function escapeXml(s) {
|
|
31
|
+
return s
|
|
32
|
+
.replace(/&/g, '&')
|
|
33
|
+
.replace(/</g, '<')
|
|
34
|
+
.replace(/>/g, '>')
|
|
35
|
+
.replace(/"/g, '"')
|
|
36
|
+
.replace(/'/g, ''');
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/exporter/units.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,aAAa;AACb,EAAE;AACF,6DAA6D;AAC7D,sEAAsE;AAEtE,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAErC,uCAAuC;AACvC,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,OAAO,EAAE,GAAG,gBAAgB,CAAA;AAC9B,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAA;IACnC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ZipEntry {
|
|
2
|
+
/** Path inside the zip, e.g. "scene/scene.xodr" */
|
|
3
|
+
path: string;
|
|
4
|
+
/** Entry content; strings are UTF-8 encoded internally */
|
|
5
|
+
data: string | Uint8Array;
|
|
6
|
+
}
|
|
7
|
+
declare function crc32(bytes: Uint8Array): number;
|
|
8
|
+
/**
|
|
9
|
+
* Bundle ZipEntry[] into a single application/zip Blob.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildZip(entries: ZipEntry[]): Blob;
|
|
12
|
+
export { crc32 as _crc32ForTest };
|
|
13
|
+
//# sourceMappingURL=zip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../src/exporter/zip.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAmBD,iBAAS,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMxC;AA2BD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAuFlD;AAeD,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// Minimal ZIP builder (store mode, no compression) with no external deps.
|
|
2
|
+
//
|
|
3
|
+
// PKZIP APPNOTE.TXT 6.3.10 compatible. Bundles multiple files into a single
|
|
4
|
+
// zip. Compression method = 0 (store), which is fine for small XML payloads.
|
|
5
|
+
// Directories are implicit via slashes in entry paths.
|
|
6
|
+
const TEXT_ENCODER = new TextEncoder();
|
|
7
|
+
/**
|
|
8
|
+
* Standard CRC-32 (IEEE 802.3, polynomial 0xEDB88320), table-driven.
|
|
9
|
+
*/
|
|
10
|
+
const CRC32_TABLE = (() => {
|
|
11
|
+
const table = new Uint32Array(256);
|
|
12
|
+
for (let i = 0; i < 256; i++) {
|
|
13
|
+
let c = i;
|
|
14
|
+
for (let k = 0; k < 8; k++) {
|
|
15
|
+
c = (c & 1) ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1);
|
|
16
|
+
}
|
|
17
|
+
table[i] = c >>> 0;
|
|
18
|
+
}
|
|
19
|
+
return table;
|
|
20
|
+
})();
|
|
21
|
+
function crc32(bytes) {
|
|
22
|
+
let crc = 0xffffffff;
|
|
23
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
24
|
+
crc = CRC32_TABLE[(crc ^ bytes[i]) & 0xff] ^ (crc >>> 8);
|
|
25
|
+
}
|
|
26
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
27
|
+
}
|
|
28
|
+
/** Little-endian writer helpers. */
|
|
29
|
+
function writeU16(buf, offset, value) {
|
|
30
|
+
buf[offset] = value & 0xff;
|
|
31
|
+
buf[offset + 1] = (value >>> 8) & 0xff;
|
|
32
|
+
}
|
|
33
|
+
function writeU32(buf, offset, value) {
|
|
34
|
+
buf[offset] = value & 0xff;
|
|
35
|
+
buf[offset + 1] = (value >>> 8) & 0xff;
|
|
36
|
+
buf[offset + 2] = (value >>> 16) & 0xff;
|
|
37
|
+
buf[offset + 3] = (value >>> 24) & 0xff;
|
|
38
|
+
}
|
|
39
|
+
function toBytes(d) {
|
|
40
|
+
return typeof d === 'string' ? TEXT_ENCODER.encode(d) : d;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Bundle ZipEntry[] into a single application/zip Blob.
|
|
44
|
+
*/
|
|
45
|
+
export function buildZip(entries) {
|
|
46
|
+
// 1. Emit Local File Header + data for each entry, tracking offsets.
|
|
47
|
+
const prepared = [];
|
|
48
|
+
let cursor = 0;
|
|
49
|
+
const localChunks = [];
|
|
50
|
+
for (const entry of entries) {
|
|
51
|
+
const pathBytes = TEXT_ENCODER.encode(entry.path);
|
|
52
|
+
const data = toBytes(entry.data);
|
|
53
|
+
const crc = crc32(data);
|
|
54
|
+
const localHeader = new Uint8Array(30 + pathBytes.length);
|
|
55
|
+
// Local File Header signature 0x04034b50.
|
|
56
|
+
writeU32(localHeader, 0, 0x04034b50);
|
|
57
|
+
writeU16(localHeader, 4, 20); // version needed to extract (2.0)
|
|
58
|
+
writeU16(localHeader, 6, 0x0800); // general purpose bit flag (UTF-8 filename)
|
|
59
|
+
writeU16(localHeader, 8, 0); // compression = store
|
|
60
|
+
writeU16(localHeader, 10, 0); // last mod time
|
|
61
|
+
writeU16(localHeader, 12, 0); // last mod date
|
|
62
|
+
writeU32(localHeader, 14, crc); // CRC-32
|
|
63
|
+
writeU32(localHeader, 18, data.length); // compressed size
|
|
64
|
+
writeU32(localHeader, 22, data.length); // uncompressed size
|
|
65
|
+
writeU16(localHeader, 26, pathBytes.length); // file name length
|
|
66
|
+
writeU16(localHeader, 28, 0); // extra field length
|
|
67
|
+
localHeader.set(pathBytes, 30);
|
|
68
|
+
const localHeaderOffset = cursor;
|
|
69
|
+
localChunks.push(localHeader);
|
|
70
|
+
localChunks.push(data);
|
|
71
|
+
cursor += localHeader.length + data.length;
|
|
72
|
+
prepared.push({
|
|
73
|
+
path: entry.path,
|
|
74
|
+
pathBytes,
|
|
75
|
+
data,
|
|
76
|
+
crc,
|
|
77
|
+
localHeaderOffset,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const localBytes = concatBytes(localChunks);
|
|
81
|
+
// 2. Central Directory.
|
|
82
|
+
const cdChunks = [];
|
|
83
|
+
let cdSize = 0;
|
|
84
|
+
for (const e of prepared) {
|
|
85
|
+
const cdHeader = new Uint8Array(46 + e.pathBytes.length);
|
|
86
|
+
// Central Directory File Header signature 0x02014b50.
|
|
87
|
+
writeU32(cdHeader, 0, 0x02014b50);
|
|
88
|
+
writeU16(cdHeader, 4, 20); // version made by
|
|
89
|
+
writeU16(cdHeader, 6, 20); // version needed to extract
|
|
90
|
+
writeU16(cdHeader, 8, 0x0800); // general purpose bit flag
|
|
91
|
+
writeU16(cdHeader, 10, 0); // compression = store
|
|
92
|
+
writeU16(cdHeader, 12, 0); // last mod time
|
|
93
|
+
writeU16(cdHeader, 14, 0); // last mod date
|
|
94
|
+
writeU32(cdHeader, 16, e.crc);
|
|
95
|
+
writeU32(cdHeader, 20, e.data.length); // compressed size
|
|
96
|
+
writeU32(cdHeader, 24, e.data.length); // uncompressed size
|
|
97
|
+
writeU16(cdHeader, 28, e.pathBytes.length);
|
|
98
|
+
writeU16(cdHeader, 30, 0); // extra field length
|
|
99
|
+
writeU16(cdHeader, 32, 0); // file comment length
|
|
100
|
+
writeU16(cdHeader, 34, 0); // disk number start
|
|
101
|
+
writeU16(cdHeader, 36, 0); // internal file attributes
|
|
102
|
+
writeU32(cdHeader, 38, 0); // external file attributes
|
|
103
|
+
writeU32(cdHeader, 42, e.localHeaderOffset);
|
|
104
|
+
cdHeader.set(e.pathBytes, 46);
|
|
105
|
+
cdChunks.push(cdHeader);
|
|
106
|
+
cdSize += cdHeader.length;
|
|
107
|
+
}
|
|
108
|
+
const cdBytes = concatBytes(cdChunks);
|
|
109
|
+
// 3. End Of Central Directory record (22 bytes).
|
|
110
|
+
const eocd = new Uint8Array(22);
|
|
111
|
+
writeU32(eocd, 0, 0x06054b50); // EOCD signature
|
|
112
|
+
writeU16(eocd, 4, 0); // disk number
|
|
113
|
+
writeU16(eocd, 6, 0); // disk where CD starts
|
|
114
|
+
writeU16(eocd, 8, prepared.length); // number of CD records on this disk
|
|
115
|
+
writeU16(eocd, 10, prepared.length); // total number of CD records
|
|
116
|
+
writeU32(eocd, 12, cdSize); // size of CD
|
|
117
|
+
writeU32(eocd, 16, localBytes.length); // offset of CD start
|
|
118
|
+
writeU16(eocd, 20, 0); // .ZIP file comment length
|
|
119
|
+
// Slice() exposes plain ArrayBuffer; the DOM Blob constructor type does
|
|
120
|
+
// not accept ArrayBufferLike views directly under strict TS settings.
|
|
121
|
+
return new Blob([localBytes.slice().buffer, cdBytes.slice().buffer, eocd.slice().buffer], { type: 'application/zip' });
|
|
122
|
+
}
|
|
123
|
+
function concatBytes(chunks) {
|
|
124
|
+
let total = 0;
|
|
125
|
+
for (const c of chunks)
|
|
126
|
+
total += c.length;
|
|
127
|
+
const out = new Uint8Array(total);
|
|
128
|
+
let offset = 0;
|
|
129
|
+
for (const c of chunks) {
|
|
130
|
+
out.set(c, offset);
|
|
131
|
+
offset += c.length;
|
|
132
|
+
}
|
|
133
|
+
return out;
|
|
134
|
+
}
|
|
135
|
+
// Exported for test use only.
|
|
136
|
+
export { crc32 as _crc32ForTest };
|
|
137
|
+
//# sourceMappingURL=zip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../src/exporter/zip.ts"],"names":[],"mappings":"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"}
|
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,cAAc,YAAY,CAAA;AAC1B,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;AAEnD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -3,4 +3,6 @@ export * from './types';
|
|
|
3
3
|
export * from './helpers';
|
|
4
4
|
export * from './geometry';
|
|
5
5
|
export { ExtensionClient } from './ExtensionClient';
|
|
6
|
+
// Exporter sub-module is also available via "@drawtonomy/sdk/exporter".
|
|
7
|
+
export * as exporter from './exporter';
|
|
6
8
|
//# 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,cAAc,YAAY,CAAA;AAC1B,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;AACnD,wEAAwE;AACxE,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -141,21 +141,36 @@ export interface TrafficLightProps {
|
|
|
141
141
|
w: number;
|
|
142
142
|
h: number;
|
|
143
143
|
color: string;
|
|
144
|
+
/** Visual style identifier (e.g. "pedestrian", "traffic_red"). */
|
|
145
|
+
style: string;
|
|
146
|
+
/** Currently lit lamp index for the configured style. */
|
|
147
|
+
activeLight?: string;
|
|
148
|
+
size?: string;
|
|
144
149
|
attributes: {
|
|
145
|
-
type
|
|
150
|
+
type?: string;
|
|
146
151
|
subtype?: string;
|
|
147
|
-
}
|
|
152
|
+
} & Record<string, string>;
|
|
148
153
|
osmId: string;
|
|
149
154
|
}
|
|
150
155
|
export interface CrosswalkProps {
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
/** Crosswalk axis start in shape-local coordinates. */
|
|
157
|
+
startX: number;
|
|
158
|
+
startY: number;
|
|
159
|
+
/** Crosswalk axis end in shape-local coordinates. */
|
|
160
|
+
endX: number;
|
|
161
|
+
endY: number;
|
|
162
|
+
/** Stripe band thickness across the road. */
|
|
163
|
+
crosswalkWidth: number;
|
|
164
|
+
/** Width of each white stripe. */
|
|
153
165
|
stripeWidth?: number;
|
|
154
|
-
|
|
166
|
+
/** Spacing between stripes. */
|
|
167
|
+
stripeSpacing?: number;
|
|
168
|
+
color: string;
|
|
169
|
+
opacity?: number | null;
|
|
155
170
|
attributes: {
|
|
156
|
-
type
|
|
171
|
+
type?: string;
|
|
157
172
|
subtype?: string;
|
|
158
|
-
}
|
|
173
|
+
} & Record<string, string>;
|
|
159
174
|
osmId: string;
|
|
160
175
|
}
|
|
161
176
|
export interface FreehandProps {
|
|
@@ -193,6 +208,13 @@ export interface ExtensionManifest {
|
|
|
193
208
|
capabilities: ExtensionCapability[];
|
|
194
209
|
minHostVersion?: string;
|
|
195
210
|
}
|
|
211
|
+
export type ExportFormat = 'svg' | 'png' | 'jpeg' | 'eps' | 'pdf' | 'drawtonomy.svg' | 'json';
|
|
212
|
+
export interface ExportResponse {
|
|
213
|
+
requestId: string;
|
|
214
|
+
data: string;
|
|
215
|
+
mimeType: string;
|
|
216
|
+
filename: string;
|
|
217
|
+
}
|
|
196
218
|
export interface ShapeFilter {
|
|
197
219
|
types?: string[];
|
|
198
220
|
ids?: string[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "SDK for building drawtonomy extensions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -15,11 +15,6 @@
|
|
|
15
15
|
"dist",
|
|
16
16
|
"README.md"
|
|
17
17
|
],
|
|
18
|
-
"scripts": {
|
|
19
|
-
"build": "tsc",
|
|
20
|
-
"test": "vitest run",
|
|
21
|
-
"prepublishOnly": "npm run build"
|
|
22
|
-
},
|
|
23
18
|
"keywords": [
|
|
24
19
|
"drawtonomy",
|
|
25
20
|
"extension",
|
|
@@ -29,7 +24,12 @@
|
|
|
29
24
|
],
|
|
30
25
|
"license": "Apache-2.0",
|
|
31
26
|
"devDependencies": {
|
|
32
|
-
"
|
|
33
|
-
"
|
|
27
|
+
"jsdom": "29.0.1",
|
|
28
|
+
"typescript": "5.9.3",
|
|
29
|
+
"vitest": "4.1.2"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsc",
|
|
33
|
+
"test": "vitest run"
|
|
34
34
|
}
|
|
35
|
-
}
|
|
35
|
+
}
|