@ifc-lite/renderer 1.17.0 → 1.20.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/dist/deviation/deviation-pipeline.d.ts +48 -0
- package/dist/deviation/deviation-pipeline.d.ts.map +1 -0
- package/dist/deviation/deviation-pipeline.js +163 -0
- package/dist/deviation/deviation-pipeline.js.map +1 -0
- package/dist/deviation/deviation-shader.wgsl.d.ts +23 -0
- package/dist/deviation/deviation-shader.wgsl.d.ts.map +1 -0
- package/dist/deviation/deviation-shader.wgsl.js +237 -0
- package/dist/deviation/deviation-shader.wgsl.js.map +1 -0
- package/dist/deviation/triangle-bvh.d.ts +58 -0
- package/dist/deviation/triangle-bvh.d.ts.map +1 -0
- package/dist/deviation/triangle-bvh.js +255 -0
- package/dist/deviation/triangle-bvh.js.map +1 -0
- package/dist/device.d.ts +3 -0
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +10 -0
- package/dist/device.js.map +1 -1
- package/dist/edl-pass.d.ts +52 -0
- package/dist/edl-pass.d.ts.map +1 -0
- package/dist/edl-pass.js +204 -0
- package/dist/edl-pass.js.map +1 -0
- package/dist/index.d.ts +175 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +676 -110
- package/dist/index.js.map +1 -1
- package/dist/picker.d.ts +40 -3
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +211 -59
- package/dist/picker.js.map +1 -1
- package/dist/picking-manager.d.ts +32 -1
- package/dist/picking-manager.d.ts.map +1 -1
- package/dist/picking-manager.js +53 -1
- package/dist/picking-manager.js.map +1 -1
- package/dist/point-picker.d.ts +61 -0
- package/dist/point-picker.d.ts.map +1 -0
- package/dist/point-picker.js +223 -0
- package/dist/point-picker.js.map +1 -0
- package/dist/pointcloud/point-cloud-node.d.ts +63 -0
- package/dist/pointcloud/point-cloud-node.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-node.js +149 -0
- package/dist/pointcloud/point-cloud-node.js.map +1 -0
- package/dist/pointcloud/point-cloud-renderer.d.ts +166 -0
- package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-renderer.js +293 -0
- package/dist/pointcloud/point-cloud-renderer.js.map +1 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts +36 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-uniforms.js +89 -0
- package/dist/pointcloud/point-cloud-uniforms.js.map +1 -0
- package/dist/pointcloud/point-pipeline.d.ts +27 -0
- package/dist/pointcloud/point-pipeline.d.ts.map +1 -0
- package/dist/pointcloud/point-pipeline.js +126 -0
- package/dist/pointcloud/point-pipeline.js.map +1 -0
- package/dist/pointcloud/point-shader.wgsl.d.ts +22 -0
- package/dist/pointcloud/point-shader.wgsl.d.ts.map +1 -0
- package/dist/pointcloud/point-shader.wgsl.js +288 -0
- package/dist/pointcloud/point-shader.wgsl.js.map +1 -0
- package/dist/scene.d.ts +11 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +21 -0
- package/dist/scene.js.map +1 -1
- package/dist/section-2d-overlay.d.ts +24 -5
- package/dist/section-2d-overlay.d.ts.map +1 -1
- package/dist/section-2d-overlay.js +42 -13
- package/dist/section-2d-overlay.js.map +1 -1
- package/dist/section-plane-basis.d.ts +64 -0
- package/dist/section-plane-basis.d.ts.map +1 -0
- package/dist/section-plane-basis.js +86 -0
- package/dist/section-plane-basis.js.map +1 -0
- package/dist/section-plane.d.ts +18 -0
- package/dist/section-plane.d.ts.map +1 -1
- package/dist/section-plane.js +89 -6
- package/dist/section-plane.js.map +1 -1
- package/dist/types.d.ts +35 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -85,20 +85,39 @@ export declare class Section2DOverlayRenderer {
|
|
|
85
85
|
constructor(device: GPUDevice, format: GPUTextureFormat, sampleCount?: number);
|
|
86
86
|
private init;
|
|
87
87
|
/**
|
|
88
|
-
* Transform 2D coordinates to 3D coordinates on the section plane
|
|
88
|
+
* Transform 2D coordinates to 3D coordinates on the section plane.
|
|
89
89
|
*
|
|
90
|
-
*
|
|
90
|
+
* Cardinal axis path (legacy, unchanged):
|
|
91
91
|
* - Y axis (down): 2D (x, y) = 3D (x, z) - looking down at XZ plane
|
|
92
92
|
* - Z axis (front): 2D (x, y) = 3D (x, y) - looking along Z at XY plane
|
|
93
93
|
* - X axis (side): 2D (x, y) = 3D (z, y) - looking along X at ZY plane
|
|
94
|
+
* When flipped, the 2D x coordinate is negated.
|
|
94
95
|
*
|
|
95
|
-
*
|
|
96
|
+
* Custom-plane path (issue #243): when `customPlane` is supplied, the
|
|
97
|
+
* 3D point is `origin + tangent*x2d + bitangent*y2d`. The same basis
|
|
98
|
+
* is used by `SectionCutter` to project triangle-plane intersections
|
|
99
|
+
* to 2D, so the round-trip is exact and the cap polygons land
|
|
100
|
+
* precisely on the user's tilted plane.
|
|
96
101
|
*/
|
|
97
102
|
private transform2Dto3D;
|
|
98
103
|
/**
|
|
99
|
-
* Upload 2D drawing data to GPU buffers
|
|
104
|
+
* Upload 2D drawing data to GPU buffers.
|
|
105
|
+
*
|
|
106
|
+
* For cardinal-axis section planes, pass `axis` + `planePosition` (+
|
|
107
|
+
* `flipped`) and 2D points are lifted to 3D via the cardinal-axis
|
|
108
|
+
* coordinate swap. For arbitrary face-picked planes (issue #243),
|
|
109
|
+
* pass `customPlane = { origin, tangent, bitangent }` instead — the
|
|
110
|
+
* 2D points are then lifted via `origin + tangent·x + bitangent·y`,
|
|
111
|
+
* matching the basis the upstream `SectionCutter` used to project
|
|
112
|
+
* the cut polygons in the first place. Without that the cap silhouette
|
|
113
|
+
* would land off the actual cutting plane (the bug PR #581 hid by
|
|
114
|
+
* suppressing the cap entirely for non-cardinal planes).
|
|
100
115
|
*/
|
|
101
|
-
uploadDrawing(polygons: CutPolygon2D[], lines: DrawingLine2D[], axis: 'down' | 'front' | 'side', planePosition: number, flipped?: boolean
|
|
116
|
+
uploadDrawing(polygons: CutPolygon2D[], lines: DrawingLine2D[], axis: 'down' | 'front' | 'side', planePosition: number, flipped?: boolean, customPlane?: {
|
|
117
|
+
origin: [number, number, number];
|
|
118
|
+
tangent: [number, number, number];
|
|
119
|
+
bitangent: [number, number, number];
|
|
120
|
+
}): void;
|
|
102
121
|
/**
|
|
103
122
|
* Clear uploaded geometry
|
|
104
123
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-overlay.d.ts","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,WAAW,EAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,SAAS,EAAU,MAAM,CAAC;IAC1B,SAAS,EAAU,MAAM,CAAC;IAC1B,QAAQ,EAAW,MAAM,CAAC;IAC1B,OAAO,EAAY,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1C,CAAC;IACF,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;KAC/C,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE;QACJ,KAAK,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChC,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AA4BD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,GAAE,MAAU;IAMhF,OAAO,CAAC,IAAI;IAiTZ
|
|
1
|
+
{"version":3,"file":"section-2d-overlay.d.ts","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -351,16 +351,35 @@ export class Section2DOverlayRenderer {
|
|
|
351
351
|
this.initialized = true;
|
|
352
352
|
}
|
|
353
353
|
/**
|
|
354
|
-
* Transform 2D coordinates to 3D coordinates on the section plane
|
|
354
|
+
* Transform 2D coordinates to 3D coordinates on the section plane.
|
|
355
355
|
*
|
|
356
|
-
*
|
|
356
|
+
* Cardinal axis path (legacy, unchanged):
|
|
357
357
|
* - Y axis (down): 2D (x, y) = 3D (x, z) - looking down at XZ plane
|
|
358
358
|
* - Z axis (front): 2D (x, y) = 3D (x, y) - looking along Z at XY plane
|
|
359
359
|
* - X axis (side): 2D (x, y) = 3D (z, y) - looking along X at ZY plane
|
|
360
|
+
* When flipped, the 2D x coordinate is negated.
|
|
360
361
|
*
|
|
361
|
-
*
|
|
362
|
+
* Custom-plane path (issue #243): when `customPlane` is supplied, the
|
|
363
|
+
* 3D point is `origin + tangent*x2d + bitangent*y2d`. The same basis
|
|
364
|
+
* is used by `SectionCutter` to project triangle-plane intersections
|
|
365
|
+
* to 2D, so the round-trip is exact and the cap polygons land
|
|
366
|
+
* precisely on the user's tilted plane.
|
|
362
367
|
*/
|
|
363
|
-
transform2Dto3D(x2d, y2d, axis, planePosition, flipped = false) {
|
|
368
|
+
transform2Dto3D(x2d, y2d, axis, planePosition, flipped = false, customPlane) {
|
|
369
|
+
if (customPlane) {
|
|
370
|
+
// Custom plane: bypass the cardinal-axis swap. `flipped` is
|
|
371
|
+
// intentionally ignored because for arbitrary planes the cutter
|
|
372
|
+
// does not mirror its 2D output (mirroring only makes sense for
|
|
373
|
+
// cardinal projections that have a consistent "view direction").
|
|
374
|
+
const o = customPlane.origin;
|
|
375
|
+
const t = customPlane.tangent;
|
|
376
|
+
const b = customPlane.bitangent;
|
|
377
|
+
return [
|
|
378
|
+
o[0] + t[0] * x2d + b[0] * y2d,
|
|
379
|
+
o[1] + t[1] * x2d + b[1] * y2d,
|
|
380
|
+
o[2] + t[2] * x2d + b[2] * y2d,
|
|
381
|
+
];
|
|
382
|
+
}
|
|
364
383
|
// Handle flipped - the 2D x coordinate was negated during projection
|
|
365
384
|
const x = flipped ? -x2d : x2d;
|
|
366
385
|
switch (axis) {
|
|
@@ -376,9 +395,19 @@ export class Section2DOverlayRenderer {
|
|
|
376
395
|
}
|
|
377
396
|
}
|
|
378
397
|
/**
|
|
379
|
-
* Upload 2D drawing data to GPU buffers
|
|
398
|
+
* Upload 2D drawing data to GPU buffers.
|
|
399
|
+
*
|
|
400
|
+
* For cardinal-axis section planes, pass `axis` + `planePosition` (+
|
|
401
|
+
* `flipped`) and 2D points are lifted to 3D via the cardinal-axis
|
|
402
|
+
* coordinate swap. For arbitrary face-picked planes (issue #243),
|
|
403
|
+
* pass `customPlane = { origin, tangent, bitangent }` instead — the
|
|
404
|
+
* 2D points are then lifted via `origin + tangent·x + bitangent·y`,
|
|
405
|
+
* matching the basis the upstream `SectionCutter` used to project
|
|
406
|
+
* the cut polygons in the first place. Without that the cap silhouette
|
|
407
|
+
* would land off the actual cutting plane (the bug PR #581 hid by
|
|
408
|
+
* suppressing the cap entirely for non-cardinal planes).
|
|
380
409
|
*/
|
|
381
|
-
uploadDrawing(polygons, lines, axis, planePosition, flipped = false) {
|
|
410
|
+
uploadDrawing(polygons, lines, axis, planePosition, flipped = false, customPlane) {
|
|
382
411
|
this.init();
|
|
383
412
|
// Clean up old buffers and reset counts
|
|
384
413
|
if (this.fillVertexBuffer) {
|
|
@@ -414,7 +443,7 @@ export class Section2DOverlayRenderer {
|
|
|
414
443
|
// Note: The 2D canvas/SVG rendering in Section2DPanel handles holes correctly.
|
|
415
444
|
const baseVertex = vertexOffset;
|
|
416
445
|
for (const point of outer) {
|
|
417
|
-
const [x3d, y3d, z3d] = this.transform2Dto3D(point.x, point.y, axis, planePosition, flipped);
|
|
446
|
+
const [x3d, y3d, z3d] = this.transform2Dto3D(point.x, point.y, axis, planePosition, flipped, customPlane);
|
|
418
447
|
fillVertices.push(x3d, y3d, z3d, color[0], color[1], color[2], color[3]);
|
|
419
448
|
vertexOffset++;
|
|
420
449
|
}
|
|
@@ -447,8 +476,8 @@ export class Section2DOverlayRenderer {
|
|
|
447
476
|
for (let i = 0; i < outer.length; i++) {
|
|
448
477
|
const p1 = outer[i];
|
|
449
478
|
const p2 = outer[(i + 1) % outer.length];
|
|
450
|
-
const [x1, y1, z1] = this.transform2Dto3D(p1.x, p1.y, axis, planePosition, flipped);
|
|
451
|
-
const [x2, y2, z2] = this.transform2Dto3D(p2.x, p2.y, axis, planePosition, flipped);
|
|
479
|
+
const [x1, y1, z1] = this.transform2Dto3D(p1.x, p1.y, axis, planePosition, flipped, customPlane);
|
|
480
|
+
const [x2, y2, z2] = this.transform2Dto3D(p2.x, p2.y, axis, planePosition, flipped, customPlane);
|
|
452
481
|
lineVertices.push(x1, y1, z1, x2, y2, z2);
|
|
453
482
|
}
|
|
454
483
|
// Hole outlines
|
|
@@ -456,16 +485,16 @@ export class Section2DOverlayRenderer {
|
|
|
456
485
|
for (let i = 0; i < hole.length; i++) {
|
|
457
486
|
const p1 = hole[i];
|
|
458
487
|
const p2 = hole[(i + 1) % hole.length];
|
|
459
|
-
const [x1, y1, z1] = this.transform2Dto3D(p1.x, p1.y, axis, planePosition, flipped);
|
|
460
|
-
const [x2, y2, z2] = this.transform2Dto3D(p2.x, p2.y, axis, planePosition, flipped);
|
|
488
|
+
const [x1, y1, z1] = this.transform2Dto3D(p1.x, p1.y, axis, planePosition, flipped, customPlane);
|
|
489
|
+
const [x2, y2, z2] = this.transform2Dto3D(p2.x, p2.y, axis, planePosition, flipped, customPlane);
|
|
461
490
|
lineVertices.push(x1, y1, z1, x2, y2, z2);
|
|
462
491
|
}
|
|
463
492
|
}
|
|
464
493
|
}
|
|
465
494
|
// Additional drawing lines (hatching, etc.)
|
|
466
495
|
for (const line of lines) {
|
|
467
|
-
const [x1, y1, z1] = this.transform2Dto3D(line.line.start.x, line.line.start.y, axis, planePosition, flipped);
|
|
468
|
-
const [x2, y2, z2] = this.transform2Dto3D(line.line.end.x, line.line.end.y, axis, planePosition, flipped);
|
|
496
|
+
const [x1, y1, z1] = this.transform2Dto3D(line.line.start.x, line.line.start.y, axis, planePosition, flipped, customPlane);
|
|
497
|
+
const [x2, y2, z2] = this.transform2Dto3D(line.line.end.x, line.line.end.y, axis, planePosition, flipped, customPlane);
|
|
469
498
|
lineVertices.push(x1, y1, z1, x2, y2, z2);
|
|
470
499
|
}
|
|
471
500
|
// Create line buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-overlay.js","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"section-2d-overlay.js","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic plane-local basis derivation for arbitrary-normal section
|
|
3
|
+
* planes (issue #243).
|
|
4
|
+
*
|
|
5
|
+
* The cap renderer (`Section2DOverlayRenderer`) lifts 2D cut polygons back
|
|
6
|
+
* to 3D using `tangent` + `bitangent` as the in-plane axes. The 2D cutter
|
|
7
|
+
* (`SectionCutter`) projects 3D triangle-plane intersections to 2D using
|
|
8
|
+
* the SAME pair. Without a single shared derivation the two ends would
|
|
9
|
+
* disagree on the basis, the cap polygons would land off the cutting
|
|
10
|
+
* plane, and the hatch pattern would visibly rotate as soon as the
|
|
11
|
+
* basis changed (e.g. between renderer init and a re-derive). This module
|
|
12
|
+
* is the single source of truth.
|
|
13
|
+
*
|
|
14
|
+
* Convention:
|
|
15
|
+
* • The renderer/world is Y-up. We pick world-Y as the reference axis,
|
|
16
|
+
* unless the normal is too parallel to Y (within ~25°) — in that case
|
|
17
|
+
* we fall back to world-X to avoid a degenerate cross-product.
|
|
18
|
+
* • For the cardinal Y-axis plane (normal = [0,1,0]) the resulting
|
|
19
|
+
* basis is `tangent ≈ [1,0,0]`, `bitangent ≈ [0,0,-1]`. That matches
|
|
20
|
+
* the cardinal-axis cap projection (`'down'` axis maps `(x, z) →
|
|
21
|
+
* (2D.x, 2D.y)` with z mirrored on flip), so face-picking a perfectly
|
|
22
|
+
* horizontal floor reproduces the same hatch orientation as the
|
|
23
|
+
* "Down" preset — verified by the unit tests in this file's neighbour.
|
|
24
|
+
*/
|
|
25
|
+
export type Vec3Tuple = readonly [number, number, number];
|
|
26
|
+
export interface PlaneBasis {
|
|
27
|
+
/** First in-plane axis (unit vector). */
|
|
28
|
+
tangent: [number, number, number];
|
|
29
|
+
/** Second in-plane axis (unit vector, `tangent × normal`). */
|
|
30
|
+
bitangent: [number, number, number];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Derive an orthonormal in-plane basis (`tangent`, `bitangent`) from a
|
|
34
|
+
* unit normal. Returns a basis even for non-unit input — the caller is
|
|
35
|
+
* responsible for normalising `normal` if exact unit length matters
|
|
36
|
+
* elsewhere.
|
|
37
|
+
*
|
|
38
|
+
* Properties guaranteed by the implementation (covered by tests):
|
|
39
|
+
* 1. `tangent · normal ≈ 0` and `bitangent · normal ≈ 0`.
|
|
40
|
+
* 2. `tangent · bitangent ≈ 0`.
|
|
41
|
+
* 3. `|tangent| = |bitangent| = 1`.
|
|
42
|
+
* 4. The result is *deterministic* — the same `normal` always yields
|
|
43
|
+
* the same `(tangent, bitangent)`. This is essential so the cap
|
|
44
|
+
* hatch doesn't rotate when state is reconstructed (e.g. on reload
|
|
45
|
+
* or when the renderer rebuilds resources).
|
|
46
|
+
*/
|
|
47
|
+
export declare function planeBasis(normal: Vec3Tuple): PlaneBasis;
|
|
48
|
+
/**
|
|
49
|
+
* Map an arbitrary world-space unit normal to the closest cardinal axis,
|
|
50
|
+
* preserving sign so `flipped` can be derived correctly. Returns
|
|
51
|
+
* `{ axis, flipped }` where `axis` is the renderer's semantic cardinal
|
|
52
|
+
* label and `flipped` is `true` when the dominant component is negative.
|
|
53
|
+
*
|
|
54
|
+
* Used so any code path that still reads `axis`/`flipped` (drawings export,
|
|
55
|
+
* BCF snapshots, view controls) gets the right orientation for a
|
|
56
|
+
* face-picked plane — taking the absolute value alone, as PR #581's
|
|
57
|
+
* original implementation did, inverted exports for the negative-X /
|
|
58
|
+
* negative-Z half-spaces (CodeRabbit P1 on #581).
|
|
59
|
+
*/
|
|
60
|
+
export declare function nearestCardinalAxis(normal: Vec3Tuple): {
|
|
61
|
+
axis: 'down' | 'front' | 'side';
|
|
62
|
+
flipped: boolean;
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=section-plane-basis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-plane-basis.d.ts","sourceRoot":"","sources":["../src/section-plane-basis.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,8DAA8D;IAC9D,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAwCxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,GAChB;IAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAWvD"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Derive an orthonormal in-plane basis (`tangent`, `bitangent`) from a
|
|
6
|
+
* unit normal. Returns a basis even for non-unit input — the caller is
|
|
7
|
+
* responsible for normalising `normal` if exact unit length matters
|
|
8
|
+
* elsewhere.
|
|
9
|
+
*
|
|
10
|
+
* Properties guaranteed by the implementation (covered by tests):
|
|
11
|
+
* 1. `tangent · normal ≈ 0` and `bitangent · normal ≈ 0`.
|
|
12
|
+
* 2. `tangent · bitangent ≈ 0`.
|
|
13
|
+
* 3. `|tangent| = |bitangent| = 1`.
|
|
14
|
+
* 4. The result is *deterministic* — the same `normal` always yields
|
|
15
|
+
* the same `(tangent, bitangent)`. This is essential so the cap
|
|
16
|
+
* hatch doesn't rotate when state is reconstructed (e.g. on reload
|
|
17
|
+
* or when the renderer rebuilds resources).
|
|
18
|
+
*/
|
|
19
|
+
export function planeBasis(normal) {
|
|
20
|
+
const nx = normal[0];
|
|
21
|
+
const ny = normal[1];
|
|
22
|
+
const nz = normal[2];
|
|
23
|
+
// Reference axis: Y-up unless the normal is nearly parallel to Y, in
|
|
24
|
+
// which case fall back to X. The 0.9 threshold matches the gizmo's
|
|
25
|
+
// existing reference-axis pick in `section-plane.ts`, so the gizmo
|
|
26
|
+
// and the cap hatch never disagree on which fallback they used.
|
|
27
|
+
const useY = Math.abs(ny) < 0.9;
|
|
28
|
+
const refX = useY ? 0 : 1;
|
|
29
|
+
const refY = useY ? 1 : 0;
|
|
30
|
+
const refZ = 0;
|
|
31
|
+
// tangent = normalize(normal × ref)
|
|
32
|
+
let tx = ny * refZ - nz * refY;
|
|
33
|
+
let ty = nz * refX - nx * refZ;
|
|
34
|
+
let tz = nx * refY - ny * refX;
|
|
35
|
+
let tlen = Math.hypot(tx, ty, tz);
|
|
36
|
+
if (tlen < 1e-9) {
|
|
37
|
+
// Should never trigger given the threshold above, but keep the
|
|
38
|
+
// contract honest: any normal yields *some* basis.
|
|
39
|
+
tx = 1;
|
|
40
|
+
ty = 0;
|
|
41
|
+
tz = 0;
|
|
42
|
+
tlen = 1;
|
|
43
|
+
}
|
|
44
|
+
tx /= tlen;
|
|
45
|
+
ty /= tlen;
|
|
46
|
+
tz /= tlen;
|
|
47
|
+
// bitangent = normalize(tangent × normal). Since tangent ⟂ normal
|
|
48
|
+
// and both are unit length, the cross is already unit length —
|
|
49
|
+
// renormalise defensively against floating-point drift.
|
|
50
|
+
let bx = ty * nz - tz * ny;
|
|
51
|
+
let by = tz * nx - tx * nz;
|
|
52
|
+
let bz = tx * ny - ty * nx;
|
|
53
|
+
const blen = Math.hypot(bx, by, bz) || 1;
|
|
54
|
+
bx /= blen;
|
|
55
|
+
by /= blen;
|
|
56
|
+
bz /= blen;
|
|
57
|
+
return {
|
|
58
|
+
tangent: [tx, ty, tz],
|
|
59
|
+
bitangent: [bx, by, bz],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Map an arbitrary world-space unit normal to the closest cardinal axis,
|
|
64
|
+
* preserving sign so `flipped` can be derived correctly. Returns
|
|
65
|
+
* `{ axis, flipped }` where `axis` is the renderer's semantic cardinal
|
|
66
|
+
* label and `flipped` is `true` when the dominant component is negative.
|
|
67
|
+
*
|
|
68
|
+
* Used so any code path that still reads `axis`/`flipped` (drawings export,
|
|
69
|
+
* BCF snapshots, view controls) gets the right orientation for a
|
|
70
|
+
* face-picked plane — taking the absolute value alone, as PR #581's
|
|
71
|
+
* original implementation did, inverted exports for the negative-X /
|
|
72
|
+
* negative-Z half-spaces (CodeRabbit P1 on #581).
|
|
73
|
+
*/
|
|
74
|
+
export function nearestCardinalAxis(normal) {
|
|
75
|
+
const ax = Math.abs(normal[0]);
|
|
76
|
+
const ay = Math.abs(normal[1]);
|
|
77
|
+
const az = Math.abs(normal[2]);
|
|
78
|
+
if (ay >= ax && ay >= az) {
|
|
79
|
+
return { axis: 'down', flipped: normal[1] < 0 };
|
|
80
|
+
}
|
|
81
|
+
if (ax >= az) {
|
|
82
|
+
return { axis: 'side', flipped: normal[0] < 0 };
|
|
83
|
+
}
|
|
84
|
+
return { axis: 'front', flipped: normal[2] < 0 };
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=section-plane-basis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-plane-basis.js","sourceRoot":"","sources":["../src/section-plane-basis.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoC/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAErB,qEAAqE;IACrE,mEAAmE;IACnE,mEAAmE;IACnE,gEAAgE;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,CAAC;IAEf,oCAAoC;IACpC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAChB,+DAA+D;QAC/D,mDAAmD;QACnD,EAAE,GAAG,CAAC,CAAC;QAAC,EAAE,GAAG,CAAC,CAAC;QAAC,EAAE,GAAG,CAAC,CAAC;QACvB,IAAI,GAAG,CAAC,CAAC;IACX,CAAC;IACD,EAAE,IAAI,IAAI,CAAC;IAAC,EAAE,IAAI,IAAI,CAAC;IAAC,EAAE,IAAI,IAAI,CAAC;IAEnC,kEAAkE;IAClE,+DAA+D;IAC/D,wDAAwD;IACxD,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACzC,EAAE,IAAI,IAAI,CAAC;IAAC,EAAE,IAAI,IAAI,CAAC;IAAC,EAAE,IAAI,IAAI,CAAC;IAEnC,OAAO;QACL,OAAO,EAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACvB,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAiB;IAEjB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AACnD,CAAC"}
|
package/dist/section-plane.d.ts
CHANGED
|
@@ -18,6 +18,15 @@ export interface SectionPlaneRenderOptions {
|
|
|
18
18
|
isPreview?: boolean;
|
|
19
19
|
min?: number;
|
|
20
20
|
max?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Optional explicit plane normal (unit vector) and signed distance from
|
|
23
|
+
* origin. When both are provided, the gizmo is placed on that world-space
|
|
24
|
+
* plane and its quad is built from the deterministic in-plane basis
|
|
25
|
+
* (`planeBasis(normal)`) shared with the cap renderer — `axis` /
|
|
26
|
+
* `position` / `min` / `max` are ignored on this path.
|
|
27
|
+
*/
|
|
28
|
+
normal?: [number, number, number];
|
|
29
|
+
distance?: number;
|
|
21
30
|
}
|
|
22
31
|
export declare class SectionPlaneRenderer {
|
|
23
32
|
private device;
|
|
@@ -37,6 +46,15 @@ export declare class SectionPlaneRenderer {
|
|
|
37
46
|
*/
|
|
38
47
|
draw(pass: GPURenderPassEncoder, options: SectionPlaneRenderOptions): void;
|
|
39
48
|
private calculatePlaneVertices;
|
|
49
|
+
/**
|
|
50
|
+
* Build a 6-vertex (two-triangle) preview quad for an arbitrary plane
|
|
51
|
+
* defined by `dot(p, normal) = distance`. The quad is centred on the
|
|
52
|
+
* foot of the perpendicular from the bounds centre, oriented via
|
|
53
|
+
* `planeBasis(normal)` (the same basis the cap renderer uses), and
|
|
54
|
+
* sized from the bounds' diagonal so it stays visible no matter how
|
|
55
|
+
* the plane is tilted relative to the model.
|
|
56
|
+
*/
|
|
57
|
+
private calculatePlaneVerticesFromNormal;
|
|
40
58
|
/**
|
|
41
59
|
* Destroy all GPU resources held by this section-plane renderer.
|
|
42
60
|
* After calling this method the renderer is no longer usable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-plane.d.ts","sourceRoot":"","sources":["../src/section-plane.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"section-plane.d.ts","sourceRoot":"","sources":["../src/section-plane.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,GAAG,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1C,CAAC;IACF,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,GAAE,MAAU;IAMhF,OAAO,CAAC,IAAI;IA4MZ;;OAEG;IACH,IAAI,CACF,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,yBAAyB,GACjC,IAAI;IA8DP,OAAO,CAAC,sBAAsB;IAiF9B;;;;;;;OAOG;IACH,OAAO,CAAC,gCAAgC;IAoExC;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAOhB"}
|
package/dist/section-plane.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Section plane renderer - renders a visible plane at the section cut location
|
|
6
6
|
*/
|
|
7
7
|
import { PIPELINE_CONSTANTS } from './constants.js';
|
|
8
|
+
import { planeBasis } from './section-plane-basis.js';
|
|
8
9
|
export class SectionPlaneRenderer {
|
|
9
10
|
device;
|
|
10
11
|
bindGroupLayout = null; // Shared layout for both pipelines
|
|
@@ -223,20 +224,33 @@ export class SectionPlaneRenderer {
|
|
|
223
224
|
if (!this.previewPipeline || !this.cutPipeline || !this.vertexBuffer || !this.uniformBuffer || !this.bindGroup) {
|
|
224
225
|
return;
|
|
225
226
|
}
|
|
226
|
-
const { axis, position, bounds, viewProj, isPreview, min: minOverride, max: maxOverride } = options;
|
|
227
|
+
const { axis, position, bounds, viewProj, isPreview, min: minOverride, max: maxOverride, normal, distance } = options;
|
|
227
228
|
// Only draw section plane in preview mode - hide it during active cutting
|
|
228
229
|
if (!isPreview) {
|
|
229
230
|
return;
|
|
230
231
|
}
|
|
231
|
-
|
|
232
|
-
|
|
232
|
+
const hasExplicitPlane = normal !== undefined &&
|
|
233
|
+
distance !== undefined &&
|
|
234
|
+
Number.isFinite(distance);
|
|
235
|
+
// Calculate plane vertices based on axis and bounds, OR from an
|
|
236
|
+
// arbitrary normal+distance when face-pick has provided one.
|
|
237
|
+
const vertices = hasExplicitPlane
|
|
238
|
+
? this.calculatePlaneVerticesFromNormal(normal, distance, bounds)
|
|
239
|
+
: this.calculatePlaneVertices(axis, position, bounds, 0, minOverride, maxOverride);
|
|
233
240
|
this.device.queue.writeBuffer(this.vertexBuffer, 0, vertices);
|
|
234
241
|
// Update uniforms
|
|
235
242
|
const uniforms = new Float32Array(20);
|
|
236
243
|
uniforms.set(viewProj, 0);
|
|
237
|
-
// Axis-specific colors for better identification
|
|
238
|
-
// down (Y) = light blue, front (Z) = green, side (X) = orange
|
|
239
|
-
|
|
244
|
+
// Axis-specific colors for better identification.
|
|
245
|
+
// down (Y) = light blue, front (Z) = green, side (X) = orange.
|
|
246
|
+
// Custom (face-picked) planes pick up a violet that won't be confused
|
|
247
|
+
// with any cardinal preset.
|
|
248
|
+
if (hasExplicitPlane) {
|
|
249
|
+
uniforms[16] = 0.612; // R - #9C6BDE (violet)
|
|
250
|
+
uniforms[17] = 0.420; // G
|
|
251
|
+
uniforms[18] = 0.871; // B
|
|
252
|
+
}
|
|
253
|
+
else if (axis === 'down') {
|
|
240
254
|
uniforms[16] = 0.012; // R - #03A9F4
|
|
241
255
|
uniforms[17] = 0.663; // G
|
|
242
256
|
uniforms[18] = 0.957; // B
|
|
@@ -331,6 +345,75 @@ export class SectionPlaneRenderer {
|
|
|
331
345
|
}
|
|
332
346
|
return new Float32Array(vertices);
|
|
333
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Build a 6-vertex (two-triangle) preview quad for an arbitrary plane
|
|
350
|
+
* defined by `dot(p, normal) = distance`. The quad is centred on the
|
|
351
|
+
* foot of the perpendicular from the bounds centre, oriented via
|
|
352
|
+
* `planeBasis(normal)` (the same basis the cap renderer uses), and
|
|
353
|
+
* sized from the bounds' diagonal so it stays visible no matter how
|
|
354
|
+
* the plane is tilted relative to the model.
|
|
355
|
+
*/
|
|
356
|
+
calculatePlaneVerticesFromNormal(normal, distance, bounds) {
|
|
357
|
+
const { min, max } = bounds;
|
|
358
|
+
// Defensive renormalisation: callers may pass mesh face normals that
|
|
359
|
+
// have drifted from unit length by quantisation.
|
|
360
|
+
let nx = normal[0];
|
|
361
|
+
let ny = normal[1];
|
|
362
|
+
let nz = normal[2];
|
|
363
|
+
const nlen = Math.hypot(nx, ny, nz);
|
|
364
|
+
if (nlen < 1e-6) {
|
|
365
|
+
// Degenerate; emit a zeroed buffer so nothing is drawn rather than
|
|
366
|
+
// poisoning the GPU with NaN positions.
|
|
367
|
+
return new Float32Array(30);
|
|
368
|
+
}
|
|
369
|
+
nx /= nlen;
|
|
370
|
+
ny /= nlen;
|
|
371
|
+
nz /= nlen;
|
|
372
|
+
const d = distance / nlen;
|
|
373
|
+
// Foot of the perpendicular from the bounds centre to the plane —
|
|
374
|
+
// anchors the gizmo near the model even when the plane equation
|
|
375
|
+
// would otherwise place the origin foot far away.
|
|
376
|
+
const cx = (min.x + max.x) / 2;
|
|
377
|
+
const cy = (min.y + max.y) / 2;
|
|
378
|
+
const cz = (min.z + max.z) / 2;
|
|
379
|
+
const s = d - (cx * nx + cy * ny + cz * nz);
|
|
380
|
+
const px = cx + nx * s;
|
|
381
|
+
const py = cy + ny * s;
|
|
382
|
+
const pz = cz + nz * s;
|
|
383
|
+
// In-plane basis from the shared helper — the cap renderer uses the
|
|
384
|
+
// same one, so the gizmo grid aligns with the cap hatch axes.
|
|
385
|
+
const { tangent, bitangent } = planeBasis([nx, ny, nz]);
|
|
386
|
+
const ux = tangent[0], uy = tangent[1], uz = tangent[2];
|
|
387
|
+
const vx = bitangent[0], vy = bitangent[1], vz = bitangent[2];
|
|
388
|
+
// 10% padding past the bounds diagonal — same visual scale as the
|
|
389
|
+
// cardinal-axis quad's `(1 + basePadding)` factor.
|
|
390
|
+
const dx = max.x - min.x;
|
|
391
|
+
const dy = max.y - min.y;
|
|
392
|
+
const dz = max.z - min.z;
|
|
393
|
+
const half = 0.55 * Math.hypot(dx, dy, dz);
|
|
394
|
+
const p0x = px - ux * half - vx * half;
|
|
395
|
+
const p0y = py - uy * half - vy * half;
|
|
396
|
+
const p0z = pz - uz * half - vz * half;
|
|
397
|
+
const p1x = px + ux * half - vx * half;
|
|
398
|
+
const p1y = py + uy * half - vy * half;
|
|
399
|
+
const p1z = pz + uz * half - vz * half;
|
|
400
|
+
const p2x = px + ux * half + vx * half;
|
|
401
|
+
const p2y = py + uy * half + vy * half;
|
|
402
|
+
const p2z = pz + uz * half + vz * half;
|
|
403
|
+
const p3x = px - ux * half + vx * half;
|
|
404
|
+
const p3y = py - uy * half + vy * half;
|
|
405
|
+
const p3z = pz - uz * half + vz * half;
|
|
406
|
+
return new Float32Array([
|
|
407
|
+
// Triangle 1
|
|
408
|
+
p0x, p0y, p0z, 0, 0,
|
|
409
|
+
p1x, p1y, p1z, 1, 0,
|
|
410
|
+
p2x, p2y, p2z, 1, 1,
|
|
411
|
+
// Triangle 2
|
|
412
|
+
p0x, p0y, p0z, 0, 0,
|
|
413
|
+
p2x, p2y, p2z, 1, 1,
|
|
414
|
+
p3x, p3y, p3z, 0, 1,
|
|
415
|
+
]);
|
|
416
|
+
}
|
|
334
417
|
/**
|
|
335
418
|
* Destroy all GPU resources held by this section-plane renderer.
|
|
336
419
|
* After calling this method the renderer is no longer usable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-plane.js","sourceRoot":"","sources":["../src/section-plane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"section-plane.js","sourceRoot":"","sources":["../src/section-plane.ts"],"names":[],"mappings":"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"}
|