@ifc-lite/create 3.1.0 → 4.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/README.md +9 -0
- package/dist/ifc-creator-math.d.ts +5 -7
- package/dist/ifc-creator-math.d.ts.map +1 -1
- package/dist/ifc-creator-math.js +8 -15
- package/dist/ifc-creator-math.js.map +1 -1
- package/dist/in-store/anchor.d.ts +25 -0
- package/dist/in-store/anchor.d.ts.map +1 -1
- package/dist/in-store/auto-space-detect.d.ts +1 -1
- package/dist/in-store/auto-space-detect.js +1 -1
- package/dist/in-store/beam.d.ts +10 -1
- package/dist/in-store/beam.d.ts.map +1 -1
- package/dist/in-store/beam.js +14 -25
- package/dist/in-store/beam.js.map +1 -1
- package/dist/in-store/column.d.ts +18 -1
- package/dist/in-store/column.d.ts.map +1 -1
- package/dist/in-store/column.js +37 -29
- package/dist/in-store/column.js.map +1 -1
- package/dist/in-store/copy-frame.d.ts +52 -0
- package/dist/in-store/copy-frame.d.ts.map +1 -0
- package/dist/in-store/copy-frame.js +99 -0
- package/dist/in-store/copy-frame.js.map +1 -0
- package/dist/in-store/copy-product.d.ts +96 -0
- package/dist/in-store/copy-product.d.ts.map +1 -0
- package/dist/in-store/copy-product.js +318 -0
- package/dist/in-store/copy-product.js.map +1 -0
- package/dist/in-store/curtain-wall.d.ts +87 -0
- package/dist/in-store/curtain-wall.d.ts.map +1 -0
- package/dist/in-store/curtain-wall.js +237 -0
- package/dist/in-store/curtain-wall.js.map +1 -0
- package/dist/in-store/door.d.ts +10 -4
- package/dist/in-store/door.d.ts.map +1 -1
- package/dist/in-store/door.js +23 -17
- package/dist/in-store/door.js.map +1 -1
- package/dist/in-store/element-type.d.ts +40 -0
- package/dist/in-store/element-type.d.ts.map +1 -0
- package/dist/in-store/element-type.js +60 -0
- package/dist/in-store/element-type.js.map +1 -0
- package/dist/in-store/extract-grids.d.ts +46 -0
- package/dist/in-store/extract-grids.d.ts.map +1 -0
- package/dist/in-store/extract-grids.js +211 -0
- package/dist/in-store/extract-grids.js.map +1 -0
- package/dist/in-store/extract-walls.d.ts +12 -23
- package/dist/in-store/extract-walls.d.ts.map +1 -1
- package/dist/in-store/extract-walls.js +14 -83
- package/dist/in-store/extract-walls.js.map +1 -1
- package/dist/in-store/generate-spaces.d.ts +1 -1
- package/dist/in-store/grid.d.ts +118 -0
- package/dist/in-store/grid.d.ts.map +1 -0
- package/dist/in-store/grid.js +194 -0
- package/dist/in-store/grid.js.map +1 -0
- package/dist/in-store/host-geometry-frame.d.ts +44 -0
- package/dist/in-store/host-geometry-frame.d.ts.map +1 -0
- package/dist/in-store/host-geometry-frame.js +146 -0
- package/dist/in-store/host-geometry-frame.js.map +1 -0
- package/dist/in-store/hosted-element-edit.d.ts +29 -0
- package/dist/in-store/hosted-element-edit.d.ts.map +1 -0
- package/dist/in-store/hosted-element-edit.js +120 -0
- package/dist/in-store/hosted-element-edit.js.map +1 -0
- package/dist/in-store/hosted-element.d.ts +41 -0
- package/dist/in-store/hosted-element.d.ts.map +1 -0
- package/dist/in-store/hosted-element.js +124 -0
- package/dist/in-store/hosted-element.js.map +1 -0
- package/dist/in-store/hosted-fill-read.d.ts +56 -0
- package/dist/in-store/hosted-fill-read.d.ts.map +1 -0
- package/dist/in-store/hosted-fill-read.js +197 -0
- package/dist/in-store/hosted-fill-read.js.map +1 -0
- package/dist/in-store/hosted-fill.d.ts +48 -0
- package/dist/in-store/hosted-fill.d.ts.map +1 -0
- package/dist/in-store/hosted-fill.js +58 -0
- package/dist/in-store/hosted-fill.js.map +1 -0
- package/dist/in-store/hosted-global-id.d.ts +8 -0
- package/dist/in-store/hosted-global-id.d.ts.map +1 -0
- package/dist/in-store/hosted-global-id.js +53 -0
- package/dist/in-store/hosted-global-id.js.map +1 -0
- package/dist/in-store/hosted-placement-edit.d.ts +30 -0
- package/dist/in-store/hosted-placement-edit.d.ts.map +1 -0
- package/dist/in-store/hosted-placement-edit.js +123 -0
- package/dist/in-store/hosted-placement-edit.js.map +1 -0
- package/dist/in-store/hosted-scale-chain.d.ts +12 -0
- package/dist/in-store/hosted-scale-chain.d.ts.map +1 -0
- package/dist/in-store/hosted-scale-chain.js +74 -0
- package/dist/in-store/hosted-scale-chain.js.map +1 -0
- package/dist/in-store/hosted-shape-edit.d.ts +9 -0
- package/dist/in-store/hosted-shape-edit.d.ts.map +1 -0
- package/dist/in-store/hosted-shape-edit.js +79 -0
- package/dist/in-store/hosted-shape-edit.js.map +1 -0
- package/dist/in-store/index.d.ts +59 -0
- package/dist/in-store/index.d.ts.map +1 -0
- package/dist/in-store/index.js +64 -0
- package/dist/in-store/index.js.map +1 -0
- package/dist/in-store/material.d.ts +62 -0
- package/dist/in-store/material.d.ts.map +1 -0
- package/dist/in-store/material.js +107 -0
- package/dist/in-store/material.js.map +1 -0
- package/dist/in-store/member.d.ts +8 -2
- package/dist/in-store/member.d.ts.map +1 -1
- package/dist/in-store/member.js +12 -14
- package/dist/in-store/member.js.map +1 -1
- package/dist/in-store/opening.d.ts +45 -0
- package/dist/in-store/opening.d.ts.map +1 -0
- package/dist/in-store/opening.js +104 -0
- package/dist/in-store/opening.js.map +1 -0
- package/dist/in-store/placement-frame.d.ts +9 -4
- package/dist/in-store/placement-frame.d.ts.map +1 -1
- package/dist/in-store/placement-frame.js +39 -39
- package/dist/in-store/placement-frame.js.map +1 -1
- package/dist/in-store/profile.d.ts +141 -0
- package/dist/in-store/profile.d.ts.map +1 -0
- package/dist/in-store/profile.js +174 -0
- package/dist/in-store/profile.js.map +1 -0
- package/dist/in-store/railing.d.ts +65 -0
- package/dist/in-store/railing.d.ts.map +1 -0
- package/dist/in-store/railing.js +112 -0
- package/dist/in-store/railing.js.map +1 -0
- package/dist/in-store/rel-connects-path.d.ts +43 -0
- package/dist/in-store/rel-connects-path.d.ts.map +1 -0
- package/dist/in-store/rel-connects-path.js +65 -0
- package/dist/in-store/rel-connects-path.js.map +1 -0
- package/dist/in-store/relate.d.ts +32 -0
- package/dist/in-store/relate.d.ts.map +1 -0
- package/dist/in-store/relate.js +39 -0
- package/dist/in-store/relate.js.map +1 -0
- package/dist/in-store/resolve-anchor.d.ts +21 -1
- package/dist/in-store/resolve-anchor.d.ts.map +1 -1
- package/dist/in-store/resolve-anchor.js +6 -2
- package/dist/in-store/resolve-anchor.js.map +1 -1
- package/dist/in-store/resolve-host.d.ts +16 -0
- package/dist/in-store/resolve-host.d.ts.map +1 -0
- package/dist/in-store/resolve-host.js +333 -0
- package/dist/in-store/resolve-host.js.map +1 -0
- package/dist/in-store/resolve-relations.d.ts +23 -0
- package/dist/in-store/resolve-relations.d.ts.map +1 -0
- package/dist/in-store/resolve-relations.js +57 -0
- package/dist/in-store/resolve-relations.js.map +1 -0
- package/dist/in-store/resolve-source.d.ts.map +1 -1
- package/dist/in-store/resolve-source.js +59 -63
- package/dist/in-store/resolve-source.js.map +1 -1
- package/dist/in-store/schema-attributes.d.ts +33 -0
- package/dist/in-store/schema-attributes.d.ts.map +1 -0
- package/dist/in-store/schema-attributes.js +102 -0
- package/dist/in-store/schema-attributes.js.map +1 -0
- package/dist/in-store/space-footprints.d.ts +55 -0
- package/dist/in-store/space-footprints.d.ts.map +1 -0
- package/dist/in-store/space-footprints.js +260 -0
- package/dist/in-store/space-footprints.js.map +1 -0
- package/dist/in-store/space.d.ts.map +1 -1
- package/dist/in-store/space.js +15 -3
- package/dist/in-store/space.js.map +1 -1
- package/dist/in-store/spatial-children.d.ts +1 -1
- package/dist/in-store/spatial-children.js +1 -1
- package/dist/in-store/stair-edit.d.ts +24 -0
- package/dist/in-store/stair-edit.d.ts.map +1 -0
- package/dist/in-store/stair-edit.js +190 -0
- package/dist/in-store/stair-edit.js.map +1 -0
- package/dist/in-store/stair.d.ts +58 -0
- package/dist/in-store/stair.d.ts.map +1 -0
- package/dist/in-store/stair.js +156 -0
- package/dist/in-store/stair.js.map +1 -0
- package/dist/in-store/wall-join-apply.d.ts +74 -0
- package/dist/in-store/wall-join-apply.d.ts.map +1 -0
- package/dist/in-store/wall-join-apply.js +137 -0
- package/dist/in-store/wall-join-apply.js.map +1 -0
- package/dist/in-store/wall-join-edit.d.ts +70 -0
- package/dist/in-store/wall-join-edit.d.ts.map +1 -0
- package/dist/in-store/wall-join-edit.js +217 -0
- package/dist/in-store/wall-join-edit.js.map +1 -0
- package/dist/in-store/wall-join-read.d.ts +60 -0
- package/dist/in-store/wall-join-read.d.ts.map +1 -0
- package/dist/in-store/wall-join-read.js +230 -0
- package/dist/in-store/wall-join-read.js.map +1 -0
- package/dist/in-store/wall-join.d.ts +122 -0
- package/dist/in-store/wall-join.d.ts.map +1 -0
- package/dist/in-store/wall-join.js +231 -0
- package/dist/in-store/wall-join.js.map +1 -0
- package/dist/in-store/wall-opening-fit.d.ts +11 -0
- package/dist/in-store/wall-opening-fit.d.ts.map +1 -0
- package/dist/in-store/wall-opening-fit.js +27 -0
- package/dist/in-store/wall-opening-fit.js.map +1 -0
- package/dist/in-store/wall.d.ts +32 -0
- package/dist/in-store/wall.d.ts.map +1 -1
- package/dist/in-store/wall.js +77 -13
- package/dist/in-store/wall.js.map +1 -1
- package/dist/in-store/window.d.ts +7 -0
- package/dist/in-store/window.d.ts.map +1 -1
- package/dist/in-store/window.js +24 -17
- package/dist/in-store/window.js.map +1 -1
- package/dist/index.d.ts +1 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -34
- package/dist/index.js.map +1 -1
- package/dist/landxml/cant-superelevation.d.ts +28 -0
- package/dist/landxml/cant-superelevation.d.ts.map +1 -0
- package/dist/landxml/cant-superelevation.js +31 -0
- package/dist/landxml/cant-superelevation.js.map +1 -0
- package/dist/landxml/landxml-to-ifc.d.ts +8 -2
- package/dist/landxml/landxml-to-ifc.d.ts.map +1 -1
- package/dist/landxml/landxml-to-ifc.js +34 -2
- package/dist/landxml/landxml-to-ifc.js.map +1 -1
- package/dist/landxml/refusals.d.ts.map +1 -1
- package/dist/landxml/refusals.js +8 -3
- package/dist/landxml/refusals.js.map +1 -1
- package/dist/landxml/result-types.d.ts +44 -0
- package/dist/landxml/result-types.d.ts.map +1 -1
- package/dist/landxml/writers.d.ts +4 -0
- package/dist/landxml/writers.d.ts.map +1 -1
- package/dist/landxml/writers.js +4 -2
- package/dist/landxml/writers.js.map +1 -1
- package/package.json +8 -7
package/README.md
CHANGED
|
@@ -26,6 +26,15 @@ const { content } = creator.toIfc(); // IFC STEP text
|
|
|
26
26
|
|
|
27
27
|
- Element builders: walls, slabs, columns, beams, stairs, roofs, doors, windows, ramps, railings, plates, members, footings, piles, spaces, curtain walls, furnishing, proxies, and parametric profile shapes (I, L, T, U, C, hollow sections)
|
|
28
28
|
- Openings: `addIfcWallDoor` and `addIfcWallWindow` cut hosted doors and windows into walls
|
|
29
|
+
- Loaded-model hosted placement: `addHostedElementInStore(store, editor, hostId, spec)`
|
|
30
|
+
is the shared atomic operation behind viewer tools, SDK methods and MCP
|
|
31
|
+
`place_opening` / `place_door` / `place_window`. Wall cuts must fit and avoid
|
|
32
|
+
existing openings; unreadable bounds or placements are refused. Omitted
|
|
33
|
+
optional axes use IFC defaults; explicit missing, zero or parallel axes and
|
|
34
|
+
incomplete body/profile references are refused.
|
|
35
|
+
- Loaded-model wall joins: `joinWallsInStore` atomically rewrites wall bodies,
|
|
36
|
+
axes and `IfcRelConnectsPathElements`. Hosted openings must remain inside
|
|
37
|
+
both joined end faces; unreadable cuts refuse the join.
|
|
29
38
|
- Property sets, element quantities, materials, and colors
|
|
30
39
|
- 4D scheduling entities: IfcWorkSchedule, IfcTask, IfcRelSequence
|
|
31
40
|
- In-store builders (`addWallToStore`, `addSlabToStore`, ...) that emit elements into an existing parsed model
|
|
@@ -61,13 +61,11 @@ export declare function vecCross(a: Point3D, b: Point3D): Point3D;
|
|
|
61
61
|
* missing one set to the value the schema implies for it when absent, so the
|
|
62
62
|
* placement's geometry is unchanged:
|
|
63
63
|
* - no `Axis`: `(0,0,1)`, the `IfcAxis2Placement3D.P` default;
|
|
64
|
-
* - no `RefDirection`: `
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* projection of X vanishes and the schema has no answer; this writes
|
|
70
|
-
* `(0,-1,0)`, the value ifc-lite's reader already used for a `$` there.
|
|
64
|
+
* - no `RefDirection`: `firstProjAxis(Axis)`, the fill ifc-lite's renderer
|
|
65
|
+
* reads a `$` there as (world X projected onto the plane normal to
|
|
66
|
+
* `Axis`, per `IfcFirstProjAxis`; `(0,-1,0)` for an Axis of exactly -X,
|
|
67
|
+
* where the schema's projection vanishes). Writing that value keeps what
|
|
68
|
+
* is drawn identical to the `$` it replaces (#5922).
|
|
71
69
|
*/
|
|
72
70
|
export declare function completePlacementAxes(axis: Point3D | undefined, refDirection: Point3D | undefined): {
|
|
73
71
|
Axis: Point3D;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc-creator-math.d.ts","sourceRoot":"","sources":["../src/ifc-creator-math.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMpE,sCAAsC;AACtC,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,0CAA0C;AAC1C,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQrC;AAED,oBAAoB;AACpB,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEzC;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAG5B,CAAC;AAEH,2FAA2F;AAC3F,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAI3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAM1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAMzF;AAED,oBAAoB;AACpB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAMxD;AAED
|
|
1
|
+
{"version":3,"file":"ifc-creator-math.d.ts","sourceRoot":"","sources":["../src/ifc-creator-math.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMpE,sCAAsC;AACtC,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,0CAA0C;AAC1C,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQrC;AAED,oBAAoB;AACpB,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEzC;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAG5B,CAAC;AAEH,2FAA2F;AAC3F,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAI3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAM1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAMzF;AAED,oBAAoB;AACpB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAMxD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,YAAY,EAAE,OAAO,GAAG,SAAS,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAMtD;AASD,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAE3D;AAED,yEAAyE;AACzE,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAE5D;AAED,sDAAsD;AACtD,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAE7D;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAE5D;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAE3D;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7C;AAED,kEAAkE;AAClE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAI5D;AAwBD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CA8BhE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAY3D"}
|
package/dist/ifc-creator-math.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Pure utility functions and constants used by IfcCreator.
|
|
6
6
|
* These have zero coupling to class state — they take inputs and return outputs.
|
|
7
7
|
*/
|
|
8
|
-
import { formatStepReal } from '@ifc-lite/data';
|
|
8
|
+
import { firstProjAxis, formatStepReal } from '@ifc-lite/data';
|
|
9
9
|
// ============================================================================
|
|
10
10
|
// Internal helpers
|
|
11
11
|
// ============================================================================
|
|
@@ -113,13 +113,11 @@ export function vecCross(a, b) {
|
|
|
113
113
|
* missing one set to the value the schema implies for it when absent, so the
|
|
114
114
|
* placement's geometry is unchanged:
|
|
115
115
|
* - no `Axis`: `(0,0,1)`, the `IfcAxis2Placement3D.P` default;
|
|
116
|
-
* - no `RefDirection`: `
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* projection of X vanishes and the schema has no answer; this writes
|
|
122
|
-
* `(0,-1,0)`, the value ifc-lite's reader already used for a `$` there.
|
|
116
|
+
* - no `RefDirection`: `firstProjAxis(Axis)`, the fill ifc-lite's renderer
|
|
117
|
+
* reads a `$` there as (world X projected onto the plane normal to
|
|
118
|
+
* `Axis`, per `IfcFirstProjAxis`; `(0,-1,0)` for an Axis of exactly -X,
|
|
119
|
+
* where the schema's projection vanishes). Writing that value keeps what
|
|
120
|
+
* is drawn identical to the `$` it replaces (#5922).
|
|
123
121
|
*/
|
|
124
122
|
export function completePlacementAxes(axis, refDirection) {
|
|
125
123
|
if (axis && refDirection)
|
|
@@ -128,13 +126,8 @@ export function completePlacementAxes(axis, refDirection) {
|
|
|
128
126
|
return { Axis: [0, 0, 1], RefDirection: refDirection };
|
|
129
127
|
if (!axis)
|
|
130
128
|
return undefined;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
// -X takes (0,-1,0), which is (0,0,1) x Axis as ifc-lite's own reader fills a
|
|
134
|
-
// `$` there (`build_axis2_matrix`), so nothing renders turned from before.
|
|
135
|
-
const v = z[1] === 0 && z[2] === 0 ? [0, z[0] > 0 ? 1 : -1, 0] : [1, 0, 0];
|
|
136
|
-
const d = v[0] * z[0] + v[1] * z[1] + v[2] * z[2];
|
|
137
|
-
return { Axis: axis, RefDirection: vecNorm([v[0] - d * z[0], v[1] - d * z[1], v[2] - d * z[2]]) };
|
|
129
|
+
// `vecNorm` throws on a zero-length Axis: a builder must not write one.
|
|
130
|
+
return { Axis: axis, RefDirection: firstProjAxis(vecNorm(axis)) };
|
|
138
131
|
}
|
|
139
132
|
// ============================================================================
|
|
140
133
|
// STEP attribute helpers (optional strings / enums / booleans / reals)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc-creator-math.js","sourceRoot":"","sources":["../src/ifc-creator-math.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ifc-creator-math.js","sourceRoot":"","sources":["../src/ifc-creator-math.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG/D,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,sCAAsC;AACtC,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY;IAC7D,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,8DAA8D,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI;QAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjF,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,MAAM,CAAC,CAAU;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,YAAY;IAC3D,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU;CAC/C,CAAC,CAAC;AAEH,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,GAAG,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACnH,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA8B,EAAE,OAAe;IAClF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,mCAAmC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA+B,EAAE,OAAe;IACjF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,+BAA+B,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,QAAQ,CAAC,CAAU,EAAE,CAAU;IAC7C,OAAO;QACL,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAyB,EACzB,YAAiC;IAEjC,IAAI,IAAI,IAAI,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IAC5E,IAAI,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACzE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,wEAAwE;IACxE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,+EAA+E;AAC/E,uEAAuE;AACvE,+EAA+E;AAC/E,2EAA2E;AAC3E,4EAA4E;AAC5E,iDAAiD;AAEjD,2EAA2E;AAC3E,MAAM,UAAU,MAAM,CAAC,CAA4B;IACjD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACzE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAC,CAA4B;IAClD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,OAAO,CAAC,CAA6B;IACnD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACjE,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,CAA4B;IAClD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,MAAM,CAAC,CAA4B;IACjD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,OAAO,CAAC,GAAa;IACnC,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACzE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,OAAO,CAAC,MAA4B;IAClD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAChD,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAElF,mFAAmF;AACnF,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AAE7H;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,+DAA+D,CAAC,CAAC;IAC3H,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAiB;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9B,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,QAAQ,IAAI,UAAU,CAAC;QACxC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChF,2EAA2E;QAC3E,6DAA6D;QAC7D,6EAA6E;QAC7E,yEAAyE;QACzE,IAAI,QAAQ,KAAK,YAAY,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;gBACnE,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,GAAG;gBACrC,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/C,CAAC;QACD,OAAO,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/F,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1E,OAAO,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAgB;IACjD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,mBAAmB,CAAC;QACzB,KAAK,iBAAiB,CAAC;QACvB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,kBAAkB;YACrB,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC;YACE,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -77,4 +77,29 @@ export declare function fromNativeLength(anchor: Pick<SpatialAnchor, 'lengthUnit
|
|
|
77
77
|
export declare function toNativePoint2(anchor: SpatialAnchor, p: readonly [number, number]): [number, number];
|
|
78
78
|
/** 3D point variant of {@link toNativeLength}. */
|
|
79
79
|
export declare function toNativePoint3(anchor: SpatialAnchor, p: readonly [number, number, number]): [number, number, number];
|
|
80
|
+
/** The host an opening voids: which placement frame it is cut in, and how. */
|
|
81
|
+
export type HostKind = 'wall' | 'slab';
|
|
82
|
+
/**
|
|
83
|
+
* Axis-aligned bounds of a host's Body geometry, expressed in the host's own
|
|
84
|
+
* `ObjectPlacement` frame and the file's native length unit. For a wall that
|
|
85
|
+
* frame is the usual `X` along the axis, `Y` across the thickness, `Z` up; for
|
|
86
|
+
* a slab `Z` spans the thickness.
|
|
87
|
+
*/
|
|
88
|
+
export interface HostBounds {
|
|
89
|
+
min: [number, number, number];
|
|
90
|
+
max: [number, number, number];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* A `SpatialAnchor` for an element that is cut into (or fills an opening in)
|
|
94
|
+
* an existing host. The storey fields are the HOST's containing storey, so a
|
|
95
|
+
* filling lands in the same storey as the element it is hosted by.
|
|
96
|
+
*/
|
|
97
|
+
export interface HostAnchor extends SpatialAnchor {
|
|
98
|
+
hostId: number;
|
|
99
|
+
hostKind: HostKind;
|
|
100
|
+
/** The host's own IfcLocalPlacement; openings are placed relative to it. */
|
|
101
|
+
hostPlacementId: number;
|
|
102
|
+
/** `null` when the host's Body is not a shape the resolver can bound. */
|
|
103
|
+
hostBounds: HostBounds | null;
|
|
104
|
+
}
|
|
80
105
|
//# sourceMappingURL=anchor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/in-store/anchor.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2GAA2G;IAC3G,aAAa,EAAE,MAAM,CAAC;IACtB,2GAA2G;IAC3G,aAAa,EAAE,MAAM,CAAC;IACtB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,0GAA0G;IAC1G,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIrG;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIvG;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpG;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEpH"}
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/in-store/anchor.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2GAA2G;IAC3G,aAAa,EAAE,MAAM,CAAC;IACtB,2GAA2G;IAC3G,aAAa,EAAE,MAAM,CAAC;IACtB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,0GAA0G;IAC1G,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIrG;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIvG;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpG;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEpH;AAED,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,4EAA4E;IAC5E,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B"}
|
|
@@ -59,7 +59,7 @@ export declare function detectEnclosedAreas(segments: Segment[], options?: Detec
|
|
|
59
59
|
/**
|
|
60
60
|
* Same pipeline as `detectEnclosedAreas`, but returns the per-stage
|
|
61
61
|
* counts alongside the spaces so callers can surface diagnostic
|
|
62
|
-
* information (used by the orchestrator + viewer
|
|
62
|
+
* information (used by the orchestrator + viewer Room tool).
|
|
63
63
|
*/
|
|
64
64
|
export declare function detectEnclosedAreasWithStats(segments: Segment[], options?: DetectOptions): {
|
|
65
65
|
spaces: DetectedSpace[];
|
|
@@ -10,7 +10,7 @@ export function detectEnclosedAreas(segments, options = {}) {
|
|
|
10
10
|
/**
|
|
11
11
|
* Same pipeline as `detectEnclosedAreas`, but returns the per-stage
|
|
12
12
|
* counts alongside the spaces so callers can surface diagnostic
|
|
13
|
-
* information (used by the orchestrator + viewer
|
|
13
|
+
* information (used by the orchestrator + viewer Room tool).
|
|
14
14
|
*/
|
|
15
15
|
export function detectEnclosedAreasWithStats(segments, options = {}) {
|
|
16
16
|
const snap = options.snapTolerance ?? DEFAULT_SNAP;
|
package/dist/in-store/beam.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { StoreEditor } from '@ifc-lite/mutations';
|
|
2
2
|
import { type SpatialAnchor } from './anchor.js';
|
|
3
|
+
import { type ProfileSection } from './profile.js';
|
|
3
4
|
export interface BeamInStoreParams {
|
|
4
5
|
Start: [number, number, number];
|
|
5
6
|
End: [number, number, number];
|
|
@@ -14,6 +15,14 @@ export interface BeamInStoreParams {
|
|
|
14
15
|
/** Explicit GlobalId (22-char IFC GUID); generated when omitted. */
|
|
15
16
|
GlobalId?: string;
|
|
16
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* A beam with a parameterised cross-section (I, L, T, U, C, circle, hollow;
|
|
20
|
+
* see `ProfileSection`) in place of the `Width` x `Height` rectangle. The
|
|
21
|
+
* profile is centred on the axis; its Y is the beam's local Y.
|
|
22
|
+
*/
|
|
23
|
+
export interface ProfiledBeamInStoreParams extends Omit<BeamInStoreParams, 'Width' | 'Height'> {
|
|
24
|
+
Profile: ProfileSection;
|
|
25
|
+
}
|
|
17
26
|
export interface BeamBuildResult {
|
|
18
27
|
beamId: number;
|
|
19
28
|
placementId: number;
|
|
@@ -23,5 +32,5 @@ export interface BeamBuildResult {
|
|
|
23
32
|
productShapeId: number;
|
|
24
33
|
relContainedId: number;
|
|
25
34
|
}
|
|
26
|
-
export declare function addBeamToStore(editor: StoreEditor, anchor: SpatialAnchor, params: BeamInStoreParams): BeamBuildResult;
|
|
35
|
+
export declare function addBeamToStore(editor: StoreEditor, anchor: SpatialAnchor, params: BeamInStoreParams | ProfiledBeamInStoreParams): BeamBuildResult;
|
|
27
36
|
//# sourceMappingURL=beam.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beam.d.ts","sourceRoot":"","sources":["../../src/in-store/beam.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"beam.d.ts","sourceRoot":"","sources":["../../src/in-store/beam.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAkC,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5F,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAUD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,GAAG,yBAAyB,GACpD,eAAe,CAiGjB"}
|
package/dist/in-store/beam.js
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* - local X = a stable perpendicular to the beam axis (chosen via
|
|
12
12
|
* cross product against world up, falling back to world X for
|
|
13
13
|
* near-vertical beams to avoid degenerate placements)
|
|
14
|
-
* - cross-section = rectangle(Width × Height) centred on the axis
|
|
14
|
+
* - cross-section = rectangle(Width × Height) centred on the axis, or a
|
|
15
|
+
* parameterised `Profile` (I, L, T, U, C, circle, hollow; see profile.ts)
|
|
15
16
|
* - extruded along local Z by the beam length
|
|
16
17
|
*
|
|
17
18
|
* Pure: no I/O, no parser access — operates entirely through the editor.
|
|
@@ -19,7 +20,8 @@
|
|
|
19
20
|
import { generateIfcGuid } from '@ifc-lite/encoding';
|
|
20
21
|
import { vecCross, vecNorm, assertFinitePoint3 } from '../ifc-creator-math.js';
|
|
21
22
|
import { toNativeLength, toNativePoint3 } from './anchor.js';
|
|
22
|
-
import {
|
|
23
|
+
import { emitRectangleProfile, ownerHistoryRef, productGuid } from './_emit-helpers.js';
|
|
24
|
+
import { emitProfileSection, linearSection } from './profile.js';
|
|
23
25
|
/**
|
|
24
26
|
* Stable perpendicular to a beam axis. Mirrors IfcCreator.computeRefDirection.
|
|
25
27
|
*/
|
|
@@ -33,27 +35,20 @@ export function addBeamToStore(editor, anchor, params) {
|
|
|
33
35
|
// `NaN <= 0` is false, so the distinct-points check below never fires.
|
|
34
36
|
// Validate the source coordinates instead of trusting the derived value.
|
|
35
37
|
assertFinitePoint3({ Start: params.Start, End: params.End }, 'addBeamToStore');
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
End: toNativePoint3(anchor, params.End),
|
|
42
|
-
Width: toNativeLength(anchor, params.Width),
|
|
43
|
-
Height: toNativeLength(anchor, params.Height),
|
|
44
|
-
};
|
|
45
|
-
const dx = params.End[0] - params.Start[0];
|
|
46
|
-
const dy = params.End[1] - params.Start[1];
|
|
47
|
-
const dz = params.End[2] - params.Start[2];
|
|
38
|
+
const start = toNativePoint3(anchor, params.Start);
|
|
39
|
+
const end = toNativePoint3(anchor, params.End);
|
|
40
|
+
const dx = end[0] - start[0];
|
|
41
|
+
const dy = end[1] - start[1];
|
|
42
|
+
const dz = end[2] - start[2];
|
|
48
43
|
const beamLen = Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
49
44
|
if (beamLen <= 0) {
|
|
50
45
|
throw new Error('addBeamToStore: Start and End must be distinct points');
|
|
51
46
|
}
|
|
52
|
-
|
|
47
|
+
const section = linearSection(anchor, params, 'addBeamToStore');
|
|
53
48
|
const dir = vecNorm([dx, dy, dz]);
|
|
54
49
|
const refDir = computeRefDirection(dir);
|
|
55
50
|
// Placement at Start with local Z along the beam axis.
|
|
56
|
-
const beamOriginPt = editor.addEntity('IfcCartesianPoint', [
|
|
51
|
+
const beamOriginPt = editor.addEntity('IfcCartesianPoint', [start]).expressId;
|
|
57
52
|
const axisVec = editor.addEntity('IfcDirection', [dir]).expressId;
|
|
58
53
|
const refDirVec = editor.addEntity('IfcDirection', [refDir]).expressId;
|
|
59
54
|
const beamAxis = editor.addEntity('IfcAxis2Placement3D', [
|
|
@@ -66,15 +61,9 @@ export function addBeamToStore(editor, anchor, params) {
|
|
|
66
61
|
`#${beamAxis}`,
|
|
67
62
|
]).expressId;
|
|
68
63
|
// Cross-section centred on the axis.
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
'.AREA.',
|
|
73
|
-
null,
|
|
74
|
-
`#${profilePos}`,
|
|
75
|
-
params.Width,
|
|
76
|
-
params.Height,
|
|
77
|
-
]).expressId;
|
|
64
|
+
const profileId = section.Profile
|
|
65
|
+
? emitProfileSection(editor, anchor, section.Profile, 'addBeamToStore')
|
|
66
|
+
: emitRectangleProfile(editor, toNativeLength(anchor, section.Width), toNativeLength(anchor, section.Height));
|
|
78
67
|
// Extrude along local Z (= beam direction) for the beam length.
|
|
79
68
|
const solidOriginPt = editor.addEntity('IfcCartesianPoint', [[0, 0, 0]]).expressId;
|
|
80
69
|
const solidAxis = editor.addEntity('IfcAxis2Placement3D', [`#${solidOriginPt}`, null, null]).expressId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beam.js","sourceRoot":"","sources":["../../src/in-store/beam.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D
|
|
1
|
+
{"version":3,"file":"beam.js","sourceRoot":"","sources":["../../src/in-store/beam.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { StoreEditor } from '@ifc-lite/mutations';
|
|
2
2
|
import { type SpatialAnchor } from './anchor.js';
|
|
3
|
+
import { type ProfileSection } from './profile.js';
|
|
3
4
|
export interface ColumnInStoreParams {
|
|
4
5
|
/** Base centre of the column, in storey-local coordinates (metres). */
|
|
5
6
|
Position: [number, number, number];
|
|
@@ -9,6 +10,14 @@ export interface ColumnInStoreParams {
|
|
|
9
10
|
Depth: number;
|
|
10
11
|
/** Extrusion height along +Z (metres). */
|
|
11
12
|
Height: number;
|
|
13
|
+
/**
|
|
14
|
+
* The placement's `RefDirection`: where the section's local X (Width)
|
|
15
|
+
* points, in storey-local coordinates. Must be horizontal; it is
|
|
16
|
+
* normalised. Default `[1, 0, 0]`. Written explicitly either way, with
|
|
17
|
+
* `Axis` `[0, 0, 1]`, so the column can be turned later (`rotateEntity`
|
|
18
|
+
* edits the RefDirection and refuses a placement without one).
|
|
19
|
+
*/
|
|
20
|
+
RefDirection?: [number, number, number];
|
|
12
21
|
/** IfcRoot Name attribute (default `'Column'`). */
|
|
13
22
|
Name?: string;
|
|
14
23
|
Description?: string;
|
|
@@ -17,6 +26,14 @@ export interface ColumnInStoreParams {
|
|
|
17
26
|
/** Explicit GlobalId (22-char IFC GUID); generated when omitted. */
|
|
18
27
|
GlobalId?: string;
|
|
19
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* A column with a parameterised cross-section (I, L, T, U, C, circle, hollow;
|
|
31
|
+
* see `ProfileSection`) in place of the `Width` x `Depth` rectangle, centred
|
|
32
|
+
* on `Position`; the profile's X runs along `RefDirection`.
|
|
33
|
+
*/
|
|
34
|
+
export interface ProfiledColumnInStoreParams extends Omit<ColumnInStoreParams, 'Width' | 'Depth'> {
|
|
35
|
+
Profile: ProfileSection;
|
|
36
|
+
}
|
|
20
37
|
/**
|
|
21
38
|
* Result of `addColumnToStore` — the new column's expressId plus a
|
|
22
39
|
* tap into the dependent entities for callers that want to e.g. apply
|
|
@@ -40,5 +57,5 @@ export interface ColumnBuildResult {
|
|
|
40
57
|
* (look up IfcOwnerHistory, the 'Body' representation context, and the
|
|
41
58
|
* target IfcBuildingStorey + its ObjectPlacement).
|
|
42
59
|
*/
|
|
43
|
-
export declare function addColumnToStore(editor: StoreEditor, anchor: SpatialAnchor, params: ColumnInStoreParams): ColumnBuildResult;
|
|
60
|
+
export declare function addColumnToStore(editor: StoreEditor, anchor: SpatialAnchor, params: ColumnInStoreParams | ProfiledColumnInStoreParams): ColumnBuildResult;
|
|
44
61
|
//# sourceMappingURL=column.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/in-store/column.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAkC,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/in-store/column.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAkC,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EAAsD,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAavG,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/F,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,mBAAmB,GAAG,2BAA2B,GACxD,iBAAiB,CAyGnB"}
|
package/dist/in-store/column.js
CHANGED
|
@@ -17,7 +17,19 @@
|
|
|
17
17
|
import { generateIfcGuid } from '@ifc-lite/encoding';
|
|
18
18
|
import { assertFinitePoint3 } from '../ifc-creator-math.js';
|
|
19
19
|
import { toNativeLength, toNativePoint3 } from './anchor.js';
|
|
20
|
-
import { assertPositiveFinite, ownerHistoryRef, productGuid } from './_emit-helpers.js';
|
|
20
|
+
import { assertPositiveFinite, emitLocalPlacement, emitRectangleProfile, ownerHistoryRef, productGuid } from './_emit-helpers.js';
|
|
21
|
+
import { assertProfileSectionAuthorable, emitProfileSection } from './profile.js';
|
|
22
|
+
/** A column's RefDirection: horizontal and unit length (it must be orthogonal to Axis +Z). */
|
|
23
|
+
function columnRefDirection(ref) {
|
|
24
|
+
if (ref === undefined)
|
|
25
|
+
return [1, 0, 0];
|
|
26
|
+
const [x, y, z] = ref;
|
|
27
|
+
const length = Math.hypot(x, y);
|
|
28
|
+
if (![x, y, z].every(Number.isFinite) || Math.abs(z) > 1e-9 || !(length > 1e-12)) {
|
|
29
|
+
throw new Error('addColumnToStore: RefDirection must be a finite, non-zero horizontal direction');
|
|
30
|
+
}
|
|
31
|
+
return [x / length, y / length, 0];
|
|
32
|
+
}
|
|
21
33
|
/**
|
|
22
34
|
* Add an IfcColumn to a parsed model via the StoreEditor overlay. Returns
|
|
23
35
|
* the freshly-allocated expressIds for every entity that was emitted.
|
|
@@ -29,35 +41,31 @@ import { assertPositiveFinite, ownerHistoryRef, productGuid } from './_emit-help
|
|
|
29
41
|
export function addColumnToStore(editor, anchor, params) {
|
|
30
42
|
const { ownerHistoryId, bodyContextId, storeyId, storeyPlacementId } = anchor;
|
|
31
43
|
assertFinitePoint3({ Position: params.Position }, 'addColumnToStore');
|
|
32
|
-
|
|
44
|
+
const section = params;
|
|
45
|
+
if (section.Profile !== undefined) {
|
|
46
|
+
if (section.Width !== undefined || section.Depth !== undefined) {
|
|
47
|
+
throw new Error('addColumnToStore: give either Width and Depth or a Profile, not both');
|
|
48
|
+
}
|
|
49
|
+
assertPositiveFinite([params.Height], 'addColumnToStore: Height must be a finite positive number');
|
|
50
|
+
assertProfileSectionAuthorable(anchor, section.Profile, 'addColumnToStore');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
assertPositiveFinite([section.Width, section.Depth, params.Height], 'addColumnToStore: Width, Depth, and Height must be finite positive numbers');
|
|
54
|
+
}
|
|
55
|
+
const refDirection = columnRefDirection(params.RefDirection);
|
|
33
56
|
// Params are metres; convert dimensioned fields to the file's native
|
|
34
57
|
// length unit before emit (see SpatialAnchor.lengthUnitScale).
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const placementId = editor.addEntity('IfcLocalPlacement', [
|
|
47
|
-
`#${storeyPlacementId}`,
|
|
48
|
-
`#${colAxis}`,
|
|
49
|
-
]).expressId;
|
|
50
|
-
// Rectangle profile centred at origin: IfcCartesianPoint(0,0) →
|
|
51
|
-
// IfcAxis2Placement2D → IfcRectangleProfileDef.
|
|
52
|
-
const profileOriginPt = editor.addEntity('IfcCartesianPoint', [[0, 0]]).expressId;
|
|
53
|
-
const profilePos = editor.addEntity('IfcAxis2Placement2D', [`#${profileOriginPt}`, null]).expressId;
|
|
54
|
-
const profileId = editor.addEntity('IfcRectangleProfileDef', [
|
|
55
|
-
'.AREA.',
|
|
56
|
-
null,
|
|
57
|
-
`#${profilePos}`,
|
|
58
|
-
params.Width,
|
|
59
|
-
params.Depth,
|
|
60
|
-
]).expressId;
|
|
58
|
+
const position = toNativePoint3(anchor, params.Position);
|
|
59
|
+
const height = toNativeLength(anchor, params.Height);
|
|
60
|
+
// Local placement chain: IfcCartesianPoint → IfcAxis2Placement3D (explicit
|
|
61
|
+
// Axis + RefDirection) → IfcLocalPlacement (parent = storey placement).
|
|
62
|
+
const placementId = emitLocalPlacement(editor, storeyPlacementId, position, [0, 0, 1], refDirection);
|
|
63
|
+
// Cross-section centred at the origin: the Width x Depth rectangle
|
|
64
|
+
// (IfcCartesianPoint(0,0) → IfcAxis2Placement2D → IfcRectangleProfileDef)
|
|
65
|
+
// or the parameterised profile.
|
|
66
|
+
const profileId = section.Profile !== undefined
|
|
67
|
+
? emitProfileSection(editor, anchor, section.Profile, 'addColumnToStore')
|
|
68
|
+
: emitRectangleProfile(editor, toNativeLength(anchor, section.Width), toNativeLength(anchor, section.Depth));
|
|
61
69
|
// Extruded solid: another local origin point, axis placement, +Z direction,
|
|
62
70
|
// then IfcExtrudedAreaSolid(Profile, Position, ExtrudedDirection, Depth).
|
|
63
71
|
const solidOriginPt = editor.addEntity('IfcCartesianPoint', [[0, 0, 0]]).expressId;
|
|
@@ -67,7 +75,7 @@ export function addColumnToStore(editor, anchor, params) {
|
|
|
67
75
|
`#${profileId}`,
|
|
68
76
|
`#${solidAxis}`,
|
|
69
77
|
`#${extrudeDirection}`,
|
|
70
|
-
|
|
78
|
+
height,
|
|
71
79
|
]).expressId;
|
|
72
80
|
// Shape representation in the Body context, then product shape.
|
|
73
81
|
const shapeRepId = editor.addEntity('IfcShapeRepresentation', [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/in-store/column.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAsB,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/in-store/column.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The placement arithmetic behind copying a product (#6232 C3): an
|
|
3
|
+
* `IfcLocalPlacement` read as a rigid frame (a turn about the vertical plus
|
|
4
|
+
* a translation, in the file's native length unit), composed up to the
|
|
5
|
+
* storey's own placement, and the copy's turn-and-move applied to it.
|
|
6
|
+
*
|
|
7
|
+
* Frames here turn about the vertical only: a placement whose Axis is tilted
|
|
8
|
+
* contributes its RefDirection's plan projection, as every storey-local
|
|
9
|
+
* reader in this package does (`placement-frame.ts`).
|
|
10
|
+
*/
|
|
11
|
+
import type { IfcAttributeValue } from '@ifc-lite/mutations';
|
|
12
|
+
export type CopyVec3 = [number, number, number];
|
|
13
|
+
/** A read of one live record (`createStyleEntityReader`). */
|
|
14
|
+
export type LiveRead = (id: number) => {
|
|
15
|
+
type: string;
|
|
16
|
+
attributes: readonly unknown[];
|
|
17
|
+
} | null;
|
|
18
|
+
/** `p ↦ R(c, s)·p + origin`; `z` just adds. */
|
|
19
|
+
export interface RigidFrame {
|
|
20
|
+
readonly origin: CopyVec3;
|
|
21
|
+
readonly c: number;
|
|
22
|
+
readonly s: number;
|
|
23
|
+
}
|
|
24
|
+
export declare const IDENTITY_FRAME: RigidFrame;
|
|
25
|
+
export declare function applyRigid(f: RigidFrame, p: readonly number[]): CopyVec3;
|
|
26
|
+
export declare function composeRigid(outer: RigidFrame, inner: RigidFrame): RigidFrame;
|
|
27
|
+
export declare function invertRigid(f: RigidFrame): RigidFrame;
|
|
28
|
+
/** The turn about the vertical through `pivot`, then the move `offset`: one rigid frame. */
|
|
29
|
+
export declare function turnThenMove(turn: number, pivot: readonly [number, number], offset: readonly number[]): RigidFrame;
|
|
30
|
+
export declare function numberTriple(value: unknown): CopyVec3 | null;
|
|
31
|
+
export interface OwnPlacement {
|
|
32
|
+
readonly frame: RigidFrame;
|
|
33
|
+
readonly parentId: number | null;
|
|
34
|
+
readonly location: CopyVec3;
|
|
35
|
+
readonly axis: CopyVec3 | null;
|
|
36
|
+
readonly refDirection: CopyVec3 | null;
|
|
37
|
+
}
|
|
38
|
+
/** One `IfcLocalPlacement`'s own frame in its parent's, or null when a link does not read. */
|
|
39
|
+
export declare function readOwnPlacement(read: LiveRead, placementId: number): OwnPlacement | null;
|
|
40
|
+
/**
|
|
41
|
+
* The frame of `placementId` in `ancestorId`'s frame: every placement from it
|
|
42
|
+
* up to (not including) the ancestor, composed. `placementId === ancestorId`
|
|
43
|
+
* is the identity. Null when the chain does not reach the ancestor (or loops).
|
|
44
|
+
*/
|
|
45
|
+
export declare function frameInAncestor(read: LiveRead, placementId: number | null, ancestorId: number): RigidFrame | null;
|
|
46
|
+
/** `v` turned counter-clockwise about the vertical by the frame's turn (directions do not translate). */
|
|
47
|
+
export declare function turnDirection(f: Pick<RigidFrame, 'c' | 's'>, v: CopyVec3): CopyVec3;
|
|
48
|
+
/** A `#N` reference token, or null. */
|
|
49
|
+
export declare function refToken(id: number | null): string | null;
|
|
50
|
+
/** Rewrite every `#old` token in a (possibly nested) attribute value that `ids` maps. */
|
|
51
|
+
export declare function remapRefs(value: unknown, ids: ReadonlyMap<number, number>): IfcAttributeValue;
|
|
52
|
+
//# sourceMappingURL=copy-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-frame.d.ts","sourceRoot":"","sources":["../../src/in-store/copy-frame.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,6DAA6D;AAC7D,MAAM,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC;AAE/F,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,UAA8C,CAAC;AAE5E,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAExE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAM7E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,CAGrD;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CASlH;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAI5D;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxC;AAED,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkBzF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAajH;AAED,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAEnF;AAED,uCAAuC;AACvC,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEzD;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAQ7F"}
|