@ifc-lite/renderer 3.2.0 → 5.0.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/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/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.js +1 -1
- package/dist/device.js.map +1 -1
- package/dist/edge-params.d.ts +43 -0
- package/dist/edge-params.d.ts.map +1 -0
- package/dist/edge-params.js +63 -0
- package/dist/edge-params.js.map +1 -0
- package/dist/edge-pass.d.ts +38 -0
- package/dist/edge-pass.d.ts.map +1 -0
- package/dist/edge-pass.js +111 -0
- package/dist/edge-pass.js.map +1 -0
- 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 +12 -23
- package/dist/gpu-upload-guard.d.ts.map +1 -1
- package/dist/gpu-upload-guard.js +12 -26
- package/dist/gpu-upload-guard.js.map +1 -1
- package/dist/index.d.ts +58 -35
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +255 -284
- package/dist/index.js.map +1 -1
- package/dist/instanced-render.d.ts +25 -5
- package/dist/instanced-render.d.ts.map +1 -1
- package/dist/instanced-render.js +50 -13
- 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/mesh-material.d.ts +26 -0
- package/dist/mesh-material.d.ts.map +1 -0
- package/dist/mesh-material.js +52 -0
- package/dist/mesh-material.js.map +1 -0
- package/dist/mesh-rte-uniforms.d.ts +47 -0
- package/dist/mesh-rte-uniforms.d.ts.map +1 -0
- package/dist/mesh-rte-uniforms.js +60 -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 +1 -1
- package/dist/model-translation.d.ts.map +1 -1
- package/dist/model-translation.js +50 -2
- package/dist/model-translation.js.map +1 -1
- package/dist/overlay-theme-uniforms.d.ts +54 -0
- package/dist/overlay-theme-uniforms.d.ts.map +1 -0
- package/dist/overlay-theme-uniforms.js +89 -0
- package/dist/overlay-theme-uniforms.js.map +1 -0
- package/dist/overlay-theme.d.ts +73 -0
- package/dist/overlay-theme.d.ts.map +1 -0
- package/dist/overlay-theme.js +24 -0
- package/dist/overlay-theme.js.map +1 -0
- 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 +8 -0
- package/dist/picking-manager.d.ts.map +1 -1
- package/dist/picking-manager.js +46 -19
- package/dist/picking-manager.js.map +1 -1
- package/dist/pipeline.d.ts +3 -7
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +27 -31
- 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 +105 -0
- package/dist/post-pass-chain.js.map +1 -0
- 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 +1 -1
- package/dist/reference-images.d.ts.map +1 -1
- package/dist/reference-images.js +13 -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 +20 -10
- package/dist/renderer-overlays.d.ts.map +1 -1
- package/dist/renderer-overlays.js +44 -34
- 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 +4 -2
- package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
- package/dist/renderer-symbolic-overlays.js +33 -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-batch-upload.d.ts.map +1 -1
- package/dist/scene-batch-upload.js +14 -38
- package/dist/scene-batch-upload.js.map +1 -1
- package/dist/scene-device-recovery.d.ts.map +1 -1
- package/dist/scene-device-recovery.js +5 -9
- package/dist/scene-device-recovery.js.map +1 -1
- 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-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 +2 -0
- package/dist/scene-model-translation.d.ts.map +1 -1
- package/dist/scene-model-translation.js +1 -1
- package/dist/scene-model-translation.js.map +1 -1
- 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 +27 -20
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +109 -238
- 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 +26 -24
- package/dist/section-plane.d.ts.map +1 -1
- package/dist/section-plane.js +57 -182
- 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 +28 -0
- package/dist/shaders/color-transfer.wgsl.d.ts.map +1 -0
- package/dist/shaders/color-transfer.wgsl.js +55 -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/edges.wgsl.d.ts +2 -0
- package/dist/shaders/edges.wgsl.d.ts.map +1 -0
- package/dist/shaders/edges.wgsl.js +158 -0
- package/dist/shaders/edges.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 +183 -228
- 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/specular.wgsl.d.ts +34 -0
- package/dist/shaders/specular.wgsl.d.ts.map +1 -0
- package/dist/shaders/specular.wgsl.js +134 -0
- package/dist/shaders/specular.wgsl.js.map +1 -0
- 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 +30 -1
- package/dist/visual-enhancement.d.ts.map +1 -1
- package/dist/visual-enhancement.js +44 -12
- package/dist/visual-enhancement.js.map +1 -1
- package/package.json +3 -3
- package/dist/post-processor.d.ts +0 -60
- package/dist/post-processor.d.ts.map +0 -1
- package/dist/post-processor.js +0 -353
- package/dist/post-processor.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbolic-overlay-pipelines.d.ts","sourceRoot":"","sources":["../src/symbolic-overlay-pipelines.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"symbolic-overlay-pipelines.d.ts","sourceRoot":"","sources":["../src/symbolic-overlay-pipelines.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,24 +12,26 @@
|
|
|
12
12
|
* cut caps: rings are nested by the even-odd rule, holes are bridged in, and
|
|
13
13
|
* the result is ear-clipped.
|
|
14
14
|
*/
|
|
15
|
-
import { SymbolicTextAtlas } from './symbolic-text-atlas.js';
|
|
15
|
+
import { haloGlyphQuad, SymbolicTextAtlas } from './symbolic-text-atlas.js';
|
|
16
16
|
import { SYMBOLIC_FILL_WGSL, SYMBOLIC_TEXT_WGSL, } from './shaders/symbolic-overlay.wgsl.js';
|
|
17
17
|
import { PIPELINE_CONSTANTS } from './constants.js';
|
|
18
|
-
import {
|
|
18
|
+
import { packRteDrawableDelta } from './relative-to-eye.js';
|
|
19
|
+
import { parseBoxAlignment, triangulateFillTo } from './symbolic-overlay-geometry.js';
|
|
20
|
+
export { parseBoxAlignment } from './symbolic-overlay-geometry.js';
|
|
19
21
|
const FILL_VERTEX_STRIDE_BYTES = (3 + 4) * 4; // pos.xyz + color.rgba, 4 bytes each
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
//
|
|
32
|
-
const TEXT_UNIFORM_BYTES =
|
|
22
|
+
const TEXT_INSTANCE_FLOATS = 3 + 3 + 3 + 4 + 4 + 3 + 1 + 1 + 4 + 1;
|
|
23
|
+
const TEXT_INSTANCE_STRIDE_BYTES = TEXT_INSTANCE_FLOATS * 4;
|
|
24
|
+
const TEXT_RTE_DELTA_FLOATS = 8;
|
|
25
|
+
const TEXT_RTE_DELTA_STRIDE_BYTES = TEXT_RTE_DELTA_FLOATS * 4;
|
|
26
|
+
// Static glyph fields: origin, axes, UV/color, label anchor, cap height,
|
|
27
|
+
// billboard, glyph offset/size and target override (108 B/glyph). A separate
|
|
28
|
+
// dynamic RTE delta stream updates only 32 B/glyph per camera frame; low.w marks anchor-local legacy origins.
|
|
29
|
+
// Uniform: global viewProj (64 B) + RTE viewProj (64 B) + viewport/target
|
|
30
|
+
// (16 B) + camera basis (32 B) + f64 camera split (32 B) = 208 B. Keeping
|
|
31
|
+
// both projections is deliberate: a mixed legacy/anchored upload must keep
|
|
32
|
+
// legacy world-f32 labels on the original matrix while anchored labels use the
|
|
33
|
+
// eye-relative matrix selected by their instance record.
|
|
34
|
+
const TEXT_UNIFORM_BYTES = 208;
|
|
33
35
|
// Default target glyph cap height in physical pixels. Roughly matches a
|
|
34
36
|
// 13–14px body font at 1× DPR — readable at any zoom without dominating
|
|
35
37
|
// the model. Authored IFC text height is ignored in screen space, but the
|
|
@@ -43,10 +45,12 @@ export class SymbolicFillPipeline {
|
|
|
43
45
|
sampleCount;
|
|
44
46
|
pipeline = null;
|
|
45
47
|
bindGroupLayout = null;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Each partition owns its uniform resource. Queue writes happen before the
|
|
50
|
+
* encoded pass executes, so using one buffer for several partitions makes
|
|
51
|
+
* every draw observe the final anchor written that frame.
|
|
52
|
+
*/
|
|
53
|
+
partitions = [];
|
|
50
54
|
constructor(device, presentationFormat, sampleCount = 1) {
|
|
51
55
|
this.device = device;
|
|
52
56
|
this.format = presentationFormat;
|
|
@@ -124,16 +128,6 @@ export class SymbolicFillPipeline {
|
|
|
124
128
|
},
|
|
125
129
|
multisample: { count: this.sampleCount },
|
|
126
130
|
});
|
|
127
|
-
this.uniformBuffer = this.device.createBuffer({
|
|
128
|
-
label: 'symbolic-fill-camera',
|
|
129
|
-
size: 64,
|
|
130
|
-
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
131
|
-
});
|
|
132
|
-
this.bindGroup = this.device.createBindGroup({
|
|
133
|
-
label: 'symbolic-fill-bg',
|
|
134
|
-
layout: this.bindGroupLayout,
|
|
135
|
-
entries: [{ binding: 0, resource: { buffer: this.uniformBuffer } }],
|
|
136
|
-
});
|
|
137
131
|
}
|
|
138
132
|
/**
|
|
139
133
|
* Upload a list of fill regions. Each region is triangulated by the shared
|
|
@@ -148,54 +142,72 @@ export class SymbolicFillPipeline {
|
|
|
148
142
|
upload(fills) {
|
|
149
143
|
this.init();
|
|
150
144
|
// Drop the previous buffer eagerly so swapping models doesn't accumulate.
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
145
|
+
for (const partition of this.partitions) {
|
|
146
|
+
partition.vertexBuffer.destroy();
|
|
147
|
+
partition.uniformBuffer.destroy();
|
|
154
148
|
}
|
|
155
|
-
this.
|
|
149
|
+
this.partitions = [];
|
|
156
150
|
if (fills.length === 0)
|
|
157
151
|
return;
|
|
158
|
-
|
|
159
|
-
const stream = [];
|
|
152
|
+
const legacy = [];
|
|
160
153
|
for (const fill of fills) {
|
|
154
|
+
const stream = [];
|
|
161
155
|
triangulateFillTo(stream, fill);
|
|
156
|
+
if (fill.origin)
|
|
157
|
+
this.addPartition(stream, fill.origin);
|
|
158
|
+
else
|
|
159
|
+
legacy.push(...stream);
|
|
162
160
|
}
|
|
163
|
-
|
|
164
|
-
return;
|
|
165
|
-
const data = new Float32Array(stream);
|
|
166
|
-
this.vertexBuffer = this.device.createBuffer({
|
|
167
|
-
label: 'symbolic-fill-vbuf',
|
|
168
|
-
size: data.byteLength,
|
|
169
|
-
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
|
|
170
|
-
});
|
|
171
|
-
this.device.queue.writeBuffer(this.vertexBuffer, 0, data);
|
|
172
|
-
this.vertexCount = data.length / (FILL_VERTEX_STRIDE_BYTES / 4);
|
|
161
|
+
this.addPartition(legacy);
|
|
173
162
|
}
|
|
174
163
|
hasGeometry() {
|
|
175
|
-
return this.
|
|
164
|
+
return this.partitions.length > 0;
|
|
176
165
|
}
|
|
177
|
-
|
|
178
|
-
if (
|
|
166
|
+
addPartition(stream, origin) {
|
|
167
|
+
if (stream.length === 0 || !this.bindGroupLayout)
|
|
179
168
|
return;
|
|
180
|
-
|
|
169
|
+
const data = new Float32Array(stream);
|
|
170
|
+
const vertexBuffer = this.device.createBuffer({ label: 'symbolic-fill-vbuf', size: data.byteLength, usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST });
|
|
171
|
+
this.device.queue.writeBuffer(vertexBuffer, 0, data);
|
|
172
|
+
const uniformBuffer = this.device.createBuffer({
|
|
173
|
+
label: 'symbolic-fill-partition-camera', size: 160,
|
|
174
|
+
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
175
|
+
});
|
|
176
|
+
const bindGroup = this.device.createBindGroup({
|
|
177
|
+
label: 'symbolic-fill-partition-bg', layout: this.bindGroupLayout,
|
|
178
|
+
entries: [{ binding: 0, resource: { buffer: uniformBuffer } }],
|
|
179
|
+
});
|
|
180
|
+
this.partitions.push({
|
|
181
|
+
vertexBuffer, vertexCount: data.length / (FILL_VERTEX_STRIDE_BYTES / 4), origin,
|
|
182
|
+
uniformBuffer, bindGroup,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
render(pass, viewProj, rteViewProj, camera) {
|
|
186
|
+
if (!this.pipeline)
|
|
181
187
|
return;
|
|
182
|
-
this.device.queue.writeBuffer(this.uniformBuffer, 0, viewProj);
|
|
183
188
|
pass.setPipeline(this.pipeline);
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
189
|
+
for (const partition of this.partitions) {
|
|
190
|
+
const uniform = new Float32Array(40);
|
|
191
|
+
uniform.set(viewProj);
|
|
192
|
+
if (partition.origin && rteViewProj && camera) {
|
|
193
|
+
uniform.set(rteViewProj, 16);
|
|
194
|
+
packRteDrawableDelta(partition.origin, camera, uniform, 32);
|
|
195
|
+
uniform[35] = 1;
|
|
196
|
+
}
|
|
197
|
+
this.device.queue.writeBuffer(partition.uniformBuffer, 0, uniform);
|
|
198
|
+
pass.setBindGroup(0, partition.bindGroup);
|
|
199
|
+
pass.setVertexBuffer(0, partition.vertexBuffer);
|
|
200
|
+
pass.draw(partition.vertexCount);
|
|
201
|
+
}
|
|
187
202
|
}
|
|
188
203
|
destroy() {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
this.
|
|
194
|
-
this.uniformBuffer = null;
|
|
195
|
-
this.bindGroup = null;
|
|
204
|
+
for (const partition of this.partitions) {
|
|
205
|
+
partition.vertexBuffer.destroy();
|
|
206
|
+
partition.uniformBuffer.destroy();
|
|
207
|
+
}
|
|
208
|
+
this.partitions = [];
|
|
196
209
|
this.bindGroupLayout = null;
|
|
197
210
|
this.pipeline = null;
|
|
198
|
-
this.vertexCount = 0;
|
|
199
211
|
}
|
|
200
212
|
}
|
|
201
213
|
// ─── Text pipeline ──────────────────────────────────────────────────────────
|
|
@@ -209,11 +221,15 @@ export class SymbolicTextPipeline {
|
|
|
209
221
|
uniformBuffer = null;
|
|
210
222
|
cornerBuffer = null;
|
|
211
223
|
instanceBuffer = null;
|
|
224
|
+
rteDeltaBuffer = null;
|
|
212
225
|
atlasTexture = null;
|
|
213
226
|
atlasView = null;
|
|
214
227
|
sampler = null;
|
|
215
228
|
bindGroup = null;
|
|
216
229
|
instanceCount = 0;
|
|
230
|
+
/** CPU-side dynamic delta stream; never derived from f32 instance lanes. */
|
|
231
|
+
rteDeltaData = null;
|
|
232
|
+
instanceAnchors = [];
|
|
217
233
|
uploadedAtlasVersion = -1;
|
|
218
234
|
constructor(device, presentationFormat, sampleCount = 1, atlas) {
|
|
219
235
|
this.device = device;
|
|
@@ -271,6 +287,15 @@ export class SymbolicTextPipeline {
|
|
|
271
287
|
{ shaderLocation: 10, offset: (3 + 3 + 3 + 4 + 4 + 3 + 1 + 1 + 4) * 4, format: 'float32' }, // targetPxOverride
|
|
272
288
|
],
|
|
273
289
|
},
|
|
290
|
+
{
|
|
291
|
+
// Per-frame f64-split drawable-minus-camera delta.
|
|
292
|
+
arrayStride: TEXT_RTE_DELTA_STRIDE_BYTES,
|
|
293
|
+
stepMode: 'instance',
|
|
294
|
+
attributes: [
|
|
295
|
+
{ shaderLocation: 11, offset: 0, format: 'float32x4' },
|
|
296
|
+
{ shaderLocation: 12, offset: 4 * 4, format: 'float32x4' },
|
|
297
|
+
],
|
|
298
|
+
},
|
|
274
299
|
],
|
|
275
300
|
},
|
|
276
301
|
fragment: {
|
|
@@ -376,7 +401,13 @@ export class SymbolicTextPipeline {
|
|
|
376
401
|
this.instanceBuffer.destroy();
|
|
377
402
|
this.instanceBuffer = null;
|
|
378
403
|
}
|
|
404
|
+
if (this.rteDeltaBuffer) {
|
|
405
|
+
this.rteDeltaBuffer.destroy();
|
|
406
|
+
this.rteDeltaBuffer = null;
|
|
407
|
+
}
|
|
379
408
|
this.instanceCount = 0;
|
|
409
|
+
this.rteDeltaData = null;
|
|
410
|
+
this.instanceAnchors = [];
|
|
380
411
|
if (texts.length === 0)
|
|
381
412
|
return;
|
|
382
413
|
// Pass 1: rasterise any new glyphs into the atlas.
|
|
@@ -428,8 +459,8 @@ export class SymbolicTextPipeline {
|
|
|
428
459
|
const pyBottom = isCenterV
|
|
429
460
|
? -glyph.heightPx * 0.5
|
|
430
461
|
: -baselineOffset - (glyph.heightPx - glyph.baselinePx);
|
|
431
|
-
|
|
432
|
-
const heightGlyphAtlas = glyph.
|
|
462
|
+
// Quad widened by the halo margin on every side (#5388).
|
|
463
|
+
const { qx0, qyBottom, widthAtlas, heightGlyphAtlas, uvBounds } = haloGlyphQuad(glyph, px0, pyBottom, this.atlas.atlasSize);
|
|
433
464
|
// Convert atlas-pixel local coords to world-space offsets:
|
|
434
465
|
// right axis in world = (ux, 0, uz) * (widthAtlas * heightWorld / heightAtlas)
|
|
435
466
|
// up axis in world = (0, 1, 0) * (heightGlyphAtlas * heightWorld / heightAtlas)
|
|
@@ -437,37 +468,44 @@ export class SymbolicTextPipeline {
|
|
|
437
468
|
const widthWorld = widthAtlas * wScale;
|
|
438
469
|
const heightGlyphWorld = heightGlyphAtlas * wScale;
|
|
439
470
|
// Bottom-left origin of the glyph quad in world space.
|
|
440
|
-
const
|
|
441
|
-
const
|
|
442
|
-
const
|
|
471
|
+
const anchored = text.origin !== undefined;
|
|
472
|
+
const ax = anchored ? text.origin[0] + text.worldPos[0] : text.worldPos[0];
|
|
473
|
+
const ay = anchored ? text.origin[1] + text.worldPos[1] : text.worldPos[1];
|
|
474
|
+
const az = anchored ? text.origin[2] + text.worldPos[2] : text.worldPos[2];
|
|
475
|
+
const ox = anchored ? ux * qx0 * wScale : ax + ux * qx0 * wScale;
|
|
476
|
+
const oy = anchored ? qyBottom * wScale : ay + qyBottom * wScale;
|
|
477
|
+
const oz = anchored ? uz * qx0 * wScale : az + uz * qx0 * wScale;
|
|
443
478
|
layouts.push({
|
|
444
479
|
origin: [ox, oy, oz],
|
|
445
480
|
rightAxis: [ux * widthWorld, 0, uz * widthWorld],
|
|
446
481
|
upAxis: [0, heightGlyphWorld, 0],
|
|
447
|
-
uvBounds
|
|
482
|
+
uvBounds,
|
|
448
483
|
color: tint,
|
|
449
484
|
// Shared per-label anchor (text.worldPos) lets the shader compute
|
|
450
485
|
// one screen-space scale and apply it uniformly across all glyphs.
|
|
451
|
-
anchor
|
|
486
|
+
// Retain a world-f32 anchor for the legacy projection. The dynamic
|
|
487
|
+
// RTE draw rewrites the final two lanes from rteAnchor below.
|
|
488
|
+
anchor: [ax, ay, az],
|
|
452
489
|
capHeight: heightWorld,
|
|
453
490
|
billboard: text.billboard ? 1.0 : 0.0,
|
|
454
491
|
// Per-glyph offset + size in world units. The shader uses these
|
|
455
492
|
// (via cameraRight/cameraUp) when billboard=1 so the glyph quad
|
|
456
493
|
// tracks the screen instead of the floor plane.
|
|
457
494
|
glyphOffsetSize: [
|
|
458
|
-
|
|
459
|
-
|
|
495
|
+
qx0 * wScale, // offsetX from anchor along baseline
|
|
496
|
+
qyBottom * wScale, // offsetY (ascender / descender / baseline)
|
|
460
497
|
widthAtlas * wScale, // glyph width
|
|
461
498
|
heightGlyphAtlas * wScale, // glyph height
|
|
462
499
|
],
|
|
463
500
|
targetPxOverride: text.targetPx ?? 0,
|
|
501
|
+
rteAnchor: anchored ? [ax, ay, az] : null,
|
|
464
502
|
});
|
|
465
503
|
}
|
|
466
504
|
}
|
|
467
505
|
if (layouts.length === 0)
|
|
468
506
|
return;
|
|
469
507
|
// Pack into a Float32Array.
|
|
470
|
-
const stride =
|
|
508
|
+
const stride = TEXT_INSTANCE_FLOATS;
|
|
471
509
|
const data = new Float32Array(layouts.length * stride);
|
|
472
510
|
let off = 0;
|
|
473
511
|
for (const l of layouts) {
|
|
@@ -498,6 +536,7 @@ export class SymbolicTextPipeline {
|
|
|
498
536
|
data[off + 24] = l.glyphOffsetSize[2];
|
|
499
537
|
data[off + 25] = l.glyphOffsetSize[3];
|
|
500
538
|
data[off + 26] = l.targetPxOverride;
|
|
539
|
+
this.instanceAnchors.push(l.rteAnchor);
|
|
501
540
|
off += stride;
|
|
502
541
|
}
|
|
503
542
|
this.instanceBuffer = this.device.createBuffer({
|
|
@@ -506,13 +545,38 @@ export class SymbolicTextPipeline {
|
|
|
506
545
|
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
|
|
507
546
|
});
|
|
508
547
|
this.device.queue.writeBuffer(this.instanceBuffer, 0, data);
|
|
548
|
+
this.rteDeltaData = new Float32Array(layouts.length * TEXT_RTE_DELTA_FLOATS);
|
|
549
|
+
this.rteDeltaBuffer = this.device.createBuffer({
|
|
550
|
+
label: 'symbolic-text-rte-deltas',
|
|
551
|
+
size: this.rteDeltaData.byteLength,
|
|
552
|
+
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
|
|
553
|
+
});
|
|
554
|
+
this.device.queue.writeBuffer(this.rteDeltaBuffer, 0, this.rteDeltaData);
|
|
509
555
|
this.instanceCount = layouts.length;
|
|
510
556
|
}
|
|
511
|
-
|
|
512
|
-
|
|
557
|
+
/** Pack each f64 anchor against this frame's camera via the shared RTE contract. */
|
|
558
|
+
updateRteInstanceDeltas(camera) {
|
|
559
|
+
if (!this.rteDeltaBuffer || !this.rteDeltaData || this.instanceAnchors.length === 0)
|
|
560
|
+
return;
|
|
561
|
+
for (let index = 0; index < this.instanceAnchors.length; index++) {
|
|
562
|
+
const offset = index * TEXT_RTE_DELTA_FLOATS;
|
|
563
|
+
const anchor = this.instanceAnchors[index];
|
|
564
|
+
if (anchor && camera) {
|
|
565
|
+
packRteDrawableDelta(anchor, camera, this.rteDeltaData, offset);
|
|
566
|
+
this.rteDeltaData[offset + 3] = 1;
|
|
567
|
+
}
|
|
568
|
+
else {
|
|
569
|
+
this.rteDeltaData.fill(0, offset, offset + TEXT_RTE_DELTA_FLOATS);
|
|
570
|
+
}
|
|
571
|
+
// Keep the anchor-local marker separate from high.w's RTE projection flag.
|
|
572
|
+
if (anchor)
|
|
573
|
+
this.rteDeltaData[offset + 7] = 1;
|
|
574
|
+
}
|
|
575
|
+
this.device.queue.writeBuffer(this.rteDeltaBuffer, 0, this.rteDeltaData);
|
|
513
576
|
}
|
|
514
|
-
|
|
515
|
-
|
|
577
|
+
hasGeometry() { return this.instanceCount > 0; }
|
|
578
|
+
render(pass, viewProj, viewportPxWidth, viewportPxHeight, cameraRight, cameraUp, targetGlyphPx = DEFAULT_TEXT_TARGET_PX, rteViewProj, rteCamera) {
|
|
579
|
+
if (!this.pipeline || !this.uniformBuffer || !this.cornerBuffer || !this.instanceBuffer || !this.rteDeltaBuffer)
|
|
516
580
|
return;
|
|
517
581
|
if (this.instanceCount === 0)
|
|
518
582
|
return;
|
|
@@ -521,34 +585,51 @@ export class SymbolicTextPipeline {
|
|
|
521
585
|
if (!this.bindGroup)
|
|
522
586
|
return;
|
|
523
587
|
// Pack the uniform:
|
|
524
|
-
// [0..15] viewProj
|
|
525
|
-
// [16..
|
|
526
|
-
// [
|
|
527
|
-
// [
|
|
588
|
+
// [0..15] legacy world-f32 viewProj
|
|
589
|
+
// [16..31] anchored RTE viewProj
|
|
590
|
+
// [32..35] (viewportW, viewportH, targetPx, pad)
|
|
591
|
+
// [36..39] cameraRight.xyz + pad
|
|
592
|
+
// [40..43] cameraUp.xyz + pad
|
|
593
|
+
// [44..47] camera high.xyz + pad
|
|
594
|
+
// [48..51] camera low.xyz + pad
|
|
528
595
|
const uniformData = new Float32Array(TEXT_UNIFORM_BYTES / 4);
|
|
529
596
|
uniformData.set(viewProj, 0);
|
|
530
|
-
uniformData
|
|
531
|
-
uniformData[
|
|
532
|
-
uniformData[
|
|
533
|
-
uniformData[
|
|
534
|
-
uniformData[
|
|
535
|
-
uniformData[
|
|
536
|
-
uniformData[
|
|
537
|
-
uniformData[
|
|
538
|
-
uniformData[
|
|
539
|
-
uniformData[
|
|
540
|
-
uniformData[
|
|
541
|
-
uniformData[
|
|
597
|
+
uniformData.set(rteViewProj ?? viewProj, 16);
|
|
598
|
+
uniformData[32] = viewportPxWidth;
|
|
599
|
+
uniformData[33] = viewportPxHeight;
|
|
600
|
+
uniformData[34] = targetGlyphPx;
|
|
601
|
+
uniformData[35] = 0;
|
|
602
|
+
uniformData[36] = cameraRight[0];
|
|
603
|
+
uniformData[37] = cameraRight[1];
|
|
604
|
+
uniformData[38] = cameraRight[2];
|
|
605
|
+
uniformData[39] = 0;
|
|
606
|
+
uniformData[40] = cameraUp[0];
|
|
607
|
+
uniformData[41] = cameraUp[1];
|
|
608
|
+
uniformData[42] = cameraUp[2];
|
|
609
|
+
uniformData[43] = 0;
|
|
610
|
+
if (rteCamera) {
|
|
611
|
+
for (let axis = 0; axis < 3; axis++) {
|
|
612
|
+
const high = Math.fround(rteCamera[axis]);
|
|
613
|
+
uniformData[44 + axis] = high;
|
|
614
|
+
uniformData[48 + axis] = Math.fround(rteCamera[axis] - high);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
// RTE text consumes CPU-packed per-instance drawable deltas. Retain the
|
|
618
|
+
// camera split slots above for the established 208-byte uniform ABI.
|
|
619
|
+
this.updateRteInstanceDeltas(rteViewProj && rteCamera ? rteCamera : undefined);
|
|
542
620
|
this.device.queue.writeBuffer(this.uniformBuffer, 0, uniformData);
|
|
543
621
|
pass.setPipeline(this.pipeline);
|
|
544
622
|
pass.setBindGroup(0, this.bindGroup);
|
|
545
623
|
pass.setVertexBuffer(0, this.cornerBuffer);
|
|
546
624
|
pass.setVertexBuffer(1, this.instanceBuffer);
|
|
625
|
+
pass.setVertexBuffer(2, this.rteDeltaBuffer);
|
|
547
626
|
pass.draw(4, this.instanceCount);
|
|
548
627
|
}
|
|
549
628
|
destroy() {
|
|
550
629
|
if (this.instanceBuffer)
|
|
551
630
|
this.instanceBuffer.destroy();
|
|
631
|
+
if (this.rteDeltaBuffer)
|
|
632
|
+
this.rteDeltaBuffer.destroy();
|
|
552
633
|
if (this.cornerBuffer)
|
|
553
634
|
this.cornerBuffer.destroy();
|
|
554
635
|
if (this.uniformBuffer)
|
|
@@ -556,6 +637,9 @@ export class SymbolicTextPipeline {
|
|
|
556
637
|
if (this.atlasTexture)
|
|
557
638
|
this.atlasTexture.destroy();
|
|
558
639
|
this.instanceBuffer = null;
|
|
640
|
+
this.rteDeltaBuffer = null;
|
|
641
|
+
this.rteDeltaData = null;
|
|
642
|
+
this.instanceAnchors = [];
|
|
559
643
|
this.cornerBuffer = null;
|
|
560
644
|
this.uniformBuffer = null;
|
|
561
645
|
this.atlasTexture = null;
|
|
@@ -568,95 +652,4 @@ export class SymbolicTextPipeline {
|
|
|
568
652
|
this.uploadedAtlasVersion = -1;
|
|
569
653
|
}
|
|
570
654
|
}
|
|
571
|
-
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
572
|
-
/**
|
|
573
|
-
* IFC BoxAlignment → normalized offsets in [-1, 0] for vertical and
|
|
574
|
-
* horizontal axes. Returned offset is multiplied by the relevant span.
|
|
575
|
-
*
|
|
576
|
-
* The EXPRESS WHERE rule (`IfcBoxAlignment.WR1`, `IFC4_ADD2_TC1.exp`) pins
|
|
577
|
-
* the exact 9-value enum: 'top-left', 'top-middle', 'top-right',
|
|
578
|
-
* 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle',
|
|
579
|
-
* 'bottom-right'. Note the row/column asymmetry the spec itself bakes in:
|
|
580
|
-
* the ROW qualifier is top/middle/bottom, the COLUMN qualifier is
|
|
581
|
-
* left/middle/right — so "middle" means vertical-center as the first token
|
|
582
|
-
* ("middle-left") but horizontal-center as the second token ("top-middle",
|
|
583
|
-
* "bottom-middle"). A plain `includes('middle')` cannot tell those apart —
|
|
584
|
-
* it used to read "bottom-middle" as vertical=middle (wrong: it's the
|
|
585
|
-
* bottom row) and every "*-middle" as horizontal=left (wrong: it's the
|
|
586
|
-
* middle column). Splitting on the hyphen resolves the ambiguity: the
|
|
587
|
-
* first token decides vertical, the second decides horizontal, matching
|
|
588
|
-
* the row-then-column order every compound value in the enum uses.
|
|
589
|
-
*
|
|
590
|
-
* Vertical comes from the first token, horizontal from the second, or from
|
|
591
|
-
* the whole string for a single-token value like "center": top 0, middle
|
|
592
|
-
* -0.5, bottom -1 (the IFC default) vertically; left 0 (the IFC default),
|
|
593
|
-
* middle/center -0.5, right -1 horizontally. Unknown or empty falls back to
|
|
594
|
-
* ("bottom", "left"). The if/else below is the same table, which is why this
|
|
595
|
-
* is prose: the file sits exactly on its module-size budget, and two
|
|
596
|
-
* documented public fields cost the four lines this paragraph gives back.
|
|
597
|
-
*/
|
|
598
|
-
export function parseBoxAlignment(s) {
|
|
599
|
-
const norm = s.toLowerCase().trim();
|
|
600
|
-
if (norm === '')
|
|
601
|
-
return { horizontal: 0, vertical: -1 };
|
|
602
|
-
const parts = norm.split('-');
|
|
603
|
-
const verticalToken = parts.length >= 2 ? parts[0] : norm;
|
|
604
|
-
const horizontalToken = parts.length >= 2 ? parts[1] : norm;
|
|
605
|
-
let vertical;
|
|
606
|
-
if (verticalToken.includes('top'))
|
|
607
|
-
vertical = 0;
|
|
608
|
-
else if (verticalToken.includes('middle') || verticalToken.includes('center'))
|
|
609
|
-
vertical = -0.5;
|
|
610
|
-
else
|
|
611
|
-
vertical = -1;
|
|
612
|
-
let horizontal;
|
|
613
|
-
if (horizontalToken.includes('right'))
|
|
614
|
-
horizontal = -1;
|
|
615
|
-
else if (horizontalToken.includes('middle') || horizontalToken.includes('center'))
|
|
616
|
-
horizontal = -0.5;
|
|
617
|
-
else
|
|
618
|
-
horizontal = 0;
|
|
619
|
-
return { horizontal, vertical };
|
|
620
|
-
}
|
|
621
|
-
/**
|
|
622
|
-
* Triangulate a fill region (outer bound plus inner bounds) and append every
|
|
623
|
-
* output triangle to `stream` as 3 x (x, y, z, r, g, b, a) entries, matching
|
|
624
|
-
* the fill pipeline's vertex layout.
|
|
625
|
-
*
|
|
626
|
-
* `holesOffsets` splits the flat `points` buffer into rings; rings with fewer
|
|
627
|
-
* than 3 vertices are dropped. Which of those rings are filled and which are
|
|
628
|
-
* voids is decided by nesting, not by position, so an inner bound that itself
|
|
629
|
-
* contains an island fills that island (see `fill-triangulate.ts`).
|
|
630
|
-
*/
|
|
631
|
-
function triangulateFillTo(stream, fill) {
|
|
632
|
-
const { points, holesOffsets, worldY, color } = fill;
|
|
633
|
-
if (points.length < 6)
|
|
634
|
-
return;
|
|
635
|
-
// Convert the flat ring buffer into rings of {x, z} (Y is constant).
|
|
636
|
-
const totalVerts = points.length / 2;
|
|
637
|
-
const ringStarts = [0, ...Array.from(holesOffsets), totalVerts];
|
|
638
|
-
if (ringStarts.length < 2)
|
|
639
|
-
return;
|
|
640
|
-
const rings = [];
|
|
641
|
-
for (let r = 0; r < ringStarts.length - 1; r++) {
|
|
642
|
-
const start = ringStarts[r];
|
|
643
|
-
const end = ringStarts[r + 1];
|
|
644
|
-
if (end - start < 3)
|
|
645
|
-
continue;
|
|
646
|
-
const ring = [];
|
|
647
|
-
for (let v = start; v < end; v++) {
|
|
648
|
-
ring.push({ x: points[v * 2], z: points[v * 2 + 1] });
|
|
649
|
-
}
|
|
650
|
-
rings.push(ring);
|
|
651
|
-
}
|
|
652
|
-
if (rings.length === 0)
|
|
653
|
-
return;
|
|
654
|
-
const { points: verts, triangles } = triangulateRings(rings);
|
|
655
|
-
for (const tri of triangles) {
|
|
656
|
-
for (const idx of tri) {
|
|
657
|
-
const v = verts[idx];
|
|
658
|
-
stream.push(v.x, worldY, v.z, color[0], color[1], color[2], color[3]);
|
|
659
|
-
}
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
655
|
//# sourceMappingURL=symbolic-overlay-pipelines.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbolic-overlay-pipelines.js","sourceRoot":"","sources":["../src/symbolic-overlay-pipelines.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"symbolic-overlay-pipelines.js","sourceRoot":"","sources":["../src/symbolic-overlay-pipelines.ts"],"names":[],"mappings":"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"}
|