@ifc-lite/renderer 1.38.1 → 1.40.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 +8 -0
- package/dist/deviation/deviation-pipeline.d.ts.map +1 -1
- package/dist/deviation/deviation-pipeline.js +20 -9
- package/dist/deviation/deviation-pipeline.js.map +1 -1
- package/dist/deviation/deviation-shader.wgsl.d.ts +1 -1
- package/dist/deviation/deviation-shader.wgsl.d.ts.map +1 -1
- package/dist/deviation/deviation-shader.wgsl.js +11 -3
- package/dist/deviation/deviation-shader.wgsl.js.map +1 -1
- package/dist/index.d.ts +45 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -3
- package/dist/index.js.map +1 -1
- package/dist/picker.d.ts +9 -0
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +84 -2
- package/dist/picker.js.map +1 -1
- package/dist/pointcloud/point-cloud-node.d.ts +46 -0
- package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-node.js +71 -0
- package/dist/pointcloud/point-cloud-node.js.map +1 -1
- package/dist/pointcloud/point-cloud-ray-transform.d.ts +66 -0
- package/dist/pointcloud/point-cloud-ray-transform.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-ray-transform.js +172 -0
- package/dist/pointcloud/point-cloud-ray-transform.js.map +1 -0
- package/dist/pointcloud/point-cloud-renderer.d.ts +39 -6
- package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-renderer.js +53 -17
- package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
- package/dist/pointcloud/point-cloud-spatial-index.d.ts +188 -0
- package/dist/pointcloud/point-cloud-spatial-index.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-spatial-index.js +536 -0
- package/dist/pointcloud/point-cloud-spatial-index.js.map +1 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts +14 -2
- package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-uniforms.js +49 -8
- package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
- package/dist/pointcloud/point-pipeline.d.ts +3 -2
- package/dist/pointcloud/point-pipeline.d.ts.map +1 -1
- package/dist/pointcloud/point-pipeline.js +8 -5
- package/dist/pointcloud/point-pipeline.js.map +1 -1
- package/dist/pointcloud/point-shader.wgsl.d.ts +1 -1
- package/dist/pointcloud/point-shader.wgsl.d.ts.map +1 -1
- package/dist/pointcloud/point-shader.wgsl.js +20 -17
- package/dist/pointcloud/point-shader.wgsl.js.map +1 -1
- package/dist/raycast-engine.d.ts +8 -0
- package/dist/raycast-engine.d.ts.map +1 -1
- package/dist/raycast-engine.js +68 -23
- package/dist/raycast-engine.js.map +1 -1
- package/dist/raycast-point-cloud-query.d.ts +122 -0
- package/dist/raycast-point-cloud-query.d.ts.map +1 -0
- package/dist/raycast-point-cloud-query.js +145 -0
- package/dist/raycast-point-cloud-query.js.map +1 -0
- package/dist/scene.d.ts +18 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +166 -63
- package/dist/scene.js.map +1 -1
- package/dist/snap-detector.d.ts +12 -1
- package/dist/snap-detector.d.ts.map +1 -1
- package/dist/snap-detector.js +9 -1
- package/dist/snap-detector.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Point-cloud ray query glue for `RaycastEngine` (issue #1860). Extracted
|
|
3
|
+
* out of `raycast-engine.ts` to keep that file under this repo's
|
|
4
|
+
* ~400-line module-split guideline — this is pure composition logic
|
|
5
|
+
* with no BVH/mesh-raycast state of its own.
|
|
6
|
+
*/
|
|
7
|
+
import type { Ray, Vec3 } from './raycaster.js';
|
|
8
|
+
import type { MagneticSnapResult, SnapOptions, SnapTarget } from './snap-detector.js';
|
|
9
|
+
import type { PickOptions } from './types.js';
|
|
10
|
+
import type { PointCloudSpatialIndex } from './pointcloud/point-cloud-spatial-index.js';
|
|
11
|
+
/** Source the RaycastEngine queries for point-cloud ray snapping (#1860). */
|
|
12
|
+
export interface PointCloudRaySource {
|
|
13
|
+
expressId: number;
|
|
14
|
+
modelIndex?: number;
|
|
15
|
+
index: PointCloudSpatialIndex;
|
|
16
|
+
/** Current LAS class visibility bitmask (#1783); hidden-class points
|
|
17
|
+
* are not snappable. Omit for "everything visible". */
|
|
18
|
+
classMask?: Uint32Array | null;
|
|
19
|
+
/**
|
|
20
|
+
* The node's per-asset render transform (#1804), or undefined when the
|
|
21
|
+
* asset is unaligned. The index holds RAW decoder positions, so without
|
|
22
|
+
* this the query would snap to where a georeferenced point sat BEFORE
|
|
23
|
+
* alignment while the shader draws it somewhere else — see
|
|
24
|
+
* `point-cloud-ray-transform.ts`.
|
|
25
|
+
*/
|
|
26
|
+
model?: Float32Array;
|
|
27
|
+
}
|
|
28
|
+
/** Supplied by the renderer once point clouds are loaded; empty/null disables point snapping. */
|
|
29
|
+
export type PointCloudRayProvider = () => ReadonlyArray<PointCloudRaySource>;
|
|
30
|
+
export interface PointCloudRayResult {
|
|
31
|
+
position: Vec3;
|
|
32
|
+
expressId: number;
|
|
33
|
+
modelIndex?: number;
|
|
34
|
+
distance: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The camera facts the point-cloud snap tolerance depends on. In
|
|
38
|
+
* perspective mode the world size of a screen pixel grows linearly with
|
|
39
|
+
* ray depth `t`; in orthographic mode it is CONSTANT
|
|
40
|
+
* (`2 * orthoHalfHeight / canvasHeightPx` per pixel, independent of
|
|
41
|
+
* depth), so `orthoHalfHeight` must be supplied when the camera is
|
|
42
|
+
* orthographic or far points get an inflated snap radius and near
|
|
43
|
+
* points an unusably tight one. (The mesh snap path predates this and
|
|
44
|
+
* still applies the perspective formula in ortho — a pre-existing
|
|
45
|
+
* divergence, not one this module introduces.)
|
|
46
|
+
*/
|
|
47
|
+
export interface PointCloudSnapCamera {
|
|
48
|
+
/** Vertical field of view in RADIANS (`Camera.getFOV()`), perspective only. */
|
|
49
|
+
fov: number;
|
|
50
|
+
canvasHeightPx: number;
|
|
51
|
+
/** `Camera.getOrthoSize()` when the projection is orthographic, else null. */
|
|
52
|
+
orthoHalfHeight?: number | null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* World-space point-cloud snap tolerance at ray depth `t` — the same
|
|
56
|
+
* conversion `queryPointClouds` uses internally, exposed so
|
|
57
|
+
* `pointCloudWinsOverMeshSnap` can apply the identical margin when
|
|
58
|
+
* deciding whether a point-cloud hit is meaningfully in FRONT of an
|
|
59
|
+
* existing mesh snap, not just a few mm of scan noise nearer (#1860
|
|
60
|
+
* review finding 2).
|
|
61
|
+
*/
|
|
62
|
+
export declare function pointCloudSnapToleranceAt(t: number, camera: PointCloudSnapCamera): number;
|
|
63
|
+
/**
|
|
64
|
+
* Whether the caller's snap configuration allows point-cloud snapping at
|
|
65
|
+
* all. Mirrors `SnapDetector`'s defaulting (absent fields mean ON): with
|
|
66
|
+
* no `snapOptions` every snap kind is enabled; with one, an explicit
|
|
67
|
+
* `snapToPointClouds` wins, otherwise point snapping follows "is any
|
|
68
|
+
* mesh snap kind enabled" — so the viewer's snap toggle (which flips
|
|
69
|
+
* vertices/edges/faces all off) disables scan-point snapping too instead
|
|
70
|
+
* of the measure tool still magnetically grabbing scan points with
|
|
71
|
+
* snapping visibly OFF.
|
|
72
|
+
*/
|
|
73
|
+
export declare function pointCloudSnapEnabled(snapOptions?: Partial<SnapOptions>): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Nearest point, across every loaded point-cloud asset, to `ray` within a
|
|
76
|
+
* small screen-space tolerance of depth `t`, bounded to `[0, maxDistance]`.
|
|
77
|
+
* Returns null when no point cloud is loaded, no point falls within
|
|
78
|
+
* tolerance, or every candidate is filtered out by
|
|
79
|
+
* `hiddenIds`/`isolatedIds` (checked per whole asset — point clouds have
|
|
80
|
+
* no finer-grained visibility, matching the existing GPU pick path in
|
|
81
|
+
* `picking-manager.ts`).
|
|
82
|
+
*/
|
|
83
|
+
export declare function queryPointClouds(provider: PointCloudRayProvider | null, ray: Ray, camera: PointCloudSnapCamera, maxDistance: number, options?: PickOptions): PointCloudRayResult | null;
|
|
84
|
+
/** Inputs to the mesh-vs-point-cloud snap override decision. */
|
|
85
|
+
export interface PointCloudOverrideDecision {
|
|
86
|
+
/** The point-cloud hit under consideration. */
|
|
87
|
+
pointHit: PointCloudRayResult;
|
|
88
|
+
/** The mesh path's existing snap target (vertex/edge/face/...), or null
|
|
89
|
+
* when the mesh path produced no snap (bare face hit / snapping off). */
|
|
90
|
+
meshSnapTarget: SnapTarget | null;
|
|
91
|
+
/** The raw mesh raycast distance, or null when there was no mesh hit
|
|
92
|
+
* at all (point-cloud-only scene). */
|
|
93
|
+
meshIntersectionDistance: number | null;
|
|
94
|
+
camera: PointCloudSnapCamera;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Should a point-cloud hit override the mesh path's result? (#1860 review
|
|
98
|
+
* finding 2.)
|
|
99
|
+
*
|
|
100
|
+
* When the mesh path found NO snap target (a bare face hit, snapping
|
|
101
|
+
* disabled, or no mesh hit at all), a point-cloud hit always wins — this
|
|
102
|
+
* matches the pre-existing "point wins when present" behavior, since
|
|
103
|
+
* there's nothing more specific to preserve.
|
|
104
|
+
*
|
|
105
|
+
* When the mesh path DID find a snap target (vertex/edge/face/face
|
|
106
|
+
* center), a point-cloud hit only wins when it is MEANINGFULLY in front
|
|
107
|
+
* of the mesh surface — `pointHit.distance < meshIntersectionDistance -
|
|
108
|
+
* toleranceAt(pointHit.distance)` — not just a few millimetres nearer.
|
|
109
|
+
* Scan points sit ON scanned surfaces plus/minus centimetres of capture
|
|
110
|
+
* noise, so wherever a scan overlaps its as-designed model (the common
|
|
111
|
+
* case), a coincidence-only "nearer wins" rule would non-deterministically
|
|
112
|
+
* steal an intended vertex/corner snap on essentially every measurement
|
|
113
|
+
* over scanned geometry. Requiring the point to clear the surface by more
|
|
114
|
+
* than its own screen-space tolerance means it must be a real occluder
|
|
115
|
+
* (something genuinely in front, e.g. scanned furniture in front of a
|
|
116
|
+
* modeled wall), not scan noise on the same surface.
|
|
117
|
+
*/
|
|
118
|
+
export declare function pointCloudWinsOverMeshSnap(decision: PointCloudOverrideDecision): boolean;
|
|
119
|
+
/** A released (non-locked) edge-lock result, used whenever a point-cloud
|
|
120
|
+
* snap wins — point snapping has no edge-lock concept of its own. */
|
|
121
|
+
export declare function releasedEdgeLock(): MagneticSnapResult['edgeLock'];
|
|
122
|
+
//# sourceMappingURL=raycast-point-cloud-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raycast-point-cloud-query.d.ts","sourceRoot":"","sources":["../src/raycast-point-cloud-query.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGxF,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,sBAAsB,CAAC;IAC9B;4DACwD;IACxD,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,iGAAiG;AACjG,MAAM,MAAM,qBAAqB,GAAG,MAAM,aAAa,CAAC,mBAAmB,CAAC,CAAC;AAQ7E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAMzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAMjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,qBAAqB,GAAG,IAAI,EACtC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,mBAAmB,GAAG,IAAI,CAyD5B;AAED,gEAAgE;AAChE,MAAM,WAAW,0BAA0B;IACzC,+CAA+C;IAC/C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B;8EAC0E;IAC1E,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC;2CACuC;IACvC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAKxF;AAED;sEACsE;AACtE,wBAAgB,gBAAgB,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAUjE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
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
|
+
import { screenToWorldRadius } from './snap-geometry-utils.js';
|
|
5
|
+
import { toLocalFrameRay } from './pointcloud/point-cloud-ray-transform.js';
|
|
6
|
+
/** Screen-space snap tolerance for point-cloud picking (~8 CSS-equivalent
|
|
7
|
+
* px at the canvas' device-pixel scale, per the #1860 design brief) —
|
|
8
|
+
* tighter than the 40-60px mesh vertex/edge snap radii since a scan
|
|
9
|
+
* point has no larger "target zone" the way an edge or corner does. */
|
|
10
|
+
const POINT_CLOUD_SNAP_TOLERANCE_PX = 8;
|
|
11
|
+
/**
|
|
12
|
+
* World-space point-cloud snap tolerance at ray depth `t` — the same
|
|
13
|
+
* conversion `queryPointClouds` uses internally, exposed so
|
|
14
|
+
* `pointCloudWinsOverMeshSnap` can apply the identical margin when
|
|
15
|
+
* deciding whether a point-cloud hit is meaningfully in FRONT of an
|
|
16
|
+
* existing mesh snap, not just a few mm of scan noise nearer (#1860
|
|
17
|
+
* review finding 2).
|
|
18
|
+
*/
|
|
19
|
+
export function pointCloudSnapToleranceAt(t, camera) {
|
|
20
|
+
if (camera.orthoHalfHeight !== undefined && camera.orthoHalfHeight !== null) {
|
|
21
|
+
// Orthographic: a pixel spans the same world distance at every depth.
|
|
22
|
+
return (POINT_CLOUD_SNAP_TOLERANCE_PX / camera.canvasHeightPx) * (2 * camera.orthoHalfHeight);
|
|
23
|
+
}
|
|
24
|
+
return screenToWorldRadius(POINT_CLOUD_SNAP_TOLERANCE_PX, t, camera.fov, camera.canvasHeightPx);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Whether the caller's snap configuration allows point-cloud snapping at
|
|
28
|
+
* all. Mirrors `SnapDetector`'s defaulting (absent fields mean ON): with
|
|
29
|
+
* no `snapOptions` every snap kind is enabled; with one, an explicit
|
|
30
|
+
* `snapToPointClouds` wins, otherwise point snapping follows "is any
|
|
31
|
+
* mesh snap kind enabled" — so the viewer's snap toggle (which flips
|
|
32
|
+
* vertices/edges/faces all off) disables scan-point snapping too instead
|
|
33
|
+
* of the measure tool still magnetically grabbing scan points with
|
|
34
|
+
* snapping visibly OFF.
|
|
35
|
+
*/
|
|
36
|
+
export function pointCloudSnapEnabled(snapOptions) {
|
|
37
|
+
if (!snapOptions)
|
|
38
|
+
return true;
|
|
39
|
+
if (snapOptions.snapToPointClouds !== undefined)
|
|
40
|
+
return snapOptions.snapToPointClouds;
|
|
41
|
+
return (snapOptions.snapToVertices ?? true)
|
|
42
|
+
|| (snapOptions.snapToEdges ?? true)
|
|
43
|
+
|| (snapOptions.snapToFaces ?? true);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Nearest point, across every loaded point-cloud asset, to `ray` within a
|
|
47
|
+
* small screen-space tolerance of depth `t`, bounded to `[0, maxDistance]`.
|
|
48
|
+
* Returns null when no point cloud is loaded, no point falls within
|
|
49
|
+
* tolerance, or every candidate is filtered out by
|
|
50
|
+
* `hiddenIds`/`isolatedIds` (checked per whole asset — point clouds have
|
|
51
|
+
* no finer-grained visibility, matching the existing GPU pick path in
|
|
52
|
+
* `picking-manager.ts`).
|
|
53
|
+
*/
|
|
54
|
+
export function queryPointClouds(provider, ray, camera, maxDistance, options) {
|
|
55
|
+
if (!provider || maxDistance <= 0)
|
|
56
|
+
return null;
|
|
57
|
+
const sources = provider();
|
|
58
|
+
if (sources.length === 0)
|
|
59
|
+
return null;
|
|
60
|
+
const toleranceAt = (t) => pointCloudSnapToleranceAt(t, camera);
|
|
61
|
+
let best = null;
|
|
62
|
+
for (const src of sources) {
|
|
63
|
+
if (options?.hiddenIds?.has(src.expressId))
|
|
64
|
+
continue;
|
|
65
|
+
if (options?.isolatedIds !== null &&
|
|
66
|
+
options?.isolatedIds !== undefined &&
|
|
67
|
+
!options.isolatedIds.has(src.expressId)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
// Never search past the current best (or the caller's bound) — keeps
|
|
71
|
+
// the "nearest across assets" search itself O(assets).
|
|
72
|
+
const bound = best ? Math.min(maxDistance, best.distance) : maxDistance;
|
|
73
|
+
// An aligned asset (#1804) renders through `model` while its index
|
|
74
|
+
// holds raw decoder positions, so the ray has to be rewritten into the
|
|
75
|
+
// node's local frame — and every distance-valued quantity converted
|
|
76
|
+
// with it, or the screen-space tolerance quietly changes meaning under
|
|
77
|
+
// a non-metre CRS. `null` means "no transform needed", which is both
|
|
78
|
+
// the unaligned fast path and the safe fallback for a singular matrix.
|
|
79
|
+
const local = toLocalFrameRay(ray.origin, ray.direction, src.model);
|
|
80
|
+
if (!local) {
|
|
81
|
+
const hit = src.index.queryRay(ray.origin, ray.direction, bound, toleranceAt, src.classMask);
|
|
82
|
+
if (hit && (!best || hit.distance < best.distance)) {
|
|
83
|
+
best = { position: hit.position, expressId: src.expressId, modelIndex: src.modelIndex, distance: hit.distance };
|
|
84
|
+
}
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const s = local.distanceScale;
|
|
88
|
+
const hit = src.index.queryRay(local.origin, local.direction, bound / s, (tLocal) => toleranceAt(tLocal * s) / s, src.classMask);
|
|
89
|
+
if (hit) {
|
|
90
|
+
const worldDistance = hit.distance * s;
|
|
91
|
+
if (!best || worldDistance < best.distance) {
|
|
92
|
+
best = {
|
|
93
|
+
position: local.toWorld(hit.position),
|
|
94
|
+
expressId: src.expressId,
|
|
95
|
+
modelIndex: src.modelIndex,
|
|
96
|
+
distance: worldDistance,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return best;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Should a point-cloud hit override the mesh path's result? (#1860 review
|
|
105
|
+
* finding 2.)
|
|
106
|
+
*
|
|
107
|
+
* When the mesh path found NO snap target (a bare face hit, snapping
|
|
108
|
+
* disabled, or no mesh hit at all), a point-cloud hit always wins — this
|
|
109
|
+
* matches the pre-existing "point wins when present" behavior, since
|
|
110
|
+
* there's nothing more specific to preserve.
|
|
111
|
+
*
|
|
112
|
+
* When the mesh path DID find a snap target (vertex/edge/face/face
|
|
113
|
+
* center), a point-cloud hit only wins when it is MEANINGFULLY in front
|
|
114
|
+
* of the mesh surface — `pointHit.distance < meshIntersectionDistance -
|
|
115
|
+
* toleranceAt(pointHit.distance)` — not just a few millimetres nearer.
|
|
116
|
+
* Scan points sit ON scanned surfaces plus/minus centimetres of capture
|
|
117
|
+
* noise, so wherever a scan overlaps its as-designed model (the common
|
|
118
|
+
* case), a coincidence-only "nearer wins" rule would non-deterministically
|
|
119
|
+
* steal an intended vertex/corner snap on essentially every measurement
|
|
120
|
+
* over scanned geometry. Requiring the point to clear the surface by more
|
|
121
|
+
* than its own screen-space tolerance means it must be a real occluder
|
|
122
|
+
* (something genuinely in front, e.g. scanned furniture in front of a
|
|
123
|
+
* modeled wall), not scan noise on the same surface.
|
|
124
|
+
*/
|
|
125
|
+
export function pointCloudWinsOverMeshSnap(decision) {
|
|
126
|
+
const { pointHit, meshSnapTarget, meshIntersectionDistance, camera } = decision;
|
|
127
|
+
if (!meshSnapTarget || meshIntersectionDistance === null)
|
|
128
|
+
return true;
|
|
129
|
+
const occlusionMargin = pointCloudSnapToleranceAt(pointHit.distance, camera);
|
|
130
|
+
return pointHit.distance < meshIntersectionDistance - occlusionMargin;
|
|
131
|
+
}
|
|
132
|
+
/** A released (non-locked) edge-lock result, used whenever a point-cloud
|
|
133
|
+
* snap wins — point snapping has no edge-lock concept of its own. */
|
|
134
|
+
export function releasedEdgeLock() {
|
|
135
|
+
return {
|
|
136
|
+
edge: null,
|
|
137
|
+
meshExpressId: null,
|
|
138
|
+
edgeT: 0,
|
|
139
|
+
shouldLock: false,
|
|
140
|
+
shouldRelease: true,
|
|
141
|
+
isCorner: false,
|
|
142
|
+
cornerValence: 0,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=raycast-point-cloud-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raycast-point-cloud-query.js","sourceRoot":"","sources":["../src/raycast-point-cloud-query.ts"],"names":[],"mappings":"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"}
|
package/dist/scene.d.ts
CHANGED
|
@@ -34,6 +34,10 @@ export interface TexturedMesh {
|
|
|
34
34
|
bindGroup: GPUBindGroup;
|
|
35
35
|
/** Authored tint (multiplies the sampled texel); white = texture passthrough. */
|
|
36
36
|
color: [number, number, number, number];
|
|
37
|
+
/** Set when `texture` lives in the shared registry (#1781: one GPU texture
|
|
38
|
+
* per `IfcImageTexture`, sampled by many meshes) — released by refcount,
|
|
39
|
+
* never destroyed per-mesh. Undefined for per-mesh #961 blob/pixel uploads. */
|
|
40
|
+
sharedTextureKey?: number;
|
|
37
41
|
}
|
|
38
42
|
/**
|
|
39
43
|
* One GPU-uploaded instanced template: unique geometry (slot-0 vertex + index
|
|
@@ -71,6 +75,10 @@ export declare class Scene {
|
|
|
71
75
|
private meshDataMap;
|
|
72
76
|
private boundingBoxes;
|
|
73
77
|
private texturedMeshes;
|
|
78
|
+
/** #1781: GPU textures shared across meshes, keyed by `MeshTextureRef.textureId`
|
|
79
|
+
* (one `IfcImageTexture` → one upload, sampled by every face set mapping it).
|
|
80
|
+
* Refcounted: entries die when the last referencing mesh is removed / on clear(). */
|
|
81
|
+
private sharedTextures;
|
|
74
82
|
private texturedDevice?;
|
|
75
83
|
private instancedTemplates;
|
|
76
84
|
private instancedVisible;
|
|
@@ -762,6 +770,12 @@ export declare class Scene {
|
|
|
762
770
|
* The per-frame uniform (viewProj/section/flags + colour tint) is written by
|
|
763
771
|
* the renderer each frame, mirroring how colour batches are driven.
|
|
764
772
|
*/
|
|
773
|
+
/** True when the mesh can render through the textured pipeline: UVs plus
|
|
774
|
+
* either a Rust-decoded image (#961) or a viewer-resolved ImageBitmap for
|
|
775
|
+
* an external `IfcImageTexture` reference (#1781). A `textureRef` whose
|
|
776
|
+
* image was NOT resolved (missing zip sibling) renders as ordinary
|
|
777
|
+
* flat-colour geometry instead. */
|
|
778
|
+
private static hasRenderableTexture;
|
|
765
779
|
/**
|
|
766
780
|
* Interleave a textured mesh's vertices into the stride-36 layout
|
|
767
781
|
* `[px,py,pz, nx,ny,nz, entityId(u32), u,v]`. Shared by initial upload and
|
|
@@ -770,6 +784,10 @@ export declare class Scene {
|
|
|
770
784
|
*/
|
|
771
785
|
private interleaveTexturedVertices;
|
|
772
786
|
private createTexturedMesh;
|
|
787
|
+
/** Release a textured mesh's GPU texture: shared (#1781) entries decrement
|
|
788
|
+
* the registry refcount and die with their LAST reference; per-mesh (#961)
|
|
789
|
+
* uploads are destroyed outright. */
|
|
790
|
+
private releaseTexturedMeshTexture;
|
|
773
791
|
clear(): void;
|
|
774
792
|
/**
|
|
775
793
|
* Calculate bounding box from actual mesh vertex data
|
package/dist/scene.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}
|