@thatopen/components 3.3.2 → 3.3.3

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.d.ts CHANGED
@@ -843,9 +843,9 @@ export declare class Clipper extends Component implements Createable, Disposable
843
843
  /** {@link Configurable.onSetup} */
844
844
  readonly onSetup: Event_2<unknown>;
845
845
  /** Event that fires when the user starts dragging a clipping plane. */
846
- readonly onBeforeDrag: Event_2<void>;
846
+ readonly onBeforeDrag: Event_2<SimplePlane>;
847
847
  /** Event that fires when the user stops dragging a clipping plane. */
848
- readonly onAfterDrag: Event_2<void>;
848
+ readonly onAfterDrag: Event_2<SimplePlane>;
849
849
  /**
850
850
  * Event that fires when the user starts creating a clipping plane.
851
851
  */
@@ -889,6 +889,12 @@ export declare class Clipper extends Component implements Createable, Disposable
889
889
  * has to be `true` for this to apply.
890
890
  */
891
891
  toleranceOrthogonalY: number;
892
+ /**
893
+ * Whether clipping planes should automatically scale based on
894
+ * camera distance. When true, the plane surface stays proportional
895
+ * to the arrow gizmo as you zoom in/out. Default is true.
896
+ */
897
+ autoScalePlanes: boolean;
892
898
  /**
893
899
  * The type of clipping plane to be created.
894
900
  * Default is {@link SimplePlane}.
@@ -962,8 +968,6 @@ export declare class Clipper extends Component implements Createable, Disposable
962
968
  private normalizePlaneDirectionY;
963
969
  private newPlane;
964
970
  private updateMaterialsAndPlanes;
965
- private _onStartDragging;
966
- private _onEndDragging;
967
971
  }
968
972
 
969
973
  /**
@@ -2454,6 +2458,26 @@ export declare class IfcLoader extends Component implements Disposable_2 {
2454
2458
  /**
2455
2459
  * Loads an IFC file and processes it for 3D visualization.
2456
2460
  *
2461
+ * By default, the loader imports a minimal set of attributes and relations
2462
+ * needed for typical visualization workflows.
2463
+ *
2464
+ * **Default attributes**
2465
+ * - Base entities: Project, Site, Building, BuildingStorey
2466
+ * - Materials: IFC material definitions and layers
2467
+ * - Properties: Property Sets, quantities (area, volume, length, etc.)
2468
+ *
2469
+ * **Default relations**
2470
+ * - DefinesByProperties (IsDefinedBy / DefinesOccurrence)
2471
+ * - AssociatesMaterial (HasAssociations / AssociatedTo)
2472
+ * - Aggregates (IsDecomposedBy / Decomposes)
2473
+ * - ContainedInSpatialStructure (ContainsElements / ContainedInStructure)
2474
+ *
2475
+ * If you need *all* attributes or relations to be loaded, you can enable them
2476
+ * via the `instanceCallback`.
2477
+ *
2478
+ * The callback provides direct access to the underlying `IfcImporter`,
2479
+ * allowing advanced configuration before processing begins.
2480
+ *
2457
2481
  * @param data - The Uint8Array containing the IFC file data.
2458
2482
  * @param coordinate - Boolean indicating whether to coordinate the loaded IFC data. Default is true.
2459
2483
  * @param name - Name for the fragments model.
@@ -2462,6 +2486,17 @@ export declare class IfcLoader extends Component implements Disposable_2 {
2462
2486
  * @returns A Promise that resolves to the FragmentsModel containing the loaded and processed IFC data.
2463
2487
  *
2464
2488
  * @example
2489
+ * // Load all attributes and relations using the instanceCallback
2490
+ * ```ts
2491
+ * const model = await ifcLoader.load(ifcData, true, "modelName", {
2492
+ * instanceCallback: (importer) => {
2493
+ * importer.addAllAttributes();
2494
+ * importer.addAllRelations();
2495
+ * },
2496
+ * });
2497
+ * ```
2498
+ * @example
2499
+ * // Default loading (built-in attributes and relations only)
2465
2500
  * ```typescript
2466
2501
  * const ifcLoader = components.get(IfcLoader);
2467
2502
  * const model = await ifcLoader.load(ifcData);
@@ -3216,6 +3251,7 @@ export declare class SimpleCamera extends BaseCamera implements Updateable, Disp
3216
3251
  * This camera is used for rendering the scene.
3217
3252
  */
3218
3253
  three: THREE.PerspectiveCamera | THREE.OrthographicCamera;
3254
+ protected _resizeObserver: ResizeObserver | null;
3219
3255
  private _allControls;
3220
3256
  /**
3221
3257
  * The object that controls the camera. An instance of
@@ -3422,6 +3458,10 @@ export declare class SimplePlane implements Disposable_2, Hideable {
3422
3458
  private readonly _planeMesh;
3423
3459
  private readonly _controls;
3424
3460
  private readonly _hiddenMaterial;
3461
+ private _sizeMultiplier;
3462
+ private _autoScale;
3463
+ get autoScale(): boolean;
3464
+ set autoScale(value: boolean);
3425
3465
  /**
3426
3466
  * Getter for the enabled state of the clipping plane.
3427
3467
  * @returns {boolean} The current enabled state.
@@ -3478,6 +3518,7 @@ export declare class SimplePlane implements Disposable_2, Hideable {
3478
3518
  setFromNormalAndCoplanarPoint(normal: THREE.Vector3, point: THREE.Vector3): void;
3479
3519
  /** {@link Updateable.update} */
3480
3520
  update: () => void;
3521
+ private updateScale;
3481
3522
  /** {@link Disposable.dispose} */
3482
3523
  dispose(): void;
3483
3524
  private reset;