@ifc-lite/clash 1.9.0 → 1.9.2
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/adapters/shared.d.ts +22 -1
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/shared.js +32 -3
- package/dist/adapters/shared.js.map +1 -1
- package/dist/contact/mesh-bvh.d.ts.map +1 -1
- package/dist/contact/mesh-bvh.js +21 -12
- package/dist/contact/mesh-bvh.js.map +1 -1
- package/package.json +9 -9
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
* ever consider real building elements. (#1464)
|
|
8
8
|
*
|
|
9
9
|
* Spatial containers are handled separately by {@link isSpatialContainerTag},
|
|
10
|
-
*
|
|
10
|
+
* and voids by {@link isVoidFeatureTag} — both derive from the schema rather
|
|
11
|
+
* than from a list. `IfcOpeningElement` / `IfcOpeningStandardCase` were
|
|
12
|
+
* listed here by hand and are now covered by that walk, which also catches
|
|
13
|
+
* the subtraction classes the list had never heard of.
|
|
11
14
|
*/
|
|
12
15
|
export declare const NON_CLASHABLE_TAGS: ReadonlySet<string>;
|
|
13
16
|
/**
|
|
@@ -28,6 +31,24 @@ export declare const NON_CLASHABLE_TAGS: ReadonlySet<string>;
|
|
|
28
31
|
* that #1464 listed by hand.
|
|
29
32
|
*/
|
|
30
33
|
export declare function isSpatialContainerTag(tag: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* True for SUBTRACTION features — the classes whose geometry describes a hole
|
|
36
|
+
* rather than material: `IfcOpeningElement`, `IfcOpeningStandardCase`,
|
|
37
|
+
* `IfcVoidingFeature` and IFC4.3's `IfcEarthworksCut`. A void is meshed like
|
|
38
|
+
* any other product, so every one that reached the candidate set clashed with
|
|
39
|
+
* the very element it cuts — the phantom-clash symptom of #1464, under a class
|
|
40
|
+
* name the hand-written list did not carry.
|
|
41
|
+
*
|
|
42
|
+
* Derived, not enumerated: `getInheritanceChainAcrossSchemas` walks the
|
|
43
|
+
* bundled IFC2X3 + IFC4 + IFC4X3 union, so a subtraction class added by a
|
|
44
|
+
* later schema is covered the day the bundled schemas learn it.
|
|
45
|
+
*
|
|
46
|
+
* Deliberately the SUBTRACTION branch and not the whole `IfcFeatureElement`
|
|
47
|
+
* tree: `IfcFeatureElementAddition` (`IfcProjectionElement`, a corbel) and
|
|
48
|
+
* `IfcSurfaceFeature` are physical material that occupies space, so a clash
|
|
49
|
+
* against them is a real coordination problem and must keep being reported.
|
|
50
|
+
*/
|
|
51
|
+
export declare function isVoidFeatureTag(tag: string): boolean;
|
|
31
52
|
/**
|
|
32
53
|
* Whether an element carrying this IFC class `tag` should never become a
|
|
33
54
|
* clash candidate: non-physical/reference geometry, a spatial container, or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AA2CA
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AA2CA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAQjD,CAAC;AAKH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAS1D;AAKD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMrD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG;IAAE,SAAS,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CA6BrG"}
|
package/dist/adapters/shared.js
CHANGED
|
@@ -47,11 +47,12 @@ import { getInheritanceChainAcrossSchemas, isIfcTypeLikeEntity } from '@ifc-lite
|
|
|
47
47
|
* ever consider real building elements. (#1464)
|
|
48
48
|
*
|
|
49
49
|
* Spatial containers are handled separately by {@link isSpatialContainerTag},
|
|
50
|
-
*
|
|
50
|
+
* and voids by {@link isVoidFeatureTag} — both derive from the schema rather
|
|
51
|
+
* than from a list. `IfcOpeningElement` / `IfcOpeningStandardCase` were
|
|
52
|
+
* listed here by hand and are now covered by that walk, which also catches
|
|
53
|
+
* the subtraction classes the list had never heard of.
|
|
51
54
|
*/
|
|
52
55
|
export const NON_CLASHABLE_TAGS = new Set([
|
|
53
|
-
'IfcOpeningElement',
|
|
54
|
-
'IfcOpeningStandardCase',
|
|
55
56
|
'IfcVirtualElement',
|
|
56
57
|
'IfcGrid',
|
|
57
58
|
'IfcGridAxis',
|
|
@@ -88,6 +89,33 @@ export function isSpatialContainerTag(tag) {
|
|
|
88
89
|
spatialContainerByTag.set(tag, spatial);
|
|
89
90
|
return spatial;
|
|
90
91
|
}
|
|
92
|
+
/** Memoizes the void-feature walk below, like `spatialContainerByTag`. */
|
|
93
|
+
const voidFeatureByTag = new Map();
|
|
94
|
+
/**
|
|
95
|
+
* True for SUBTRACTION features — the classes whose geometry describes a hole
|
|
96
|
+
* rather than material: `IfcOpeningElement`, `IfcOpeningStandardCase`,
|
|
97
|
+
* `IfcVoidingFeature` and IFC4.3's `IfcEarthworksCut`. A void is meshed like
|
|
98
|
+
* any other product, so every one that reached the candidate set clashed with
|
|
99
|
+
* the very element it cuts — the phantom-clash symptom of #1464, under a class
|
|
100
|
+
* name the hand-written list did not carry.
|
|
101
|
+
*
|
|
102
|
+
* Derived, not enumerated: `getInheritanceChainAcrossSchemas` walks the
|
|
103
|
+
* bundled IFC2X3 + IFC4 + IFC4X3 union, so a subtraction class added by a
|
|
104
|
+
* later schema is covered the day the bundled schemas learn it.
|
|
105
|
+
*
|
|
106
|
+
* Deliberately the SUBTRACTION branch and not the whole `IfcFeatureElement`
|
|
107
|
+
* tree: `IfcFeatureElementAddition` (`IfcProjectionElement`, a corbel) and
|
|
108
|
+
* `IfcSurfaceFeature` are physical material that occupies space, so a clash
|
|
109
|
+
* against them is a real coordination problem and must keep being reported.
|
|
110
|
+
*/
|
|
111
|
+
export function isVoidFeatureTag(tag) {
|
|
112
|
+
const cached = voidFeatureByTag.get(tag);
|
|
113
|
+
if (cached !== undefined)
|
|
114
|
+
return cached;
|
|
115
|
+
const isVoid = getInheritanceChainAcrossSchemas(tag).includes('IfcFeatureElementSubtraction');
|
|
116
|
+
voidFeatureByTag.set(tag, isVoid);
|
|
117
|
+
return isVoid;
|
|
118
|
+
}
|
|
91
119
|
/**
|
|
92
120
|
* Whether an element carrying this IFC class `tag` should never become a
|
|
93
121
|
* clash candidate: non-physical/reference geometry, a spatial container, or
|
|
@@ -97,6 +125,7 @@ export function isSpatialContainerTag(tag) {
|
|
|
97
125
|
*/
|
|
98
126
|
export function isNonClashableTag(tag) {
|
|
99
127
|
return (NON_CLASHABLE_TAGS.has(tag) ||
|
|
128
|
+
isVoidFeatureTag(tag) ||
|
|
100
129
|
isSpatialContainerTag(tag) ||
|
|
101
130
|
isIfcTypeLikeEntity(tag.toUpperCase()));
|
|
102
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,gCAAgC,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-bvh.d.ts","sourceRoot":"","sources":["../../src/contact/mesh-bvh.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,OAAO,CAO9D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,OAAO,SAAI,GACV,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"mesh-bvh.d.ts","sourceRoot":"","sources":["../../src/contact/mesh-bvh.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,OAAO,CAO9D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,OAAO,SAAI,GACV,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyBlC"}
|
package/dist/contact/mesh-bvh.js
CHANGED
|
@@ -24,18 +24,27 @@ export function queryMeshCross(a, b, epsilon = 0) {
|
|
|
24
24
|
return [];
|
|
25
25
|
const out = [];
|
|
26
26
|
crossNode(a.bvh, b.bvh, a.bvh.root, b.bvh.root, epsilon, out);
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
27
|
+
// No dedup pass: the traversal cannot emit a pair twice, so one would be
|
|
28
|
+
// pure cost. `buildNode` (bvh.ts) splits a node's indices into disjoint,
|
|
29
|
+
// covering halves and a leaf keeps exactly its own slice, so every
|
|
30
|
+
// triangle lives in exactly ONE leaf — leaves PARTITION the triangle set.
|
|
31
|
+
// And `crossNode` reaches a node pair (u, w) by one route only: it
|
|
32
|
+
// descends both sides together while both are internal, and only the
|
|
33
|
+
// internal side once the other is a leaf, so with one parent per node the
|
|
34
|
+
// path from (rootA, rootB) is forced. One visit per leaf pair, therefore
|
|
35
|
+
// at most one emission per (iA, iB).
|
|
36
|
+
//
|
|
37
|
+
// This previously ran a `Set<`${iA}|${iB}`>` over `out` as "belt and
|
|
38
|
+
// braces". It deduped nothing (see mesh-bvh.test.ts, which pins the
|
|
39
|
+
// emitted list against brute force across leaf sizes and topologies)
|
|
40
|
+
// while allocating one key string and one Set entry per emitted pair —
|
|
41
|
+
// O(triA * triB) in the worst case, for a SINGLE element pair, uncapped.
|
|
42
|
+
// `Set` shares V8's hard 2^24-entry ceiling, past which insertion throws
|
|
43
|
+
// `RangeError`; 4096 * 4096 = 2^24, so two ~4k-triangle elements whose
|
|
44
|
+
// AABB filter passes nearly everything (dense interpenetrating solids)
|
|
45
|
+
// sit exactly on it. Below that it was simply wasted allocation on the
|
|
46
|
+
// hottest inner loop of contact clustering.
|
|
47
|
+
return out;
|
|
39
48
|
}
|
|
40
49
|
function crossNode(aTree, bTree, aNode, bNode, eps, out) {
|
|
41
50
|
if (!boundsOverlap(aNode.bounds, bNode.bounds, eps))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-bvh.js","sourceRoot":"","sources":["../../src/contact/mesh-bvh.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAYxE,MAAM,UAAU,YAAY,CAAC,IAAU,EAAE,QAAQ,GAAG,CAAC;IACnD,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAiB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,CAAU,EACV,CAAU,EACV,OAAO,GAAG,CAAC;IAEX,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9D,
|
|
1
|
+
{"version":3,"file":"mesh-bvh.js","sourceRoot":"","sources":["../../src/contact/mesh-bvh.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/clash",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.2",
|
|
4
4
|
"description": "Clash detection for IFC-Lite — representation-agnostic core engine + source adapters",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,18 +33,18 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@ifc-lite/spatial": "^1.14.
|
|
37
|
-
"@ifc-lite/geometry": "^
|
|
38
|
-
"@ifc-lite/query": "^
|
|
39
|
-
"@ifc-lite/bcf": "^
|
|
40
|
-
"@ifc-lite/parser": "^4.2
|
|
41
|
-
"@ifc-lite/ifcx": "^
|
|
42
|
-
"@ifc-lite/wasm": "^
|
|
36
|
+
"@ifc-lite/spatial": "^1.14.15",
|
|
37
|
+
"@ifc-lite/geometry": "^4.1.0",
|
|
38
|
+
"@ifc-lite/query": "^2.0.0",
|
|
39
|
+
"@ifc-lite/bcf": "^2.0.0",
|
|
40
|
+
"@ifc-lite/parser": "^4.3.2",
|
|
41
|
+
"@ifc-lite/ifcx": "^3.0.1",
|
|
42
|
+
"@ifc-lite/wasm": "^6.1.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "^6.0.3",
|
|
46
46
|
"vitest": "^4.1.10",
|
|
47
|
-
"@ifc-lite/world-frame-fixtures": "^0.1.
|
|
47
|
+
"@ifc-lite/world-frame-fixtures": "^0.1.1"
|
|
48
48
|
},
|
|
49
49
|
"license": "MPL-2.0",
|
|
50
50
|
"author": "Louis True",
|