@ifc-lite/renderer 3.1.0 → 4.2.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.md +22 -0
- package/dist/aabb-edges.d.ts +10 -0
- package/dist/aabb-edges.d.ts.map +1 -1
- package/dist/aabb-edges.js +13 -0
- package/dist/aabb-edges.js.map +1 -1
- package/dist/ao-params.d.ts +85 -0
- package/dist/ao-params.d.ts.map +1 -0
- package/dist/ao-params.js +109 -0
- package/dist/ao-params.js.map +1 -0
- package/dist/ao-pass.d.ts +47 -0
- package/dist/ao-pass.d.ts.map +1 -0
- package/dist/ao-pass.js +157 -0
- package/dist/ao-pass.js.map +1 -0
- package/dist/appearance-preview.d.ts +2 -0
- package/dist/appearance-preview.d.ts.map +1 -1
- package/dist/appearance-preview.js +4 -0
- package/dist/appearance-preview.js.map +1 -1
- package/dist/camera-animation-immediate.d.ts +5 -0
- package/dist/camera-animation-immediate.d.ts.map +1 -0
- package/dist/camera-animation-immediate.js +16 -0
- package/dist/camera-animation-immediate.js.map +1 -0
- package/dist/camera-animation.d.ts +3 -9
- package/dist/camera-animation.d.ts.map +1 -1
- package/dist/camera-animation.js +14 -9
- package/dist/camera-animation.js.map +1 -1
- package/dist/camera-matrices.d.ts +3 -0
- package/dist/camera-matrices.d.ts.map +1 -1
- package/dist/camera-matrices.js +12 -1
- package/dist/camera-matrices.js.map +1 -1
- package/dist/camera-orientation.d.ts +62 -0
- package/dist/camera-orientation.d.ts.map +1 -0
- package/dist/camera-orientation.js +155 -0
- package/dist/camera-orientation.js.map +1 -0
- package/dist/camera-projection.d.ts +3 -1
- package/dist/camera-projection.d.ts.map +1 -1
- package/dist/camera-projection.js +26 -20
- package/dist/camera-projection.js.map +1 -1
- package/dist/camera-surface-zoom.d.ts +32 -0
- package/dist/camera-surface-zoom.d.ts.map +1 -0
- package/dist/camera-surface-zoom.js +37 -0
- package/dist/camera-surface-zoom.js.map +1 -0
- package/dist/camera.d.ts +32 -61
- package/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +71 -167
- package/dist/camera.js.map +1 -1
- package/dist/clash-solid-pipeline.d.ts +9 -3
- package/dist/clash-solid-pipeline.d.ts.map +1 -1
- package/dist/clash-solid-pipeline.js +31 -8
- package/dist/clash-solid-pipeline.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -3
- package/dist/constants.js.map +1 -1
- package/dist/depth-reconstruct.d.ts +43 -0
- package/dist/depth-reconstruct.d.ts.map +1 -0
- package/dist/depth-reconstruct.js +35 -0
- package/dist/depth-reconstruct.js.map +1 -0
- package/dist/device-recovery.d.ts +60 -0
- package/dist/device-recovery.d.ts.map +1 -0
- package/dist/device-recovery.js +153 -0
- package/dist/device-recovery.js.map +1 -0
- package/dist/device.d.ts +2 -0
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +13 -1
- package/dist/device.js.map +1 -1
- package/dist/environment.d.ts +26 -15
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +24 -13
- package/dist/environment.js.map +1 -1
- package/dist/federation-registry.d.ts +16 -0
- package/dist/federation-registry.d.ts.map +1 -1
- package/dist/federation-registry.js +80 -9
- package/dist/federation-registry.js.map +1 -1
- package/dist/gpu-static-upload.d.ts +39 -0
- package/dist/gpu-static-upload.d.ts.map +1 -0
- package/dist/gpu-static-upload.js +70 -0
- package/dist/gpu-static-upload.js.map +1 -0
- package/dist/gpu-upload-guard.d.ts +95 -0
- package/dist/gpu-upload-guard.d.ts.map +1 -0
- package/dist/gpu-upload-guard.js +88 -0
- package/dist/gpu-upload-guard.js.map +1 -0
- package/dist/index.d.ts +71 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +340 -375
- package/dist/index.js.map +1 -1
- package/dist/instanced-override-color.d.ts +8 -0
- package/dist/instanced-override-color.d.ts.map +1 -1
- package/dist/instanced-override-color.js +10 -0
- package/dist/instanced-override-color.js.map +1 -1
- package/dist/instanced-render.d.ts +22 -2
- package/dist/instanced-render.d.ts.map +1 -1
- package/dist/instanced-render.js +47 -10
- package/dist/instanced-render.js.map +1 -1
- package/dist/instanced-rte.d.ts +17 -0
- package/dist/instanced-rte.d.ts.map +1 -0
- package/dist/instanced-rte.js +32 -0
- package/dist/instanced-rte.js.map +1 -0
- package/dist/merged-mesh-extract.d.ts.map +1 -1
- package/dist/merged-mesh-extract.js +5 -0
- package/dist/merged-mesh-extract.js.map +1 -1
- package/dist/mesh-rte-uniforms.d.ts +46 -0
- package/dist/mesh-rte-uniforms.d.ts.map +1 -0
- package/dist/mesh-rte-uniforms.js +59 -0
- package/dist/mesh-rte-uniforms.js.map +1 -0
- package/dist/model-bounds-tracker.d.ts +7 -0
- package/dist/model-bounds-tracker.d.ts.map +1 -1
- package/dist/model-bounds-tracker.js +16 -5
- package/dist/model-bounds-tracker.js.map +1 -1
- package/dist/model-translation.d.ts +40 -2
- package/dist/model-translation.d.ts.map +1 -1
- package/dist/model-translation.js +152 -17
- package/dist/model-translation.js.map +1 -1
- package/dist/pick-rte-snapshot.d.ts +7 -0
- package/dist/pick-rte-snapshot.d.ts.map +1 -0
- package/dist/pick-rte-snapshot.js +15 -0
- package/dist/pick-rte-snapshot.js.map +1 -0
- package/dist/pick-types.d.ts +17 -0
- package/dist/pick-types.d.ts.map +1 -0
- package/dist/pick-types.js +5 -0
- package/dist/pick-types.js.map +1 -0
- package/dist/pick-uniforms.d.ts +6 -0
- package/dist/pick-uniforms.d.ts.map +1 -1
- package/dist/pick-uniforms.js +22 -18
- package/dist/pick-uniforms.js.map +1 -1
- package/dist/pick-world-position.d.ts +18 -0
- package/dist/pick-world-position.d.ts.map +1 -0
- package/dist/pick-world-position.js +21 -0
- package/dist/pick-world-position.js.map +1 -0
- package/dist/picker-readbacks.d.ts +6 -0
- package/dist/picker-readbacks.d.ts.map +1 -0
- package/dist/picker-readbacks.js +20 -0
- package/dist/picker-readbacks.js.map +1 -0
- package/dist/picker-rte-uniforms.d.ts +6 -0
- package/dist/picker-rte-uniforms.d.ts.map +1 -0
- package/dist/picker-rte-uniforms.js +41 -0
- package/dist/picker-rte-uniforms.js.map +1 -0
- package/dist/picker.d.ts +6 -7
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +88 -115
- package/dist/picker.js.map +1 -1
- package/dist/picking-manager.d.ts +10 -1
- package/dist/picking-manager.d.ts.map +1 -1
- package/dist/picking-manager.js +57 -21
- package/dist/picking-manager.js.map +1 -1
- package/dist/pipeline.d.ts +1 -7
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +17 -20
- package/dist/pipeline.js.map +1 -1
- package/dist/point-picker.d.ts +5 -1
- package/dist/point-picker.d.ts.map +1 -1
- package/dist/point-picker.js +49 -9
- package/dist/point-picker.js.map +1 -1
- package/dist/pointcloud/point-cloud-handle-ids.d.ts +22 -0
- package/dist/pointcloud/point-cloud-handle-ids.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-handle-ids.js +31 -0
- package/dist/pointcloud/point-cloud-handle-ids.js.map +1 -0
- package/dist/pointcloud/point-cloud-node.d.ts +14 -6
- package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-node.js.map +1 -1
- package/dist/pointcloud/point-cloud-pick-sources.d.ts +47 -0
- package/dist/pointcloud/point-cloud-pick-sources.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-pick-sources.js +32 -0
- package/dist/pointcloud/point-cloud-pick-sources.js.map +1 -0
- package/dist/pointcloud/point-cloud-placement.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-placement.js +20 -5
- package/dist/pointcloud/point-cloud-placement.js.map +1 -1
- package/dist/pointcloud/point-cloud-ray-transform.d.ts +78 -4
- package/dist/pointcloud/point-cloud-ray-transform.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-ray-transform.js +31 -84
- package/dist/pointcloud/point-cloud-ray-transform.js.map +1 -1
- package/dist/pointcloud/point-cloud-renderer.d.ts +21 -19
- package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-renderer.js +46 -52
- package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
- package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts +44 -0
- package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-stream-lifecycle.js +44 -0
- package/dist/pointcloud/point-cloud-stream-lifecycle.js.map +1 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts +5 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-uniforms.js +55 -44
- package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
- package/dist/pointcloud/point-cloud-visibility.d.ts +10 -0
- package/dist/pointcloud/point-cloud-visibility.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-visibility.js +18 -0
- package/dist/pointcloud/point-cloud-visibility.js.map +1 -0
- package/dist/pointcloud/point-pipeline.d.ts +4 -9
- package/dist/pointcloud/point-pipeline.d.ts.map +1 -1
- package/dist/pointcloud/point-pipeline.js +4 -9
- package/dist/pointcloud/point-pipeline.js.map +1 -1
- package/dist/pointcloud/point-shader.wgsl.d.ts +1 -21
- package/dist/pointcloud/point-shader.wgsl.d.ts.map +1 -1
- package/dist/pointcloud/point-shader.wgsl.js +25 -5
- package/dist/pointcloud/point-shader.wgsl.js.map +1 -1
- package/dist/post-pass-chain.d.ts +38 -0
- package/dist/post-pass-chain.d.ts.map +1 -0
- package/dist/post-pass-chain.js +99 -0
- package/dist/post-pass-chain.js.map +1 -0
- package/dist/post-processor.d.ts +12 -26
- package/dist/post-processor.d.ts.map +1 -1
- package/dist/post-processor.js +14 -72
- package/dist/post-processor.js.map +1 -1
- package/dist/raycast-engine.d.ts +7 -5
- package/dist/raycast-engine.d.ts.map +1 -1
- package/dist/raycast-engine.js +17 -20
- package/dist/raycast-engine.js.map +1 -1
- package/dist/raycast-point-cloud-query.d.ts +1 -1
- package/dist/raycast-point-cloud-query.d.ts.map +1 -1
- package/dist/reference-image-pipeline.d.ts +1 -1
- package/dist/reference-image-pipeline.d.ts.map +1 -1
- package/dist/reference-image-pipeline.js +25 -7
- package/dist/reference-image-pipeline.js.map +1 -1
- package/dist/reference-images.d.ts +3 -1
- package/dist/reference-images.d.ts.map +1 -1
- package/dist/reference-images.js +15 -5
- package/dist/reference-images.js.map +1 -1
- package/dist/relative-to-eye.d.ts +146 -0
- package/dist/relative-to-eye.d.ts.map +1 -0
- package/dist/relative-to-eye.js +326 -0
- package/dist/relative-to-eye.js.map +1 -0
- package/dist/render-section-draw.d.ts +11 -0
- package/dist/render-section-draw.d.ts.map +1 -1
- package/dist/render-section-draw.js +6 -3
- package/dist/render-section-draw.js.map +1 -1
- package/dist/renderer-color-readback.d.ts +50 -0
- package/dist/renderer-color-readback.d.ts.map +1 -0
- package/dist/renderer-color-readback.js +145 -0
- package/dist/renderer-color-readback.js.map +1 -0
- package/dist/renderer-overlays.d.ts +15 -3
- package/dist/renderer-overlays.d.ts.map +1 -1
- package/dist/renderer-overlays.js +46 -20
- package/dist/renderer-overlays.js.map +1 -1
- package/dist/renderer-screenshot.d.ts +4 -0
- package/dist/renderer-screenshot.d.ts.map +1 -0
- package/dist/renderer-screenshot.js +17 -0
- package/dist/renderer-screenshot.js.map +1 -0
- package/dist/renderer-symbolic-overlays.d.ts +5 -2
- package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
- package/dist/renderer-symbolic-overlays.js +36 -13
- package/dist/renderer-symbolic-overlays.js.map +1 -1
- package/dist/renderer-viewport.d.ts +45 -0
- package/dist/renderer-viewport.d.ts.map +1 -1
- package/dist/renderer-viewport.js +44 -0
- package/dist/renderer-viewport.js.map +1 -1
- package/dist/rte-clip-space.d.ts +12 -0
- package/dist/rte-clip-space.d.ts.map +1 -0
- package/dist/rte-clip-space.js +22 -0
- package/dist/rte-clip-space.js.map +1 -0
- package/dist/rte-frustum.d.ts +24 -0
- package/dist/rte-frustum.d.ts.map +1 -0
- package/dist/rte-frustum.js +45 -0
- package/dist/rte-frustum.js.map +1 -0
- package/dist/scene-appearance-preview.d.ts +2 -0
- package/dist/scene-appearance-preview.d.ts.map +1 -1
- package/dist/scene-appearance-preview.js +9 -0
- package/dist/scene-appearance-preview.js.map +1 -1
- package/dist/scene-authored-owner.d.ts +10 -0
- package/dist/scene-authored-owner.d.ts.map +1 -1
- package/dist/scene-authored-owner.js +44 -5
- package/dist/scene-authored-owner.js.map +1 -1
- package/dist/scene-batch-rebuild.d.ts +18 -0
- package/dist/scene-batch-rebuild.d.ts.map +1 -0
- package/dist/scene-batch-rebuild.js +49 -0
- package/dist/scene-batch-rebuild.js.map +1 -0
- package/dist/scene-batch-upload.d.ts +4 -1
- package/dist/scene-batch-upload.d.ts.map +1 -1
- package/dist/scene-batch-upload.js +31 -38
- package/dist/scene-batch-upload.js.map +1 -1
- package/dist/scene-bucket-routing.d.ts +21 -0
- package/dist/scene-bucket-routing.d.ts.map +1 -0
- package/dist/scene-bucket-routing.js +44 -0
- package/dist/scene-bucket-routing.js.map +1 -0
- package/dist/scene-contents.d.ts +8 -0
- package/dist/scene-contents.d.ts.map +1 -1
- package/dist/scene-derived-mesh-provenance.d.ts +13 -0
- package/dist/scene-derived-mesh-provenance.d.ts.map +1 -0
- package/dist/scene-derived-mesh-provenance.js +30 -0
- package/dist/scene-derived-mesh-provenance.js.map +1 -0
- package/dist/scene-device-recovery.d.ts +103 -0
- package/dist/scene-device-recovery.d.ts.map +1 -0
- package/dist/scene-device-recovery.js +295 -0
- package/dist/scene-device-recovery.js.map +1 -0
- package/dist/scene-finalize-regroup.d.ts +54 -0
- package/dist/scene-finalize-regroup.d.ts.map +1 -0
- package/dist/scene-finalize-regroup.js +136 -0
- package/dist/scene-finalize-regroup.js.map +1 -0
- package/dist/scene-geometry.d.ts +1 -0
- package/dist/scene-geometry.d.ts.map +1 -1
- package/dist/scene-geometry.js +3 -23
- package/dist/scene-geometry.js.map +1 -1
- package/dist/scene-instance-bounds.d.ts +12 -0
- package/dist/scene-instance-bounds.d.ts.map +1 -0
- package/dist/scene-instance-bounds.js +48 -0
- package/dist/scene-instance-bounds.js.map +1 -0
- package/dist/scene-instance-materialization.d.ts +4 -1
- package/dist/scene-instance-materialization.d.ts.map +1 -1
- package/dist/scene-instance-materialization.js +21 -6
- package/dist/scene-instance-materialization.js.map +1 -1
- package/dist/scene-instance-translation.d.ts +17 -0
- package/dist/scene-instance-translation.d.ts.map +1 -0
- package/dist/scene-instance-translation.js +50 -0
- package/dist/scene-instance-translation.js.map +1 -0
- package/dist/scene-instance-types.d.ts +6 -0
- package/dist/scene-instance-types.d.ts.map +1 -1
- package/dist/scene-model-translation.d.ts +13 -1
- package/dist/scene-model-translation.d.ts.map +1 -1
- package/dist/scene-model-translation.js +23 -1
- package/dist/scene-model-translation.js.map +1 -1
- package/dist/scene-precision.d.ts +16 -0
- package/dist/scene-precision.d.ts.map +1 -0
- package/dist/scene-precision.js +73 -0
- package/dist/scene-precision.js.map +1 -0
- package/dist/scene-rect-select.d.ts +11 -1
- package/dist/scene-rect-select.d.ts.map +1 -1
- package/dist/scene-rect-select.js +7 -4
- package/dist/scene-rect-select.js.map +1 -1
- package/dist/scene.d.ts +42 -39
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +258 -375
- package/dist/scene.js.map +1 -1
- package/dist/section-2d-lift.d.ts +10 -2
- package/dist/section-2d-lift.d.ts.map +1 -1
- package/dist/section-2d-lift.js +14 -6
- package/dist/section-2d-lift.js.map +1 -1
- package/dist/section-2d-line-buffer.d.ts +12 -4
- package/dist/section-2d-line-buffer.d.ts.map +1 -1
- package/dist/section-2d-line-buffer.js +59 -33
- package/dist/section-2d-line-buffer.js.map +1 -1
- package/dist/section-2d-overlay.d.ts +18 -72
- package/dist/section-2d-overlay.d.ts.map +1 -1
- package/dist/section-2d-overlay.js +72 -103
- package/dist/section-2d-overlay.js.map +1 -1
- package/dist/section-2d-types.d.ts +38 -0
- package/dist/section-2d-types.d.ts.map +1 -0
- package/dist/section-2d-types.js +6 -0
- package/dist/section-2d-types.js.map +1 -0
- package/dist/section-cap-pipelines.d.ts +6 -0
- package/dist/section-cap-pipelines.d.ts.map +1 -0
- package/dist/section-cap-pipelines.js +87 -0
- package/dist/section-cap-pipelines.js.map +1 -0
- package/dist/section-plane-geometry.d.ts +24 -0
- package/dist/section-plane-geometry.d.ts.map +1 -0
- package/dist/section-plane-geometry.js +93 -0
- package/dist/section-plane-geometry.js.map +1 -0
- package/dist/section-plane.d.ts +23 -24
- package/dist/section-plane.d.ts.map +1 -1
- package/dist/section-plane.js +58 -174
- package/dist/section-plane.js.map +1 -1
- package/dist/shaders/ao.wgsl.d.ts +2 -0
- package/dist/shaders/ao.wgsl.d.ts.map +1 -0
- package/dist/shaders/ao.wgsl.js +234 -0
- package/dist/shaders/ao.wgsl.js.map +1 -0
- package/dist/shaders/color-transfer.wgsl.d.ts +26 -0
- package/dist/shaders/color-transfer.wgsl.d.ts.map +1 -0
- package/dist/shaders/color-transfer.wgsl.js +53 -0
- package/dist/shaders/color-transfer.wgsl.js.map +1 -0
- package/dist/shaders/depth-reconstruct.wgsl.d.ts +16 -0
- package/dist/shaders/depth-reconstruct.wgsl.d.ts.map +1 -0
- package/dist/shaders/depth-reconstruct.wgsl.js +69 -0
- package/dist/shaders/depth-reconstruct.wgsl.js.map +1 -0
- package/dist/shaders/main-rte-shadow.wgsl.d.ts +4 -0
- package/dist/shaders/main-rte-shadow.wgsl.d.ts.map +1 -0
- package/dist/shaders/main-rte-shadow.wgsl.js +54 -0
- package/dist/shaders/main-rte-shadow.wgsl.js.map +1 -0
- package/dist/shaders/main.wgsl.d.ts +1 -6
- package/dist/shaders/main.wgsl.d.ts.map +1 -1
- package/dist/shaders/main.wgsl.js +110 -159
- package/dist/shaders/main.wgsl.js.map +1 -1
- package/dist/shaders/relative-to-eye.wgsl.d.ts +12 -0
- package/dist/shaders/relative-to-eye.wgsl.d.ts.map +1 -0
- package/dist/shaders/relative-to-eye.wgsl.js +40 -0
- package/dist/shaders/relative-to-eye.wgsl.js.map +1 -0
- package/dist/shaders/section-2d-overlay.wgsl.d.ts +28 -12
- package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
- package/dist/shaders/section-2d-overlay.wgsl.js +40 -13
- package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
- package/dist/shaders/shadow.wgsl.d.ts +1 -1
- package/dist/shaders/shadow.wgsl.d.ts.map +1 -1
- package/dist/shaders/shadow.wgsl.js +25 -7
- package/dist/shaders/shadow.wgsl.js.map +1 -1
- package/dist/shaders/sky.wgsl.d.ts +1 -11
- package/dist/shaders/sky.wgsl.d.ts.map +1 -1
- package/dist/shaders/sky.wgsl.js +17 -19
- package/dist/shaders/sky.wgsl.js.map +1 -1
- package/dist/shaders/symbolic-overlay.wgsl.d.ts +2 -9
- package/dist/shaders/symbolic-overlay.wgsl.d.ts.map +1 -1
- package/dist/shaders/symbolic-overlay.wgsl.js +88 -17
- package/dist/shaders/symbolic-overlay.wgsl.js.map +1 -1
- package/dist/shaders/textured.wgsl.d.ts.map +1 -1
- package/dist/shaders/textured.wgsl.js +11 -9
- package/dist/shaders/textured.wgsl.js.map +1 -1
- package/dist/shadow-light-matrix.d.ts +7 -0
- package/dist/shadow-light-matrix.d.ts.map +1 -1
- package/dist/shadow-light-matrix.js +11 -0
- package/dist/shadow-light-matrix.js.map +1 -1
- package/dist/shadow-occluder-batches.d.ts +10 -0
- package/dist/shadow-occluder-batches.d.ts.map +1 -0
- package/dist/shadow-occluder-batches.js +39 -0
- package/dist/shadow-occluder-batches.js.map +1 -0
- package/dist/shadow-occluders.d.ts.map +1 -1
- package/dist/shadow-occluders.js +4 -0
- package/dist/shadow-occluders.js.map +1 -1
- package/dist/shadow-pass.d.ts +5 -51
- package/dist/shadow-pass.d.ts.map +1 -1
- package/dist/shadow-pass.js +49 -45
- package/dist/shadow-pass.js.map +1 -1
- package/dist/shadow-types.d.ts +39 -0
- package/dist/shadow-types.d.ts.map +1 -0
- package/dist/shadow-types.js +15 -0
- package/dist/shadow-types.js.map +1 -0
- package/dist/symbolic-overlay-geometry.d.ts +7 -0
- package/dist/symbolic-overlay-geometry.d.ts.map +1 -0
- package/dist/symbolic-overlay-geometry.js +43 -0
- package/dist/symbolic-overlay-geometry.js.map +1 -0
- package/dist/symbolic-overlay-pipelines.d.ts +24 -36
- package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
- package/dist/symbolic-overlay-pipelines.js +175 -182
- package/dist/symbolic-overlay-pipelines.js.map +1 -1
- package/dist/symbolic-text-atlas.d.ts +21 -0
- package/dist/symbolic-text-atlas.d.ts.map +1 -1
- package/dist/symbolic-text-atlas.js +29 -1
- package/dist/symbolic-text-atlas.js.map +1 -1
- package/dist/types.d.ts +20 -26
- package/dist/types.d.ts.map +1 -1
- package/dist/visual-enhancement.d.ts +23 -1
- package/dist/visual-enhancement.d.ts.map +1 -1
- package/dist/visual-enhancement.js +38 -12
- package/dist/visual-enhancement.js.map +1 -1
- package/package.json +3 -3
package/dist/section-2d-lift.js
CHANGED
|
@@ -84,7 +84,13 @@ export function createSectionLift(axis, planePosition, flipped = false, customPl
|
|
|
84
84
|
* Returns `null` when nothing survives (no polygon had three usable points),
|
|
85
85
|
* so the caller can skip buffer creation entirely.
|
|
86
86
|
*/
|
|
87
|
-
export function buildCapFillGeometry(polygons, lift
|
|
87
|
+
export function buildCapFillGeometry(polygons, lift,
|
|
88
|
+
/**
|
|
89
|
+
* Canonical f64 plane anchor. Supplying it makes this builder narrow only
|
|
90
|
+
* plane-local residuals; callers that omit it retain the legacy world-f32
|
|
91
|
+
* representation.
|
|
92
|
+
*/
|
|
93
|
+
origin) {
|
|
88
94
|
const fillVertices = [];
|
|
89
95
|
const fillIndices = [];
|
|
90
96
|
let vertexOffset = 0;
|
|
@@ -111,7 +117,7 @@ export function buildCapFillGeometry(polygons, lift) {
|
|
|
111
117
|
const baseVertex = vertexOffset;
|
|
112
118
|
for (const pt of capPoints) {
|
|
113
119
|
const [x3d, y3d, z3d] = lift(pt.x, pt.z);
|
|
114
|
-
fillVertices.push(x3d, y3d, z3d, color[0], color[1], color[2], color[3]);
|
|
120
|
+
fillVertices.push(origin ? x3d - origin[0] : x3d, origin ? y3d - origin[1] : y3d, origin ? z3d - origin[2] : z3d, color[0], color[1], color[2], color[3]);
|
|
115
121
|
vertexOffset++;
|
|
116
122
|
}
|
|
117
123
|
for (const [a, b, c] of tris) {
|
|
@@ -132,7 +138,9 @@ export function buildCapFillGeometry(polygons, lift) {
|
|
|
132
138
|
*
|
|
133
139
|
* Returns `null` when there is nothing to draw.
|
|
134
140
|
*/
|
|
135
|
-
export function buildDrawingOutlineVertices(polygons, lines, lift
|
|
141
|
+
export function buildDrawingOutlineVertices(polygons, lines, lift,
|
|
142
|
+
/** See {@link buildCapFillGeometry}; applies to every in-plane axis too. */
|
|
143
|
+
origin) {
|
|
136
144
|
const lineVertices = [];
|
|
137
145
|
// Polygon outlines
|
|
138
146
|
for (const polygon of polygons) {
|
|
@@ -142,7 +150,7 @@ export function buildDrawingOutlineVertices(polygons, lines, lift) {
|
|
|
142
150
|
const p2 = outer[(i + 1) % outer.length];
|
|
143
151
|
const [x1, y1, z1] = lift(p1.x, p1.y);
|
|
144
152
|
const [x2, y2, z2] = lift(p2.x, p2.y);
|
|
145
|
-
lineVertices.push(x1, y1, z1, x2, y2, z2);
|
|
153
|
+
lineVertices.push(origin ? x1 - origin[0] : x1, origin ? y1 - origin[1] : y1, origin ? z1 - origin[2] : z1, origin ? x2 - origin[0] : x2, origin ? y2 - origin[1] : y2, origin ? z2 - origin[2] : z2);
|
|
146
154
|
}
|
|
147
155
|
// Hole outlines
|
|
148
156
|
for (const hole of polygon.polygon.holes) {
|
|
@@ -151,7 +159,7 @@ export function buildDrawingOutlineVertices(polygons, lines, lift) {
|
|
|
151
159
|
const p2 = hole[(i + 1) % hole.length];
|
|
152
160
|
const [x1, y1, z1] = lift(p1.x, p1.y);
|
|
153
161
|
const [x2, y2, z2] = lift(p2.x, p2.y);
|
|
154
|
-
lineVertices.push(x1, y1, z1, x2, y2, z2);
|
|
162
|
+
lineVertices.push(origin ? x1 - origin[0] : x1, origin ? y1 - origin[1] : y1, origin ? z1 - origin[2] : z1, origin ? x2 - origin[0] : x2, origin ? y2 - origin[1] : y2, origin ? z2 - origin[2] : z2);
|
|
155
163
|
}
|
|
156
164
|
}
|
|
157
165
|
}
|
|
@@ -159,7 +167,7 @@ export function buildDrawingOutlineVertices(polygons, lines, lift) {
|
|
|
159
167
|
for (const line of lines) {
|
|
160
168
|
const [x1, y1, z1] = lift(line.line.start.x, line.line.start.y);
|
|
161
169
|
const [x2, y2, z2] = lift(line.line.end.x, line.line.end.y);
|
|
162
|
-
lineVertices.push(x1, y1, z1, x2, y2, z2);
|
|
170
|
+
lineVertices.push(origin ? x1 - origin[0] : x1, origin ? y1 - origin[1] : y1, origin ? z1 - origin[2] : z1, origin ? x2 - origin[0] : x2, origin ? y2 - origin[1] : y2, origin ? z2 - origin[2] : z2);
|
|
163
171
|
}
|
|
164
172
|
if (lineVertices.length === 0)
|
|
165
173
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-lift.js","sourceRoot":"","sources":["../src/section-2d-lift.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAW,MAAM,uBAAuB,CAAC;AAgDlE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,GAAW,EACX,IAAiB,EACjB,aAAqB,EACrB,UAAmB,KAAK,EACxB,WAAgC;IAEhC,IAAI,WAAW,EAAE,CAAC;QAChB,4DAA4D;QAC5D,gEAAgE;QAChE,gEAAgE;QAChE,iEAAiE;QACjE,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;QAC7B,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;QAC9B,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;QAChC,OAAO;YACL,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;YAC9B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;YAC9B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;SAC/B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE/B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,EAAE,uCAAuC;YAClD,gDAAgD;YAChD,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QACjC,KAAK,OAAO,EAAE,uCAAuC;YACnD,gDAAgD;YAChD,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACjC,KAAK,MAAM,EAAE,yCAAyC;YACpD,gDAAgD;YAChD,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAiB,EACjB,aAAqB,EACrB,UAAmB,KAAK,EACxB,WAAgC;IAEhC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC5F,CAAC;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAiC,EACjC,IAAiB;
|
|
1
|
+
{"version":3,"file":"section-2d-lift.js","sourceRoot":"","sources":["../src/section-2d-lift.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,18 @@ export interface SectionLinePipelineResources {
|
|
|
7
7
|
/** Byte stride between the uniform slots in `uniformBuffer`. */
|
|
8
8
|
uniformStride: number;
|
|
9
9
|
}
|
|
10
|
+
/** Opt-in canonical overlay geometry. Legacy f32 world lines must not claim this precision. */
|
|
11
|
+
export interface AnchoredLineVertices {
|
|
12
|
+
localVertices: Float32Array;
|
|
13
|
+
origin: readonly [number, number, number];
|
|
14
|
+
}
|
|
15
|
+
/** Multiple independent RTE anchors for one logical overlay channel. */
|
|
16
|
+
export type PartitionedLineVertices = readonly AnchoredLineVertices[];
|
|
17
|
+
export type LineVertices = Float32Array | AnchoredLineVertices | PartitionedLineVertices;
|
|
18
|
+
export declare function lineVertexFloatCount(vertices: LineVertices): number;
|
|
10
19
|
export declare class WorldLineBuffer {
|
|
11
20
|
private readonly uniformSlot;
|
|
12
|
-
private
|
|
13
|
-
private count;
|
|
21
|
+
private partitions;
|
|
14
22
|
/**
|
|
15
23
|
* @param uniformSlot Index of this family's record in the shared uniform
|
|
16
24
|
* buffer. Every family needs its own: the six overlay draws are encoded
|
|
@@ -36,7 +44,7 @@ export declare class WorldLineBuffer {
|
|
|
36
44
|
* float from a flattener should cost the caller the incomplete tail segment,
|
|
37
45
|
* not the entire grid / DXF / annotation layer.
|
|
38
46
|
*/
|
|
39
|
-
upload(device: GPUDevice, vertices:
|
|
47
|
+
upload(device: GPUDevice, vertices: LineVertices): void;
|
|
40
48
|
/** Destroy the buffer and reset the count. Safe to call repeatedly. */
|
|
41
49
|
clear(): void;
|
|
42
50
|
has(): boolean;
|
|
@@ -53,6 +61,6 @@ export declare class WorldLineBuffer {
|
|
|
53
61
|
*
|
|
54
62
|
* No-ops when the buffer is empty, so callers do not need their own guard.
|
|
55
63
|
*/
|
|
56
|
-
draw(pass: GPURenderPassEncoder, resources: SectionLinePipelineResources, viewProj: Float32Array, color: readonly [number, number, number, number]): void;
|
|
64
|
+
draw(pass: GPURenderPassEncoder, resources: SectionLinePipelineResources, viewProj: Float32Array, color: readonly [number, number, number, number], rteViewProj?: Float32Array, camera?: readonly [number, number, number]): void;
|
|
57
65
|
}
|
|
58
66
|
//# sourceMappingURL=section-2d-line-buffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-line-buffer.d.ts","sourceRoot":"","sources":["../src/section-2d-line-buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"section-2d-line-buffer.d.ts","sourceRoot":"","sources":["../src/section-2d-line-buffer.ts"],"names":[],"mappings":"AAiCA,yFAAyF;AACzF,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,YAAY,CAAC;IACxB,aAAa,EAAE,SAAS,CAAC;IACzB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,+FAA+F;AAC/F,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,YAAY,CAAC;IAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,wEAAwE;AACxE,MAAM,MAAM,uBAAuB,GAAG,SAAS,oBAAoB,EAAE,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAEzF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAInE;AAKD,qBAAa,eAAe;IAUd,OAAO,CAAC,QAAQ,CAAC,WAAW;IATxC,OAAO,CAAC,UAAU,CAAqG;IAEvH;;;;;;OAMG;gBAC0B,WAAW,EAAE,MAAM;IAEhD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IA8BvD,uEAAuE;IACvE,KAAK,IAAI,IAAI;IAKb,GAAG,IAAI,OAAO;IAId,oEAAoE;IACpE,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;;;;;;;OAUG;IACH,IAAI,CACF,IAAI,EAAE,oBAAoB,EAC1B,SAAS,EAAE,4BAA4B,EACvC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChD,WAAW,CAAC,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACzC,IAAI;CAmBR"}
|
|
@@ -18,13 +18,20 @@
|
|
|
18
18
|
* destroyed — giving each family its own pipeline handle is the split that
|
|
19
19
|
* would put one GPU object under six owners (issue #2456).
|
|
20
20
|
*/
|
|
21
|
-
import { SECTION_2D_UNIFORM_FLOATS, SECTION_2D_UNIFORM_SLOTS, } from './shaders/section-2d-overlay.wgsl.js';
|
|
21
|
+
import { SECTION_2D_UNIFORM_FLOATS, SECTION_2D_MAX_LINE_PARTITIONS, SECTION_2D_UNIFORM_SLOTS, } from './shaders/section-2d-overlay.wgsl.js';
|
|
22
|
+
import { MAX_RTE_LOCAL_METRES, packRteDrawableDelta, splitFloat64ForRte, } from './relative-to-eye.js';
|
|
23
|
+
export function lineVertexFloatCount(vertices) {
|
|
24
|
+
if (vertices instanceof Float32Array)
|
|
25
|
+
return vertices.length;
|
|
26
|
+
if ('localVertices' in vertices)
|
|
27
|
+
return vertices.localVertices.length;
|
|
28
|
+
return vertices.reduce((count, partition) => count + partition.localVertices.length, 0);
|
|
29
|
+
}
|
|
22
30
|
/** Minimum floats for one line segment: two 3-float vertices. */
|
|
23
31
|
const FLOATS_PER_SEGMENT = 6;
|
|
24
32
|
export class WorldLineBuffer {
|
|
25
33
|
uniformSlot;
|
|
26
|
-
|
|
27
|
-
count = 0;
|
|
34
|
+
partitions = [];
|
|
28
35
|
/**
|
|
29
36
|
* @param uniformSlot Index of this family's record in the shared uniform
|
|
30
37
|
* buffer. Every family needs its own: the six overlay draws are encoded
|
|
@@ -54,31 +61,45 @@ export class WorldLineBuffer {
|
|
|
54
61
|
*/
|
|
55
62
|
upload(device, vertices) {
|
|
56
63
|
this.clear();
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
const inputs = vertices instanceof Float32Array ? [{ localVertices: vertices, origin: null }] : Array.isArray(vertices)
|
|
65
|
+
? vertices : [vertices];
|
|
66
|
+
if (inputs.length > SECTION_2D_MAX_LINE_PARTITIONS) {
|
|
67
|
+
throw new RangeError(`RTE line overlay has ${inputs.length} anchors; at most ${SECTION_2D_MAX_LINE_PARTITIONS} partitions fit in one render pass.`);
|
|
68
|
+
}
|
|
69
|
+
for (const input of inputs) {
|
|
70
|
+
const anchor = input.origin;
|
|
71
|
+
const source = input.localVertices;
|
|
72
|
+
if (anchor) {
|
|
73
|
+
for (let axis = 0; axis < 3; axis++)
|
|
74
|
+
splitFloat64ForRte(anchor[axis]);
|
|
75
|
+
for (let index = 0; index < source.length; index++) {
|
|
76
|
+
const coordinate = source[index];
|
|
77
|
+
if (!Number.isFinite(coordinate) || Math.abs(coordinate) > MAX_RTE_LOCAL_METRES) {
|
|
78
|
+
throw new RangeError(`RTE local line coordinate ${coordinate} exceeds the ±${MAX_RTE_LOCAL_METRES} m precision envelope; partition the line overlay into smaller anchored batches.`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const usableFloats = Math.floor(source.length / FLOATS_PER_SEGMENT) * FLOATS_PER_SEGMENT;
|
|
83
|
+
if (usableFloats === 0)
|
|
84
|
+
continue;
|
|
85
|
+
const data = usableFloats === source.length ? source : source.subarray(0, usableFloats);
|
|
86
|
+
const buffer = device.createBuffer({ size: data.byteLength, usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST });
|
|
87
|
+
device.queue.writeBuffer(buffer, 0, data);
|
|
88
|
+
this.partitions.push({ buffer, count: usableFloats / 3, anchor });
|
|
89
|
+
}
|
|
67
90
|
}
|
|
68
91
|
/** Destroy the buffer and reset the count. Safe to call repeatedly. */
|
|
69
92
|
clear() {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
this.count = 0;
|
|
93
|
+
for (const partition of this.partitions)
|
|
94
|
+
partition.buffer.destroy();
|
|
95
|
+
this.partitions = [];
|
|
75
96
|
}
|
|
76
97
|
has() {
|
|
77
|
-
return this.
|
|
98
|
+
return this.partitions.length > 0;
|
|
78
99
|
}
|
|
79
100
|
/** Vertex count, for tests and for the caller's own bookkeeping. */
|
|
80
101
|
get vertexCount() {
|
|
81
|
-
return this.count;
|
|
102
|
+
return this.partitions.reduce((count, partition) => count + partition.count, 0);
|
|
82
103
|
}
|
|
83
104
|
/**
|
|
84
105
|
* Draw the buffer in `color`. `planeOffset` is left zeroed — these vertices
|
|
@@ -91,19 +112,24 @@ export class WorldLineBuffer {
|
|
|
91
112
|
*
|
|
92
113
|
* No-ops when the buffer is empty, so callers do not need their own guard.
|
|
93
114
|
*/
|
|
94
|
-
draw(pass, resources, viewProj, color) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
115
|
+
draw(pass, resources, viewProj, color, rteViewProj, camera) {
|
|
116
|
+
for (let index = 0; index < this.partitions.length; index++) {
|
|
117
|
+
const partition = this.partitions[index];
|
|
118
|
+
const byteOffset = (this.uniformSlot + index) * resources.uniformStride;
|
|
119
|
+
const uniforms = new Float32Array(SECTION_2D_UNIFORM_FLOATS);
|
|
120
|
+
uniforms.set(viewProj, SECTION_2D_UNIFORM_SLOTS.viewProj);
|
|
121
|
+
if (partition.anchor && rteViewProj && camera) {
|
|
122
|
+
uniforms.set(rteViewProj, SECTION_2D_UNIFORM_SLOTS.rteViewProj);
|
|
123
|
+
packRteDrawableDelta(partition.anchor, camera, uniforms, SECTION_2D_UNIFORM_SLOTS.originDeltaHigh);
|
|
124
|
+
uniforms[SECTION_2D_UNIFORM_SLOTS.originDeltaHigh + 3] = 1;
|
|
125
|
+
}
|
|
126
|
+
uniforms.set(color, SECTION_2D_UNIFORM_SLOTS.lineColor);
|
|
127
|
+
resources.device.queue.writeBuffer(resources.uniformBuffer, byteOffset, uniforms);
|
|
128
|
+
pass.setPipeline(resources.pipeline);
|
|
129
|
+
pass.setBindGroup(0, resources.bindGroup, [byteOffset]);
|
|
130
|
+
pass.setVertexBuffer(0, partition.buffer);
|
|
131
|
+
pass.draw(partition.count);
|
|
132
|
+
}
|
|
107
133
|
}
|
|
108
134
|
}
|
|
109
135
|
//# sourceMappingURL=section-2d-line-buffer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-line-buffer.js","sourceRoot":"","sources":["../src/section-2d-line-buffer.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"section-2d-line-buffer.js","sourceRoot":"","sources":["../src/section-2d-line-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,69 +1,13 @@
|
|
|
1
1
|
import { type CutPolygon2D, type DrawingLine2D, type SectionAxis, type SectionCustomPlane } from './section-2d-lift.js';
|
|
2
|
+
import { type LineVertices } from './section-2d-line-buffer.js';
|
|
3
|
+
import { type LineOverlayChannel, type Section2DOverlayOptions } from './section-2d-types.js';
|
|
2
4
|
export type { CutPolygon2D, DrawingLine2D, SectionCustomPlane } from './section-2d-lift.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* Each channel is an independent vertex buffer sharing one line pipeline and one shared overlay
|
|
7
|
-
* colour; only the buffer read and the uniform slot bound distinguish them — naming them makes a
|
|
8
|
-
* fifth channel five table rows, not eight methods. Four of five refuse to compile if skipped;
|
|
9
|
-
* the fifth, `SECTION_2D_UNIFORM_SLOT_COUNT`, derives from `SECTION_2D_UNIFORM_SLOT_INDEX`, so
|
|
10
|
-
* the buffer follows it automatically (#3342 was a hand-written count, one short).
|
|
11
|
-
*
|
|
12
|
-
* Not enforced: each draw site binding its OWN slot. A test pins the index dense, but a channel
|
|
13
|
-
* reusing an existing slot constant passes it while two sites overwrite each other's `lineColor`
|
|
14
|
-
* (#2456).
|
|
15
|
-
*
|
|
16
|
-
* Clash box/contact lines are deliberately NOT a channel: they draw in their own colour via
|
|
17
|
-
* `setClashOverlapBox` / `setClashContactLines`.
|
|
18
|
-
*/
|
|
19
|
-
export declare const LINE_OVERLAY_CHANNELS: readonly ["annotation", "alignment", "grid", "dxf"];
|
|
20
|
-
/** One of {@link LINE_OVERLAY_CHANNELS}. */
|
|
21
|
-
export type LineOverlayChannel = (typeof LINE_OVERLAY_CHANNELS)[number];
|
|
22
|
-
export interface Section2DOverlayCapStyle {
|
|
23
|
-
fillColor: [number, number, number, number];
|
|
24
|
-
strokeColor: [number, number, number, number];
|
|
25
|
-
patternId: number;
|
|
26
|
-
spacingPx: number;
|
|
27
|
-
angleRad: number;
|
|
28
|
-
widthPx: number;
|
|
29
|
-
secondaryAngleRad: number;
|
|
30
|
-
}
|
|
31
|
-
export interface Section2DOverlayOptions {
|
|
32
|
-
axis: 'down' | 'front' | 'side';
|
|
33
|
-
position: number;
|
|
34
|
-
bounds: {
|
|
35
|
-
min: {
|
|
36
|
-
x: number;
|
|
37
|
-
y: number;
|
|
38
|
-
z: number;
|
|
39
|
-
};
|
|
40
|
-
max: {
|
|
41
|
-
x: number;
|
|
42
|
-
y: number;
|
|
43
|
-
z: number;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
viewProj: Float32Array;
|
|
47
|
-
flipped?: boolean;
|
|
48
|
-
min?: number;
|
|
49
|
-
max?: number;
|
|
50
|
-
/**
|
|
51
|
-
* If provided, the 2D overlay's polygon fills render as the 3D section
|
|
52
|
-
* cap with this screen-space hatch style. If omitted or `showFills` is
|
|
53
|
-
* false, the filled hatch is skipped.
|
|
54
|
-
*/
|
|
55
|
-
capStyle?: Section2DOverlayCapStyle;
|
|
56
|
-
showFills?: boolean;
|
|
57
|
-
/**
|
|
58
|
-
* Whether to draw the polygon outline + hidden lines on the cap. Users
|
|
59
|
-
* can turn surfaces and outlines on/off independently. Defaults to true
|
|
60
|
-
* so existing call sites keep showing outlines.
|
|
61
|
-
*/
|
|
62
|
-
showOutlines?: boolean;
|
|
63
|
-
}
|
|
5
|
+
export { LINE_OVERLAY_CHANNELS } from './section-2d-types.js';
|
|
6
|
+
export type { LineOverlayChannel, Section2DOverlayCapStyle, Section2DOverlayOptions } from './section-2d-types.js';
|
|
64
7
|
export declare class Section2DOverlayRenderer {
|
|
65
8
|
private device;
|
|
66
9
|
private fillPipeline;
|
|
10
|
+
private fillDepthPipeline;
|
|
67
11
|
private linePipeline;
|
|
68
12
|
private bindGroupLayout;
|
|
69
13
|
private uniformBuffer;
|
|
@@ -79,16 +23,18 @@ export declare class Section2DOverlayRenderer {
|
|
|
79
23
|
private fillIndexCount;
|
|
80
24
|
private lineVertexBuffer;
|
|
81
25
|
private lineVertexCount;
|
|
26
|
+
/** f64 cap anchor retained separately from the local cap vertices. */
|
|
27
|
+
private capAnchor;
|
|
82
28
|
/**
|
|
83
29
|
* One world-space vertex buffer per {@link LineOverlayChannel}, each on its
|
|
84
30
|
* own uniform slot.
|
|
85
31
|
*
|
|
86
|
-
*
|
|
32
|
+
* Five `WorldLineBuffer`s, not one: the draws are encoded into a single
|
|
87
33
|
* pass and `queue.writeBuffer` lands before the pass runs, so a shared buffer
|
|
88
|
-
* or a shared uniform slot would give
|
|
34
|
+
* or a shared uniform slot would give every channel whatever the last write said.
|
|
89
35
|
* Keying them by channel unifies the LOOKUP, which is all that was ever
|
|
90
36
|
* duplicated; the buffers stay separate because their independence is what
|
|
91
|
-
* makes annotation (#653), alignment, grid (#967)
|
|
37
|
+
* makes annotation (#653), alignment, grid (#967), DXF (#2043), and terrain visibility
|
|
92
38
|
* toggle independently.
|
|
93
39
|
*/
|
|
94
40
|
private readonly lineOverlays;
|
|
@@ -135,10 +81,10 @@ export declare class Section2DOverlayRenderer {
|
|
|
135
81
|
* so they draw regardless of `sectionPlane.enabled`. A short array clears too.
|
|
136
82
|
*
|
|
137
83
|
* Every channel gets its own buffer and its own uniform slot, so setting one
|
|
138
|
-
* leaves
|
|
84
|
+
* leaves every other channel exactly as it was — that independence is the
|
|
139
85
|
* whole point of having channels rather than one merged buffer.
|
|
140
86
|
*/
|
|
141
|
-
setLineOverlay(channel: LineOverlayChannel, vertices:
|
|
87
|
+
setLineOverlay(channel: LineOverlayChannel, vertices: LineVertices | null): void;
|
|
142
88
|
/** Whether `channel` currently holds at least one whole segment. */
|
|
143
89
|
hasLineOverlay(channel: LineOverlayChannel): boolean;
|
|
144
90
|
/**
|
|
@@ -146,7 +92,7 @@ export declare class Section2DOverlayRenderer {
|
|
|
146
92
|
* colour, binding that channel's own uniform slot. No-ops when the channel is
|
|
147
93
|
* empty or the pipeline could not be built.
|
|
148
94
|
*/
|
|
149
|
-
drawLineOverlay(pass: GPURenderPassEncoder, viewProj: Float32Array, channel: LineOverlayChannel): void;
|
|
95
|
+
drawLineOverlay(pass: GPURenderPassEncoder, viewProj: Float32Array, channel: LineOverlayChannel, rteViewProj?: Float32Array, camera?: readonly [number, number, number]): void;
|
|
150
96
|
/** Colour for the clash-overlap box (its own, not the shared overlay colour). */
|
|
151
97
|
setClashBoxLineColor(color: readonly [number, number, number, number]): void;
|
|
152
98
|
/**
|
|
@@ -154,11 +100,11 @@ export declare class Section2DOverlayRenderer {
|
|
|
154
100
|
* world space (12 AABB edges = 24 vertices). Separate buffer + colour from the
|
|
155
101
|
* other overlays. Pass an empty array to clear. (#1277)
|
|
156
102
|
*/
|
|
157
|
-
uploadClashBoxLines3D(vertices:
|
|
103
|
+
uploadClashBoxLines3D(vertices: LineVertices): void;
|
|
158
104
|
clearClashBoxLines3D(): void;
|
|
159
105
|
hasClashBoxLines3D(): boolean;
|
|
160
106
|
/** Draw the clash-overlap box in its own colour. Same line pipeline. (#1277) */
|
|
161
|
-
drawClashBoxLines3D(pass: GPURenderPassEncoder, viewProj: Float32Array): void;
|
|
107
|
+
drawClashBoxLines3D(pass: GPURenderPassEncoder, viewProj: Float32Array, rteViewProj?: Float32Array, camera?: readonly [number, number, number]): void;
|
|
162
108
|
/**
|
|
163
109
|
* Check if there is geometry to draw
|
|
164
110
|
*/
|
|
@@ -171,11 +117,11 @@ export declare class Section2DOverlayRenderer {
|
|
|
171
117
|
* Dispose of GPU resources.
|
|
172
118
|
*
|
|
173
119
|
* Every family's buffer must be released here. The clash box (#1277) was the
|
|
174
|
-
* sixth family added and was missing from this list, leaking its vertex
|
|
120
|
+
* sixth line family added and was missing from this list, leaking its vertex
|
|
175
121
|
* buffer on every teardown — `section-2d-overlay-lifecycle.test.ts` now counts
|
|
176
|
-
* destroys against uploads so
|
|
122
|
+
* destroys against uploads so another family cannot repeat it. The five
|
|
177
123
|
* `LINE_OVERLAY_CHANNELS` are released by iterating the channel list, so a
|
|
178
|
-
*
|
|
124
|
+
* sixth channel is covered here the moment it joins that list; the clash box
|
|
179
125
|
* is named separately because it is not a channel.
|
|
180
126
|
*/
|
|
181
127
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-overlay.d.ts","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"section-2d-overlay.d.ts","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"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"}
|