@bldrs-ai/conway 0.22.921 → 0.23.940

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.
Files changed (37) hide show
  1. package/README.md +3 -0
  2. package/compiled/Dist/ConwayGeomWasmNode.js +1 -1
  3. package/compiled/Dist/ConwayGeomWasmNodeMT.js +1 -1
  4. package/compiled/Dist/ConwayGeomWasmWeb.js +1 -1
  5. package/compiled/Dist/ConwayGeomWasmWebMT.js +1 -1
  6. package/compiled/Dist/ConwayGeomWasmWebMT.wasm +0 -0
  7. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmNode.js +1 -1
  8. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmNodeMT.js +1 -1
  9. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWeb.js +1 -1
  10. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWebMT.js +1 -1
  11. package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWebMT.wasm +0 -0
  12. package/compiled/dependencies/conway-geom/index.d.ts +1 -0
  13. package/compiled/dependencies/conway-geom/index.d.ts.map +1 -1
  14. package/compiled/dependencies/conway-geom/index.js +1 -0
  15. package/compiled/dependencies/conway-geom/interface/conway_geometry.d.ts +14 -0
  16. package/compiled/dependencies/conway-geom/interface/conway_geometry.d.ts.map +1 -1
  17. package/compiled/dependencies/conway-geom/interface/conway_geometry.js +18 -0
  18. package/compiled/dependencies/conway-geom/interface/parameters/params_get_block.d.ts +8 -0
  19. package/compiled/dependencies/conway-geom/interface/parameters/params_get_block.d.ts.map +1 -0
  20. package/compiled/dependencies/conway-geom/interface/parameters/params_get_block.js +1 -0
  21. package/compiled/dependencies/conway-geom/interface/parameters/params_get_rectangle_profile_curve.d.ts +3 -0
  22. package/compiled/dependencies/conway-geom/interface/parameters/params_get_rectangle_profile_curve.d.ts.map +1 -1
  23. package/compiled/dependencies/conway-geom/interface/parameters/params_get_revolved_area_solid.d.ts +14 -0
  24. package/compiled/dependencies/conway-geom/interface/parameters/params_get_revolved_area_solid.d.ts.map +1 -0
  25. package/compiled/dependencies/conway-geom/interface/parameters/params_get_revolved_area_solid.js +1 -0
  26. package/compiled/examples/browser-bundled.cjs +1 -1
  27. package/compiled/examples/cli-bundled.cjs +303 -99
  28. package/compiled/examples/validator-bundled.cjs +1 -1
  29. package/compiled/src/ifc/ifc_block_extraction.test.d.ts +2 -0
  30. package/compiled/src/ifc/ifc_block_extraction.test.d.ts.map +1 -0
  31. package/compiled/src/ifc/ifc_block_extraction.test.js +66 -0
  32. package/compiled/src/ifc/ifc_geometry_extraction.d.ts +19 -3
  33. package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
  34. package/compiled/src/ifc/ifc_geometry_extraction.js +155 -13
  35. package/compiled/src/version/version.js +1 -1
  36. package/compiled/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +10 -1
@@ -68490,7 +68490,7 @@ var IfcStepParser = class extends StepParser {
68490
68490
  IfcStepParser.Instance = new IfcStepParser();
68491
68491
 
68492
68492
  // compiled/src/version/version.js
68493
- var versionString = "Conway Web-Ifc Shim v0.21.921";
68493
+ var versionString = "Conway Web-Ifc Shim v0.22.940";
68494
68494
 
68495
68495
  // compiled/src/statistics/statistics.js
68496
68496
  var Statistics = class {
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ifc_block_extraction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ifc_block_extraction.test.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_block_extraction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ import fs from "fs";
2
+ import { beforeAll, describe, expect, test } from "@jest/globals";
3
+ import { IfcGeometryExtraction } from "./ifc_geometry_extraction.js";
4
+ import { ParseResult } from "../step/parsing/step_parser.js";
5
+ import IfcStepParser from "./ifc_step_parser.js";
6
+ import ParsingBuffer from "../parsing/parsing_buffer.js";
7
+ import { ConwayGeometry } from "../../dependencies/conway-geom/index.js";
8
+ import { ExtractResult } from "../core/shared_constants.js";
9
+ let conwayModel;
10
+ /**
11
+ * Initializes the IFC geometry extraction.
12
+ *
13
+ * @return {Promise<boolean | ExtractResult | void>} Resolves to true,
14
+ * ExtractResult, or void depending on initialization outcome.
15
+ */
16
+ async function initialize() {
17
+ const parser = IfcStepParser.Instance;
18
+ const buffer = fs.readFileSync("data/block.ifc");
19
+ const input = new ParsingBuffer(buffer);
20
+ const headerResult = parser.parseHeader(input)[1];
21
+ if (headerResult !== ParseResult.COMPLETE) {
22
+ return ExtractResult.INCOMPLETE;
23
+ }
24
+ const geom = new ConwayGeometry();
25
+ const init = await geom.initialize();
26
+ if (!init) {
27
+ return;
28
+ }
29
+ const [, model] = parser.parseDataToModel(input);
30
+ if (model === void 0) {
31
+ return ExtractResult.INCOMPLETE;
32
+ }
33
+ conwayModel = new IfcGeometryExtraction(geom, model);
34
+ return conwayModel.isInitialized();
35
+ }
36
+ /**
37
+ * Extracts the IFC geometry data.
38
+ *
39
+ * @return {ExtractResult} The result of the extraction.
40
+ */
41
+ function extract() {
42
+ return conwayModel.extractIFCGeometryData()[0];
43
+ }
44
+ /**
45
+ * Counts the number of meshes in the scene.
46
+ *
47
+ * @return {number} The number of meshes in the scene.
48
+ */
49
+ function meshCount() {
50
+ return Array.from(conwayModel.scene.walk()).length;
51
+ }
52
+ beforeAll(async () => {
53
+ await initialize();
54
+ });
55
+ describe("IfcBlock Extraction", () => {
56
+ test("initialize()", () => {
57
+ expect(conwayModel.isInitialized()).toBe(true);
58
+ });
59
+ test("extract()", () => {
60
+ expect(extract()).toBe(ExtractResult.COMPLETE);
61
+ });
62
+ test("meshCount()", () => {
63
+ const expected = 1;
64
+ expect(meshCount()).toBe(expected);
65
+ });
66
+ });
@@ -4,7 +4,7 @@ import { CanonicalMesh } from "../core/canonical_mesh.js";
4
4
  import { CanonicalProfile } from "../core/canonical_profile.js";
5
5
  import { NativeULongVector, NativeUintVector, NativeVectorBound3D, NativeVectorGeometry, NativeVectorGeometryCollection, NativeVectorGlmVec2, NativeVectorGlmVec3, NativeVectorIndexedPolygonalFace, NativeVectorProfile, NativeVectorSegment, WasmModule } from "../core/native_types.js";
6
6
  import { ExtractResult } from "../core/shared_constants.js";
7
- import { IfcAxis2Placement2D, IfcAxis2Placement3D, IfcBooleanResult, IfcCartesianTransformationOperator3D, IfcCircleProfileDef, IfcColourRgb, IfcDirection, IfcExtrudedAreaSolid, IfcIndexedPolyCurve, IfcMappedItem, IfcNormalisedRatioMeasure, IfcObjectPlacement, IfcPolygonalFaceSet, IfcProduct, IfcProfileDef, IfcRepresentationItem, IfcSpecularExponent, IfcSpecularRoughness, IfcStyledItem, IfcSurfaceStyle, IfcBooleanClippingResult, IfcCompositeCurve, IfcPolyline, IfcTrimmedCurve, IfcCartesianPoint, IfcCurve, IfcCircle, IfcHalfSpaceSolid, IfcPlane, IfcShellBasedSurfaceModel, IfcFace, IfcFacetedBrep, IfcMaterialList, IfcMaterialLayerSetUsage, IfcMaterial, IfcRectangleProfileDef, IfcMaterialProfileSet, IfcMaterialConstituentSet, IfcMaterialConstituent, IfcMaterialProfile, IfcSIPrefix, IfcFaceBasedSurfaceModel, IfcConnectedFaceSet, IfcAdvancedBrep, IfcAdvancedFace, IfcBSplineCurve, IfcBSplineSurface, IfcBSplineSurfaceWithKnots, IfcRationalBSplineSurfaceWithKnots, IfcCylindricalSurface, IfcSurfaceOfRevolution, IfcSurfaceOfLinearExtrusion, IfcAxis1Placement, IfcRectangleHollowProfileDef, IfcEllipseProfileDef, IfcCircleHollowProfileDef, IfcIShapeProfileDef, IfcUShapeProfileDef, IfcCartesianTransformationOperator2D, IfcCartesianTransformationOperator2DnonUniform, IfcLShapeProfileDef, IfcCShapeProfileDef, IfcTShapeProfileDef, IfcZShapeProfileDef, IfcPolygonalBoundedHalfSpace, IfcSurface, IfcLine, IfcEllipse, IfcMaterialLayerSet, IfcSweptDiskSolid, IfcCsgPrimitive3D, IfcSolidModel, IfcTessellatedFaceSet } from "./ifc4_gen/index.js";
7
+ import { IfcAxis2Placement2D, IfcAxis2Placement3D, IfcBooleanResult, IfcCartesianTransformationOperator3D, IfcCircleProfileDef, IfcColourRgb, IfcDirection, IfcExtrudedAreaSolid, IfcIndexedPolyCurve, IfcMappedItem, IfcNormalisedRatioMeasure, IfcObjectPlacement, IfcPolygonalFaceSet, IfcProduct, IfcProfileDef, IfcRepresentationItem, IfcSpecularExponent, IfcSpecularRoughness, IfcStyledItem, IfcSurfaceStyle, IfcBooleanClippingResult, IfcCompositeCurve, IfcPolyline, IfcTrimmedCurve, IfcCartesianPoint, IfcCurve, IfcCircle, IfcHalfSpaceSolid, IfcPlane, IfcShellBasedSurfaceModel, IfcFace, IfcFacetedBrep, IfcMaterialList, IfcMaterialLayerSetUsage, IfcMaterial, IfcRectangleProfileDef, IfcMaterialProfileSet, IfcMaterialConstituentSet, IfcMaterialConstituent, IfcMaterialProfile, IfcSIPrefix, IfcFaceBasedSurfaceModel, IfcConnectedFaceSet, IfcAdvancedBrep, IfcAdvancedFace, IfcBSplineCurve, IfcBSplineSurface, IfcBSplineSurfaceWithKnots, IfcRationalBSplineSurfaceWithKnots, IfcCylindricalSurface, IfcSurfaceOfRevolution, IfcSurfaceOfLinearExtrusion, IfcAxis1Placement, IfcRectangleHollowProfileDef, IfcEllipseProfileDef, IfcCircleHollowProfileDef, IfcIShapeProfileDef, IfcUShapeProfileDef, IfcCartesianTransformationOperator2D, IfcCartesianTransformationOperator2DnonUniform, IfcLShapeProfileDef, IfcCShapeProfileDef, IfcTShapeProfileDef, IfcZShapeProfileDef, IfcPolygonalBoundedHalfSpace, IfcSurface, IfcLine, IfcEllipse, IfcMaterialLayerSet, IfcSweptDiskSolid, IfcBlock, IfcCsgPrimitive3D, IfcSolidModel, IfcTessellatedFaceSet, IfcMaterialProfileSetUsage, IfcRevolvedAreaSolid } from "./ifc4_gen/index.js";
8
8
  import { IfcMaterialCache } from "./ifc_material_cache.js";
9
9
  import { IfcSceneBuilder } from "./ifc_scene_builder.js";
10
10
  import IfcStepModel from "./ifc_step_model.js";
@@ -337,7 +337,7 @@ export declare class IfcGeometryExtraction {
337
337
  * @param isSecondOperand
338
338
  * @return {void}
339
339
  */
340
- extractBooleanOperand(from: IfcExtrudedAreaSolid | IfcPolygonalFaceSet | IfcBooleanResult | IfcHalfSpaceSolid | IfcBooleanClippingResult | IfcFacetedBrep, isRelVoid?: boolean, representationItem?: IfcRepresentationItem, isSecondOperand?: boolean): void;
340
+ extractBooleanOperand(from: IfcExtrudedAreaSolid | IfcPolygonalFaceSet | IfcBooleanResult | IfcHalfSpaceSolid | IfcBooleanClippingResult | IfcFacetedBrep | IfcBlock, isRelVoid?: boolean, representationItem?: IfcRepresentationItem, isSecondOperand?: boolean): void;
341
341
  /**
342
342
  * Extract a canonical material from a surface style.
343
343
  *
@@ -367,6 +367,15 @@ export declare class IfcGeometryExtraction {
367
367
  * @param isRelVoid
368
368
  */
369
369
  extractHalfspaceSolid(from: IfcHalfSpaceSolid, temporary?: boolean, isRelVoid?: boolean): void;
370
+ /**
371
+ * Extract geometry for an IfcBlock primitive by constructing a rectangular
372
+ * extruded solid.
373
+ *
374
+ * @param from The IfcBlock instance to extract.
375
+ * @param temporary Whether the geometry is temporary.
376
+ * @param isRelVoid Is the geometry part of a relative void subtraction?
377
+ */
378
+ extractBlock(from: IfcBlock, temporary?: boolean, isRelVoid?: boolean): void;
370
379
  /**
371
380
  *
372
381
  * @param from
@@ -374,6 +383,13 @@ export declare class IfcGeometryExtraction {
374
383
  * @param isRelVoid
375
384
  */
376
385
  extractPolygonalBoundedHalfSpace(from: IfcPolygonalBoundedHalfSpace, temporary?: boolean, isRelVoid?: boolean): void;
386
+ /**
387
+ *
388
+ * @param from
389
+ * @param temporary
390
+ * @param isRelVoid
391
+ */
392
+ extractRevolvedAreaSolid(from: IfcRevolvedAreaSolid, temporary?: boolean, isRelVoid?: boolean): void;
377
393
  /**
378
394
  *
379
395
  * @param from
@@ -852,7 +868,7 @@ export declare class IfcGeometryExtraction {
852
868
  * @param from
853
869
  * @return {number | undefined}
854
870
  */
855
- extractMaterial(from: IfcMaterial | IfcMaterialList | IfcMaterialProfile | IfcMaterialProfileSet | IfcMaterialConstituent | IfcMaterialLayerSetUsage | IfcMaterialLayerSet | IfcMaterialConstituentSet): number | undefined;
871
+ extractMaterial(from: IfcMaterial | IfcMaterialList | IfcMaterialProfile | IfcMaterialProfileSet | IfcMaterialConstituent | IfcMaterialLayerSetUsage | IfcMaterialLayerSet | IfcMaterialConstituentSet | IfcMaterialProfileSetUsage): number | undefined;
856
872
  /**
857
873
  *
858
874
  * @param from
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,10 @@ import { exponentToRoughness } from "../core/canonical_material.js";
3
3
  import { CanonicalMeshType } from "../core/canonical_mesh.js";
4
4
  import { ObjectPool } from "../core/native_pool.js";
5
5
  import { ExtractResult } from "../core/shared_constants.js";
6
- import { IfcArbitraryClosedProfileDef, IfcAxis2Placement2D, IfcAxis2Placement3D, IfcBooleanResult, IfcCartesianPointList2D, IfcCartesianPointList3D, IfcCartesianTransformationOperator3D, IfcCircleProfileDef, IfcColourRgb, IfcCompositeProfileDef, IfcExtrudedAreaSolid, IfcGridPlacement, IfcIndexedPolyCurve, IfcIndexedPolygonalFaceWithVoids, IfcLocalPlacement, IfcMappedItem, IfcOpeningElement, IfcOpeningStandardCase, IfcPolygonalFaceSet, IfcProduct, IfcReflectanceMethodEnum, IfcSpace, IfcSpecularExponent, IfcStyledItem, IfcSurfaceStyle, IfcSurfaceStyleRefraction, IfcSurfaceStyleRendering, IfcSurfaceStyleShading, IfcPresentationStyleAssignment, IfcSurfaceSide, IfcBooleanClippingResult, IfcCompositeCurve, IfcPolyline, IfcTrimmedCurve, IfcCartesianPoint, IfcParameterValue, IfcTrimmingPreference, IfcCircle, IfcHalfSpaceSolid, IfcPlane, IfcBoundingBox, IfcShellBasedSurfaceModel, IfcPolyLoop, IfcFacetedBrep, IfcRelAssociatesMaterial, IfcShapeRepresentation, IfcMaterialList, IfcMaterialDefinitionRepresentation, IfcMaterialLayerSetUsage, IfcMaterial, IfcRelVoidsElement, IfcRectangleProfileDef, IfcMaterialProfileSet, IfcMaterialConstituentSet, IfcMaterialConstituent, IfcMaterialProfile, IfcProject, IfcSIUnit, IfcSIPrefix, IfcUnitEnum, IfcSIUnitName, IfcConversionBasedUnit, IfcFaceBasedSurfaceModel, IfcArbitraryProfileDefWithVoids, IfcAdvancedBrep, IfcAdvancedFace, IfcBSplineCurve, IfcBSplineSurface, IfcBSplineSurfaceWithKnots, IfcRationalBSplineSurfaceWithKnots, IfcCylindricalSurface, IfcSurfaceOfRevolution, IfcSurfaceOfLinearExtrusion, IfcRationalBSplineCurveWithKnots, IfcArbitraryOpenProfileDef, IfcBSplineCurveWithKnots, IfcEdgeLoop, IfcEdgeCurve, IfcVertexPoint, IfcRectangleHollowProfileDef, IfcEllipseProfileDef, IfcCircleHollowProfileDef, IfcIShapeProfileDef, IfcUShapeProfileDef, IfcDerivedProfileDef, IfcCartesianTransformationOperator2DnonUniform, IfcLShapeProfileDef, IfcCShapeProfileDef, IfcTShapeProfileDef, IfcZShapeProfileDef, IfcRelAggregates, IfcTriangulatedFaceSet, IfcPolygonalBoundedHalfSpace, IfcLine, IfcEllipse, IfcMaterialLayerSet, IfcSweptDiskSolid, } from "./ifc4_gen/index.js";
6
+ import { IfcArbitraryClosedProfileDef, IfcAxis2Placement2D, IfcAxis2Placement3D, IfcBooleanResult, IfcCartesianPointList2D, IfcCartesianPointList3D, IfcCartesianTransformationOperator3D, IfcCircleProfileDef, IfcColourRgb, IfcCompositeProfileDef, IfcExtrudedAreaSolid, IfcGridPlacement, IfcIndexedPolyCurve, IfcIndexedPolygonalFaceWithVoids, IfcLocalPlacement, IfcMappedItem, IfcOpeningElement, IfcOpeningStandardCase, IfcPolygonalFaceSet, IfcProduct, IfcReflectanceMethodEnum, IfcSpace, IfcSpecularExponent, IfcStyledItem, IfcSurfaceStyle, IfcSurfaceStyleRefraction, IfcSurfaceStyleRendering, IfcSurfaceStyleShading, IfcPresentationStyleAssignment, IfcSurfaceSide, IfcBooleanClippingResult, IfcCompositeCurve, IfcPolyline, IfcTrimmedCurve, IfcCartesianPoint, IfcParameterValue, IfcTrimmingPreference, IfcCircle, IfcHalfSpaceSolid, IfcPlane, IfcBoundingBox, IfcShellBasedSurfaceModel, IfcPolyLoop, IfcFacetedBrep, IfcRelAssociatesMaterial, IfcShapeRepresentation, IfcMaterialList, IfcMaterialDefinitionRepresentation, IfcMaterialLayerSetUsage, IfcMaterial, IfcRelVoidsElement, IfcRectangleProfileDef, IfcMaterialProfileSet, IfcMaterialConstituentSet, IfcMaterialConstituent, IfcMaterialProfile, IfcProject, IfcSIUnit, IfcSIPrefix, IfcUnitEnum, IfcSIUnitName, IfcConversionBasedUnit, IfcFaceBasedSurfaceModel, IfcArbitraryProfileDefWithVoids, IfcAdvancedBrep, IfcAdvancedFace, IfcBSplineCurve, IfcBSplineSurface, IfcBSplineSurfaceWithKnots, IfcRationalBSplineSurfaceWithKnots, IfcCylindricalSurface, IfcSurfaceOfRevolution, IfcSurfaceOfLinearExtrusion, IfcRationalBSplineCurveWithKnots, IfcArbitraryOpenProfileDef, IfcBSplineCurveWithKnots, IfcEdgeLoop, IfcEdgeCurve, IfcVertexPoint, IfcRectangleHollowProfileDef, IfcEllipseProfileDef, IfcCircleHollowProfileDef, IfcIShapeProfileDef, IfcUShapeProfileDef, IfcDerivedProfileDef, IfcCartesianTransformationOperator2DnonUniform, IfcLShapeProfileDef, IfcCShapeProfileDef, IfcTShapeProfileDef, IfcZShapeProfileDef, IfcRelAggregates, IfcTriangulatedFaceSet, IfcPolygonalBoundedHalfSpace, IfcLine, IfcEllipse, IfcMaterialLayerSet, IfcSweptDiskSolid, IfcBlock, IfcRoundedRectangleProfileDef, IfcMaterialProfileSetUsage, IfcCompositeCurveSegment, IfcRevolvedAreaSolid, } from "./ifc4_gen/index.js";
7
7
  import EntityTypesIfc from "./ifc4_gen/entity_types_ifc.gen.js";
8
8
  import { IfcSceneBuilder } from "./ifc_scene_builder.js";
9
9
  import Logger from "../logging/logger.js";
10
- // import fs from 'fs'
11
- import Environment, { EnvironmentType } from "../utilities/environment.js";
12
10
  import { REFLECTANCE_METHOD_PERMISSIVE, MATERIAL_RELATED_OBJECTS_PERMISSIVE } from "./ifc_parser_quirks.js";
13
11
  import { CsgOperationType } from "../core/csg_operations.js";
14
12
  import { MemoizationCapture, RegressionCaptureState } from "../core/regression_capture_state.js";
@@ -713,7 +711,8 @@ export class IfcGeometryExtraction {
713
711
  from instanceof IfcBooleanResult ||
714
712
  from instanceof IfcPolygonalBoundedHalfSpace ||
715
713
  from instanceof IfcHalfSpaceSolid ||
716
- from instanceof IfcFacetedBrep) {
714
+ from instanceof IfcFacetedBrep ||
715
+ from instanceof IfcBlock) {
717
716
  this.extractBooleanOperand(from, isRelVoid, representationItem, isSecondOperand);
718
717
  }
719
718
  if (isRelVoid) {
@@ -793,9 +792,6 @@ export class IfcGeometryExtraction {
793
792
  parameters.operatorType = from.Operator.valueOf();
794
793
  parameters.isSubtractOperand = isRelVoid;
795
794
  const booleanGeometryObject = this.conwayModel.getBooleanResult(parameters);
796
- // const outputFilePath =
797
- // `${from.expressID}_${EntityTypesIfc[from.type]}_post_subtract_test.obj`
798
- // this.dumpGeometry(outputFilePath, booleanGeometryObject)
799
795
  if (firstMesh.type === CanonicalMeshType.BUFFER_GEOMETRY &&
800
796
  secondMesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
801
797
  const canonicalMesh = {
@@ -864,6 +860,10 @@ export class IfcGeometryExtraction {
864
860
  // mark as temporary
865
861
  this.extractExtrudedAreaSolid(from, true, isRelVoid);
866
862
  }
863
+ else if (from instanceof IfcRevolvedAreaSolid) {
864
+ // mark as temporary
865
+ this.extractRevolvedAreaSolid(from, true, isRelVoid);
866
+ }
867
867
  else if (from instanceof IfcPolygonalFaceSet) {
868
868
  // mark as temporary
869
869
  const faceSetResult = this.extractPolygonalFaceSet(from, true, isRelVoid);
@@ -880,6 +880,9 @@ export class IfcGeometryExtraction {
880
880
  else if (from instanceof IfcSweptDiskSolid) {
881
881
  this.extractSweptDiskSolid(from, true, isRelVoid);
882
882
  }
883
+ else if (from instanceof IfcBlock) {
884
+ this.extractBlock(from, true, isRelVoid);
885
+ }
883
886
  else if (from instanceof IfcFacetedBrep) {
884
887
  this.extractIfcFacetedBrep(from, true, isRelVoid);
885
888
  }
@@ -1251,6 +1254,50 @@ export class IfcGeometryExtraction {
1251
1254
  }
1252
1255
  }
1253
1256
  }
1257
+ /**
1258
+ * Extract geometry for an IfcBlock primitive by constructing a rectangular
1259
+ * extruded solid.
1260
+ *
1261
+ * @param from The IfcBlock instance to extract.
1262
+ * @param temporary Whether the geometry is temporary.
1263
+ * @param isRelVoid Is the geometry part of a relative void subtraction?
1264
+ */
1265
+ extractBlock(from, temporary = false, isRelVoid = false) {
1266
+ const XLength = from.XLength;
1267
+ const YLength = from.YLength;
1268
+ const ZLength = from.ZLength;
1269
+ /* ---- 1. Sanity check -------------------------------------- */
1270
+ if (XLength == null || YLength == null || ZLength == null) {
1271
+ console.warn(`IfcBlock ${from.localID} has invalid dimensions – skipped.`);
1272
+ return;
1273
+ }
1274
+ let axis2PlacementTransform;
1275
+ if (from.Position !== null) {
1276
+ const paramsAxis2Placement3D = this.extractAxis2Placement3D(from.Position, from.localID, true);
1277
+ axis2PlacementTransform =
1278
+ this.conwayModel.getAxis2Placement3D(paramsAxis2Placement3D);
1279
+ }
1280
+ const parameters = {
1281
+ xLength: XLength,
1282
+ yLength: YLength,
1283
+ zLength: ZLength,
1284
+ placement: axis2PlacementTransform,
1285
+ };
1286
+ const geometry = this.conwayModel.getBlock(parameters);
1287
+ const canonicalMesh = {
1288
+ type: CanonicalMeshType.BUFFER_GEOMETRY,
1289
+ geometry,
1290
+ localID: from.localID,
1291
+ model: this.model,
1292
+ temporary,
1293
+ };
1294
+ if (!isRelVoid) {
1295
+ this.model.geometry.add(canonicalMesh);
1296
+ }
1297
+ else {
1298
+ this.model.voidGeometry.add(canonicalMesh);
1299
+ }
1300
+ }
1254
1301
  /**
1255
1302
  *
1256
1303
  * @param from
@@ -1301,6 +1348,67 @@ export class IfcGeometryExtraction {
1301
1348
  this.model.voidGeometry.add(canonicalMesh);
1302
1349
  }
1303
1350
  }
1351
+ /**
1352
+ *
1353
+ * @param from
1354
+ * @param temporary
1355
+ * @param isRelVoid
1356
+ */
1357
+ extractRevolvedAreaSolid(from, temporary = false, isRelVoid = false) {
1358
+ let axis2PlacementTransform = (void 0);
1359
+ const angle = from.Angle;
1360
+ const axis = from.Axis;
1361
+ const axisPosition = {
1362
+ x: axis.Location.Coordinates[0],
1363
+ y: axis.Location.Coordinates[1],
1364
+ z: axis.Location.Coordinates[2],
1365
+ };
1366
+ const axisNative = {
1367
+ x: axis.Axis?.DirectionRatios[0] ?? 0,
1368
+ y: axis.Axis?.DirectionRatios[1] ?? 0,
1369
+ z: axis.Axis?.DirectionRatios[2] ?? 1,
1370
+ };
1371
+ const position = from.Position;
1372
+ if (position !== null) {
1373
+ const paramsAxis2Placement3D = this.extractAxis2Placement3D(position, from.localID, true);
1374
+ axis2PlacementTransform = this.conwayModel
1375
+ .getAxis2Placement3D(paramsAxis2Placement3D);
1376
+ }
1377
+ const profile = this.extractProfile(from.SweptArea);
1378
+ if (profile !== void 0 && profile.nativeProfile !== void 0) {
1379
+ // get geometry
1380
+ const parameters = {
1381
+ angle: angle,
1382
+ axis: axisNative,
1383
+ axisPosition: axisPosition,
1384
+ placement: axis2PlacementTransform,
1385
+ profile: profile.nativeProfile,
1386
+ scalingFactor: this.linearScalingFactor,
1387
+ circleSegments: this.circleSegments,
1388
+ };
1389
+ const geometry = this.conwayModel.getRevolvedAreaSolid(parameters);
1390
+ // apply transform
1391
+ if (axis2PlacementTransform !== void 0) {
1392
+ geometry.applyTransform(axis2PlacementTransform);
1393
+ }
1394
+ // const _outputFilePath = `${from.expressID}_${EntityTypesIfc[from.type]}.obj`
1395
+ // this.dumpGeometry(_outputFilePath, geometry)
1396
+ const canonicalMesh = {
1397
+ type: CanonicalMeshType.BUFFER_GEOMETRY,
1398
+ geometry: geometry,
1399
+ localID: from.localID,
1400
+ model: this.model,
1401
+ temporary: temporary,
1402
+ };
1403
+ // add mesh to the list of mesh objects
1404
+ if (!isRelVoid) {
1405
+ this.model.geometry.add(canonicalMesh);
1406
+ }
1407
+ else {
1408
+ this.model.voidGeometry.add(canonicalMesh);
1409
+ }
1410
+ }
1411
+ }
1304
1412
  /**
1305
1413
  *
1306
1414
  * @param from
@@ -1311,7 +1419,7 @@ export class IfcGeometryExtraction {
1311
1419
  let axis2PlacementTransform = (void 0);
1312
1420
  const position = from.Position;
1313
1421
  if (position !== null) {
1314
- const paramsAxis2Placement3D = this.extractAxis2Placement3D(position, position.localID, true);
1422
+ const paramsAxis2Placement3D = this.extractAxis2Placement3D(position, from.localID, true);
1315
1423
  axis2PlacementTransform = this.conwayModel
1316
1424
  .getAxis2Placement3D(paramsAxis2Placement3D);
1317
1425
  }
@@ -2043,6 +2151,11 @@ export class IfcGeometryExtraction {
2043
2151
  else if (from instanceof IfcCompositeCurve) {
2044
2152
  ifcCurve = this.extractCompositeCurve(from, parentSense);
2045
2153
  }
2154
+ else if (from instanceof IfcCompositeCurveSegment) {
2155
+ const parentCurve = from.ParentCurve;
2156
+ const sameSense = from.SameSense === parentSense;
2157
+ ifcCurve = this.extractCurve(parentCurve, sameSense);
2158
+ }
2046
2159
  if (ifcCurve === void 0) {
2047
2160
  Logger.warning(`Unsupported Curve! Type: ${EntityTypesIfc[from.type]}`);
2048
2161
  return;
@@ -2560,8 +2673,11 @@ export class IfcGeometryExtraction {
2560
2673
  xDim: from.XDim,
2561
2674
  yDim: from.YDim,
2562
2675
  hasPlacement: true,
2676
+ hasRoundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? true : false,
2677
+ roundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? from.RoundingRadius : -1,
2563
2678
  matrix: placement2D,
2564
2679
  thickness: (from instanceof IfcRectangleHollowProfileDef) ? from.WallThickness : -1,
2680
+ circleSegments: this.circleSegments,
2565
2681
  };
2566
2682
  const ifcCurve = this.conwayModel.getRectangleProfileCurve(paramsGetCircleCurve);
2567
2683
  return ifcCurve;
@@ -2571,8 +2687,11 @@ export class IfcGeometryExtraction {
2571
2687
  xDim: from.XDim,
2572
2688
  yDim: from.YDim,
2573
2689
  hasPlacement: false,
2690
+ hasRoundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? true : false,
2691
+ roundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? from.RoundingRadius : -1,
2574
2692
  matrix: (new (this.wasmModule.Glmdmat3)),
2575
2693
  thickness: (from instanceof IfcRectangleHollowProfileDef) ? from.WallThickness : -1,
2694
+ circleSegments: this.circleSegments,
2576
2695
  };
2577
2696
  const ifcCurve = this.conwayModel.getRectangleProfileCurve(paramsGetCircleCurve);
2578
2697
  paramsGetCircleCurve.matrix.delete();
@@ -2591,8 +2710,11 @@ export class IfcGeometryExtraction {
2591
2710
  xDim: from.XDim,
2592
2711
  yDim: from.YDim,
2593
2712
  hasPlacement: true,
2713
+ hasRoundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? true : false,
2714
+ roundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? from.RoundingRadius : -1,
2594
2715
  matrix: placement2D,
2595
2716
  thickness: from.WallThickness,
2717
+ circleSegments: this.circleSegments,
2596
2718
  };
2597
2719
  const ifcCurve = this.conwayModel.getRectangleHollowProfileHole(paramsGetCircleCurve);
2598
2720
  return ifcCurve;
@@ -2602,8 +2724,11 @@ export class IfcGeometryExtraction {
2602
2724
  xDim: from.XDim,
2603
2725
  yDim: from.YDim,
2604
2726
  hasPlacement: false,
2727
+ hasRoundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? true : false,
2728
+ roundingRadius: (from instanceof IfcRoundedRectangleProfileDef) ? from.RoundingRadius : -1,
2605
2729
  matrix: (new (this.wasmModule.Glmdmat3)),
2606
2730
  thickness: from.WallThickness,
2731
+ circleSegments: this.circleSegments,
2607
2732
  };
2608
2733
  const ifcCurve = this.conwayModel.getRectangleHollowProfileHole(paramsGetCircleCurve);
2609
2734
  paramsGetCircleCurve.matrix.delete();
@@ -2904,6 +3029,9 @@ export class IfcGeometryExtraction {
2904
3029
  else if (from instanceof IfcExtrudedAreaSolid) {
2905
3030
  this.extractExtrudedAreaSolid(from, false, isRelVoid);
2906
3031
  }
3032
+ else if (from instanceof IfcRevolvedAreaSolid) {
3033
+ this.extractRevolvedAreaSolid(from, false, isRelVoid);
3034
+ }
2907
3035
  else if (from instanceof IfcPolygonalBoundedHalfSpace) {
2908
3036
  this.extractPolygonalBoundedHalfSpace(from, false, isRelVoid);
2909
3037
  }
@@ -2913,6 +3041,9 @@ export class IfcGeometryExtraction {
2913
3041
  else if (from instanceof IfcSweptDiskSolid) {
2914
3042
  this.extractSweptDiskSolid(from, false, isRelVoid);
2915
3043
  }
3044
+ else if (from instanceof IfcBlock) {
3045
+ this.extractBlock(from, false, isRelVoid);
3046
+ }
2916
3047
  else if (from instanceof IfcFacetedBrep) {
2917
3048
  this.extractIfcFacetedBrep(from, false, isRelVoid);
2918
3049
  }
@@ -3920,6 +4051,16 @@ export class IfcGeometryExtraction {
3920
4051
  if (from instanceof IfcMaterial) {
3921
4052
  return this.materials.materialDefinitionsMap.get(from.localID);
3922
4053
  }
4054
+ else if (from instanceof IfcMaterialProfileSetUsage) {
4055
+ for (const profile of from.ForProfileSet.MaterialProfiles) {
4056
+ if (profile.Material) {
4057
+ const styledItemID = this.extractMaterial(profile.Material);
4058
+ if (styledItemID !== void 0) {
4059
+ return styledItemID;
4060
+ }
4061
+ }
4062
+ }
4063
+ }
3923
4064
  else if (from instanceof IfcMaterialLayerSetUsage) {
3924
4065
  for (const layer of from.ForLayerSet.MaterialLayers) {
3925
4066
  if (layer.Material) {
@@ -4180,11 +4321,12 @@ export class IfcGeometryExtraction {
4180
4321
  */
4181
4322
  dumpGeometry(outputFilePath, geometry) {
4182
4323
  // Construct the full OBJ content
4183
- if (Environment.environmentType === EnvironmentType.NODE) {
4184
- // const objContent = this.conwayModel.toObj(geometry)
4185
- // Write to the output file
4186
- // fs.writeFileSync(outputFilePath, objContent, 'utf8')
4187
- }
4324
+ /* if (Environment.environmentType === EnvironmentType.NODE) {
4325
+ const objContent = this.conwayModel.toObj(geometry)
4326
+
4327
+ // Write to the output file
4328
+ fs.writeFileSync(outputFilePath, objContent, 'utf8')
4329
+ } */
4188
4330
  }
4189
4331
  /**
4190
4332
  * Extract the geometry data from the IFC
@@ -1,2 +1,2 @@
1
- const versionString = 'Conway Web-Ifc Shim v0.22.921';
1
+ const versionString = 'Conway Web-Ifc Shim v0.23.940';
2
2
  export { versionString };