occt-wasm 5.4.1 → 5.5.1

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/dist/views.js ADDED
@@ -0,0 +1,256 @@
1
+ /**
2
+ * View geometry shared by every renderer: projection, panel layout, and the
3
+ * drawing primitives a backend has to put on the page.
4
+ *
5
+ * `svg.ts` and `png.ts` both consume this. Keeping it separate is what makes
6
+ * the two outputs agree by construction rather than by two copies of the same
7
+ * arithmetic: a panel is laid out once, and each backend only decides how to
8
+ * put a polyline, a label and a background on its own canvas.
9
+ *
10
+ * @module
11
+ */
12
+ const ORIGIN = { x: 0, y: 0, z: 0 };
13
+ // Screen-up is (-dir) x sx: with the viewer on the -dir side, (sx, sy, -dir) is
14
+ // right-handed, so the panel is a true view rather than a mirror image.
15
+ function basis(dir, sx) {
16
+ return { dir, sx, sy: cross(neg(dir), sx) };
17
+ }
18
+ export function basisFor(view) {
19
+ switch (view) {
20
+ case "front":
21
+ return basis(v(0, 1, 0), v(1, 0, 0));
22
+ case "back":
23
+ return basis(v(0, -1, 0), v(-1, 0, 0));
24
+ case "top":
25
+ return basis(v(0, 0, -1), v(1, 0, 0));
26
+ case "bottom":
27
+ return basis(v(0, 0, 1), v(1, 0, 0));
28
+ case "right":
29
+ return basis(v(-1, 0, 0), v(0, 1, 0));
30
+ case "left":
31
+ return basis(v(1, 0, 0), v(0, -1, 0));
32
+ case "iso":
33
+ // Camera in the +X+Y+Z octant looking at the origin with +Z up, so
34
+ // +X runs to the lower left and +Y to the lower right.
35
+ return basis(normalize(v(-1, -1, -1)), normalize(v(-1, 1, 0)));
36
+ }
37
+ }
38
+ export const VIEW_LABEL = {
39
+ front: "Front",
40
+ back: "Back",
41
+ top: "Top",
42
+ bottom: "Bottom",
43
+ left: "Left",
44
+ right: "Right",
45
+ iso: "Iso",
46
+ };
47
+ // --- vector helpers ---------------------------------------------------------
48
+ function v(x, y, z) {
49
+ return { x, y, z };
50
+ }
51
+ function dot(a, b) {
52
+ return a.x * b.x + a.y * b.y + a.z * b.z;
53
+ }
54
+ function cross(a, b) {
55
+ return {
56
+ x: a.y * b.z - a.z * b.y,
57
+ y: a.z * b.x - a.x * b.z,
58
+ z: a.x * b.y - a.y * b.x,
59
+ };
60
+ }
61
+ function neg(a) {
62
+ return { x: -a.x, y: -a.y, z: -a.z };
63
+ }
64
+ function normalize(a) {
65
+ const len = Math.hypot(a.x, a.y, a.z) || 1;
66
+ return { x: a.x / len, y: a.y / len, z: a.z / len };
67
+ }
68
+ const PROJECTION_FIELDS = [
69
+ "visibleOutline",
70
+ "visibleSmooth",
71
+ "visibleSharp",
72
+ "hiddenOutline",
73
+ "hiddenSmooth",
74
+ "hiddenSharp",
75
+ ];
76
+ export function collectEdges(kernel, shape, viewBasis, deflection) {
77
+ // HLR puts the viewer on the +Z side of the gp_Ax2 it projects with, so the
78
+ // direction it gets is the view-plane normal toward the camera, -dir. The
79
+ // result comes back in that frame: x along sx, y along (-dir) x sx, which
80
+ // is sy, and z always 0. The in-plane coordinates are the screen
81
+ // coordinates as they stand.
82
+ const proj = kernel.projectEdges(shape, ORIGIN, neg(viewBasis.dir), viewBasis.sx);
83
+ try {
84
+ const toLines = (h) => {
85
+ if (Number(h) === 0)
86
+ return [];
87
+ const { points, edgeGroups } = kernel.wireframe(h, deflection);
88
+ const lines = [];
89
+ for (let g = 0; g < edgeGroups.length; g += 3) {
90
+ const start = edgeGroups[g];
91
+ const count = edgeGroups[g + 1];
92
+ const line = [];
93
+ for (let i = 0; i < count; i += 3) {
94
+ line.push(points[start + i], points[start + i + 1]);
95
+ }
96
+ if (line.length >= 4)
97
+ lines.push(line);
98
+ }
99
+ return lines;
100
+ };
101
+ return {
102
+ visible: [
103
+ ...toLines(proj.visibleOutline),
104
+ ...toLines(proj.visibleSmooth),
105
+ ...toLines(proj.visibleSharp),
106
+ ],
107
+ hidden: [
108
+ ...toLines(proj.hiddenOutline),
109
+ ...toLines(proj.hiddenSmooth),
110
+ ...toLines(proj.hiddenSharp),
111
+ ],
112
+ };
113
+ }
114
+ finally {
115
+ for (const field of PROJECTION_FIELDS) {
116
+ const h = proj[field];
117
+ if (Number(h) !== 0)
118
+ kernel.release(h);
119
+ }
120
+ }
121
+ }
122
+ export function extentOf(views) {
123
+ let minU = Infinity;
124
+ let maxU = -Infinity;
125
+ let minV = Infinity;
126
+ let maxV = -Infinity;
127
+ for (const view of views) {
128
+ for (const line of [...view.visible, ...view.hidden]) {
129
+ for (let i = 0; i < line.length; i += 2) {
130
+ const u = line[i];
131
+ const vv = line[i + 1];
132
+ if (u < minU)
133
+ minU = u;
134
+ if (u > maxU)
135
+ maxU = u;
136
+ if (vv < minV)
137
+ minV = vv;
138
+ if (vv > maxV)
139
+ maxV = vv;
140
+ }
141
+ }
142
+ }
143
+ if (!Number.isFinite(minU))
144
+ return { minU: 0, maxU: 0, minV: 0, maxV: 0 };
145
+ return { minU, maxU, minV, maxV };
146
+ }
147
+ /**
148
+ * Build a view→pixel mapping for one panel. All panels share `scale` (so the
149
+ * part is the same size everywhere) but center on their own projected midpoint.
150
+ */
151
+ export function panelTransform(ext, scale, panelW, panelH, pad) {
152
+ const midU = (ext.minU + ext.maxU) / 2;
153
+ const midV = (ext.minV + ext.maxV) / 2;
154
+ // Screen y is inverted (v-up → y-down); center within the panel.
155
+ const offsetX = panelW / 2 - midU * scale;
156
+ const offsetY = panelH / 2 + midV * scale;
157
+ return { scale, offsetX, offsetY, inner: Math.min(panelW, panelH) - 2 * pad, panelW, panelH, pad };
158
+ }
159
+ /** Map a polyline from view coords into panel pixels: [x0, y0, x1, y1, ...]. */
160
+ export function toPixels(line, t) {
161
+ const out = [];
162
+ for (let i = 0; i < line.length; i += 2) {
163
+ out.push(line[i] * t.scale + t.offsetX, -line[i + 1] * t.scale + t.offsetY);
164
+ }
165
+ return out;
166
+ }
167
+ export function resolved(options) {
168
+ return {
169
+ width: options.width ?? 240,
170
+ height: options.height ?? 240,
171
+ padding: options.padding ?? 14,
172
+ showHidden: options.showHidden ?? true,
173
+ showGnomon: options.showGnomon ?? true,
174
+ strokeWidth: options.strokeWidth ?? 1,
175
+ background: options.background ?? "#ffffff",
176
+ visibleColor: options.visibleColor ?? "#111111",
177
+ hiddenColor: options.hiddenColor ?? "#9e9e9e",
178
+ };
179
+ }
180
+ export function deflectionFor(kernel, shape, options) {
181
+ if (options.deflection !== undefined)
182
+ return options.deflection;
183
+ const bb = kernel.getBoundingBox(shape);
184
+ const diag = Math.hypot(bb.xmax - bb.xmin, bb.ymax - bb.ymin, bb.zmax - bb.zmin);
185
+ return Math.max(diag * 0.002, 1e-4);
186
+ }
187
+ /** The gnomon arms for a view, or an empty list when every axis points into
188
+ * the screen. Axes within 0.05 of the view direction are dropped. */
189
+ export function gnomonArms(viewBasis, t) {
190
+ // The label sits past the tip, along the arm. Centred on the tip, the line
191
+ // would run through the letter, and the iso view's X and Y tips are close
192
+ // enough that their letters would touch. Arm + label stay within ~22 px
193
+ // of the origin, so the gnomon keeps to the corner, clear of the drawing.
194
+ const len = 15;
195
+ const gap = 7;
196
+ const ox = t.pad + len + gap;
197
+ const oy = t.panelH - t.pad - len - gap;
198
+ const axes = [
199
+ [v(1, 0, 0), "#d33", "X"],
200
+ [v(0, 1, 0), "#3a3", "Y"],
201
+ [v(0, 0, 1), "#36c", "Z"],
202
+ ];
203
+ const arms = [];
204
+ for (const [axis, color, label] of axes) {
205
+ const dx = dot(axis, viewBasis.sx);
206
+ const dy = -dot(axis, viewBasis.sy);
207
+ const m = Math.hypot(dx, dy);
208
+ if (m < 0.05)
209
+ continue; // axis points into the screen
210
+ arms.push({
211
+ x0: ox, y0: oy, x1: ox + dx * len, y1: oy + dy * len, color, label,
212
+ lx: ox + dx * len + (dx / m) * gap, ly: oy + dy * len + (dy / m) * gap,
213
+ });
214
+ }
215
+ return arms;
216
+ }
217
+ export function gridLayout(extents, o, columns, showDimensions) {
218
+ // One global scale so the part is sized consistently across all panels.
219
+ const inner = Math.min(o.width, o.height) - 2 * o.padding;
220
+ let maxRange = 1e-9;
221
+ for (const ext of extents) {
222
+ maxRange = Math.max(maxRange, ext.maxU - ext.minU, ext.maxV - ext.minV);
223
+ }
224
+ const scale = inner / maxRange;
225
+ if (!Number.isInteger(columns) || columns < 1) {
226
+ throw new RangeError(`columns must be a positive integer, got ${columns}`);
227
+ }
228
+ const rows = Math.ceil(extents.length / columns);
229
+ const footerH = showDimensions ? 22 : 0;
230
+ const panels = extents.map((ext, i) => ({
231
+ px: (i % columns) * o.width,
232
+ py: Math.floor(i / columns) * o.height,
233
+ t: panelTransform(ext, scale, o.width, o.height, o.padding),
234
+ }));
235
+ return {
236
+ columns,
237
+ rows,
238
+ totalW: columns * o.width,
239
+ totalH: rows * o.height + footerH,
240
+ footerH,
241
+ scale,
242
+ panels,
243
+ };
244
+ }
245
+ /** The single-panel equivalent of gridLayout. */
246
+ export function singleLayout(ext, o) {
247
+ const inner = Math.min(o.width, o.height) - 2 * o.padding;
248
+ const range = Math.max(ext.maxU - ext.minU, ext.maxV - ext.minV, 1e-9);
249
+ return panelTransform(ext, inner / range, o.width, o.height, o.padding);
250
+ }
251
+ /** The "100 × 60 × 40 (X×Y×Z)" footer text. */
252
+ export function dimensionsText(kernel, shape, round) {
253
+ const bb = kernel.getBoundingBox(shape);
254
+ return `${round(bb.xmax - bb.xmin)} × ${round(bb.ymax - bb.ymin)} × ${round(bb.zmax - bb.zmin)} (X×Y×Z)`;
255
+ }
256
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../src/views.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "occt-wasm",
3
- "version": "5.4.1",
3
+ "version": "5.5.1",
4
4
  "description": "OpenCascade (OCCT) compiled to WebAssembly with a clean TypeScript API",
5
5
  "type": "module",
6
6
  "exports": {