@thatopen/components 3.2.2 → 3.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -3328,6 +3328,10 @@ const _FragmentsManager = class _FragmentsManager extends Component {
3328
3328
  const model = this.list.get(modelId);
3329
3329
  if (!model)
3330
3330
  continue;
3331
+ if (localIds.size === 0) {
3332
+ result[modelId] = [];
3333
+ continue;
3334
+ }
3331
3335
  const data = await model.getItemsData([...localIds], config);
3332
3336
  result[modelId] = data;
3333
3337
  }
@@ -3499,6 +3503,10 @@ const _IfcLoader = class _IfcLoader extends Component {
3499
3503
  * An event triggered when the IFC file starts loading.
3500
3504
  */
3501
3505
  __publicField(this, "onIfcStartedLoading", new Event());
3506
+ /**
3507
+ * An event triggered when the IFC importer is initialized.
3508
+ */
3509
+ __publicField(this, "onIfcImporterInitialized", new Event());
3502
3510
  /**
3503
3511
  * An event triggered when the setup process is completed.
3504
3512
  */
@@ -3576,6 +3584,7 @@ const _IfcLoader = class _IfcLoader extends Component {
3576
3584
  serializer.wasm.path = this.settings.wasm.path;
3577
3585
  serializer.wasm.absolute = this.settings.wasm.absolute;
3578
3586
  serializer.webIfcSettings = this.settings.webIfc;
3587
+ this.onIfcImporterInitialized.trigger(serializer);
3579
3588
  if (config == null ? void 0 : config.instanceCallback)
3580
3589
  config.instanceCallback(serializer);
3581
3590
  const bytes = await serializer.process({
@@ -5120,6 +5129,11 @@ class SimpleScene extends BaseScene {
5120
5129
  configs.list.delete(this.config.uuid);
5121
5130
  }
5122
5131
  }
5132
+ var RendererMode = /* @__PURE__ */ ((RendererMode2) => {
5133
+ RendererMode2[RendererMode2["MANUAL"] = 0] = "MANUAL";
5134
+ RendererMode2[RendererMode2["AUTO"] = 1] = "AUTO";
5135
+ return RendererMode2;
5136
+ })(RendererMode || {});
5123
5137
  class SimpleRenderer extends BaseRenderer {
5124
5138
  /**
5125
5139
  * Constructor for the SimpleRenderer class.
@@ -5143,6 +5157,14 @@ class SimpleRenderer extends BaseRenderer {
5143
5157
  * The THREE.js WebGLRenderer instance.
5144
5158
  */
5145
5159
  __publicField(this, "three");
5160
+ /**
5161
+ * The mode of the renderer. If MANUAL, the renderer will be updated manually. If AUTO, the renderer will render on every update tick.
5162
+ */
5163
+ __publicField(this, "mode", 1);
5164
+ /**
5165
+ * Whether the renderer needs to be updated. If true, the renderer will be updated on the next frame.
5166
+ */
5167
+ __publicField(this, "needsUpdate", false);
5146
5168
  __publicField(this, "_canvas");
5147
5169
  __publicField(this, "_parameters");
5148
5170
  __publicField(this, "_resizeObserver", null);
@@ -5199,6 +5221,10 @@ class SimpleRenderer extends BaseRenderer {
5199
5221
  update() {
5200
5222
  if (!this.enabled || !this.currentWorld)
5201
5223
  return;
5224
+ if (this.mode === 0 && !this.needsUpdate) {
5225
+ return;
5226
+ }
5227
+ this.needsUpdate = false;
5202
5228
  this.onBeforeUpdate.trigger(this);
5203
5229
  const scene = this.currentWorld.scene.three;
5204
5230
  const camera = this.currentWorld.camera.three;
@@ -21581,6 +21607,7 @@ exports.OrthoPerspectiveCamera = OrthoPerspectiveCamera;
21581
21607
  exports.PlanMode = PlanMode;
21582
21608
  exports.ProjectionManager = ProjectionManager;
21583
21609
  exports.Raycasters = Raycasters;
21610
+ exports.RendererMode = RendererMode;
21584
21611
  exports.ShadowedScene = ShadowedScene;
21585
21612
  exports.SimpleCamera = SimpleCamera;
21586
21613
  exports.SimpleGrid = SimpleGrid;
package/dist/index.d.ts CHANGED
@@ -2244,6 +2244,10 @@ export declare class IfcLoader extends Component implements Disposable_2 {
2244
2244
  * An event triggered when the IFC file starts loading.
2245
2245
  */
2246
2246
  readonly onIfcStartedLoading: Event_2<void>;
2247
+ /**
2248
+ * An event triggered when the IFC importer is initialized.
2249
+ */
2250
+ readonly onIfcImporterInitialized: Event_2<FRAGS.IfcImporter>;
2247
2251
  /**
2248
2252
  * An event triggered when the setup process is completed.
2249
2253
  */
@@ -2829,6 +2833,14 @@ export declare interface RemoveClassifierItemsConfig {
2829
2833
  groupName?: string;
2830
2834
  }
2831
2835
 
2836
+ /**
2837
+ * The mode of the renderer. If MANUAL, the renderer will be updated on command. If AUTO, the renderer will render on every update tick.
2838
+ */
2839
+ export declare enum RendererMode {
2840
+ MANUAL = 0,
2841
+ AUTO = 1
2842
+ }
2843
+
2832
2844
  /**
2833
2845
  * Whether this component can be resized. The meaning of this can vary depending on the component: resizing a [Renderer](https://threejs.org/docs/#api/en/renderers/WebGLRenderer) component could mean changing its resolution, whereas resizing a [Mesh](https://threejs.org/docs/#api/en/objects/Mesh) would change its scale.
2834
2846
  */
@@ -3359,6 +3371,14 @@ export declare class SimpleRenderer extends BaseRenderer {
3359
3371
  * The THREE.js WebGLRenderer instance.
3360
3372
  */
3361
3373
  three: THREE.WebGLRenderer;
3374
+ /**
3375
+ * The mode of the renderer. If MANUAL, the renderer will be updated manually. If AUTO, the renderer will render on every update tick.
3376
+ */
3377
+ mode: RendererMode;
3378
+ /**
3379
+ * Whether the renderer needs to be updated. If true, the renderer will be updated on the next frame.
3380
+ */
3381
+ needsUpdate: boolean;
3362
3382
  protected _canvas: HTMLCanvasElement;
3363
3383
  protected _parameters?: Partial<THREE.WebGLRendererParameters>;
3364
3384
  protected _resizeObserver: ResizeObserver | null;