@bldrs-ai/conway 0.17.885 → 0.18.886

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.
@@ -1,2 +1,3 @@
1
+ #!/usr/bin/env node
1
2
  export {};
2
3
  //# sourceMappingURL=validator.d.ts.map
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  import fs from "fs";
2
3
  import { exit } from "process";
3
4
  import EntityTypesIfc from "../src/ifc/ifc4_gen/entity_types_ifc.gen.js";
@@ -298,6 +299,7 @@ function validateModel(model_, query_) {
298
299
  const fails = [];
299
300
  console.log(`\nValidation Report for Query: ${className}${expressID !==
300
301
  undefined ? `[#${expressID}]` : ""}.${property} ${operator} ${value}`);
302
+ const operation = new Function("a", "b", `return ( ( a ) ${operator} ( b ) )`);
301
303
  for (const e of entities) {
302
304
  const id = e.expressID;
303
305
  const propVal = getPropertyValue(e, property);
@@ -307,13 +309,9 @@ function validateModel(model_, query_) {
307
309
  failCount++;
308
310
  continue;
309
311
  }
310
- const leftSide = JSON.stringify(propVal);
311
- const rightSide = value;
312
312
  let pass;
313
313
  try {
314
- const expression = `${leftSide} ${operator} ${rightSide}`;
315
- // eslint-disable-next-line no-eval
316
- pass = eval(expression);
314
+ pass = operation(propVal, value);
317
315
  }
318
316
  catch (err) {
319
317
  fails.push({ id, propVal, reason: `eval error: ${err}` });
@@ -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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"}
@@ -1055,7 +1055,6 @@ export class IfcGeometryExtraction {
1055
1055
  case IfcReflectanceMethodEnum.PHONG:
1056
1056
  case IfcReflectanceMethodEnum.BLINN: {
1057
1057
  newMaterial.metalness = 0;
1058
- newMaterial.roughness ??= 1;
1059
1058
  newMaterial.ior ??= 1.4;
1060
1059
  break;
1061
1060
  }
@@ -1113,13 +1112,14 @@ export class IfcGeometryExtraction {
1113
1112
  }
1114
1113
  const isTransparent = newMaterial.baseColor[3] < 1;
1115
1114
  newMaterial.metalness ??= 0;
1116
- newMaterial.roughness ??= 0;
1117
- newMaterial.ior ??= 1.4;
1115
+ newMaterial.roughness ??= isTransparent ? 0.05 : 0.9;
1116
+ newMaterial.ior ??= isTransparent ? 1.52 : 1.4;
1118
1117
  newMaterial.doubleSided = isTransparent || newMaterial.doubleSided;
1119
1118
  newMaterial.blend = isTransparent ? BlendMode.BLEND : BlendMode.OPAQUE;
1120
1119
  materials.add(from.localID, newMaterial);
1121
1120
  }
1122
1121
  }
1122
+ /* eslint-enable no-magic-numbers */
1123
1123
  /**
1124
1124
  * Extract a style item.
1125
1125
  *
@@ -4109,6 +4109,7 @@ export class IfcGeometryExtraction {
4109
4109
  }
4110
4110
  }
4111
4111
  }
4112
+ /* eslint-disable no-magic-numbers */ // No magic numbers disabled
4112
4113
  /**
4113
4114
  *
4114
4115
  * @param prefix
@@ -4152,6 +4153,7 @@ export class IfcGeometryExtraction {
4152
4153
  return null;
4153
4154
  }
4154
4155
  }
4156
+ /* eslint-enable no-magic-numbers */ // No magic numbers disabled
4155
4157
  /**
4156
4158
  *
4157
4159
  * @param outputFilePath
@@ -4180,6 +4182,7 @@ export class IfcGeometryExtraction {
4180
4182
  try {
4181
4183
  // 256 meg limit for memoization - smaller models get a big
4182
4184
  // win from memoization, but much larger models it uses far too much heap.
4185
+ // eslint-disable-next-line no-magic-numbers
4183
4186
  const MEMOIZATION_THRESHOLD = 256 * 1024 * 1024;
4184
4187
  if (this.lowMemoryMode || this.model.bufferBytesize > MEMOIZATION_THRESHOLD) {
4185
4188
  this.model.elementMemoization = false;
@@ -212,9 +212,11 @@ class SceneEventSink {
212
212
  const onlySpaces = this.nonSpaceCount_ === 0;
213
213
  for (const batch of this.materialMap_.values()) {
214
214
  const batchMesh = new BatchedMesh(batch.instanceCount, batch.vertexCount, batch.indexCount, batch.threeMaterial);
215
+ batchMesh.perObjectFrustumCulled = false;
215
216
  this.group.add(batchMesh);
216
217
  if (batch.material.blend === BlendMode.OPAQUE && batch.material.baseColor[3] === 1) {
217
218
  batchMesh.castShadow = true;
219
+ batchMesh.sortObjects = false;
218
220
  }
219
221
  batchMesh.receiveShadow = true;
220
222
  batch.mesh = batchMesh;
@@ -433,7 +435,6 @@ class SceneEventSink {
433
435
  (instanceMaterial !== material || instanceMesh !== mesh)) {
434
436
  let batch = batches.get(material);
435
437
  if (batch === void 0) {
436
- console.log("batch created");
437
438
  const threeMaterial = new MeshPhysicalMaterial();
438
439
  threeMaterial.metalness = material.metalness ?? threeMaterial.metalness;
439
440
  threeMaterial.roughness = material.roughness ?? threeMaterial.roughness;
@@ -441,11 +442,13 @@ class SceneEventSink {
441
442
  const baseColor = material.baseColor;
442
443
  const materialAlpha = baseColor[3];
443
444
  threeMaterial.side = material.doubleSided ? DoubleSide : FrontSide;
445
+ const ALPHA_GAMMA = 2.2;
446
+ const deGammaAlpha = Math.pow(materialAlpha, ALPHA_GAMMA);
444
447
  if (material.blend !== BlendMode.OPAQUE && materialAlpha < 1) {
445
448
  threeMaterial.transparent = true;
446
- threeMaterial.opacity = materialAlpha;
447
- threeMaterial.premultipliedAlpha = true;
448
- threeMaterial.depthWrite = false;
449
+ threeMaterial.thickness = 0.01;
450
+ threeMaterial.transmission = 1 - deGammaAlpha;
451
+ threeMaterial.depthWrite = true;
449
452
  threeMaterial.side = DoubleSide;
450
453
  }
451
454
  if (ior !== void 0) {
@@ -459,7 +462,16 @@ class SceneEventSink {
459
462
  if (specular !== void 0) {
460
463
  threeMaterial.specularColor.setRGB(specular[0], specular[1], specular[2], LinearSRGBColorSpace);
461
464
  }
462
- threeMaterial.color.setRGB(baseColor[0] / baseColor[3], baseColor[1] / baseColor[3], baseColor[2] / baseColor[3], LinearSRGBColorSpace);
465
+ let r = baseColor[0] / deGammaAlpha;
466
+ let g = baseColor[1] / deGammaAlpha;
467
+ let b = baseColor[2] / deGammaAlpha;
468
+ const maxComponent = Math.max(r, g, b);
469
+ if (maxComponent > 1) {
470
+ r /= maxComponent;
471
+ g /= maxComponent;
472
+ b /= maxComponent;
473
+ }
474
+ threeMaterial.color.setRGB(r, g, b, LinearSRGBColorSpace);
463
475
  batch = new MaterialMeshBatch(material, threeMaterial);
464
476
  batches.set(material, batch);
465
477
  }
@@ -484,6 +496,7 @@ class SceneEventSink {
484
496
  if (batchMesh === void 0) {
485
497
  batchMesh =
486
498
  new BatchedMesh(1, vertexCount, indexCount, batch.threeMaterial);
499
+ batchMesh.perObjectFrustumCulled = false;
487
500
  if (batch.material.baseColor[3] < 1) {
488
501
  batchMesh.castShadow = false;
489
502
  }
@@ -1,5 +1,6 @@
1
- import * as THREE from 'three';
2
- import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
1
+ import * as THREE from "three";
2
+ import SceneObject from "./scene_object.js";
3
+ import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
3
4
  /**
4
5
  * Shadow quality, lower values use lower resolution/faster settings,
5
6
  * higher values use high resolution/slower but more aesthetic settings.
@@ -13,13 +14,57 @@ export declare const enum ShadowQuality {
13
14
  * The options for the simple viewer scene.
14
15
  */
15
16
  export interface SimpleViewerSceneOptions {
17
+ /**
18
+ * Are shadows enabled? (defualt true)
19
+ */
16
20
  shadows?: boolean;
21
+ /**
22
+ * Is the directional light enabled? (default true)
23
+ */
17
24
  directionalLight?: boolean;
25
+ /**
26
+ * Should we setup an orbit control? (default true)
27
+ */
18
28
  orbitControl?: boolean;
29
+ /**
30
+ * Should we add an ambient light? (default true)
31
+ *
32
+ * Set to false if you load an environment map and don't want
33
+ * an extra ambient light, as the environment map itself acts as an
34
+ * ambient light.
35
+ */
19
36
  ambientLight?: boolean;
37
+ /**
38
+ * Should we initialise the camera to the model? (default true)
39
+ */
20
40
  initialiseCameraToModel?: boolean;
41
+ /**
42
+ * The shadow quality to use. (default ShadowQuality.HIGH)
43
+ */
21
44
  shadowQuality?: ShadowQuality;
45
+ /**
46
+ * Should we use variant shadow mapping? (default false)
47
+ */
22
48
  variantShadowMap?: boolean;
49
+ /**
50
+ * Should we enable HDR tone mapping? (default true)
51
+ */
52
+ enableHDRToneMap?: boolean;
53
+ /**
54
+ * Should we use the filmic tone mapping? (default true)
55
+ *
56
+ * Enables using ACES filmic tone tapping,
57
+ * otherwise neutral tonemapping will be used.
58
+ */
59
+ filmicTonMap?: boolean;
60
+ /**
61
+ * The exposure for the tonemapping. (default 0.25)
62
+ */
63
+ toneMapExposure?: number;
64
+ /**
65
+ * Is ambient occlusion enabled? (default true)
66
+ */
67
+ ao?: boolean;
23
68
  }
24
69
  /**
25
70
  * A default scene setup for three with a conway model that can be loaded.
@@ -28,7 +73,10 @@ export declare class SimpleViewerScene {
28
73
  readonly renderer: THREE.WebGLRenderer;
29
74
  readonly scene: THREE.Scene;
30
75
  readonly camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
31
- readonly dimensionsFunction: () => [number, number];
76
+ readonly dimensionsFunction: () => [
77
+ number,
78
+ number
79
+ ];
32
80
  private readonly options;
33
81
  private currentModel_?;
34
82
  private currentRadius_;
@@ -36,6 +84,42 @@ export declare class SimpleViewerScene {
36
84
  readonly light: THREE.DirectionalLight;
37
85
  readonly ambient: THREE.HemisphereLight;
38
86
  private lightDir_;
87
+ private rgbeLoader_?;
88
+ private premGenerator_?;
89
+ private composer_?;
90
+ private ambientOclussion_;
91
+ onload?: (scene: SimpleViewerScene, object: SceneObject) => void;
92
+ /**
93
+ * Is ambient occlusion enabled?
94
+ *
95
+ * @return {boolean} True if ambient occlusion is enabled.
96
+ */
97
+ get ambientOcclusion(): boolean;
98
+ /**
99
+ * Set if ambient occlusion is enabled.
100
+ *
101
+ * @param value True if ambient occlusion is enabled.
102
+ */
103
+ set ambientOcclusion(value: boolean);
104
+ /**
105
+ * Does this scene have an ambient light in it?
106
+ *
107
+ * @return {boolean} True if the scene has an ambient light.
108
+ */
109
+ get hasAmbientLight(): boolean;
110
+ /**
111
+ * Set if this scene has an ambient light.
112
+ *
113
+ * @param value True if the scene has an ambient light.
114
+ */
115
+ set hasAmbientLight(value: boolean);
116
+ /**
117
+ * Load an equirectangular environment map in HDR format.
118
+ *
119
+ * @param url The URL to the HDR file.
120
+ * @return {Promise< void >} A promise to await on for loading.
121
+ */
122
+ loadEquirectangularEnvironmentMapHDR(url: string): Promise<void>;
39
123
  /**
40
124
  * Set the current light direction.
41
125
  *
@@ -56,6 +140,7 @@ export declare class SimpleViewerScene {
56
140
  * @param vsm
57
141
  */
58
142
  private updateShadowQuality;
143
+ render(): void;
59
144
  /**
60
145
  * Are shadows enabled?
61
146
  *
@@ -89,7 +174,18 @@ export declare class SimpleViewerScene {
89
174
  * @param dimensionsFunction
90
175
  * @param options
91
176
  */
92
- constructor(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.PerspectiveCamera | THREE.OrthographicCamera, dimensionsFunction: () => [number, number], options?: SimpleViewerSceneOptions);
177
+ constructor(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.PerspectiveCamera | THREE.OrthographicCamera, dimensionsFunction: () => [
178
+ number,
179
+ number
180
+ ], options?: SimpleViewerSceneOptions);
181
+ /**
182
+ * Sets up ambient occlusion for the scene.
183
+ *
184
+ * @param width The width of the scene.
185
+ * @param height The height of the scene.
186
+ * @param pixelRatio The pixel ratio of the scene.
187
+ */
188
+ private setupAO;
93
189
  /**
94
190
  * Load a new model, replacing any current model in the scene,
95
191
  * uses promises/exceptions for error handling
@@ -110,4 +206,4 @@ export declare class SimpleViewerScene {
110
206
  */
111
207
  static createSceneAttachedToElement(element: HTMLElement, useElementDimensions?: boolean, options?: SimpleViewerSceneOptions): SimpleViewerScene;
112
208
  }
113
- //# sourceMappingURL=simple_viewer_scene.d.ts.map
209
+ //# 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":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAA;AAW5E;;;GAGG;AAEH,0BAAkB,aAAa;IAG7B,GAAG,IAAA;IACH,MAAM,IAAA;IACN,IAAI,IAAA;CAEL;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IAEvC,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAEjC,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAwBD;;GAEG;AACH,qBAAa,iBAAiB;aAsLV,QAAQ,EAAE,KAAK,CAAC,aAAa;aAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;aAClB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,kBAAkB;aAC1D,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAxL1B,OAAO,CAAC,aAAa,CAAC,CAAa;IAEnC,OAAO,CAAC,cAAc,CAAY;IAE3B,aAAa,EAAE,aAAa,CACyB;IAE5D,SAAgB,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAC0B;IAGvE,SAAgB,OAAO,EAAE,KAAK,CAAC,eAAe,CACkB;IAEhE,OAAO,CAAC,SAAS,CAA8C;IAG/D;;;;OAIG;IACH,IAAW,cAAc,CAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAK9C;IAED;;;;OAIG;IACH,IAAW,cAAc,IAAI,KAAK,CAAC,OAAO,CAGzC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAoD3B;;;;OAIG;IACH,IAAW,cAAc,IAAI,OAAO,CAGnC;IAED;;;;OAIG;IACH,IAAW,cAAc,CAAE,KAAK,EAAE,OAAO,EA8BxC;IAED;;;;OAIG;IACH,IAAW,aAAa,IAAI,aAAa,CAGxC;IAED;;;;OAIG;IACH,IAAW,aAAa,CAAE,KAAK,EAAE,aAAa,EAQ7C;IAED;;;;;;;;OAQG;gBAEe,QAAQ,EAAE,KAAK,CAAC,aAAa,EAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,EAC1D,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,OAAO,GAAE,wBAAyC;IAiCrE;;;;;;OAMG;IACU,IAAI,CAAE,MAAM,EAAE,WAAW,GAAI,OAAO,CAAE,IAAI,CAAE;IA2GzD;;;;;;;;;OASG;WACW,4BAA4B,CACtC,OAAO,EAAE,WAAW,EACpB,oBAAoB,GAAE,OAAe,EACrC,OAAO,GAAE,wBAAyC,GAAI,iBAAiB;CA6D5E"}
1
+ {"version":3,"file":"simple_viewer_scene.d.ts","sourceRoot":"","sources":["../../../../src/rendering/threejs/simple_viewer_scene.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,14 @@ import * as THREE from "three";
2
2
  import SceneObject from "./scene_object.js";
3
3
  import { ConwayModelLoader } from "../../loaders/conway_model_loader.js";
4
4
  import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
5
+ import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader.js";
5
6
  import Logger from "../../logging/logger.js";
7
+ import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js";
8
+ import { RenderPass } from "three/examples/jsm/postprocessing/RenderPass.js";
9
+ import { GTAOPass } from "three/examples/jsm/postprocessing/GTAOPass.js";
10
+ import { OutputPass } from "three/examples/jsm/postprocessing/OutputPass.js";
11
+ import { ShaderPass } from "three/examples/jsm/postprocessing/ShaderPass.js";
12
+ import { FXAAShader } from "three/examples/jsm/shaders/FXAAShader.js";
6
13
  // This file is obvious numbers heavy composing a scene - CS
7
14
  /* eslint-disable no-magic-numbers */
8
15
  const CAMERA_FOV = 75;
@@ -19,13 +26,77 @@ const defaultOptions = {
19
26
  ambientLight: true,
20
27
  initialiseCameraToModel: true,
21
28
  shadowQuality: 2 /* ShadowQuality.HIGH */,
22
- variantShadowMap: false
29
+ variantShadowMap: false,
30
+ enableHDRToneMap: true,
31
+ filmicTonMap: true,
32
+ ao: true,
33
+ toneMapExposure: 0.5
23
34
  };
24
35
  let modelID = 0;
25
36
  /**
26
37
  * A default scene setup for three with a conway model that can be loaded.
27
38
  */
28
39
  export class SimpleViewerScene {
40
+ /**
41
+ * Is ambient occlusion enabled?
42
+ *
43
+ * @return {boolean} True if ambient occlusion is enabled.
44
+ */
45
+ get ambientOcclusion() {
46
+ return this.ambientOclussion_;
47
+ }
48
+ /**
49
+ * Set if ambient occlusion is enabled.
50
+ *
51
+ * @param value True if ambient occlusion is enabled.
52
+ */
53
+ set ambientOcclusion(value) {
54
+ this.ambientOclussion_ = value;
55
+ }
56
+ /**
57
+ * Does this scene have an ambient light in it?
58
+ *
59
+ * @return {boolean} True if the scene has an ambient light.
60
+ */
61
+ get hasAmbientLight() {
62
+ return this.scene.children.includes(this.ambient);
63
+ }
64
+ /**
65
+ * Set if this scene has an ambient light.
66
+ *
67
+ * @param value True if the scene has an ambient light.
68
+ */
69
+ set hasAmbientLight(value) {
70
+ if (value !== this.hasAmbientLight) {
71
+ if (value) {
72
+ this.scene.add(this.ambient);
73
+ }
74
+ else {
75
+ this.scene.remove(this.ambient);
76
+ }
77
+ }
78
+ }
79
+ /**
80
+ * Load an equirectangular environment map in HDR format.
81
+ *
82
+ * @param url The URL to the HDR file.
83
+ * @return {Promise< void >} A promise to await on for loading.
84
+ */
85
+ async loadEquirectangularEnvironmentMapHDR(url) {
86
+ if (this.rgbeLoader_ === void 0) {
87
+ this.rgbeLoader_ = new RGBELoader();
88
+ }
89
+ const rgbeLoader = this.rgbeLoader_;
90
+ const texture = await rgbeLoader.loadAsync(url);
91
+ if (this.premGenerator_ === void 0) {
92
+ this.premGenerator_ = new THREE.PMREMGenerator(this.renderer);
93
+ }
94
+ texture.mapping = THREE.EquirectangularReflectionMapping;
95
+ this.scene.background = texture;
96
+ const premGenerator = this.premGenerator_;
97
+ const premTexture = premGenerator.fromEquirectangular(texture);
98
+ this.scene.environment = premTexture.texture;
99
+ }
29
100
  /**
30
101
  * Set the current light direction.
31
102
  *
@@ -81,6 +152,37 @@ export class SimpleViewerScene {
81
152
  light.shadow.updateMatrices(light);
82
153
  light.shadow.needsUpdate = true;
83
154
  }
155
+ render() {
156
+ const [width, height] = this.dimensionsFunction();
157
+ const camera = this.camera;
158
+ if (camera instanceof THREE.PerspectiveCamera) {
159
+ camera.aspect = width / height;
160
+ }
161
+ camera.updateProjectionMatrix();
162
+ const renderer = this.renderer;
163
+ const scene = this.scene;
164
+ renderer.setSize(width, height);
165
+ if (this.ambientOclussion_) {
166
+ if (!this.composer_) {
167
+ this.setupAO(width, height, renderer.getPixelRatio());
168
+ }
169
+ const composer = this.composer_;
170
+ composer.setSize(width, height);
171
+ composer.passes.forEach((pass) => {
172
+ pass.setSize(width, height);
173
+ if (pass instanceof ShaderPass) {
174
+ const pixelRatio = renderer.getPixelRatio();
175
+ const resolution = pass.material.uniforms["resolution"].value;
176
+ resolution.x = 1 / (width * pixelRatio);
177
+ resolution.y = 1 / (height * pixelRatio);
178
+ }
179
+ });
180
+ composer.render();
181
+ }
182
+ else {
183
+ renderer.render(scene, camera);
184
+ }
185
+ }
84
186
  /**
85
187
  * Are shadows enabled?
86
188
  *
@@ -151,6 +253,7 @@ export class SimpleViewerScene {
151
253
  // Slightly blue cast ambient sky light
152
254
  this.ambient = new THREE.HemisphereLight(11184813, 1118481, 0.5 * Math.PI);
153
255
  this.lightDir_ = new THREE.Vector3(1, 1, 1);
256
+ this.ambientOclussion_ = options.ao ?? !!defaultOptions.ao;
154
257
  if (options.ambientLight ?? defaultOptions.ambientLight) {
155
258
  scene.add(this.ambient);
156
259
  }
@@ -167,6 +270,41 @@ export class SimpleViewerScene {
167
270
  this.updateShadowQuality(light, shadowQuality, options.variantShadowMap ?? defaultOptions.variantShadowMap);
168
271
  }
169
272
  }
273
+ if (options.enableHDRToneMap ?? !!defaultOptions.enableHDRToneMap) {
274
+ renderer.toneMapping =
275
+ options.filmicTonMap ?? !!defaultOptions.filmicTonMap ?
276
+ THREE.ACESFilmicToneMapping :
277
+ THREE.NeutralToneMapping;
278
+ renderer.toneMappingExposure =
279
+ options.toneMapExposure ?? defaultOptions.toneMapExposure;
280
+ }
281
+ }
282
+ /**
283
+ * Sets up ambient occlusion for the scene.
284
+ *
285
+ * @param width The width of the scene.
286
+ * @param height The height of the scene.
287
+ * @param pixelRatio The pixel ratio of the scene.
288
+ */
289
+ setupAO(width, height, pixelRatio) {
290
+ const renderer = this.renderer;
291
+ const composer = new EffectComposer(renderer);
292
+ composer.setSize(width, height);
293
+ composer.setPixelRatio(pixelRatio);
294
+ this.composer_ = composer;
295
+ const renderPass = new RenderPass(this.scene, this.camera);
296
+ renderPass.setSize(width, height);
297
+ composer.addPass(renderPass);
298
+ const gtaoPass = new GTAOPass(this.scene, this.camera);
299
+ gtaoPass.setSize(width, height);
300
+ gtaoPass.blendIntensity = 0.5;
301
+ composer.addPass(gtaoPass);
302
+ const outputPass = new OutputPass();
303
+ outputPass.setSize(width, height);
304
+ composer.addPass(outputPass);
305
+ const fxaaPass = new ShaderPass(FXAAShader);
306
+ fxaaPass.setSize(width, height);
307
+ composer.addPass(fxaaPass);
170
308
  }
171
309
  /**
172
310
  * Load a new model, replacing any current model in the scene,
@@ -232,6 +370,9 @@ export class SimpleViewerScene {
232
370
  if (this.options.orbitControl ?? defaultOptions.orbitControl) {
233
371
  this.orbitControls.update();
234
372
  }
373
+ if (this.onload !== void 0) {
374
+ this.onload(this, conwaySceneObject);
375
+ }
235
376
  }
236
377
  catch (e) {
237
378
  Logger.error(`Error thrown loading dropped file: ${e?.message ?? "<unknown>"} `);
@@ -257,11 +398,18 @@ export class SimpleViewerScene {
257
398
  return [window.innerWidth, window.innerHeight];
258
399
  };
259
400
  const [startingWidth, startingHeight] = dimensionsFunction();
260
- const renderer = new THREE.WebGLRenderer({ antialias: true });
401
+ const renderer = new THREE.WebGLRenderer({ antialias: true, logarithmicDepthBuffer: true });
261
402
  const scene = new THREE.Scene();
262
403
  const camera = new THREE.PerspectiveCamera(CAMERA_FOV, startingWidth / startingHeight, DEFAULT_NEAR, DEFAULT_FAR);
263
404
  renderer.sortObjects = true;
264
- renderer.setPixelRatio(window.devicePixelRatio);
405
+ let pixelRatio = window.devicePixelRatio;
406
+ let worstCaseTextureSize = Math.max(window.innerWidth, window.innerHeight) * pixelRatio;
407
+ while (worstCaseTextureSize > renderer.capabilities.maxTextureSize && pixelRatio > 1) {
408
+ pixelRatio /= 2;
409
+ pixelRatio = Math.min(pixelRatio, 1);
410
+ worstCaseTextureSize = Math.max(window.innerWidth, window.innerHeight) * pixelRatio;
411
+ }
412
+ renderer.setPixelRatio(pixelRatio);
265
413
  renderer.setSize(startingWidth, startingHeight);
266
414
  element.appendChild(renderer.domElement);
267
415
  renderer.setClearColor(THREE.Color.NAMES.cornflowerblue);
@@ -277,13 +425,10 @@ export class SimpleViewerScene {
277
425
  renderer.setSize(window.innerWidth, window.innerHeight);
278
426
  });
279
427
  }
428
+ const result = new SimpleViewerScene(renderer, scene, camera, dimensionsFunction, options);
280
429
  renderer.setAnimationLoop(() => {
281
- const [width, height] = dimensionsFunction();
282
- camera.aspect = width / height;
283
- camera.updateProjectionMatrix();
284
- renderer.setSize(width, height);
285
- renderer.render(scene, camera);
430
+ result.render();
286
431
  });
287
- return new SimpleViewerScene(renderer, scene, camera, dimensionsFunction, options);
432
+ return result;
288
433
  }
289
434
  }
@@ -1,2 +1,2 @@
1
- const versionString = 'Conway Web-Ifc Shim v0.17.883';
1
+ const versionString = 'Conway Web-Ifc Shim v0.18.886';
2
2
  export { versionString };