@inweb/viewer-three 25.9.7 → 25.10.0

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 (109) hide show
  1. package/README.md +26 -18
  2. package/dist/viewer-three.js +10315 -6179
  3. package/dist/viewer-three.js.map +1 -1
  4. package/dist/viewer-three.min.js +3 -2
  5. package/dist/viewer-three.module.js +1881 -322
  6. package/dist/viewer-three.module.js.map +1 -1
  7. package/lib/Viewer/IDisposable.d.ts +6 -0
  8. package/lib/Viewer/Viewer.d.ts +113 -14
  9. package/lib/Viewer/commands/ApplyModelTransform.d.ts +1 -0
  10. package/lib/Viewer/commands/ClearMarkup.d.ts +1 -0
  11. package/lib/Viewer/commands/ClearSlices.d.ts +1 -0
  12. package/lib/Viewer/commands/CreatePreview.d.ts +1 -0
  13. package/lib/Viewer/commands/Explode.d.ts +1 -0
  14. package/lib/Viewer/commands/GetDefaultViewPositions.d.ts +1 -0
  15. package/lib/Viewer/commands/GetModels.d.ts +1 -0
  16. package/lib/Viewer/commands/GetSelected.d.ts +1 -0
  17. package/lib/Viewer/commands/HideSelected.d.ts +1 -0
  18. package/lib/Viewer/commands/IsolateSelected.d.ts +1 -0
  19. package/lib/Viewer/commands/RegenerateAll.d.ts +1 -0
  20. package/lib/Viewer/commands/ResetView.d.ts +1 -0
  21. package/lib/Viewer/commands/SelectModel.d.ts +1 -0
  22. package/lib/Viewer/commands/SetActiveDragger.d.ts +1 -0
  23. package/lib/Viewer/commands/SetDefaultViewPosition.d.ts +13 -0
  24. package/lib/Viewer/commands/SetMarkupColor.d.ts +1 -0
  25. package/lib/Viewer/commands/SetSelected.d.ts +1 -0
  26. package/lib/Viewer/commands/ShowAll.d.ts +1 -0
  27. package/lib/Viewer/commands/Unselect.d.ts +1 -0
  28. package/lib/Viewer/commands/ZoomToExtents.d.ts +1 -0
  29. package/lib/Viewer/commands/ZoomToObjects.d.ts +1 -0
  30. package/lib/Viewer/commands/ZoomToSelected.d.ts +1 -0
  31. package/lib/Viewer/commands/index.d.ts +22 -0
  32. package/lib/Viewer/components/AxesHelperComponent.d.ts +10 -0
  33. package/lib/Viewer/components/BackgroundComponent.d.ts +4 -4
  34. package/lib/Viewer/components/{DefaultCameraPositionComponent.d.ts → DefaultPositionComponent.d.ts} +3 -2
  35. package/lib/Viewer/components/ExtentsComponent.d.ts +8 -0
  36. package/lib/Viewer/components/ExtentsHelperComponent.d.ts +9 -0
  37. package/lib/Viewer/components/LightComponent.d.ts +5 -5
  38. package/lib/Viewer/components/RenderLoopComponent.d.ts +3 -3
  39. package/lib/Viewer/components/ResizeCanvasComponent.d.ts +2 -2
  40. package/lib/Viewer/components/SelectionComponent.d.ts +19 -0
  41. package/lib/Viewer/components/ViewPositionComponent.d.ts +31 -0
  42. package/lib/Viewer/components/WCSHelperComponent.d.ts +9 -0
  43. package/lib/Viewer/controls/WalkControls.d.ts +26 -0
  44. package/lib/Viewer/draggers/CuttingPlaneDragger.d.ts +17 -0
  45. package/lib/Viewer/draggers/CuttingPlaneXAxis.d.ts +5 -0
  46. package/lib/Viewer/draggers/CuttingPlaneYAxis.d.ts +5 -0
  47. package/lib/Viewer/draggers/CuttingPlaneZAxis.d.ts +5 -0
  48. package/lib/Viewer/draggers/OrbitDragger.d.ts +9 -5
  49. package/lib/Viewer/draggers/WalkDragger.d.ts +7 -33
  50. package/lib/Viewer/helpers/PlaneHelper.d.ts +11 -0
  51. package/lib/Viewer/helpers/WCSHelper.d.ts +10 -0
  52. package/lib/Viewer/loaders/GLTFLoadingManager.d.ts +3 -3
  53. package/lib/index.d.ts +1 -0
  54. package/package.json +7 -6
  55. package/src/Viewer/IDisposable.ts +29 -0
  56. package/src/Viewer/Viewer.ts +218 -49
  57. package/src/Viewer/commands/ApplyModelTransform.ts +33 -0
  58. package/src/Viewer/commands/ClearMarkup.ts +29 -0
  59. package/src/Viewer/commands/ClearSlices.ts +32 -0
  60. package/src/Viewer/commands/CreatePreview.ts +32 -0
  61. package/src/Viewer/commands/Explode.ts +83 -0
  62. package/src/Viewer/commands/GetDefaultViewPositions.ts +31 -0
  63. package/src/Viewer/commands/GetModels.ts +32 -0
  64. package/src/Viewer/commands/GetSelected.ts +31 -0
  65. package/src/Viewer/commands/HideSelected.ts +40 -0
  66. package/src/Viewer/commands/IsolateSelected.ts +50 -0
  67. package/src/Viewer/commands/RegenerateAll.ts +32 -0
  68. package/src/Viewer/commands/ResetView.ts +41 -0
  69. package/src/Viewer/commands/SelectModel.ts +32 -0
  70. package/src/Viewer/commands/SetActiveDragger.ts +29 -0
  71. package/src/Viewer/commands/SetDefaultViewPosition.ts +83 -0
  72. package/src/Viewer/commands/SetMarkupColor.ts +30 -0
  73. package/src/Viewer/commands/SetSelected.ts +44 -0
  74. package/src/Viewer/commands/ShowAll.ts +34 -0
  75. package/src/Viewer/commands/Unselect.ts +37 -0
  76. package/src/Viewer/commands/ZoomToExtents.ts +47 -0
  77. package/src/Viewer/commands/ZoomToObjects.ts +55 -0
  78. package/src/Viewer/commands/ZoomToSelected.ts +51 -0
  79. package/src/Viewer/commands/index.ts +45 -0
  80. package/src/Viewer/components/AxesHelperComponent.ts +70 -0
  81. package/src/Viewer/components/BackgroundComponent.ts +9 -7
  82. package/src/Viewer/components/{DefaultCameraPositionComponent.ts → DefaultPositionComponent.ts} +11 -22
  83. package/src/Viewer/components/ExtentsComponent.ts +54 -0
  84. package/src/Viewer/components/ExtentsHelperComponent.ts +58 -0
  85. package/src/Viewer/components/LightComponent.ts +14 -10
  86. package/src/Viewer/components/RenderLoopComponent.ts +6 -6
  87. package/src/Viewer/components/ResizeCanvasComponent.ts +2 -2
  88. package/src/Viewer/components/SelectionComponent.ts +132 -0
  89. package/src/Viewer/components/ViewPositionComponent.ts +165 -0
  90. package/src/Viewer/components/WCSHelperComponent.ts +46 -0
  91. package/src/Viewer/controls/WalkControls.ts +221 -0
  92. package/src/Viewer/draggers/CuttingPlaneDragger.ts +110 -0
  93. package/src/Viewer/draggers/CuttingPlaneXAxis.ts +33 -0
  94. package/src/Viewer/draggers/CuttingPlaneYAxis.ts +33 -0
  95. package/src/Viewer/draggers/CuttingPlaneZAxis.ts +33 -0
  96. package/src/Viewer/draggers/OrbitDragger.ts +47 -22
  97. package/src/Viewer/draggers/PanDragger.ts +4 -3
  98. package/src/Viewer/draggers/WalkDragger.ts +27 -216
  99. package/src/Viewer/draggers/ZoomDragger.ts +4 -3
  100. package/src/Viewer/helpers/PlaneHelper.ts +99 -0
  101. package/src/Viewer/helpers/WCSHelper.ts +119 -0
  102. package/src/Viewer/loaders/GLTFLoadingManager.ts +6 -6
  103. package/src/index.ts +2 -0
  104. package/lib/Viewer/IComponent.d.ts +0 -3
  105. package/lib/Viewer/components/ObjectSelectionComponent.d.ts +0 -16
  106. package/lib/Viewer/draggers/ClippingPlaneDragger.d.ts +0 -17
  107. package/src/Viewer/IComponent.ts +0 -3
  108. package/src/Viewer/components/ObjectSelectionComponent.ts +0 -105
  109. package/src/Viewer/draggers/ClippingPlaneDragger.ts +0 -120
@@ -0,0 +1,6 @@
1
+ /**
2
+ * An object that performs a cleanup operation when `.dispose()` is called.
3
+ */
4
+ export interface IDisposable {
5
+ dispose(): void;
6
+ }
@@ -1,43 +1,139 @@
1
+ import { Box3, Object3D, PerspectiveCamera, Scene, Vector3, WebGLRenderer } from "three";
2
+ import { GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
1
3
  import { EventEmitter2 } from "@inweb/eventemitter2";
2
- import { Assembly, Client, File, Model } from "@inweb/client";
4
+ import { Assembly, Client, Model, File } from "@inweb/client";
3
5
  import { CanvasEventMap, IDragger, IOptions, IViewer, IViewpoint, Options, OptionsEventMap, ViewerEventMap } from "@inweb/viewer-core";
4
- import * as THREE from "three";
5
- import { GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
6
+ /**
7
+ * 3D viewer powered by {@link https://threejs.org/ | Three.js}.
8
+ */
6
9
  export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMap & OptionsEventMap> implements IViewer {
7
10
  client: Client | undefined;
8
- private _options;
11
+ protected _options: Options;
9
12
  private canvaseventlistener;
10
13
  canvas: HTMLCanvasElement | undefined;
11
14
  canvasEvents: string[];
12
- scene: THREE.Scene | undefined;
13
- camera: THREE.PerspectiveCamera | undefined;
14
- renderer: THREE.WebGLRenderer | undefined;
15
+ scene: Scene | undefined;
16
+ helpers: Scene | undefined;
17
+ camera: PerspectiveCamera | undefined;
18
+ renderer: WebGLRenderer | undefined;
15
19
  models: Array<GLTF>;
16
- selectedObjects: Array<any>;
20
+ selected: Array<Object3D>;
21
+ extents: Box3;
22
+ target: Vector3;
17
23
  private draggerFactory;
18
24
  private _activeDragger;
19
25
  private components;
20
26
  private renderNeeded;
21
27
  private renderTime;
28
+ /**
29
+ * @param client - The `Client` instance that is used to load model reference files from the
30
+ * Open Cloud Server. Do not specify `Client` if you need a standalone viewer instance to
31
+ * view `glTF` files from the web or from local computer.
32
+ */
22
33
  constructor(client?: Client);
23
- get options(): Options;
34
+ get options(): IOptions;
24
35
  get draggers(): string[];
25
- initialize(canvas: HTMLCanvasElement, onProgress?: (event: ProgressEvent) => void): Promise<this>;
36
+ initialize(canvas: HTMLCanvasElement, onProgress?: (event: ProgressEvent<EventTarget>) => void): Promise<this>;
26
37
  dispose(): this;
27
38
  isInitialized(): boolean;
28
39
  render(time: DOMHighResTimeStamp): void;
29
40
  update(force?: boolean): void;
30
41
  syncOptions(options?: IOptions): void;
31
42
  loadReferences(model: Model | File | Assembly): Promise<this>;
32
- open(file: File | Assembly | Model): Promise<this>;
43
+ /**
44
+ * Loads a file from Open Cloud Server into the viewer.
45
+ *
46
+ * The file geometry data on the server must be converted to `glTF` format.
47
+ *
48
+ * This method requires a `Client` instance to be specified when creating the viewer to load
49
+ * model reference files from the Open Cloud Server. For a standalone viewer instance use
50
+ * {@link openGltfFile | openGltfFile()}.
51
+ *
52
+ * Fires:
53
+ *
54
+ * - {@link OpenEvent | open}
55
+ * - {@link GeometryStartEvent | geometrystart}
56
+ * - {@link GeometryProgressEvent | geometryprogress}
57
+ * - {@link DatabaseChunkEvent | databasechunk}
58
+ * - {@link GeometryChunkEvent | geometrychunk}
59
+ * - {@link GeometryEndEvent | geometryend}
60
+ * - {@link GeometryErrorEvent | geometryerror}
61
+ *
62
+ * @param file - File, assembly or specific model to load. If a `File` instance with multiple
63
+ * models is specified, the default model will be loaded. If there is no default model,
64
+ * first availiable model will be loaded.
65
+ */
66
+ open(file: Model | File | Assembly): Promise<this>;
33
67
  cancel(): this;
34
- openGltfFile(file: string | ArrayBuffer | Blob, externalData?: Map<string, string | ArrayBuffer | Blob>, params?: {
68
+ /**
69
+ * Loads a `glTF` file into the viewer.
70
+ *
71
+ * Fires:
72
+ *
73
+ * - {@link OpenEvent | open}
74
+ * - {@link GeometryStartEvent | geometrystart}
75
+ * - {@link GeometryProgressEvent | geometryprogress}
76
+ * - {@link DatabaseChunkEvent | databasechunk}
77
+ * - {@link GeometryEndEvent | geometryend}
78
+ * - {@link GeometryErrorEvent | geometryerror}
79
+ *
80
+ * @param file - File URL or binary data buffer to load.
81
+ * @param externalData - External resource map such as binary data buffers or images. Each
82
+ * resource should be represented by a `uri` and a corresponding resource URL, or
83
+ * {@link https://developer.mozilla.org/docs/Web/API/File | Web API File} object, or
84
+ * {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer | ArrayBuffer}
85
+ * or {@link https://developer.mozilla.org/docs/Web/API/Blob/Blob | Blob}, or
86
+ * {@link https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs | Data URL} string,
87
+ * @param params - Loader parameters.
88
+ * @param params.path - The base path from which to find subsequent glTF resources such as
89
+ * textures and .bin data files. If not defined, the base path of the file URL will be used.
90
+ * @param params.requestHeader - The
91
+ * {@link https://developer.mozilla.org/docs/Glossary/Request_header | request header} used
92
+ * in HTTP request.
93
+ * @param params.crossOrigin - The crossOrigin string to implement CORS for loading the url
94
+ * from a different domain that allows CORS. Default is `anonymous`.
95
+ * @param params.withCredentials - Whether the XMLHttpRequest uses credentials such as
96
+ * cookies, authorization headers or TLS client certificates. See
97
+ * {@link https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials | XMLHttpRequest.withCredentials}.
98
+ */
99
+ openGltfFile(file: string | globalThis.File | ArrayBuffer | Blob, externalData?: Map<string, string | globalThis.File | ArrayBuffer | Blob>, params?: {
35
100
  path?: string;
36
101
  requestHeader?: HeadersInit;
37
102
  crossOrigin?: string;
38
103
  withCredentials?: boolean;
39
104
  }): Promise<this>;
40
- loadGltfFile(file: string | ArrayBuffer | Blob, externalData?: Map<string, string | ArrayBuffer | Blob>, params?: {
105
+ /**
106
+ * Appends a `glTF` file to the existing opened file.
107
+ *
108
+ * Fires:
109
+ *
110
+ * - {@link OpenEvent | open}
111
+ * - {@link GeometryStartEvent | geometrystart}
112
+ * - {@link GeometryProgressEvent | geometryprogress}
113
+ * - {@link DatabaseChunkEvent | databasechunk}
114
+ * - {@link GeometryEndEvent | geometryend}
115
+ * - {@link GeometryErrorEvent | geometryerror}
116
+ *
117
+ * @param file - File URL or binary data buffer to load.
118
+ * @param externalData - External resource map such as binary data buffers or images. Each
119
+ * resource should be represented by a `uri` and a corresponding resource URL, or
120
+ * {@link https://developer.mozilla.org/docs/Web/API/File | Web API File} object, or
121
+ * {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer | ArrayBuffer}
122
+ * or {@link https://developer.mozilla.org/docs/Web/API/Blob/Blob | Blob}, or
123
+ * {@link https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs | Data URL} string,
124
+ * @param params - Loader parameters.
125
+ * @param params.path - The base path from which to find subsequent glTF resources such as
126
+ * textures and .bin data files.
127
+ * @param params.requestHeader - The
128
+ * {@link https://developer.mozilla.org/docs/Glossary/Request_header | request header} used
129
+ * in HTTP request.
130
+ * @param params.crossOrigin - The crossOrigin string to implement CORS for loading the url
131
+ * from a different domain that allows CORS. Default is `anonymous`.
132
+ * @param params.withCredentials - Whether the XMLHttpRequest uses credentials such as
133
+ * cookies, authorization headers or TLS client certificates. See
134
+ * {@link https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials | XMLHttpRequest.withCredentials}.
135
+ */
136
+ loadGltfFile(file: string | globalThis.File | ArrayBuffer | Blob, externalData?: Map<string, string | globalThis.File | ArrayBuffer | Blob>, params?: {
41
137
  path?: string;
42
138
  requestHeader?: HeadersInit;
43
139
  crossOrigin?: string;
@@ -45,10 +141,13 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
45
141
  }): Promise<this>;
46
142
  clear(): this;
47
143
  activeDragger(): IDragger | null;
48
- setActiveDragger(name: string): IDragger | null;
144
+ setActiveDragger(name?: string): IDragger | null;
49
145
  resetActiveDragger(): void;
50
146
  is3D(): boolean;
147
+ getSelected(): string[];
148
+ setSelected(handles?: string[]): void;
51
149
  executeCommand(id: string, ...args: any[]): any;
150
+ getComponent(type: any): any;
52
151
  drawViewpoint(viewpoint: IViewpoint): void;
53
152
  createViewpoint(): IViewpoint;
54
153
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import { Vector3 } from "three";
2
+ export declare const defaultViewPositions: {
3
+ top: Vector3;
4
+ bottom: Vector3;
5
+ left: Vector3;
6
+ right: Vector3;
7
+ front: Vector3;
8
+ back: Vector3;
9
+ sw: Vector3;
10
+ se: Vector3;
11
+ ne: Vector3;
12
+ nw: Vector3;
13
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ import "./ApplyModelTransform";
2
+ import "./ClearMarkup";
3
+ import "./ClearSlices";
4
+ import "./CreatePreview";
5
+ import "./Explode";
6
+ import "./GetDefaultViewPositions";
7
+ import "./GetModels";
8
+ import "./GetSelected";
9
+ import "./HideSelected";
10
+ import "./IsolateSelected";
11
+ import "./RegenerateAll";
12
+ import "./ResetView";
13
+ import "./SelectModel";
14
+ import "./SetActiveDragger";
15
+ import "./SetDefaultViewPosition";
16
+ import "./SetMarkupColor";
17
+ import "./SetSelected";
18
+ import "./ShowAll";
19
+ import "./Unselect";
20
+ import "./ZoomToExtents";
21
+ import "./ZoomToObjects";
22
+ import "./ZoomToSelected";
@@ -0,0 +1,10 @@
1
+ import { IDisposable } from "../IDisposable";
2
+ import type { Viewer } from "../Viewer";
3
+ export declare class AxesHelperComponent implements IDisposable {
4
+ private viewer;
5
+ private axesHelper1;
6
+ private axesHelper2;
7
+ constructor(viewer: Viewer);
8
+ dispose(): void;
9
+ geometryEnd: () => void;
10
+ }
@@ -1,9 +1,9 @@
1
- import * as THREE from "three";
2
- import { IComponent } from "../IComponent";
1
+ import { Color } from "three";
2
+ import { IDisposable } from "../IDisposable";
3
3
  import type { Viewer } from "../Viewer";
4
- export declare class BackgroundComponent implements IComponent {
4
+ export declare class BackgroundComponent implements IDisposable {
5
5
  protected viewer: Viewer;
6
- protected backgroundColor: THREE.Color;
6
+ protected backgroundColor: Color;
7
7
  constructor(viewer: Viewer);
8
8
  dispose(): void;
9
9
  syncOptions: () => void;
@@ -1,8 +1,9 @@
1
1
  import { GeometryEndEvent } from "@inweb/viewer-core";
2
- import { IComponent } from "../IComponent";
2
+ import { IDisposable } from "../IDisposable";
3
3
  import type { Viewer } from "../Viewer";
4
- export declare class DefaultCameraPositionComponent implements IComponent {
4
+ export declare class DefaultPositionComponent implements IDisposable {
5
5
  protected viewer: Viewer;
6
+ defaultCameraPositions: any;
6
7
  constructor(viewer: Viewer);
7
8
  dispose(): void;
8
9
  geometryEnd: (event: GeometryEndEvent) => void;
@@ -0,0 +1,8 @@
1
+ import { IDisposable } from "../IDisposable";
2
+ import type { Viewer } from "../Viewer";
3
+ export declare class ExtentsComponent implements IDisposable {
4
+ private viewer;
5
+ constructor(viewer: Viewer);
6
+ dispose(): void;
7
+ syncExtents: () => void;
8
+ }
@@ -0,0 +1,9 @@
1
+ import { IDisposable } from "../IDisposable";
2
+ import type { Viewer } from "../Viewer";
3
+ export declare class ExtentsHelperComponent implements IDisposable {
4
+ private viewer;
5
+ private boxHelper;
6
+ constructor(viewer: Viewer);
7
+ dispose(): void;
8
+ geometryEnd: () => void;
9
+ }
@@ -1,10 +1,10 @@
1
- import * as THREE from "three";
2
- import { IComponent } from "../IComponent";
1
+ import { AmbientLight, DirectionalLight } from "three";
2
+ import { IDisposable } from "../IDisposable";
3
3
  import type { Viewer } from "../Viewer";
4
- export declare class LightComponent implements IComponent {
4
+ export declare class LightComponent implements IDisposable {
5
5
  protected viewer: Viewer;
6
- protected ambientLight: THREE.AmbientLight;
7
- protected directLight: THREE.DirectionalLight;
6
+ protected ambientLight: AmbientLight;
7
+ protected directionalLight: DirectionalLight;
8
8
  constructor(viewer: Viewer);
9
9
  dispose(): void;
10
10
  }
@@ -1,8 +1,8 @@
1
- import { IComponent } from "../IComponent";
1
+ import { IDisposable } from "../IDisposable";
2
2
  import type { Viewer } from "../Viewer";
3
- export declare class RenderLoopComponent implements IComponent {
3
+ export declare class RenderLoopComponent implements IDisposable {
4
4
  protected viewer: Viewer;
5
- protected requestID: number;
5
+ protected requestId: number;
6
6
  constructor(viewer: Viewer);
7
7
  dispose(): void;
8
8
  animate: (time?: number) => void;
@@ -1,6 +1,6 @@
1
- import { IComponent } from "../IComponent";
1
+ import { IDisposable } from "../IDisposable";
2
2
  import type { Viewer } from "../Viewer";
3
- export declare class ResizeCanvasComponent implements IComponent {
3
+ export declare class ResizeCanvasComponent implements IDisposable {
4
4
  protected viewer: Viewer;
5
5
  protected resizeObserver: ResizeObserver;
6
6
  constructor(viewer: Viewer);
@@ -0,0 +1,19 @@
1
+ import { Intersection, MeshBasicMaterial, Object3D, Raycaster, Vector2 } from "three";
2
+ import { IDisposable } from "../IDisposable";
3
+ import type { Viewer } from "../Viewer";
4
+ export declare class SelectionComponent implements IDisposable {
5
+ protected viewer: Viewer;
6
+ protected raycaster: Raycaster;
7
+ protected downPosition: Vector2;
8
+ protected facesMaterial: MeshBasicMaterial;
9
+ constructor(viewer: Viewer);
10
+ dispose(): void;
11
+ onPointerDown: (event: PointerEvent) => void;
12
+ onPointerUp: (event: PointerEvent) => void;
13
+ onDoubleClick: (event: MouseEvent) => void;
14
+ getMousePosition(event: MouseEvent, position: Vector2): Vector2;
15
+ getPointerIntersects(position: Vector2): Array<Intersection<Object3D>>;
16
+ select(object: any): void;
17
+ clearSelection(): void;
18
+ optionsChange: () => void;
19
+ }
@@ -0,0 +1,31 @@
1
+ import { Vector3 } from "three";
2
+ import { CommandEvent, RenderEvent } from "@inweb/viewer-core";
3
+ import { IDisposable } from "../IDisposable";
4
+ import type { Viewer } from "../Viewer";
5
+ export declare const defaultViewPositions: {
6
+ top: Vector3;
7
+ bottom: Vector3;
8
+ left: Vector3;
9
+ right: Vector3;
10
+ front: Vector3;
11
+ back: Vector3;
12
+ sw: Vector3;
13
+ se: Vector3;
14
+ ne: Vector3;
15
+ nw: Vector3;
16
+ };
17
+ export declare class ViewPositionComponent implements IDisposable {
18
+ private position;
19
+ private center;
20
+ private targetPosition;
21
+ private targetQuaternion;
22
+ private radius;
23
+ private q1;
24
+ private q2;
25
+ private animating;
26
+ private viewer;
27
+ constructor(viewer: Viewer);
28
+ dispose(): void;
29
+ onCommand: (event: CommandEvent) => void;
30
+ onRender: (event: RenderEvent) => void;
31
+ }
@@ -0,0 +1,9 @@
1
+ import { IDisposable } from "../IDisposable";
2
+ import type { Viewer } from "../Viewer";
3
+ export declare class WCSHelperComponent implements IDisposable {
4
+ private wcsHelper;
5
+ private viewer;
6
+ constructor(viewer: Viewer);
7
+ dispose(): void;
8
+ viewerRender: () => void;
9
+ }
@@ -0,0 +1,26 @@
1
+ import { Camera, EventDispatcher, Vector2 } from "three";
2
+ export declare class WalkControls extends EventDispatcher {
3
+ camera: Camera;
4
+ canvas: HTMLElement;
5
+ movementSpeed: number;
6
+ lookSpeed: number;
7
+ multiplier: number;
8
+ private moveKeys;
9
+ private moveWheel;
10
+ private moveClock;
11
+ private quaternion;
12
+ private downPosition;
13
+ private mouseDragOn;
14
+ rotateDelta: Vector2;
15
+ constructor(camera: Camera, canvas: HTMLElement);
16
+ dispose(): void;
17
+ onPointerDown: (event: PointerEvent) => void;
18
+ onPointerMove: (event: PointerEvent) => void;
19
+ onPointerUp: (event: PointerEvent) => void;
20
+ onPointerCancel: (event: PointerEvent) => void;
21
+ onWheel: (event: WheelEvent) => void;
22
+ onKeyDown: (event: KeyboardEvent) => void;
23
+ onKeyUp: (event: KeyboardEvent) => void;
24
+ update(): void;
25
+ rotateCamera(delta: Vector2): void;
26
+ }
@@ -0,0 +1,17 @@
1
+ import { Object3D, Plane, Vector3 } from "three";
2
+ import { TransformControls } from "three/examples/jsm/controls/TransformControls.js";
3
+ import type { Viewer } from "../Viewer";
4
+ import { PlaneHelper } from "../helpers/PlaneHelper";
5
+ import { OrbitDragger } from "./OrbitDragger";
6
+ export declare class CuttingPlaneDragger extends OrbitDragger {
7
+ protected plane: Plane;
8
+ protected planeCenter: Object3D;
9
+ protected planeHelper: PlaneHelper;
10
+ protected transform: TransformControls;
11
+ constructor(viewer: Viewer, normal: Vector3, color: number);
12
+ dispose(): void;
13
+ transformChange: () => void;
14
+ transformDrag: (event: any) => void;
15
+ viewerExplode: () => void;
16
+ onDoubleClick: (event: PointerEvent) => void;
17
+ }
@@ -0,0 +1,5 @@
1
+ import type { Viewer } from "../Viewer";
2
+ import { CuttingPlaneDragger } from "./CuttingPlaneDragger";
3
+ export declare class CuttingPlaneXAxisDragger extends CuttingPlaneDragger {
4
+ constructor(viewer: Viewer);
5
+ }
@@ -0,0 +1,5 @@
1
+ import type { Viewer } from "../Viewer";
2
+ import { CuttingPlaneDragger } from "./CuttingPlaneDragger";
3
+ export declare class CuttingPlaneYAxisDragger extends CuttingPlaneDragger {
4
+ constructor(viewer: Viewer);
5
+ }
@@ -0,0 +1,5 @@
1
+ import type { Viewer } from "../Viewer";
2
+ import { CuttingPlaneDragger } from "./CuttingPlaneDragger";
3
+ export declare class CuttingPlaneZAxisDragger extends CuttingPlaneDragger {
4
+ constructor(viewer: Viewer);
5
+ }
@@ -1,10 +1,14 @@
1
- import { GeometryEndEvent } from "@inweb/viewer-core";
2
1
  import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
2
+ import type { IDisposable } from "../IDisposable";
3
3
  import type { Viewer } from "../Viewer";
4
- export declare class OrbitDragger extends OrbitControls {
5
- private viewer;
4
+ export declare class OrbitDragger implements IDisposable {
5
+ protected viewer: Viewer;
6
+ protected orbit: OrbitControls;
7
+ protected changed: boolean;
6
8
  constructor(viewer: Viewer);
7
9
  dispose(): void;
8
- geometryEnd: (event: GeometryEndEvent) => void;
9
- updateViewer: () => void;
10
+ updateControls: () => void;
11
+ controlsStart: () => void;
12
+ controlsChange: () => void;
13
+ stopContextMenu: (event: PointerEvent) => void;
10
14
  }
@@ -1,39 +1,13 @@
1
- import { RenderEvent } from "@inweb/viewer-core";
2
- import * as THREE from "three";
3
1
  import type { Viewer } from "../Viewer";
2
+ import { WalkControls } from "../controls/WalkControls";
4
3
  export declare class WalkDragger {
5
4
  protected viewer: Viewer;
6
- protected camera: THREE.Camera;
7
- protected canvas: HTMLCanvasElement;
8
- protected _target: THREE.Vector3;
9
- protected quaternion: THREE.Quaternion;
10
- protected mouseStart: THREE.Vector2;
11
- protected mouseDelta: THREE.Vector2;
12
- protected xAxis: THREE.Vector3;
13
- protected yAxis: THREE.Vector3;
14
- protected zAxis: THREE.Vector3;
15
- protected speed: THREE.Vector3;
16
- protected _maxDistance: number;
17
- protected xRotation: THREE.Quaternion;
18
- protected yRotation: THREE.Quaternion;
19
- protected yRotationAxis: THREE.Vector3;
20
- protected touchStartDistance: number;
21
- walkSpeed: number;
22
- boostSpeed: number;
5
+ controls: WalkControls;
23
6
  constructor(viewer: Viewer);
24
7
  dispose(): void;
25
- onKeyDown: (event: KeyboardEvent) => void;
26
- onKeyUp: (event: KeyboardEvent) => void;
27
- onMouseDown: (event: PointerEvent) => void;
28
- onMouseMove: (event: MouseEvent) => void;
29
- onMouseUp: (event: PointerEvent) => void;
30
- onMouseWheel: (event: WheelEvent) => void;
31
- onContextMenu: (event: MouseEvent) => void;
32
- onTouchStart: (event: TouchEvent) => void;
33
- onTouchEnd: (event: TouchEvent) => void;
34
- onTouchMove: (event: TouchEvent) => void;
35
- getTouchsDistance(touches: any): number;
36
- onRender: (event: RenderEvent) => void;
37
- update(): void;
38
- rotateCamera(delta: THREE.Vector2): void;
8
+ updateControls: () => void;
9
+ controlsChange: () => void;
10
+ walkspeedChange: (event: any) => void;
11
+ viewerRender: () => void;
12
+ viewerZoom: () => void;
39
13
  }
@@ -0,0 +1,11 @@
1
+ import { Line, Object3D, Plane, Vector3 } from "three";
2
+ declare class PlaneHelper extends Line {
3
+ plane: Plane;
4
+ size: number;
5
+ offset: Vector3;
6
+ helper: Object3D;
7
+ constructor(plane: Plane, size?: number, color?: number, offset?: Vector3);
8
+ dispose(): void;
9
+ updateMatrixWorld(force: boolean): void;
10
+ }
11
+ export { PlaneHelper };
@@ -0,0 +1,10 @@
1
+ import { Camera, Color, Object3D, SpriteMaterial, WebGLRenderer } from "three";
2
+ export declare class WCSHelper extends Object3D {
3
+ private camera;
4
+ private orthoCamera;
5
+ size: number;
6
+ constructor(camera: Camera);
7
+ dispose(): void;
8
+ getSpriteMaterial(color: Color, text: string): SpriteMaterial;
9
+ render(renderer: WebGLRenderer): void;
10
+ }
@@ -1,10 +1,10 @@
1
- import * as THREE from "three";
2
- export declare class GLTFLoadingManager extends THREE.LoadingManager {
1
+ import { LoadingManager } from "three";
2
+ export declare class GLTFLoadingManager extends LoadingManager {
3
3
  path: string;
4
4
  resourcePath: string;
5
5
  fileURL: string;
6
6
  dataURLs: Map<any, any>;
7
- constructor(file: string | ArrayBuffer | Blob, externalData?: Map<string, string | ArrayBuffer | Blob>, params?: {
7
+ constructor(file: string | globalThis.File | ArrayBuffer | Blob, externalData?: Map<string, string | File | ArrayBuffer | Blob>, params?: {
8
8
  path?: string;
9
9
  });
10
10
  dispose(): void;
package/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ import "./Viewer/commands";
1
2
  export * from "@inweb/viewer-core";
2
3
  export { Viewer } from "./Viewer/Viewer";