@pilotdev/pilot-web-3d 25.6.0 → 25.8.3-alpha

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 (2) hide show
  1. package/index.d.ts +207 -91
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -172,7 +172,7 @@ export type StringMap = {
172
172
  };
173
173
  export class Localization {
174
174
  static initialize(options: any): Promise<void>;
175
- static translate<T extends (string | StringMap) = string>(stringToTrans: string): T;
175
+ static translate<T extends (string | StringMap) = string>(stringToTrans: string, options?: {}): T;
176
176
  static setLanguage(language: string): Promise<void>;
177
177
  static extendLocalization(locales: any): boolean;
178
178
  static numberToStr(value: number, digitsAfterPoint?: number): string;
@@ -238,6 +238,7 @@ export namespace Viewer3DIcons {
238
238
  const VIEWER_MEASUREMENT_DIMENSION_ICON: string;
239
239
  const VIEWER_ZOOM_TO_FIT_ICON: string;
240
240
  const VIEWER_RENDER_OPTIONS_ICON: string;
241
+ const VIEWER_CONTEXT_MENU_COPY_PROPS: string;
241
242
  }
242
243
  export namespace ViewerGeneralIcons {
243
244
  const CLOSE: string;
@@ -275,7 +276,14 @@ export class SettingChangedEvent extends Event {
275
276
  newValue: any;
276
277
  providedData: any;
277
278
  }
279
+ export class ProgressBar {
280
+ start(): void;
281
+ stop(): void;
282
+ setDeterminate(value: boolean): void;
283
+ setProgress(value: number): void;
284
+ }
278
285
  export class LoadingSpinner {
286
+ protected readonly _progress: ProgressBar;
279
287
  set loadingTextKey(value: string);
280
288
  get loadingTextKey(): string;
281
289
  addToDOM(container: HTMLElement): void;
@@ -317,6 +325,11 @@ export interface IControl {
317
325
  setState(state: ControlState.State): void;
318
326
  getState(): ControlState.State;
319
327
  }
328
+ export class Tooltip {
329
+ setTooltip(hint: string): HTMLElement;
330
+ setDisabled(value: boolean): void;
331
+ hide(): void;
332
+ }
320
333
  export class Control implements IControl {
321
334
  protected _tooltip: Tooltip;
322
335
  container: HTMLElement;
@@ -386,6 +399,7 @@ export class ExtensionBase {
386
399
  onMouseUp(event: MouseEvent): void;
387
400
  onMouseLongTouch(event: MouseEvent): void;
388
401
  onToolbarCreated(toolbar: Toolbar): void;
402
+ onContextMenu(menu: IMenu): void;
389
403
  onTouchStart(event: TouchEvent): void;
390
404
  onTouchEnd(event: TouchEvent): void;
391
405
  }
@@ -498,6 +512,11 @@ export class EventsDispatcherCore implements IEventsDispatcher {
498
512
  removeEvent(type: string): void;
499
513
  clearListeners(): void;
500
514
  }
515
+ export interface IMenuBuilder {
516
+ build(): IControl[];
517
+ removeAllButtons(): IMenuBuilder;
518
+ withButton(controlId: string, icon: string, translationKey: string, command: () => void): IMenuBuilder;
519
+ }
501
520
  export class Button extends Control {
502
521
 
503
522
  constructor(id: string);
@@ -508,6 +527,7 @@ export class Button extends Control {
508
527
  getIsChecked(): boolean;
509
528
  setIcon(iconClassName: string): void;
510
529
  setFromSvgTemlate(template: string): void;
530
+ withoutIcon(): void;
511
531
  /**
512
532
  * Override this method to be notified when the user clicks on the button.
513
533
  * @param {MouseEvent} event
@@ -530,10 +550,15 @@ export namespace Button {
530
550
  CLICK = "click"
531
551
  }
532
552
  }
533
- export class SubMenu implements IMenu {
553
+ export class ContextMenu implements IMenu {
534
554
  readonly controls: IControl[];
535
555
  set selectedIndex(value: number | number[]);
536
556
  get selectedIndex(): number | number[];
557
+ set opened(value: boolean);
558
+ get opened(): boolean;
559
+ set textStubKey(value: string);
560
+ get textStubKey(): string;
561
+ get menuWrapper(): HTMLElement;
537
562
  setEnabled(index: number, value: boolean): void;
538
563
  addControl(control: IControl, index?: number): void;
539
564
  removeControl(index?: number): void;
@@ -544,7 +569,7 @@ export class SubMenu implements IMenu {
544
569
  export class ComboButton extends Control {
545
570
 
546
571
  constructor(id: string, selectedIndex?: number);
547
- get subMenu(): SubMenu;
572
+ get subMenu(): ContextMenu;
548
573
  /**
549
574
  * Override this method to be notified when the user clicks on the button.
550
575
  * @param {MouseEvent} event
@@ -612,6 +637,7 @@ export class Dialog extends Control implements ICloseable {
612
637
  setSvgIcon(template: string): Dialog;
613
638
  setFooter(value: HTMLElement): Dialog;
614
639
  setDialogElementClassNames(value: ElementClass): Dialog;
640
+ setSize(width: number, height: number): Dialog;
615
641
  setResizable(value: boolean): Dialog;
616
642
  setWindowOptions(value: IWindowStateOptions): Dialog;
617
643
  setDraggable(value: boolean): Dialog;
@@ -659,6 +685,9 @@ export function createSvgElement(svgString: string): HTMLElement;
659
685
  export function isString(element: any): boolean;
660
686
  export function isSvg(element: string): boolean;
661
687
  export function isSvgString(element: any): boolean;
688
+ export class GlobalEvents {
689
+ static events: EventsDispatcherCore;
690
+ }
662
691
  export const MouseButtons: {
663
692
  Left: number;
664
693
  Middle: number;
@@ -671,6 +700,17 @@ export class RenderEventTypes {
671
700
  static RENDER_HOVER_EVENT: string;
672
701
  static RENDER_DOUBLE_CLICK_EVENT: string;
673
702
  static RENDER_SELECTION_RESET_EVENT: string;
703
+ static RENDER_RIGHT_CLICK_WITHOUT_MOVEMENT: string;
704
+ static RENDER_UPDATE_CANVAS: string;
705
+ }
706
+ export class RightClickEvent extends Event {
707
+ modelId: string;
708
+ modelElementId: string;
709
+ ctrlKey: boolean;
710
+ intersection?: THREE.Intersection;
711
+ offsetX: number;
712
+ offsetY: number;
713
+ customTarget: HTMLElement;
674
714
  }
675
715
  export class SelectionChangedEvent extends Event {
676
716
  selectedIds: ModelElementIds[];
@@ -692,9 +732,6 @@ export class HoverEvent extends Event {
692
732
 
693
733
  constructor(type: string, modelId: string, modelElementId: string, intersection?: THREE.Intersection);
694
734
  }
695
- export class GlobalEvents {
696
- static events: EventsDispatcherCore;
697
- }
698
735
  export class RenderViewSettings {
699
736
  telemetry?: boolean;
700
737
  hideEdgesWhenNavigation?: boolean;
@@ -705,6 +742,7 @@ export class RenderViewSettings {
705
742
  hideSmallElements?: boolean;
706
743
  smallObjectSize?: number;
707
744
  frustumCulling?: boolean;
745
+ limitedMemory?: boolean;
708
746
  /** Desired render framerate */
709
747
  desiredFramerate?: number;
710
748
  /** Allocated time for rendering operations, excluding scene rendering */
@@ -873,6 +911,8 @@ export class EventTypes extends CoreEventTypes {
873
911
  static RENDER_CLICK_EVENT: string;
874
912
  static RENDER_HOVER_EVENT: string;
875
913
  static RENDER_DOUBLE_CLICK_EVENT: string;
914
+ static RENDER_RIGHT_CLICK_WITHOUT_MOVEMENT: string;
915
+ static RENDER_UPDATE_CANVAS: string;
876
916
  }
877
917
  export class ModelPartEvent extends Event {
878
918
  modelPartId: string;
@@ -900,16 +940,75 @@ export class VisibilityChangedEvent extends Event {
900
940
  export class DeleteEvent extends Event {
901
941
  deletedIds: ModelElementIds[];
902
942
  }
943
+ export class UpdateCanvasEvent extends Event {
944
+ }
903
945
 
904
946
  export enum SelectionMode {
905
947
  Append = 0,
906
948
  Replace = 1
907
949
  }
950
+ export class ElementNode {
951
+ Guid: string;
952
+ ObjectState: IfcNodeState;
953
+ Revision: bigint;
954
+ ParentGuid: string;
955
+ Name: string;
956
+ Type: string;
957
+ RepresentationType: string;
958
+ RepresentationTypeEnum: IfcType[];
959
+ RepresentationStatus: string;
960
+ RepresentationStatusFlag: IfcRepresentationStatus;
961
+ GridObject: GridObject;
962
+ MeshesProperties: Map<string, MeshProperty[]>;
963
+ }
964
+ export enum IfcNodeState {
965
+ Undefined = 0,
966
+ Added = 1,
967
+ Removed = 2,
968
+ AttributesModified = 3,
969
+ AttributesQuantitiesModified = 4,
970
+ PlacementModified = 8,
971
+ PlacementAndAttributesModified = 11,
972
+ PlacementAndAttributesQuantitiesModified = 12
973
+ }
974
+ export enum IfcRepresentationStatus {
975
+ SUCCESS = 0,
976
+ NO_REPRESENTATION = 1,
977
+ IGNORED_IFC_TYPE = 2,
978
+ IFC_PARSING_ERROR = 4,
979
+ SOLID_CREATION_ERROR = 8,
980
+ TESSELATING_ERROR = 16,
981
+ C3D_EXEPTION = 32,
982
+ UNCLOSED_SOLID = 64
983
+ }
984
+ export class MeshProperty {
985
+ meshColor: number;
986
+ meshPlacement: Float64Array;
987
+ }
988
+ export class GridObject {
989
+ gridPlacement: Float64Array;
990
+ gridAxes: GridAxis[];
991
+ }
992
+ export class GridAxis {
993
+ id: number;
994
+ type: AxisType;
995
+ label: string;
996
+ data: Float32Array;
997
+ }
998
+ export enum AxisType {
999
+ LINE = 0,
1000
+ CIRCLE = 1,
1001
+ ARC = 2
1002
+ }
908
1003
  export interface ModelElement {
909
1004
  get id(): string;
910
1005
  get modelPartId(): string;
911
1006
  get parent(): ModelElement | undefined;
912
1007
  get type(): string;
1008
+ get representationType(): string | undefined;
1009
+ get representationTypeEnum(): IfcType[] | undefined;
1010
+ get representationStatus(): string | undefined;
1011
+ get representationStatusFlag(): IfcRepresentationStatus | undefined;
913
1012
  get name(): string;
914
1013
  get children(): ModelElement[];
915
1014
  get hasGeometry(): boolean;
@@ -936,7 +1035,7 @@ export interface ModelElementTree {
936
1035
  /**
937
1036
  * Gets model element by id
938
1037
  * @param { string } id - model element id
939
- * @returns model element;
1038
+ * @returns model element
940
1039
  */
941
1040
  getElement(id: string): ModelElement | undefined;
942
1041
  /**
@@ -945,6 +1044,11 @@ export interface ModelElementTree {
945
1044
  * @returns {boolean}
946
1045
  */
947
1046
  isViewableElement(element: string | ModelElement): boolean;
1047
+ /**
1048
+ * Gets detached elements of the model part
1049
+ * @returns array of the detached elements
1050
+ */
1051
+ getDetachedElements(): ModelElement[];
948
1052
  /**
949
1053
  * Checks given element is detached from the root element
950
1054
  * @param {string|ModelElement} element - element id or element instance
@@ -1228,6 +1332,89 @@ export type MemoryInfo = {
1228
1332
  bBoxes: number;
1229
1333
  memory: number;
1230
1334
  };
1335
+ export interface MeshPointMaterialParameters extends THREE.ShaderMaterialParameters {
1336
+ sizeAttenuation?: boolean | undefined;
1337
+ discreteClipping?: boolean | undefined;
1338
+ }
1339
+ export class MeshPointMaterial extends CustomMaterial {
1340
+
1341
+ constructor(parameters?: MeshPointMaterialParameters);
1342
+ /**
1343
+ * @default true
1344
+ */
1345
+ get discreteClipping(): boolean;
1346
+ set discreteClipping(value: boolean);
1347
+ get resolution(): THREE.Vector2;
1348
+ /**
1349
+ * @default true
1350
+ */
1351
+ sizeAttenuation: boolean;
1352
+ copy(source: MeshPointMaterial): this;
1353
+ protected refreshUniforms(uniforms: {
1354
+ [uniform: string]: THREE.IUniform;
1355
+ }, material: CustomMaterial, renderer: THREE.WebGLRenderer): void;
1356
+ }
1357
+ export interface MeshPointParamter {
1358
+ point?: THREE.Vector3;
1359
+ color?: Color;
1360
+ size?: number;
1361
+ }
1362
+ export class MeshPoints extends THREE.Mesh<THREE.InstancedBufferGeometry, MeshPointMaterial, ViewObjectEventMap> {
1363
+ geometry: THREE.InstancedBufferGeometry;
1364
+ material: MeshPointMaterial;
1365
+
1366
+ constructor();
1367
+ /**
1368
+ * @default new Color( 1,1,1,1 )
1369
+ */
1370
+ color: Color;
1371
+ /**
1372
+ * @default 1
1373
+ */
1374
+ pointSize: number;
1375
+ /**
1376
+ * @default new THREE.Vector3(0, 0, 0)
1377
+ */
1378
+ point: THREE.Vector3;
1379
+ addPoint(pointParameter?: MeshPointParamter): number;
1380
+ updatePoint(index: number, pointParameter: MeshPointParamter): void;
1381
+ removePoint(index: number): this;
1382
+ updateAttributes(): void;
1383
+ dispose(): void;
1384
+ raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1385
+ }
1386
+ export class MeshLineGeometry extends THREE.InstancedBufferGeometry {
1387
+ type: string;
1388
+ instanceStart: THREE.BufferAttribute;
1389
+ instanceEnd: THREE.BufferAttribute;
1390
+ instanceColorStart: THREE.BufferAttribute;
1391
+ instanceColorEnd: THREE.BufferAttribute;
1392
+
1393
+ constructor();
1394
+ applyMatrix4(matrix: THREE.Matrix4): this;
1395
+ updatePoint(index: number, point: THREE.Vector3): void;
1396
+ updateColor(index: number, color: Color): void;
1397
+ setPoints(points: THREE.Vector3[]): this;
1398
+ setPositions(array: ArrayLike<number>): this;
1399
+ setColors(array: ArrayLike<number>): this;
1400
+ computeLineDistances(): this;
1401
+ toBufferGeometry(): THREE.BufferGeometry;
1402
+ toWireframeGeometry(): THREE.WireframeGeometry;
1403
+ fromWireframeGeometry(geometry: THREE.WireframeGeometry): this;
1404
+ fromEdgesGeometry(geometry: THREE.EdgesGeometry): this;
1405
+ fromMesh(mesh: THREE.Mesh): this;
1406
+ fromLineSegments(lineSegments: THREE.LineSegments): this;
1407
+ computeBoundingBox(): void;
1408
+ computeBoundingSphere(): void;
1409
+ }
1410
+ export class MeshLine extends THREE.Mesh<MeshLineGeometry, MeshLineMaterial, ViewObjectEventMap> {
1411
+ type: string;
1412
+ material: MeshLineMaterial;
1413
+ geometry: MeshLineGeometry;
1414
+
1415
+ constructor(geometry?: MeshLineGeometry, material?: MeshLineMaterial);
1416
+ raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1417
+ }
1231
1418
  export interface SceneCheckOptions {
1232
1419
  /** specify whether intersections should be filtered by clippings */
1233
1420
  filterByClipping?: boolean;
@@ -1740,38 +1927,6 @@ export class CustomSpriteMaterial extends CustomMaterial {
1740
1927
  [uniform: string]: THREE.IUniform;
1741
1928
  }, material: CustomMaterial, renderer: THREE.WebGLRenderer): void;
1742
1929
  }
1743
- export class MeshLineGeometry extends THREE.InstancedBufferGeometry {
1744
- type: string;
1745
- instanceStart: THREE.BufferAttribute;
1746
- instanceEnd: THREE.BufferAttribute;
1747
- instanceColorStart: THREE.BufferAttribute;
1748
- instanceColorEnd: THREE.BufferAttribute;
1749
-
1750
- constructor();
1751
- applyMatrix4(matrix: THREE.Matrix4): this;
1752
- updatePoint(index: number, point: THREE.Vector3): void;
1753
- updateColor(index: number, color: Color): void;
1754
- setPoints(points: THREE.Vector3[]): this;
1755
- setPositions(array: ArrayLike<number>): this;
1756
- setColors(array: ArrayLike<number>): this;
1757
- computeLineDistances(): this;
1758
- toBufferGeometry(): THREE.BufferGeometry;
1759
- toWireframeGeometry(): THREE.WireframeGeometry;
1760
- fromWireframeGeometry(geometry: THREE.WireframeGeometry): this;
1761
- fromEdgesGeometry(geometry: THREE.EdgesGeometry): this;
1762
- fromMesh(mesh: THREE.Mesh): this;
1763
- fromLineSegments(lineSegments: THREE.LineSegments): this;
1764
- computeBoundingBox(): void;
1765
- computeBoundingSphere(): void;
1766
- }
1767
- export class MeshLine extends THREE.Mesh<MeshLineGeometry, MeshLineMaterial, ViewObjectEventMap> {
1768
- type: string;
1769
- material: MeshLineMaterial;
1770
- geometry: MeshLineGeometry;
1771
-
1772
- constructor(geometry?: MeshLineGeometry, material?: MeshLineMaterial);
1773
- raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1774
- }
1775
1930
  export class CustomSprite extends THREE.Sprite {
1776
1931
  material: CustomSpriteMaterial;
1777
1932
 
@@ -1847,57 +2002,6 @@ export class LabelSprite extends CustomSprite {
1847
2002
  dispose(): void;
1848
2003
  rebuildSpriteMaterial(): void;
1849
2004
  }
1850
- export interface MeshPointMaterialParameters extends THREE.ShaderMaterialParameters {
1851
- sizeAttenuation?: boolean | undefined;
1852
- discreteClipping?: boolean | undefined;
1853
- }
1854
- export class MeshPointMaterial extends CustomMaterial {
1855
-
1856
- constructor(parameters?: MeshPointMaterialParameters);
1857
- /**
1858
- * @default true
1859
- */
1860
- get discreteClipping(): boolean;
1861
- set discreteClipping(value: boolean);
1862
- get resolution(): THREE.Vector2;
1863
- /**
1864
- * @default true
1865
- */
1866
- sizeAttenuation: boolean;
1867
- copy(source: MeshPointMaterial): this;
1868
- protected refreshUniforms(uniforms: {
1869
- [uniform: string]: THREE.IUniform;
1870
- }, material: CustomMaterial, renderer: THREE.WebGLRenderer): void;
1871
- }
1872
- export interface MeshPointParamter {
1873
- point?: THREE.Vector3;
1874
- color?: Color;
1875
- size?: number;
1876
- }
1877
- export class MeshPoints extends THREE.Mesh<THREE.InstancedBufferGeometry, MeshPointMaterial, ViewObjectEventMap> {
1878
- geometry: THREE.InstancedBufferGeometry;
1879
- material: MeshPointMaterial;
1880
-
1881
- constructor();
1882
- /**
1883
- * @default new Color( 1,1,1,1 )
1884
- */
1885
- color: Color;
1886
- /**
1887
- * @default 1
1888
- */
1889
- pointSize: number;
1890
- /**
1891
- * @default new THREE.Vector3(0, 0, 0)
1892
- */
1893
- point: THREE.Vector3;
1894
- addPoint(pointParameter?: MeshPointParamter): number;
1895
- updatePoint(index: number, pointParameter: MeshPointParamter): void;
1896
- removePoint(index: number): this;
1897
- updateAttributes(): void;
1898
- dispose(): void;
1899
- raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1900
- }
1901
2005
  export interface ModelPart {
1902
2006
  get id(): string;
1903
2007
  get elementTree(): ModelElementTree;
@@ -3164,6 +3268,7 @@ export class SettingsNames {
3164
3268
  static HIDE_SMALL_ELEMENTS: string;
3165
3269
  static SMALL_ELEMENT_SIZE: string;
3166
3270
  static FRUSTUM_CULLING: string;
3271
+ static LIMITED_MEMORY: string;
3167
3272
  static LABEL_LINE_LENGTH: string;
3168
3273
  static HIDE_EDGES_WHEN_NAVIGATING: string;
3169
3274
  static DISPLAY_MODE: string;
@@ -3192,6 +3297,16 @@ export class Viewer3DConfiguration extends ViewerConfiguration {
3192
3297
  constructor(appearance?: ViewerSettings, render?: ViewerSettings);
3193
3298
  }
3194
3299
  export const defaultViewer3DSettings: ViewerSettings;
3300
+ export class BimProxyTypes {
3301
+ static BIM_OTHERS_NODE: string;
3302
+ static BIM_OTHER_3D_MODEL_TYPE: string;
3303
+ static BIM_IFC_COLLISION: string;
3304
+ static BIM_POINT_CLOUD: string;
3305
+ }
3306
+ export class BimOther3DModelNames {
3307
+ static getNameByExtension(extension: string): string | undefined;
3308
+ static typeNameExists(typeName: string): boolean;
3309
+ }
3195
3310
  export class ModelLoadingOptions {
3196
3311
  guid: string;
3197
3312
  isConsolidatedModel?: boolean;
@@ -3551,11 +3666,12 @@ export class Viewer3D extends ViewerBase {
3551
3666
  */
3552
3667
  makeScreenshot(mimeType?: string, quality?: number): Promise<Blob>;
3553
3668
  setThemeFromSettings(): void;
3669
+ protected createUI(): void;
3554
3670
  }
3555
3671
  export class GuiViewer3D extends Viewer3D {
3556
- loadModelPart(buffer: ArrayBuffer | string | Blob, options: ModelLoadingOptions, onSuccessCallback?: SuccessCallback, onErrorCallback?: ErrorCallback): Promise<void>;
3557
3672
  getToolbar(): ViewerToolbar;
3558
3673
  onPostExtensionLoad(extension: ExtensionBase): void;
3674
+ protected createUI(): void;
3559
3675
  protected getToolbarHeight(): number;
3560
3676
  }
3561
3677
  export function CreateViewer(container: HTMLElement, configuration?: Viewer3DConfiguration): GuiViewer3D;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotdev/pilot-web-3d",
3
- "version": "25.6.0",
3
+ "version": "25.8.3-alpha",
4
4
  "description": "TypeScript definitions for ASCON PilotWeb3D component",
5
5
  "main": "",
6
6
  "types": "index.d.ts",