@bldrs-ai/conway 0.21.915 → 0.22.921

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.
@@ -68492,7 +68492,7 @@ var IfcStepParser = class extends StepParser {
68492
68492
  IfcStepParser.Instance = new IfcStepParser();
68493
68493
 
68494
68494
  // compiled/src/version/version.js
68495
- var versionString = "Conway Web-Ifc Shim v0.19.915";
68495
+ var versionString = "Conway Web-Ifc Shim v0.21.921";
68496
68496
 
68497
68497
  // compiled/src/statistics/statistics.js
68498
68498
  var Statistics = class {
@@ -84633,7 +84633,7 @@ var IfcSceneBuilder = class {
84633
84633
  };
84634
84634
 
84635
84635
  // compiled/src/version/version.js
84636
- var versionString = "Conway Web-Ifc Shim v0.19.915";
84636
+ var versionString = "Conway Web-Ifc Shim v0.21.921";
84637
84637
 
84638
84638
  // compiled/src/statistics/statistics.js
84639
84639
  var Statistics = class {
@@ -85627,10 +85627,10 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
85627
85627
  }
85628
85628
  return this.model.geometry.getByLocalID(from.localID);
85629
85629
  }
85630
- getFirstBoolenOperandGeometry(from, isRelVoid = false, representationItem) {
85630
+ getFirstBooleanOperandGeometry(from, isRelVoid = false, representationItem) {
85631
85631
  return this.getOperandGeometry(from.FirstOperand, false, isRelVoid, representationItem);
85632
85632
  }
85633
- getSecondBoolenOperandGeometry(from, isRelVoid = false) {
85633
+ getSecondBooleanOperandGeometry(from, isRelVoid = false) {
85634
85634
  return this.getOperandGeometry(from.SecondOperand, true, isRelVoid, void 0);
85635
85635
  }
85636
85636
  /**
@@ -85654,7 +85654,7 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
85654
85654
  operand2ID: from.SecondOperand.localID
85655
85655
  }, true);
85656
85656
  let flatFirstMeshVector;
85657
- const firstMesh = this.getFirstBoolenOperandGeometry(from, isRelVoid, from);
85657
+ const firstMesh = this.getFirstBooleanOperandGeometry(from, isRelVoid, from);
85658
85658
  if (firstMesh !== void 0 && firstMesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
85659
85659
  flatFirstMeshVector = this.nativeVectorGeometry();
85660
85660
  flatFirstMeshVector.push_back(firstMesh.geometry);
@@ -85665,7 +85665,7 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
85665
85665
  return;
85666
85666
  }
85667
85667
  let flatSecondMeshVector;
85668
- const secondMesh = this.getSecondBoolenOperandGeometry(from, isRelVoid);
85668
+ const secondMesh = this.getSecondBooleanOperandGeometry(from, isRelVoid);
85669
85669
  if (secondMesh !== void 0 && secondMesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
85670
85670
  flatSecondMeshVector = this.nativeVectorGeometry();
85671
85671
  flatSecondMeshVector.push_back(secondMesh.geometry);
@@ -85756,7 +85756,7 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
85756
85756
  ++this.csgDepth;
85757
85757
  try {
85758
85758
  const maximumCsgMemoizationDepth = this.csgDepthLimit;
85759
- const firstMesh = this.getFirstBoolenOperandGeometry(from, isRelVoid, representationItem);
85759
+ const firstMesh = this.getFirstBooleanOperandGeometry(from, isRelVoid, representationItem);
85760
85760
  if (this.limitCSGDepth && this.csgDepth >= maximumCsgMemoizationDepth) {
85761
85761
  if (firstMesh === void 0) {
85762
85762
  return;
@@ -85803,7 +85803,7 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
85803
85803
  return;
85804
85804
  }
85805
85805
  let flatSecondMeshVector;
85806
- const secondMesh = this.getSecondBoolenOperandGeometry(from, isRelVoid);
85806
+ const secondMesh = this.getSecondBooleanOperandGeometry(from, isRelVoid);
85807
85807
  if (secondMesh !== void 0 && secondMesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
85808
85808
  flatSecondMeshVector = this.nativeVectorGeometry();
85809
85809
  flatSecondMeshVector.push_back(secondMesh.geometry);
@@ -86746,23 +86746,63 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
86746
86746
  }
86747
86747
  if (from instanceof IfcBSplineCurve) {
86748
86748
  ifcCurve = this.extractBSplineCurve(from, parentSense, isEdge);
86749
- if (trimmingArguments !== void 0) {
86750
- Logger.info("inverting curve");
86751
- ifcCurve.invert();
86752
- }
86753
86749
  } else if (from instanceof IfcTrimmedCurve) {
86754
- ifcCurve = this.extractIfcTrimmedCurve(from, parentSense);
86750
+ ifcCurve = this.extractIfcTrimmedCurve(from, parentSense, isEdge);
86755
86751
  } else if (from instanceof IfcPolyline) {
86756
86752
  ifcCurve = this.extractIfcPolyline(from, parentSense, isEdge);
86757
- if (ifcCurve !== void 0) {
86758
- if (trimmingArguments?.exist) {
86759
- ifcCurve.invert();
86760
- }
86761
- }
86762
86753
  } else if (from instanceof IfcIndexedPolyCurve) {
86763
86754
  ifcCurve = this.extractIndexedPolyCurve(from);
86764
86755
  } else if (from instanceof IfcCircle) {
86765
- ifcCurve = this.extractIfcCircle(from, parentSense);
86756
+ let paramsGetIfcTrimmedCurve;
86757
+ if (trimmingArguments?.exist) {
86758
+ paramsGetIfcTrimmedCurve = {
86759
+ masterRepresentation: trimmingArguments.start?.hasPos ? 0 : 1,
86760
+ dimensions: 3,
86761
+ senseAgreement: parentSense,
86762
+ trim1Cartesian2D: trimmingArguments.start?.pos,
86763
+ trim1Cartesian3D: trimmingArguments.start?.pos3D,
86764
+ trim1Double: trimmingArguments.start?.param ?? 0,
86765
+ trim2Cartesian2D: trimmingArguments.end?.pos,
86766
+ trim2Cartesian3D: trimmingArguments.end?.pos3D,
86767
+ trim2Double: trimmingArguments.end?.param ?? 0,
86768
+ trimExists: true
86769
+ };
86770
+ }
86771
+ ifcCurve = this.extractIfcCircle(from, parentSense, paramsGetIfcTrimmedCurve);
86772
+ } else if (from instanceof IfcEllipse) {
86773
+ let paramsGetIfcTrimmedCurve;
86774
+ if (trimmingArguments?.exist) {
86775
+ paramsGetIfcTrimmedCurve = {
86776
+ masterRepresentation: trimmingArguments.start?.hasPos ? 0 : 1,
86777
+ dimensions: 3,
86778
+ senseAgreement: parentSense,
86779
+ trim1Cartesian2D: trimmingArguments.start?.pos,
86780
+ trim1Cartesian3D: trimmingArguments.start?.pos3D,
86781
+ trim1Double: trimmingArguments.start?.param ?? 0,
86782
+ trim2Cartesian2D: trimmingArguments.end?.pos,
86783
+ trim2Cartesian3D: trimmingArguments.end?.pos3D,
86784
+ trim2Double: trimmingArguments.end?.param ?? 0,
86785
+ trimExists: true
86786
+ };
86787
+ }
86788
+ ifcCurve = this.extractIfcEllipse(from, parentSense, paramsGetIfcTrimmedCurve);
86789
+ } else if (from instanceof IfcLine) {
86790
+ let paramsGetIfcTrimmedCurve;
86791
+ if (trimmingArguments?.exist) {
86792
+ paramsGetIfcTrimmedCurve = {
86793
+ masterRepresentation: trimmingArguments.start?.hasPos ? 0 : 1,
86794
+ dimensions: 3,
86795
+ senseAgreement: parentSense,
86796
+ trim1Cartesian2D: trimmingArguments.start?.pos,
86797
+ trim1Cartesian3D: trimmingArguments.start?.pos3D,
86798
+ trim1Double: trimmingArguments.start?.param ?? 0,
86799
+ trim2Cartesian2D: trimmingArguments.end?.pos,
86800
+ trim2Cartesian3D: trimmingArguments.end?.pos3D,
86801
+ trim2Double: trimmingArguments.end?.param ?? 0,
86802
+ trimExists: true
86803
+ };
86804
+ }
86805
+ ifcCurve = this.extractIfcLine(from, parentSense, isEdge, paramsGetIfcTrimmedCurve);
86766
86806
  } else if (from instanceof IfcCompositeCurve) {
86767
86807
  ifcCurve = this.extractCompositeCurve(from, parentSense);
86768
86808
  }
@@ -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.19.915";
68493
+ var versionString = "Conway Web-Ifc Shim v0.21.921";
68494
68494
 
68495
68495
  // compiled/src/statistics/statistics.js
68496
68496
  var Statistics = class {
@@ -319,8 +319,8 @@ export declare class IfcGeometryExtraction {
319
319
  */
320
320
  dropNonSceneGeometry(localID: number): void;
321
321
  getOperandGeometry(from: IfcBooleanResult | IfcCsgPrimitive3D | IfcHalfSpaceSolid | IfcSolidModel | IfcTessellatedFaceSet, isSecondOperand: boolean, isRelVoid?: boolean, representationItem?: IfcRepresentationItem): CanonicalMesh | undefined;
322
- getFirstBoolenOperandGeometry(from: IfcBooleanResult, isRelVoid?: boolean, representationItem?: IfcRepresentationItem): CanonicalMesh | undefined;
323
- getSecondBoolenOperandGeometry(from: IfcBooleanResult, isRelVoid?: boolean): CanonicalMesh | undefined;
322
+ getFirstBooleanOperandGeometry(from: IfcBooleanResult, isRelVoid?: boolean, representationItem?: IfcRepresentationItem): CanonicalMesh | undefined;
323
+ getSecondBooleanOperandGeometry(from: IfcBooleanResult, isRelVoid?: boolean): CanonicalMesh | undefined;
324
324
  /**
325
325
  * Accepts IfcBooleanResult and IfcBooleanClippingResult
326
326
  *
@@ -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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"}
@@ -721,10 +721,10 @@ export class IfcGeometryExtraction {
721
721
  }
722
722
  return this.model.geometry.getByLocalID(from.localID);
723
723
  }
724
- getFirstBoolenOperandGeometry(from, isRelVoid = false, representationItem) {
724
+ getFirstBooleanOperandGeometry(from, isRelVoid = false, representationItem) {
725
725
  return this.getOperandGeometry(from.FirstOperand, false, isRelVoid, representationItem);
726
726
  }
727
- getSecondBoolenOperandGeometry(from, isRelVoid = false) {
727
+ getSecondBooleanOperandGeometry(from, isRelVoid = false) {
728
728
  return this.getOperandGeometry(from.SecondOperand, true, isRelVoid, undefined);
729
729
  }
730
730
  /**
@@ -749,7 +749,7 @@ export class IfcGeometryExtraction {
749
749
  }, true);
750
750
  // get geometry TODO(nickcastel50): eventually support flattening meshes
751
751
  let flatFirstMeshVector; // = this.nativeVectorGeometry()
752
- const firstMesh = this.getFirstBoolenOperandGeometry(from, isRelVoid, from);
752
+ const firstMesh = this.getFirstBooleanOperandGeometry(from, isRelVoid, from);
753
753
  if (firstMesh !== void 0 && firstMesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
754
754
  /* const _testEntity = this.model.getElementByLocalID(firstMesh.localID)!
755
755
  const outputFilePath_ =
@@ -776,7 +776,7 @@ export class IfcGeometryExtraction {
776
776
  return;
777
777
  }
778
778
  let flatSecondMeshVector; // = this.nativeVectorGeometry()
779
- const secondMesh = this.getSecondBoolenOperandGeometry(from, isRelVoid);
779
+ const secondMesh = this.getSecondBooleanOperandGeometry(from, isRelVoid);
780
780
  if (secondMesh !== void 0 && secondMesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
781
781
  flatSecondMeshVector = this.nativeVectorGeometry();
782
782
  flatSecondMeshVector.push_back(secondMesh.geometry);
@@ -887,7 +887,7 @@ export class IfcGeometryExtraction {
887
887
  ++this.csgDepth;
888
888
  try {
889
889
  const maximumCsgMemoizationDepth = this.csgDepthLimit;
890
- const firstMesh = this.getFirstBoolenOperandGeometry(from, isRelVoid, representationItem);
890
+ const firstMesh = this.getFirstBooleanOperandGeometry(from, isRelVoid, representationItem);
891
891
  if (this.limitCSGDepth && this.csgDepth >= maximumCsgMemoizationDepth) {
892
892
  if (firstMesh === void 0) {
893
893
  return;
@@ -942,7 +942,7 @@ export class IfcGeometryExtraction {
942
942
  return;
943
943
  }
944
944
  let flatSecondMeshVector;
945
- const secondMesh = this.getSecondBoolenOperandGeometry(from, isRelVoid);
945
+ const secondMesh = this.getSecondBooleanOperandGeometry(from, isRelVoid);
946
946
  if (secondMesh !== void 0 && secondMesh.type === CanonicalMeshType.BUFFER_GEOMETRY) {
947
947
  flatSecondMeshVector = this.nativeVectorGeometry();
948
948
  flatSecondMeshVector.push_back(secondMesh.geometry);
@@ -1976,35 +1976,69 @@ export class IfcGeometryExtraction {
1976
1976
  }
1977
1977
  if (from instanceof IfcBSplineCurve) {
1978
1978
  ifcCurve = this.extractBSplineCurve(from, parentSense, isEdge);
1979
- if (trimmingArguments !== void 0) {
1980
- // invert curve
1981
- Logger.info("inverting curve");
1982
- ifcCurve.invert();
1983
- }
1984
- // Logger.info(`Curve type: ${EntityTypesIfc[from.type]} - express ID: ${from.expressID}`)
1985
- /* for (let i = 0; i < ifcCurve.getPointsSize(); ++i) {
1986
- if (from.Degree === 2) {
1987
- const pt_ = ifcCurve.get2d(i)
1988
- Logger.info(`Point ${i}: x: ${pt_.x}, y: ${pt_.y}, z: ${pt_.z}`)
1989
- }
1990
- }*/
1991
1979
  }
1992
1980
  else if (from instanceof IfcTrimmedCurve) {
1993
- ifcCurve = this.extractIfcTrimmedCurve(from, parentSense);
1981
+ ifcCurve = this.extractIfcTrimmedCurve(from, parentSense, isEdge);
1994
1982
  }
1995
1983
  else if (from instanceof IfcPolyline) {
1996
1984
  ifcCurve = this.extractIfcPolyline(from, parentSense, isEdge);
1997
- if (ifcCurve !== void 0) {
1998
- if (trimmingArguments?.exist) {
1999
- ifcCurve.invert();
2000
- }
2001
- }
2002
1985
  }
2003
1986
  else if (from instanceof IfcIndexedPolyCurve) {
2004
1987
  ifcCurve = this.extractIndexedPolyCurve(from);
2005
1988
  }
2006
1989
  else if (from instanceof IfcCircle) {
2007
- ifcCurve = this.extractIfcCircle(from, parentSense);
1990
+ let paramsGetIfcTrimmedCurve;
1991
+ if (trimmingArguments?.exist) {
1992
+ paramsGetIfcTrimmedCurve = {
1993
+ masterRepresentation: trimmingArguments.start?.hasPos ? 0 : 1,
1994
+ dimensions: 3,
1995
+ senseAgreement: parentSense,
1996
+ trim1Cartesian2D: trimmingArguments.start?.pos,
1997
+ trim1Cartesian3D: trimmingArguments.start?.pos3D,
1998
+ trim1Double: trimmingArguments.start?.param ?? 0,
1999
+ trim2Cartesian2D: trimmingArguments.end?.pos,
2000
+ trim2Cartesian3D: trimmingArguments.end?.pos3D,
2001
+ trim2Double: trimmingArguments.end?.param ?? 0,
2002
+ trimExists: true
2003
+ };
2004
+ }
2005
+ ifcCurve = this.extractIfcCircle(from, parentSense, paramsGetIfcTrimmedCurve);
2006
+ }
2007
+ else if (from instanceof IfcEllipse) {
2008
+ let paramsGetIfcTrimmedCurve;
2009
+ if (trimmingArguments?.exist) {
2010
+ paramsGetIfcTrimmedCurve = {
2011
+ masterRepresentation: trimmingArguments.start?.hasPos ? 0 : 1,
2012
+ dimensions: 3,
2013
+ senseAgreement: parentSense,
2014
+ trim1Cartesian2D: trimmingArguments.start?.pos,
2015
+ trim1Cartesian3D: trimmingArguments.start?.pos3D,
2016
+ trim1Double: trimmingArguments.start?.param ?? 0,
2017
+ trim2Cartesian2D: trimmingArguments.end?.pos,
2018
+ trim2Cartesian3D: trimmingArguments.end?.pos3D,
2019
+ trim2Double: trimmingArguments.end?.param ?? 0,
2020
+ trimExists: true
2021
+ };
2022
+ }
2023
+ ifcCurve = this.extractIfcEllipse(from, parentSense, paramsGetIfcTrimmedCurve);
2024
+ }
2025
+ else if (from instanceof IfcLine) {
2026
+ let paramsGetIfcTrimmedCurve;
2027
+ if (trimmingArguments?.exist) {
2028
+ paramsGetIfcTrimmedCurve = {
2029
+ masterRepresentation: trimmingArguments.start?.hasPos ? 0 : 1,
2030
+ dimensions: 3,
2031
+ senseAgreement: parentSense,
2032
+ trim1Cartesian2D: trimmingArguments.start?.pos,
2033
+ trim1Cartesian3D: trimmingArguments.start?.pos3D,
2034
+ trim1Double: trimmingArguments.start?.param ?? 0,
2035
+ trim2Cartesian2D: trimmingArguments.end?.pos,
2036
+ trim2Cartesian3D: trimmingArguments.end?.pos3D,
2037
+ trim2Double: trimmingArguments.end?.param ?? 0,
2038
+ trimExists: true
2039
+ };
2040
+ }
2041
+ ifcCurve = this.extractIfcLine(from, parentSense, isEdge, paramsGetIfcTrimmedCurve);
2008
2042
  }
2009
2043
  else if (from instanceof IfcCompositeCurve) {
2010
2044
  ifcCurve = this.extractCompositeCurve(from, parentSense);
@@ -12,4 +12,13 @@ export declare function dropHandler(scene: SimpleViewerScene, event: DragEvent):
12
12
  * @return {void}
13
13
  */
14
14
  export declare function initViewer(): SimpleViewerScene;
15
+ /**
16
+ * Initialise the viewer with a GL context.
17
+ *
18
+ * @param {WebGLRenderingContext} context The GL context to use.
19
+ * @param width
20
+ * @param height
21
+ * @return {void}
22
+ */
23
+ export declare function initViewerWithGLContext(context: WebGLRenderingContext, width: number, height: number): SimpleViewerScene;
15
24
  //# sourceMappingURL=html_viewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html_viewer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/threejs/html_viewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,GAAI,IAAI,CA4C9E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,iBAAiB,CAgB9C"}
1
+ {"version":3,"file":"html_viewer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/threejs/html_viewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,GAAI,IAAI,CA4C9E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,iBAAiB,CAgB9C;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAC,qBAAqB,EAAE,KAAK,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,GAAG,iBAAiB,CAKrH"}
@@ -56,3 +56,15 @@ export function initViewer() {
56
56
  document.addEventListener("drop", (e) => dropHandler(simpleViewerScene, e));
57
57
  return simpleViewerScene;
58
58
  }
59
+ /**
60
+ * Initialise the viewer with a GL context.
61
+ *
62
+ * @param {WebGLRenderingContext} context The GL context to use.
63
+ * @param width
64
+ * @param height
65
+ * @return {void}
66
+ */
67
+ export function initViewerWithGLContext(context, width, height) {
68
+ const simpleViewerScene = SimpleViewerScene.createSceneWithGLContext(context, width, height);
69
+ return simpleViewerScene;
70
+ }
@@ -220,6 +220,13 @@ export declare class SimpleViewerScene {
220
220
  * @param pixelRatio The pixel ratio of the scene.
221
221
  */
222
222
  private setupAO;
223
+ /**
224
+ * Load a new model, replacing any current model in the scene,
225
+ * uses promises/exceptions for error handling
226
+ *
227
+ * @param model The model to add to the scene
228
+ */
229
+ addModelToScene(model: SceneObject): void;
223
230
  /**
224
231
  * Load a new model, replacing any current model in the scene,
225
232
  * uses promises/exceptions for error handling
@@ -239,5 +246,19 @@ export declare class SimpleViewerScene {
239
246
  * @return {SimpleViewerScene} The created scene.
240
247
  */
241
248
  static createSceneAttachedToElement(element: HTMLElement, useElementDimensions?: boolean, options?: SimpleViewerSceneOptions): SimpleViewerScene;
249
+ /**
250
+ * Create a simple viewer scene, including the required
251
+ * threejs artefacts and attach it to a DOM element.
252
+ *
253
+ * @param element The element to attach to.
254
+ * @param useElementDimensions If true use the width and height of the element,
255
+ * if false use the window dimensions.
256
+ * @param height
257
+ * @param width
258
+ * @param context
259
+ * @param options The scene viewer options for attaching this element.
260
+ * @return {SimpleViewerScene} The created scene.
261
+ */
262
+ static createSceneWithGLContext(context: WebGLRenderingContext, width?: number, height?: number, options?: SimpleViewerSceneOptions): SimpleViewerScene;
242
263
  }
243
264
  //# sourceMappingURL=simple_viewer_scene.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"simple_viewer_scene.d.ts","sourceRoot":"","sources":["../../../../src/rendering/threejs/simple_viewer_scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple_viewer_scene.d.ts","sourceRoot":"","sources":["../../../../src/rendering/threejs/simple_viewer_scene.ts"],"names":[],"mappings":"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"}
@@ -335,6 +335,69 @@ export class SimpleViewerScene {
335
335
  fxaaPass.setSize(width, height);
336
336
  composer.addPass(fxaaPass);
337
337
  }
338
+ /**
339
+ * Load a new model, replacing any current model in the scene,
340
+ * uses promises/exceptions for error handling
341
+ *
342
+ * @param model The model to add to the scene
343
+ */
344
+ addModelToScene(model) {
345
+ try {
346
+ const scene = this.scene;
347
+ const currentModelSceneObject = this.currentModelSceneObject_;
348
+ if (currentModelSceneObject !== void 0) {
349
+ scene.remove(currentModelSceneObject);
350
+ this.currentModelSceneObject_ = void 0;
351
+ this.currentModel_ = void 0;
352
+ }
353
+ model.castShadow = true;
354
+ model.receiveShadow = true;
355
+ this.currentModelSceneObject_ = model;
356
+ const currentBoundingBox = new THREE.Box3().setFromObject(model);
357
+ const currentBoundingSphere = currentBoundingBox
358
+ .getBoundingSphere(new THREE.Sphere());
359
+ const sphereRadius = currentBoundingSphere.radius;
360
+ model.position.copy(currentBoundingSphere.center.clone().negate());
361
+ scene.add(model);
362
+ // Add this to the scene to see the bounding box.
363
+ // const conwaySceneObjectHelper = new THREE.BoxHelper( conwaySceneObject )
364
+ // scene.add( conwaySceneObjectHelper )
365
+ const light = this.light;
366
+ this.currentRadius_ = sphereRadius;
367
+ light.position.copy(this.lightDir_).normalize().multiplyScalar(sphereRadius);
368
+ light.shadow.camera.near = 0.1 * sphereRadius;
369
+ light.shadow.camera.far = (2.1 * sphereRadius);
370
+ light.shadow.camera.top = sphereRadius;
371
+ light.shadow.camera.bottom = -sphereRadius;
372
+ light.shadow.camera.left = -sphereRadius;
373
+ light.shadow.camera.right = sphereRadius;
374
+ light.shadow.camera.updateProjectionMatrix();
375
+ light.updateMatrix();
376
+ light.shadow.autoUpdate = false;
377
+ light.shadow.needsUpdate = true;
378
+ this.renderer.shadowMap.needsUpdate = true;
379
+ // Enable this to see the shadow frustum
380
+ // const shadowHelper = new THREE.CameraHelper( light.shadow.camera )
381
+ // scene.add( shadowHelper )
382
+ if (this.options.initialiseCameraToModel ?? defaultOptions.initialiseCameraToModel) {
383
+ const camera = this.camera;
384
+ camera.position.set(0, sphereRadius * 0.25, sphereRadius);
385
+ const near = sphereRadius * NEAR_RATIO;
386
+ const cameraZ = sphereRadius + near;
387
+ camera.near = near;
388
+ camera.far = cameraZ * 4;
389
+ const [width, height] = this.dimensionsFunction();
390
+ if (camera instanceof THREE.PerspectiveCamera) {
391
+ camera.aspect = width / height;
392
+ }
393
+ camera.lookAt(new THREE.Vector3(0, 0, -sphereRadius * 0.25));
394
+ }
395
+ }
396
+ catch (e) {
397
+ Logger.error(`Error adding model to scene: ${e?.message ?? "<unknown>"} `);
398
+ throw e;
399
+ }
400
+ }
338
401
  /**
339
402
  * Load a new model, replacing any current model in the scene,
340
403
  * uses promises/exceptions for error handling
@@ -463,4 +526,42 @@ export class SimpleViewerScene {
463
526
  });
464
527
  return result;
465
528
  }
529
+ /**
530
+ * Create a simple viewer scene, including the required
531
+ * threejs artefacts and attach it to a DOM element.
532
+ *
533
+ * @param element The element to attach to.
534
+ * @param useElementDimensions If true use the width and height of the element,
535
+ * if false use the window dimensions.
536
+ * @param height
537
+ * @param width
538
+ * @param context
539
+ * @param options The scene viewer options for attaching this element.
540
+ * @return {SimpleViewerScene} The created scene.
541
+ */
542
+ static createSceneWithGLContext(context, width = 1024, height = 768, options = defaultOptions) {
543
+ const dimensionsFunction = () => {
544
+ return [width, height];
545
+ };
546
+ const [startingWidth, startingHeight] = dimensionsFunction();
547
+ const renderer = new THREE.WebGLRenderer({ antialias: true, logarithmicDepthBuffer: true, context: context });
548
+ const scene = new THREE.Scene();
549
+ const camera = new THREE.PerspectiveCamera(CAMERA_FOV, startingWidth / startingHeight, DEFAULT_NEAR, DEFAULT_FAR);
550
+ renderer.sortObjects = true;
551
+ let pixelRatio = window.devicePixelRatio;
552
+ let worstCaseTextureSize = Math.max(window.innerWidth, window.innerHeight) * pixelRatio;
553
+ while (worstCaseTextureSize > renderer.capabilities.maxTextureSize && pixelRatio > 1) {
554
+ pixelRatio /= 2;
555
+ pixelRatio = Math.min(pixelRatio, 1);
556
+ worstCaseTextureSize = Math.max(window.innerWidth, window.innerHeight) * pixelRatio;
557
+ }
558
+ renderer.setPixelRatio(pixelRatio);
559
+ renderer.setSize(startingWidth, startingHeight);
560
+ renderer.setClearColor(THREE.Color.NAMES.cornflowerblue);
561
+ const result = new SimpleViewerScene(renderer, scene, camera, dimensionsFunction, options);
562
+ renderer.setAnimationLoop(() => {
563
+ result.render();
564
+ });
565
+ return result;
566
+ }
466
567
  }
@@ -1,2 +1,2 @@
1
- const versionString = 'Conway Web-Ifc Shim v0.21.915';
1
+ const versionString = 'Conway Web-Ifc Shim v0.22.921';
2
2
  export { versionString };