@pilotdev/pilot-web-3d 1.0.6 → 22.0.7-2

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 (5) hide show
  1. package/LICENCE +20 -20
  2. package/README.md +9 -9
  3. package/index.d.ts +3008 -382
  4. package/package.json +13 -13
  5. package/three/three.d.ts +0 -5348
package/index.d.ts CHANGED
@@ -1,383 +1,3009 @@
1
- ///// <reference types="@types/three" />
2
- /// <reference path="./three/three.d.ts" />
3
- declare namespace PilotWeb3D {
4
-
5
- type InitializeSuccessCallback = () => void;
6
- function Initializer(options: any, callback: InitializeSuccessCallback): void;
7
- function shutdown(): void;
8
- type ErrorCallback = (message: string) => void;
9
- type SuccessCallback = (modelId: any) => void;
10
- enum DocumentType {
11
- UNKNOWN = 0,
12
- DOCUMENT_2D = 1,
13
- DOCUMENT_3D = 2
14
- }
15
-
16
- class GuiViewer3D extends Viewer3D {
17
- getToolbar(): ViewerToolbar;
18
- onPostExtensionLoad(extension: Extension): void;
19
- }
20
-
21
- class Model {
22
- /**
23
- * Returns all model parts loaded in the viewer.
24
- * @returns {ModelPart[]} - An array of visible and hidden model parts
25
- */
26
- getAllModelParts(): ModelPart[];
27
- /**
28
- * Gets visible model parst
29
- * @returns {ModelPart[]} - An array of visible model parts
30
- */
31
- getVisibleModelParts(): ModelPart[];
32
- /**
33
- * Gets hidden model parts
34
- * @returns {ModelPart[]} - An array of hidden model parts
35
- */
36
- getHiddenModelParts(): ModelPart[];
37
- /**
38
- * Temporarily remove a model part from the Viewer, but keep loaders, materials, and geometry alive.
39
- * @param {string | ModelPart} modelPart - model part id or model part instance
40
- */
41
- hideModelPart(modelPart: string | ModelPart): void;
42
- /**
43
- * Shows hidden model part
44
- * @param {string | ModelPart} modelPart - model part id or model part instance
45
- */
46
- showModelPart(modelPart: string | ModelPart): void;
47
- /**
48
- * Hide model elements
49
- * @param {string[]|string} elementIds - An array of model elements id or just a single model element id.
50
- * @param {string | ModelPart} modelPart - id of the model part that contains the element ids. By default uses the initial model part loaded into the scene.
51
- */
52
- hide(elementIds: string[] | string, modelPart?: string | ModelPart): void;
53
- /**
54
- * Hides all elements and model parts from the viewer
55
- */
56
- hideAll(): void;
57
- /**
58
- * Ensures the passed in elements are shown.
59
- *
60
- * @param {string[] | string} elementIds - An array of model elements or just a single model element.
61
- * @param {string | ModelPart} modelPart - id of the model part that contains the model element id. By default uses the initial model part loaded into the scene.
62
- *
63
- */
64
- show(elementIds: string[] | string, modelPart?: string | ModelPart): void;
65
- /**
66
- * Shows all elements and model parts
67
- */
68
- showAll(): void;
69
- /**
70
- * Selects the array of model elements. You can also pass in a single model element id instead of an array.
71
- *
72
- * @param {string[] | string} elementIds - element or array of elements to select.
73
- * @param {string | ModelPart} modelPart - model part id or the model part instance containing the elements.
74
- *
75
- */
76
- select(elementIds: string[] | string, modelPart?: string | ModelPart): void;
77
- /**
78
- * Unselect all model elements in all model parts
79
- */
80
- clearSelection(): void;
81
- /**
82
- * Returns the current selection.
83
- * @returns {ModelElementIds[]} Array of the currently selected model elements.
84
- */
85
- getSelection(): ModelElementIds[];
86
- /**
87
- * Returns the hidden element ids.
88
- * @returns {ModelElementIds[]} Array of the currently hidden model elements.
89
- */
90
- getHiddenElements(): ModelElementIds[];
91
- /**
92
- * Returns the visible element ids.
93
- * @returns {ModelElementIds[]} Array of the currently visible model elements.
94
- */
95
- getVisibleElements(): ModelElementIds[];
96
- /**
97
- * Sets color to elements
98
- * @param {string[] | string} elementIds - element or array of elements to change color.
99
- * @param {number} r - red
100
- * @param {number} g - green
101
- * @param {number} b - blue
102
- * @param {number} a - alpha
103
- * @param {string | ModelPart} modelPart - id of the model part or model part instance containing the elements.
104
- */
105
- setColor(elementIds: string[] | string, r: number, g: number, b: number, a: number, modelPart?: string | ModelPart): void;
106
- /**
107
- * Resets all changed colors for all elements in all model parts
108
- * @param {string | ModelPart} model - id of the model part or model part instance.
109
- */
110
- clearColors(model?: string | ModelPart): void;
111
- }
112
-
113
- class ModelPart {
114
- get id(): string;
115
- get elementTree(): ModelElementTree;
116
- dispose(): void;
117
- }
118
-
119
- class ModelElementIds {
120
- modelPartId: string;
121
- elementIds: string[];
122
- }
123
-
124
- class ModelElementTree {
125
- enumElementChildren(element: string | ModelElement, callback: (guid: string) => void, recursive?: boolean): void;
126
- getRootElement(): ModelElement;
127
- getAllElements(): ModelElement[];
128
- getElement(id: string) : ModelElement;
129
- isViewableElement(element: string | ModelElement): boolean;
130
- isDetachedElement(element: string | ModelElement): boolean;
131
- getChildLevelNumber(element: string | ModelElement): number;
132
- }
133
-
134
- class ModelElement {
135
- get id(): string;
136
- get modelPartId(): string;
137
- get parent(): ModelElement | undefined;
138
- get type(): string;
139
- get name(): string;
140
- get children(): ModelElement[];
141
- }
142
-
143
- class CoreEventTypes {
144
- static VIEWER_RESIZE_EVENT: string;
145
- static VIEWER_MOUSE_DOWN_EVENT: string;
146
- static VIEWER_MOUSE_MOVE_EVENT: string;
147
- static VIEWER_MOUSE_UP_EVENT: string;
148
- static VIEWER_MOUSE_LONG_TOUCH_EVENT: string;
149
- static SETTING_CHANGED_EVENT: string;
150
- static SETTING_RESET_EVENT: string;
151
- }
152
- class EventTypes extends CoreEventTypes {
153
- static SELECTION_CHANGED_EVENT: string;
154
- static MODEL_PART_LOADED: string;
155
- static MODEL_PART_UNLOADED: string;
156
- }
157
- class SelectionEvent extends Event {
158
- selected: string[];
159
- modelPartId: string;
160
- }
161
- class SettingChangedEvent extends Event {
162
- name: string;
163
- oldValue: any;
164
- newValue: any;
165
- }
166
- class ModelPartEvent extends Event {
167
- modelPartId: string;
168
- }
169
- interface EventsDispatcher {
170
- addEventListener(event: string, listener: EventListener, options?: any): void;
171
- removeEventListener(event: string, listener: EventListener): void;
172
- hasEventListener(event: string, listener: EventListener): boolean;
173
- dispatchEvent(event: string | Event): void;
174
- clearListeners(): void;
175
- }
176
-
177
- type CameraPosition = {
178
- position: { x: number, y: number, z: number },
179
- eyeDir: { x: number, y: number, z: number },
180
- angle: number,
181
- viewCenter: { x: number, y: number, z: number }
182
- };
183
-
184
- var ViewerInstance: Viewer3D;
185
- class Viewer3D extends ViewerBase {
186
- start(): number;
187
- finish(): void;
188
- /**
189
- * Loads new model part to the viewer
190
- * @param buffer
191
- * @param options
192
- * @param onSuccessCallback
193
- * @param onErrorCallback
194
- */
195
- loadModelPart(buffer: ArrayBuffer, options: {}, onSuccessCallback: SuccessCallback, onErrorCallback: ErrorCallback): void;
196
- /**
197
- * unloads model part from the viewer
198
- * @param modelPart - model part id or model part instance
199
- */
200
- unloadModelPart(modelPart: string | ModelPart): void;
201
- /**
202
- * Returns general model
203
- * @returns { Model } - general model
204
- */
205
- get model(): Model;
206
- /**
207
- * Sets the cameras point of view.
208
- * @param cameraPosition camera position and direction.
209
- */
210
- setCameraPosition(cameraPosition: CameraPosition): void;
211
- /**
212
- * Gets the cameras point of view.
213
- * @returns camera position and direction.
214
- */
215
- getCameraPosition(): CameraPosition;
216
- /**
217
- * Makes screenshot
218
- * @param {string} [mimeType=image/png] Image MIME type.
219
- * @param {number} [qualityArgument=1.0] Image quality to be used for image/jpeg or image/webp formats.
220
- * @returns Blob object representing render image.
221
- */
222
- makeScreenshot(mimeType?: string, quality?: number): Promise<Blob>;
223
- }
224
-
225
- abstract class ViewerBase {
226
- container: HTMLElement;
227
- layerManagers: Map<number, ILayerManager>;
228
- extensionsLoader: ExtensionLoader;
229
- settingsManager: Readonly<ISettingsManager>;
230
- events: Readonly<EventsDispatcher>;
231
- /**
232
- *
233
- * @returns
234
- */
235
- start(): number;
236
- /**
237
- *
238
- */
239
- finish(): void;
240
-
241
- onPostExtensionLoad(extension: Extension): void;
242
- }
243
-
244
- class ExtensionLoader {
245
- loadExtension(extensionId: string): Promise<Extension>;
246
- unloadExtension(extensionId: string): Promise<boolean>;
247
- getExtensions(): Extension[];
248
- }
249
-
250
- function CreateViewer(container: HTMLElement, configuration?: Viewer3DConfiguration): GuiViewer3D;
251
-
252
- type ViewerSettings = Record<string, any>;
253
- class ViewerConfiguration {
254
- [key: string]: any;
255
- }
256
- class Viewer3DConfiguration extends ViewerConfiguration {
257
- settings?: ViewerSettings;
258
- }
259
- class SettingsNames {
260
- static TELEMETRY: string;
261
- static AXES: string;
262
- static CAMERA_ANIMATION: string;
263
- static HIDE_SMALL_ELEMENTS: string;
264
- static GLOBAL_LIGHT: string;
265
- static LIGHT_SOURCE: string;
266
- static ANTI_ALIASING: string;
267
- static HIDE_SMALL_ELEMENTS_WHEN_NAVIGATING: string;
268
- static SMALL_ELEMENT_SIZE: string;
269
- static LABEL_LINE_LENGTH: string;
270
- static HIDE_EDGES_WHEN_NAVIGATING: string;
271
- static DISPLAY_MODE: string;
272
- static NAVIGATION_CUBE: string;
273
- }
274
- enum DisplayMode {
275
- FACES_AND_EDGES = 0,
276
- FACES = 1,
277
- EDGES = 2
278
- }
279
- enum ValueType {
280
- STRING = 0,
281
- NUMBER = 1,
282
- ENUM = 2,
283
- BOOL = 3
284
- }
285
- interface ILayerManager {
286
- createLayer(name: string): ILayer;
287
- deleteLayer(name: string): boolean;
288
- getLayer(name: string): ILayer | null;
289
- hasLayer(name: string): boolean;
290
- }
291
- interface ILayer {
292
- addOverlay(overlay: Overlay): boolean;
293
- removeOverlay(overlay: Overlay): boolean;
294
- getOverlays(): Overlay[];
295
- getContainer(): LayerContainer;
296
- getViewBox(): LayerViewBox;
297
- dispose(): void;
298
- }
299
- type Overlay = HTMLElement | any;
300
- type LayerContainer = HTMLElement | any;
301
- type LayerViewBox = DOMRect | any;
302
-
303
- class Toolbar extends Control {
304
- addControl(control: Control): void;
305
- removeControl(id: string): void;
306
- }
307
-
308
- class Control {
309
- container: HTMLElement;
310
- constructor(id: string);
311
- addClass(cssClass: string): void;
312
- removeClass(cssClass: string): void;
313
- getId(): string;
314
- setToolTip(tooltipText: string): void;
315
- }
316
-
317
- class ViewerToolbar extends Toolbar {
318
- }
319
-
320
- class Button extends Control {
321
- constructor(id: string);
322
- setIsChecked(value: boolean): void;
323
- setState(state: Button.State): boolean;
324
- getState(): Button.State;
325
- setIcon(iconClassName: string): void;
326
- /**
327
- * Override this method to be notified when the user clicks on the button.
328
- * @param {MouseEvent} event
329
- */
330
- onClick: (event: MouseEvent) => void;
331
- /**
332
- * Override this method to be notified when the mouse enters the button.
333
- * @param {MouseEvent} event
334
- */
335
- onMouseOver: (event: MouseEvent) => void;
336
- /**
337
- * Override this method to be notified when the mouse leaves the button.
338
- * @param {MouseEvent} event
339
- */
340
- onMouseOut: (event: MouseEvent) => void;
341
- }
342
- namespace Button {
343
- enum State {
344
- ACTIVE = 0,
345
- INACTIVE = 1,
346
- DISABLED = 2
347
- }
348
- enum Event {
349
- STATE_CHANGED = "Button.StateChanged",
350
- CLICK = "click"
351
- }
352
- }
353
- interface ISettingsManager {
354
- changeSetting<T>(name: string, value: T, notify?: boolean): void;
355
- getSettingValue<T>(name: string): T;
356
- }
357
- class ExtensionBase {
358
- protected _viewer: ViewerBase;
359
- constructor(viewer3D: ViewerBase, options?: object);
360
- load(): boolean | Promise<boolean>;
361
- unload(): boolean;
362
- activate() : boolean;
363
- deactivate(): boolean;
364
- getName(): string;
365
- onMouseDown(event: MouseEvent): void;
366
- onMouseMove(event: MouseEvent): void;
367
- onMouseUp(event: MouseEvent): void;
368
- onMouseLongTouch(event: MouseEvent): void;
369
- onToolbarCreated(builder: Toolbar): void;
370
- }
371
-
372
- class Extension extends ExtensionBase{
373
- protected _viewer: Viewer3D;
374
- constructor(viewer: Viewer3D, options?: any);
375
- }
376
-
377
- class ExtensionManager {
378
- registerExtensionType(extensionId: string, extension: typeof Extension): boolean;
379
- unregisterExtensionType(extensionId: string): boolean;
380
- getExtensionType(extensionId: string): typeof Extension;
381
- }
382
- const theExtensionManager: ExtensionManager;
1
+ /// <reference types="@types/three" />
2
+ declare namespace PilotWeb3D {
3
+ export class LoadingSpinner {
4
+ constructor();
5
+ addToDOM(container: HTMLElement): void;
6
+ removeFromDOM(container: HTMLElement): void;
7
+ }
8
+ export class ExtensionManager {
9
+ constructor();
10
+ registerExtensionType(extensionId: string, extension: typeof ExtensionBase): boolean;
11
+ unregisterExtensionType(extensionId: string): boolean;
12
+ getExtensionType(extensionId: string): typeof ExtensionBase;
13
+ }
14
+ export const theExtensionManager: ExtensionManager;
15
+ export class ExtensionLoader {
16
+ constructor(viewer: ViewerBase, extensionManager: ExtensionManager);
17
+ loadExtension(extensionId: string): Promise<ExtensionBase>;
18
+ unloadExtension(extensionId: string): Promise<boolean>;
19
+ getExtensions(): ExtensionBase[];
20
+ }
21
+ export interface ILayerManager {
22
+ createLayer(name: string): ILayer;
23
+ deleteLayer(name: string): boolean;
24
+ getLayer(name: string): ILayer | null;
25
+ hasLayer(name: string): boolean;
26
+ }
27
+ export interface ILayer {
28
+ addOverlay(overlay: Overlay): boolean;
29
+ removeOverlay(overlay: Overlay): boolean;
30
+ getOverlays(): Overlay[];
31
+ getContainer(): LayerContainer;
32
+ getViewBox(): LayerViewBox;
33
+ dispose(): void;
34
+ }
35
+ export type Overlay = HTMLElement | any;
36
+ export type LayerContainer = HTMLElement | any;
37
+ export type LayerViewBox = DOMRect | any;
38
+ export interface IEventsDispatcher {
39
+ addEventListener(event: string, listener: EventListener, options?: any): void;
40
+ removeEventListener(event: string, listener: EventListener): void;
41
+ hasEventListener(event: string, listener: EventListener): boolean;
42
+ dispatchEvent(event: string | Event): void;
43
+ dispatchEventAsync(event: string | Event): void;
44
+ clearListeners(): void;
45
+ }
46
+ export class EventsDispatcherCore implements IEventsDispatcher {
47
+ constructor();
48
+ dispatchEventAsync(event: string | Event): void;
49
+ hasEventListener(type: string, listener: EventListener): boolean;
50
+ dispatchEvent(event: string | Event): void;
51
+ addEventListener(type: string, listener: EventListener, options?: any): void;
52
+ removeEventListener(type: string, listener: EventListener): void;
53
+ removeEvent(type: string): void;
54
+ clearListeners(): void;
55
+ }
56
+ export type ViewerSettings = Record<string, any>;
57
+ export class ViewerConfiguration {
58
+ [key: string]: any;
59
+ }
60
+ export class CoreEventTypes {
61
+ static VIEWER_RESIZE_EVENT: string;
62
+ static VIEWER_MOUSE_DOWN_EVENT: string;
63
+ static VIEWER_MOUSE_MOVE_EVENT: string;
64
+ static VIEWER_MOUSE_UP_EVENT: string;
65
+ static VIEWER_MOUSE_LONG_TOUCH_EVENT: string;
66
+ static SETTING_CHANGED_EVENT: string;
67
+ static SETTING_RESET_EVENT: string;
68
+ }
69
+ export interface ISettingsStorage {
70
+ clear(): void;
71
+ getItem<T>(key: string): T | null;
72
+ removeItem(key: string): void;
73
+ setItem<T>(key: string, value: T): void;
74
+ getKeys(): string[];
75
+ }
76
+ export class SettingsStorageFactory {
77
+ getSettingsStorage(): ISettingsStorage;
78
+ }
79
+ export class LocalSettingsStorage implements ISettingsStorage {
80
+ constructor();
81
+ clear(): void;
82
+ getItem<T>(key: string): T | null;
83
+ removeItem(key: string): void;
84
+ setItem<T>(key: string, value: T): void;
85
+ getKeys(): string[];
86
+ }
87
+ export class InMemorySettingsStorage implements ISettingsStorage {
88
+ constructor();
89
+ clear(): void;
90
+ getItem<T>(key: string): T | null;
91
+ removeItem(key: string): void;
92
+ setItem<T>(key: string, value: T): void;
93
+ getKeys(): string[];
94
+ }
95
+ export interface ISettings {
96
+ changeSetting<T>(name: string, value: T, notify?: boolean): void;
97
+ getSettingValue<T>(name: string): T;
98
+ }
99
+ export class SettingChangedEvent extends Event {
100
+ name: string;
101
+ oldValue: any;
102
+ newValue: any;
103
+ }
104
+ export abstract class SettingsBase implements ISettings {
105
+ protected _eventDispatcher: IEventsDispatcher;
106
+ protected _storage: ISettingsStorage;
107
+ constructor(storage: ISettingsStorage, eventDispatcher: IEventsDispatcher);
108
+ changeSetting<T>(name: string, value: T, notify?: boolean): void;
109
+ getSettingValue<T>(name: string): T;
110
+ protected abstract getKeyWithPrefix(key: string): string;
111
+ }
112
+ export type ErrorCallback = (message: string) => void;
113
+ export type SuccessCallback = (modelId: any) => void;
114
+ export enum DocumentType {
115
+ UNKNOWN = 0,
116
+ DOCUMENT_2D = 1,
117
+ DOCUMENT_3D = 2
118
+ }
119
+ export abstract class ViewerBase {
120
+ protected _clientContainer: HTMLElement;
121
+ protected _loadingSpinner: LoadingSpinner;
122
+ protected _documentType: DocumentType;
123
+ protected _configuration: ViewerConfiguration;
124
+ container: HTMLElement;
125
+ layerManagers: Map<number, ILayerManager>;
126
+ extensionsLoader: ExtensionLoader;
127
+ abstract settings: ISettings;
128
+ abstract events: IEventsDispatcher;
129
+ constructor(container: HTMLElement, configuration?: ViewerConfiguration);
130
+ /**
131
+ *
132
+ * @returns
133
+ */
134
+ start(): Promise<number>;
135
+ /**
136
+ *
137
+ */
138
+ finish(): void;
139
+ onPostExtensionLoad(extension: ExtensionBase): void;
140
+ protected loadExtensions(): void;
141
+ }
142
+ export class Control {
143
+ container: HTMLElement;
144
+ constructor(id: string);
145
+ addClass(cssClass: string): void;
146
+ removeClass(cssClass: string): void;
147
+ getId(): string;
148
+ setToolTip(tooltipText: string): void;
149
+ }
150
+ export class Toolbar extends Control {
151
+ constructor(id: string);
152
+ addControl(control: Control): void;
153
+ removeControl(id: string): void;
154
+ }
155
+ export class ExtensionBase {
156
+ protected _viewer: ViewerBase;
157
+ constructor(viewer3D: ViewerBase, options?: any);
158
+ load(): boolean | Promise<boolean>;
159
+ unload(): boolean;
160
+ activate(): boolean;
161
+ deactivate(): boolean;
162
+ /**
163
+ * Gets the name of the extension.
164
+ * @returns {string} Returns the name of the extension.
165
+ */
166
+ getName(): string;
167
+ onMouseDown(event: MouseEvent): void;
168
+ onMouseMove(event: MouseEvent): void;
169
+ onMouseUp(event: MouseEvent): void;
170
+ onMouseLongTouch(event: MouseEvent): void;
171
+ onToolbarCreated(toolbar: Toolbar): void;
172
+ protected bindDomEvents(): void;
173
+ }
174
+ export class ViewerToolbar extends Toolbar {
175
+ }
176
+ export const PredefinedColors: {
177
+ DEFAULT: string;
178
+ DIFF: string;
179
+ IFC_WINDOW: string;
180
+ IFC_DOOR: string;
181
+ DEFAULT_FACE: string;
182
+ HIGHLIGHTED_FACE: string;
183
+ SELECTED_FACE: string;
184
+ DEFAULT_EDGE: string;
185
+ HIGHLIGHTED_EDGE: string;
186
+ SELECTED_EDGE: string;
187
+ };
188
+ export interface MeshLineMaterialParameters extends THREE.ShaderMaterialParameters {
189
+ color?: string;
190
+ }
191
+ export class MeshLineMaterial extends THREE.RawShaderMaterial {
192
+ constructor(iParameters?: MeshLineMaterialParameters);
193
+ getColor(): any;
194
+ setColor(iColor: THREE.Color): void;
195
+ getLineWidth(): any;
196
+ setLineWidth(iVal: number): number;
197
+ }
198
+ export class GlobalMaterials {
199
+ static diffElement: THREE.MeshLambertMaterial;
200
+ static diffAdditionalElement: THREE.MeshLambertMaterial;
201
+ static basicTransparent: THREE.MeshLambertMaterial;
202
+ static init(): void;
203
+ static basicMaterial: THREE.MeshLambertMaterial;
204
+ static basicInstancedMaterial: THREE.MeshLambertMaterial;
205
+ static transparentInstancedMaterial: THREE.MeshLambertMaterial;
206
+ static highlightedMeshMaterial: THREE.MeshLambertMaterial;
207
+ static selectedTransparentMeshMaterial: THREE.MeshLambertMaterial;
208
+ static selectedMeshMaterial: THREE.MeshLambertMaterial;
209
+ static threeLine: THREE.LineBasicMaterial;
210
+ static basicLineMaterial: THREE.LineBasicMaterial;
211
+ static basicInstancedLineMaterial: THREE.LineBasicMaterial;
212
+ static highlightedLineMaterial: THREE.LineBasicMaterial;
213
+ static selectedLineMaterial: THREE.LineBasicMaterial;
214
+ static pointsMaterial: THREE.PointsMaterial;
215
+ }
216
+ type UpdateRange = {
217
+ offset: number;
218
+ count: number;
219
+ };
220
+ export class InstancedGeometry extends THREE.Object3D {
221
+ readonly faceGeometry: THREE.BufferGeometry;
222
+ readonly edgeGeometry: THREE.WireframeGeometry;
223
+ readonly isInstanced: boolean;
224
+ visibilityAutoUpdate: boolean;
225
+ constructor(faceGeometry: THREE.BufferGeometry, edgeGeometry: THREE.WireframeGeometry, count: number);
226
+ get geometry(): THREE.BufferGeometry;
227
+ get wires(): THREE.BufferGeometry;
228
+ updateVisibility(): void;
229
+ getColorAt(index: number): Color;
230
+ getMatrixAt(index: number): THREE.Matrix4;
231
+ setColorAt(index: number, color: Color): void;
232
+ setMatrixAt(index: number, matrix: THREE.Matrix4): void;
233
+ setVisibileAt(index: number, visible: boolean): void;
234
+ getVisibleAt(index: number): boolean;
235
+ getBoundingBoxAt(index: number): THREE.Box3;
236
+ disposeAt(index: number): void;
237
+ dispose(): void;
238
+ }
239
+ export function calculateUpdateRange(changedElements: number[], itemSize: number, prev?: UpdateRange): UpdateRange;
240
+ export {};
241
+ export enum ObjectType {
242
+ INSTANCED = "Instanced",
243
+ MERGEABLE = "Mergeable",
244
+ UNMERGEABLE = "Unmergeable",
245
+ UNSUPPORTED = "Unsupported"
246
+ }
247
+ export enum UpdateType {
248
+ NONE = 0,
249
+ REMOVE = 1,
250
+ ADD = 2,
251
+ HARD = 4,
252
+ Children = 8,
253
+ Geometry = 16,
254
+ Position = 32,
255
+ Material = 64,
256
+ Color = 128,
257
+ Selection = 256,
258
+ Visibility = 512
259
+ }
260
+ export class MeshType {
261
+ static geometryType: string;
262
+ static create(geom?: THREE.BufferGeometry): THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
263
+ static isType(obj: THREE.Object3D): obj is THREE.Mesh;
264
+ }
265
+ export class LineSegmentsType {
266
+ static geometryType: string;
267
+ static create(geom?: THREE.BufferGeometry): THREE.LineSegments<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
268
+ static isType(obj: THREE.Object3D): obj is THREE.LineSegments;
269
+ }
270
+ const SupportableTypes: (typeof MeshType | typeof LineSegmentsType)[];
271
+ type MergeableTypeConstructor = (typeof SupportableTypes)[0];
272
+ const dummyEls: (THREE.LineSegments<THREE.BufferGeometry, THREE.Material | THREE.Material[]> | THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>)[];
273
+ export type MergeableType = (typeof dummyEls)[0];
274
+ export type MergeableObjectInfo = {
275
+ type: MergeableTypeConstructor;
276
+ material: THREE.Material;
277
+ castShadow: boolean;
278
+ receiveShadow: boolean;
279
+ };
280
+ export type ObjectTag = {
281
+ obj: THREE.Object3D;
282
+ objectType: ObjectType;
283
+ tag: string;
284
+ info?: any;
285
+ };
286
+ export function getTag(obj: THREE.Object3D): ObjectTag;
287
+ export function isViewObject(obj: THREE.Object3D): obj is ViewObject;
288
+ export function isCompatible(left: MergeableObjectInfo, right: MergeableObjectInfo): boolean;
289
+ export function hash(material: THREE.Material): number;
290
+ export function isMergeable(obj: THREE.Object3D): obj is MergeableType;
291
+ export function isInstancedThreeObject(obj: THREE.Object3D): boolean;
292
+ export {};
293
+ export class Color {
294
+ r: number;
295
+ g: number;
296
+ b: number;
297
+ a: number;
298
+ constructor(r: number, g: number, b: number, a: number);
299
+ static fromThreeColor(color: THREE.Color, alpha?: number): Color;
300
+ static fromColorRepresentation(representation: THREE.ColorRepresentation): Color;
301
+ static fromMaterial(material: THREE.Material): Color;
302
+ threeColor(): THREE.Color;
303
+ alpha(): number;
304
+ fromArray(array: ArrayLike<number>, offset?: number): Color;
305
+ toArray(array: Array<number>, offset?: number): Array<number>;
306
+ }
307
+ export abstract class ViewObject extends THREE.Object3D {
308
+ protected _element: ModelEntity;
309
+ readonly entityGuid: string;
310
+ readonly modelGuid: string;
311
+ constructor(_element: ModelEntity, color: Color);
312
+ abstract get mesh(): THREE.Mesh;
313
+ abstract get edges(): THREE.LineSegments;
314
+ add(...object: THREE.Object3D[]): this;
315
+ remove(...object: THREE.Object3D<THREE.Event>[]): this;
316
+ getElement(): ModelEntity;
317
+ isVisible(): boolean;
318
+ isHided(): boolean;
319
+ isSelected(): boolean;
320
+ isHovered(): boolean;
321
+ getOriginalColor(): Color;
322
+ getImplicitChlidren(): THREE.Object3D[];
323
+ dispose(): void;
324
+ abstract getBoundingBox(): THREE.Box3;
325
+ abstract raycast(iRaycaster: THREE.Raycaster, oIntersects: any): void;
326
+ protected abstract setHoveredForObject(obj: ViewObject, iVal: boolean): void;
327
+ setHovered(iVal: boolean): void;
328
+ protected abstract setSelectedForObject(obj: ViewObject, iVal: boolean): void;
329
+ setSelected(iVal: boolean): void;
330
+ protected abstract setHidedForObject(obj: ViewObject, iVal: boolean): void;
331
+ setHided(iVal: boolean): void;
332
+ protected abstract setVisibleForObject(obj: ViewObject, iVal: boolean): void;
333
+ setVisible(iVal: boolean): void;
334
+ protected abstract setColorForObject(obj: ViewObject, color: Color): void;
335
+ setColor(color: Color): void;
336
+ protected abstract resetColorForObject(obj: ViewObject): void;
337
+ resetColor(): void;
338
+ protected riseOnUpdated(updateType?: UpdateType, object?: THREE.Object3D): void;
339
+ protected _implicitChildren: THREE.Object3D[];
340
+ protected _isSelected: boolean;
341
+ protected _isHovered: boolean;
342
+ protected _isVisible: boolean;
343
+ protected _isHided: boolean;
344
+ protected _originalColor: Color;
345
+ }
346
+ export class Tessellation {
347
+ vertices: number[];
348
+ normals: number[];
349
+ indices: number[];
350
+ edgeIndices: number[];
351
+ toBufferGeometry(): THREE.BufferGeometry;
352
+ getWireframe(bufferGeometry?: THREE.BufferGeometry): THREE.WireframeGeometry;
353
+ }
354
+ export function isBinaryMeshTessellation(iData: any): iData is Tessellation;
355
+ export function isBinaryWireframeTessellation(iData: any): iData is Tessellation;
356
+ export function isBinaryPoints(iData: any): iData is Tessellation;
357
+ export function isTessellation(iData: any): iData is Tessellation;
358
+ export class ElementNode {
359
+ Guid: string;
360
+ ObjectState: any;
361
+ Revision: BigInt;
362
+ ParentGuid: string;
363
+ Name: string;
364
+ Type: string;
365
+ RepresentationType: string;
366
+ RepresentationStatus: string;
367
+ MeshesProperties: Map<string, MeshProperty[]>;
368
+ }
369
+ export class MeshProperty {
370
+ meshColor: number;
371
+ meshPlacement: number[];
372
+ }
373
+ export class MergeableViewObject extends ViewObject {
374
+ protected _transformation: THREE.Matrix4;
375
+ constructor(_element: ModelEntity, _transformation: THREE.Matrix4, color: Color, faceGeometry: THREE.BufferGeometry, edgeGeometry: THREE.WireframeGeometry);
376
+ get mesh(): THREE.Mesh;
377
+ get edges(): THREE.LineSegments;
378
+ getBoundingBox(): THREE.Box3;
379
+ raycast(iRaycaster: THREE.Raycaster, oIntersects: any): void;
380
+ dispose(): void;
381
+ protected setHoveredForObject(obj: ViewObject, iVal: boolean): void;
382
+ protected setSelectedForObject(obj: ViewObject, iVal: boolean): void;
383
+ protected resetColorForObject(obj: ViewObject): void;
384
+ protected setHidedForObject(obj: ViewObject, iVal: boolean): void;
385
+ protected setVisibleForObject(obj: ViewObject, iVal: boolean): void;
386
+ protected setColorForObject(obj: ViewObject, iColor: Color): void;
387
+ protected setEdgeVisible(iVal: boolean): void;
388
+ protected setMeshVisible(iVal: boolean): void;
389
+ protected _mesh?: THREE.Mesh;
390
+ protected _wireframeMesh?: THREE.LineSegments;
391
+ protected _meshMaterial?: THREE.Material;
392
+ protected _wireframeMaterial?: THREE.LineBasicMaterial;
393
+ }
394
+ export class InstancedViewObject extends ViewObject {
395
+ readonly isInstanced: boolean;
396
+ constructor(instancedGeometry: InstancedGeometry, _element: ModelEntity, _index: number, position: THREE.Matrix4, color: Color);
397
+ get mesh(): THREE.Mesh;
398
+ get edges(): THREE.LineSegments;
399
+ raycast(iRaycaster: THREE.Raycaster, oIntersects: any): void;
400
+ getBoundingBox(): THREE.Box3;
401
+ dispose(): void;
402
+ protected setHoveredForObject(obj: ViewObject, iVal: boolean): void;
403
+ protected setSelectedForObject(obj: ViewObject, iVal: boolean): void;
404
+ protected setHidedForObject(obj: ViewObject, iVal: boolean): void;
405
+ protected setVisibleForObject(obj: ViewObject, iVal: boolean): void;
406
+ protected setColorForObject(obj: ViewObject, color: Color): void;
407
+ protected resetColorForObject(obj: ViewObject): void;
408
+ }
409
+ export class InstancedMeshViewObject extends ViewObject {
410
+ readonly instancedMesh: THREE.InstancedMesh;
411
+ readonly isInstanced: boolean;
412
+ constructor(instancedMesh: THREE.InstancedMesh, edgeGeometry: THREE.WireframeGeometry, _element: ModelEntity, _index: number, _transformation: THREE.Matrix4, color: Color);
413
+ get mesh(): THREE.Mesh;
414
+ get edges(): THREE.LineSegments;
415
+ raycast(iRaycaster: THREE.Raycaster, oIntersects: any): void;
416
+ getBoundingBox(): THREE.Box3;
417
+ dispose(): void;
418
+ protected setColorForObject(obj: ViewObject, color: Color): void;
419
+ protected resetColorForObject(obj: ViewObject): void;
420
+ protected setHoveredForObject(obj: ViewObject, iVal: boolean): void;
421
+ protected setSelectedForObject(obj: ViewObject, iVal: boolean): void;
422
+ protected setHidedForObject(obj: ViewObject, iVal: boolean): void;
423
+ protected setVisibleForObject(obj: ViewObject, iVal: boolean): void;
424
+ protected _wireframeMesh: THREE.LineSegments;
425
+ protected _wireframeMaterial: THREE.LineBasicMaterial;
426
+ }
427
+ export class RenderSettings {
428
+ static MaxVerticesInBlock: number;
429
+ static MaxIndicesInBlock: number;
430
+ static isInstancingEnabled: boolean;
431
+ static MinInstanceCount: number;
432
+ static useCustomShaders: boolean;
433
+ static handleSelectionOnMainScene: boolean;
434
+ static hoverMeshes: boolean;
435
+ static selectEdges: boolean;
436
+ static desiredFramerate: number;
437
+ static manageTime: number;
438
+ }
439
+ export class BatchViewObject extends ViewObject {
440
+ constructor(_element: ModelEntity, _viewObjects: ViewObject[]);
441
+ get mesh(): THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
442
+ get edges(): THREE.LineSegments<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
443
+ getBoundingBox(): THREE.Box3;
444
+ raycast(iRaycaster: THREE.Raycaster, oIntersects: any): void;
445
+ protected setHoveredForObject(obj: ViewObject, iVal: boolean): void;
446
+ protected setSelectedForObject(obj: ViewObject, iVal: boolean): void;
447
+ protected setHidedForObject(obj: ViewObject, iVal: boolean): void;
448
+ protected setVisibleForObject(obj: ViewObject, iVal: boolean): void;
449
+ protected setColorForObject(obj: ViewObject, color: Color): void;
450
+ protected resetColorForObject(obj: ViewObject): void;
451
+ dispose(): void;
452
+ }
453
+ export type ViewObjectParameters = {
454
+ tessellationKey: string;
455
+ element: ModelEntity;
456
+ placement: THREE.Matrix4;
457
+ color: Color;
458
+ };
459
+ type BuildObject3DFunction = () => ViewObject;
460
+ export class ViewObjectBuilder {
461
+ constructor(fabric: ViewObjectFabric);
462
+ addParameter(parameter: ViewObjectParameters): void;
463
+ builderMethod(elem: ModelEntity): BuildObject3DFunction;
464
+ build(elem: ModelEntity): ViewObject;
465
+ }
466
+ export class ViewObjectFabric {
467
+ addToBuild(parameter: ViewObjectParameters): number;
468
+ getViewObjectById(id: number): ViewObject;
469
+ createBuilder(): ViewObjectBuilder;
470
+ buildAll(tessellations: Map<string, Tessellation>): void;
471
+ clear(): void;
472
+ }
473
+ export {};
474
+ export class RenderViewSettings {
475
+ telemetry?: boolean;
476
+ hideEdgesWhenNavigation?: boolean;
477
+ antiAliasing?: boolean;
478
+ displayMode?: DisplayMode;
479
+ }
480
+ export enum DisplayMode {
481
+ FACES_AND_EDGES = 0,
482
+ FACES = 1
483
+ }
484
+ export const defaultRenderViewSettings: RenderViewSettings;
485
+ export enum ScreenState {
486
+ singleView = 0,
487
+ twoViews = 1,
488
+ fourViews = 2
489
+ }
490
+ export enum SolidViewState {
491
+ Visible = "Visible",
492
+ Transparent = "Transparent",
493
+ Hidden = "Hidden"
494
+ }
495
+ export class ElementEntitySet {
496
+ constructor(ids: string[], modelImplId: string);
497
+ modelImplId: string;
498
+ ids: string[];
499
+ }
500
+ export interface IElementEntityProvider {
501
+ getElementEntity(id: string, modelId: string): ModelEntity;
502
+ getElementEntities(modelId: string): ModelEntity[];
503
+ }
504
+ export class SelectionOptions {
505
+ sender?: any;
506
+ }
507
+ export class SelectionManager {
508
+ constructor(elementEntityProvider: IElementEntityProvider);
509
+ select(entityIds: string[], modelId: string, options: SelectionOptions): void;
510
+ deselect(entityIds: string[], modelId: string, options: SelectionOptions): void;
511
+ clearSelection(options: SelectionOptions): void;
512
+ unselectModelPart(modelId: string, options: SelectionOptions): void;
513
+ getSelection(): ElementEntitySet[];
514
+ hover(entityIds: string[], modelId: string): void;
515
+ unhover(entityIds: string[], modelId: string): void;
516
+ clearHovered(modelId?: string): void;
517
+ toggleSelection(entityId: string, modelId: string): void;
518
+ }
519
+ export class EventArgs {
520
+ }
521
+ export class ClickedEventArgs extends EventArgs {
522
+ modelId: string;
523
+ modelElementId: string;
524
+ ctrlKey: boolean;
525
+ constructor(modelId: string, modelElementId: string, ctrlKey: boolean);
526
+ }
527
+ export class SelectionChangedEventArgs extends EventArgs {
528
+ resetPreviousSelection: boolean;
529
+ isAddToSelection: boolean;
530
+ selectionIds: ElementEntitySet[];
531
+ options: SelectionOptions;
532
+ constructor();
533
+ }
534
+ export class HoverEventArgs extends EventArgs {
535
+ modelId: string;
536
+ modelElementIds: string[];
537
+ constructor(modelId: string, modelElementIds: string[]);
538
+ }
539
+ export class GlobalEvents {
540
+ static clicked: EventDispatcher<ClickedEventArgs>;
541
+ static selectionChanged: EventDispatcher<SelectionChangedEventArgs>;
542
+ static selectionReset: EventDispatcher<void>;
543
+ static hovered: EventDispatcher<HoverEventArgs>;
544
+ static canvasesResized: EventDispatcher<void>;
545
+ static renderRequiredEverywhere: EventDispatcher<void>;
546
+ static modelLoaded: EventDispatcher<ModelImpl>;
547
+ static modelUpdated: EventDispatcher<{
548
+ viewNumber?: number;
549
+ }>;
550
+ static tessellationLoaded: EventDispatcher<void>;
551
+ static viewsCountChanged: EventDispatcher<ScreenState>;
552
+ static solidViewChanged: EventDispatcher<{
553
+ uid: string;
554
+ state: SolidViewState;
555
+ }>;
556
+ static navigationModeChanged: EventDispatcher<boolean>;
557
+ static rotationNavigationActivityChanged: EventDispatcher<boolean>;
558
+ static preciseModelSet: EventDispatcher<boolean>;
559
+ static projectLoaded: EventDispatcher<void>;
560
+ static amountOfTessellationsToLoad: EventDispatcher<number>;
561
+ static dblClick: EventDispatcher<ClickedEventArgs>;
562
+ }
563
+ export class CameraOrientation {
564
+ viewDir: THREE.Vector3;
565
+ upDir?: THREE.Vector3;
566
+ constructor(viewDir: THREE.Vector3, upDir?: THREE.Vector3);
567
+ clone(): CameraOrientation;
568
+ }
569
+ export class CameraPlacement {
570
+ cameraPos: THREE.Vector3;
571
+ viewDir: THREE.Vector3;
572
+ upDir: THREE.Vector3;
573
+ constructor(cameraPos: THREE.Vector3, viewDir: THREE.Vector3, upDir: THREE.Vector3);
574
+ static fromPointView(cameraPosition: THREE.Vector3, eyeDirection: THREE.Vector3): CameraPlacement;
575
+ clone(): CameraPlacement;
576
+ getCameraPos(): THREE.Vector3;
577
+ getViewDir(): THREE.Vector3;
578
+ getUpDir(): THREE.Vector3;
579
+ getOrientation(): CameraOrientation;
580
+ setOrientation(iOrientation: CameraOrientation): void;
581
+ getRightDir(): THREE.Vector3;
582
+ getViewTarget(): THREE.Vector3;
583
+ getRotationMatrix(): THREE.Matrix4;
584
+ getRotationQuaternion(): THREE.Quaternion;
585
+ }
586
+ export class CameraInternalParams {
587
+ mode: "perspective" | "ortho";
588
+ near: number;
589
+ far: number;
590
+ fov: number;
591
+ /**
592
+ * @param {number} fov vertical, in radians
593
+ */
594
+ constructor(mode: "perspective" | "ortho", near: number, far: number, fov: number);
595
+ clone(): CameraInternalParams;
596
+ }
597
+ export const maxFar = 10000000;
598
+ export const minNear: number;
599
+ export class LCPCamera {
600
+ constructor(external?: CameraPlacement, internal?: CameraInternalParams);
601
+ getCameraPos(): THREE.Vector3;
602
+ setOrientation(iOrientation: CameraOrientation): void;
603
+ setAspectRatio(aspect: number): boolean;
604
+ getPlacement(): CameraPlacement;
605
+ getInternalParams(): CameraInternalParams;
606
+ setPlacement(iParams: CameraPlacement): void;
607
+ setInternalParams(iParams: CameraInternalParams): void;
608
+ getThreeCamera(): THREE.Camera;
609
+ checkValid(): void;
610
+ getFov(): number;
611
+ isNavigation(): boolean;
612
+ isRotationNavigation(): boolean;
613
+ setNavigationByMouseActive(isActive: boolean, navDuration?: number): void;
614
+ setNavigationByKeyboardActive(isActive: boolean): void;
615
+ setRotationNavigationActive(isActive: boolean): void;
616
+ }
617
+ export class CameraInterpolation {
618
+ constructor(_startPlacement: CameraPlacement, _endPlacement: CameraPlacement);
619
+ apply(iCamera: LCPCamera, iOrientationObserver: EventEmitter<CameraOrientation>): void;
620
+ stop(): void;
621
+ }
622
+ export class BrowserInfo {
623
+ constructor();
624
+ isMobileBrowser(): boolean;
625
+ isIE11(): boolean;
626
+ }
627
+ export class globals {
628
+ static browserInfo: BrowserInfo;
629
+ }
630
+ export enum Direction {
631
+ None = 0,
632
+ Forward = 2,
633
+ Left = 4,
634
+ Backward = 8,
635
+ Right = 16,
636
+ Down = 32,
637
+ Up = 64
638
+ }
639
+ export type CameraParameters = {
640
+ position: THREE.Vector3;
641
+ eyeDir: THREE.Vector3;
642
+ angle: number;
643
+ };
644
+ export interface ICameraControl {
645
+ getCamera(): THREE.Camera;
646
+ rotate(movement: THREE.Vector2, rotationCenter: THREE.Vector3): void;
647
+ translate(prevPosNdc: THREE.Vector2, currPosNdc: THREE.Vector2, viewCenter: THREE.Vector3): void;
648
+ spin(movement: THREE.Vector2): void;
649
+ orientateCamera(iOrientation: CameraOrientation, isAnimationEnabled?: boolean): void;
650
+ zoomToPoint(deltaSign: number, point: THREE.Vector3): void;
651
+ zoomToFit(bb: THREE.Box3, iOrientation?: CameraOrientation, iAnimationEnabled?: boolean): void;
652
+ getCameraParameters(): CameraParameters;
653
+ setCameraParameters(iParams: CameraParameters): void;
654
+ isNavigation(): boolean;
655
+ isRotationNavigation(): boolean;
656
+ setNavigationByMouseActive(isActive: boolean, navDuration?: number): void;
657
+ setNavigationByKeyboardActive(isActive: boolean): void;
658
+ setRotationNavigationActive(isActive: boolean): void;
659
+ getMovementVector(): THREE.Vector3;
660
+ moveByImpulse(elapsed_ms: number, movementVector?: THREE.Vector3, intersection?: THREE.Intersection): boolean;
661
+ setImpulseDirection(dir: Direction, add: boolean): void;
662
+ setIncreasedImpulse(isIncreased: boolean): void;
663
+ getPivotPoint(): THREE.Vector3;
664
+ setPivotPoint(pt: THREE.Vector3): void;
665
+ }
666
+ export class CameraControl implements ICameraControl {
667
+ protected _camera: LCPCamera;
668
+ protected _modelOrientationObserver: EventEmitter<CameraOrientation>;
669
+ constructor(_camera: LCPCamera, _modelOrientationObserver: EventEmitter<CameraOrientation>);
670
+ setCameraParameters(iParams: CameraParameters): void;
671
+ getCameraParameters(): CameraParameters;
672
+ orientateCamera(iOrientation: CameraOrientation, isAnimationEnabled?: boolean): void;
673
+ zoomToFit(bb: THREE.Box3, iOrientation?: CameraOrientation, isAnimationEnabled?: boolean): void;
674
+ getCamera(): THREE.Camera;
675
+ isNavigation(): boolean;
676
+ isRotationNavigation(): boolean;
677
+ setNavigationByMouseActive(isActive: boolean, navDuration?: number): void;
678
+ setNavigationByKeyboardActive(isActive: boolean): void;
679
+ setRotationNavigationActive(isActive: boolean): void;
680
+ zoomToPoint(deltaSign: number, point: THREE.Vector3): void;
681
+ translate(prevPosNdc: THREE.Vector2, currPosNdc: THREE.Vector2, viewCenter: THREE.Vector3): void;
682
+ spin(movement: THREE.Vector2): void;
683
+ rotate(movement: THREE.Vector2, rotationCenter: THREE.Vector3): void;
684
+ setImpulseDirection(dir: Direction, add: boolean): void;
685
+ setIncreasedImpulse(isIncreased: boolean): void;
686
+ getMovementVector(): THREE.Vector3;
687
+ moveByImpulse(elapsed_ms: number, movementVector?: THREE.Vector3, intersection?: THREE.Intersection): boolean;
688
+ getPivotPoint(): THREE.Vector3;
689
+ setPivotPoint(pt: THREE.Vector3): void;
690
+ }
691
+ export enum IntersectionType {
692
+ Outside = 0,
693
+ Contains = 1,
694
+ Intersects = 2
695
+ }
696
+ export class IntersectionItem {
697
+ minParam: number;
698
+ maxParam: number;
699
+ node: Node;
700
+ intersectionType: IntersectionType;
701
+ constructor(minParam: number, maxParam: number, node: Node, intersectionType?: IntersectionType);
702
+ }
703
+ class Node {
704
+ box: THREE.Box3;
705
+ guid: string;
706
+ isValid: boolean;
707
+ zCurveIdx: number;
708
+ lft: Node | undefined;
709
+ rht: Node | undefined;
710
+ constructor(iBox?: THREE.Box3, guid?: string);
711
+ isLeaf(): boolean;
712
+ }
713
+ type BvhNodeType<T extends THREE.Object3D> = {
714
+ object: T;
715
+ };
716
+ export class BvhLeafNode<T extends THREE.Object3D> extends Node {
717
+ data: BvhNodeType<T> | undefined;
718
+ constructor(iBox: THREE.Box3, iData: BvhNodeType<T>, guid?: string);
719
+ }
720
+ export interface IBvh {
721
+ get needsUpdate(): boolean;
722
+ rebuild(): void;
723
+ getRootBox(): THREE.Box3;
724
+ add(nodes: Node[] | Node): boolean;
725
+ update(nodes: Node[] | Node): boolean;
726
+ remove(nodes: string[] | string): boolean;
727
+ intersectRay(iRay: THREE.Ray, iTol: number): IntersectionItem[];
728
+ intersectFrustum(frustum: THREE.Frustum): IntersectionItem[];
729
+ clear(): void;
730
+ }
731
+ export class Bvh implements IBvh {
732
+ constructor(ioLeafNodes: Node[]);
733
+ get needsUpdate(): boolean;
734
+ rebuild(): void;
735
+ add(nodes: Node[] | Node): boolean;
736
+ update(nodes: Node[] | Node): boolean;
737
+ remove(nodes: string[] | string): boolean;
738
+ intersectRay(iRay: THREE.Ray, iTol: number): IntersectionItem[];
739
+ intersectFrustum(frustum: THREE.Frustum): IntersectionItem[];
740
+ getRootBox(): THREE.Box3;
741
+ clear(): void;
742
+ }
743
+ export {};
744
+ export class BvhRaycaster<T extends THREE.Object3D> extends THREE.Raycaster {
745
+ constructor();
746
+ intersectObjectsBvh(iTree: IBvh[], iFirstOnly?: boolean): THREE.Intersection<T>[];
747
+ }
748
+ export class BvhFrustumIntersector<T extends THREE.Object3D> {
749
+ intersectObjectsBvh(iTree: Bvh[], ndcFrustumBox: THREE.Box3, unProjMatrix: THREE.Matrix4, isContainsOnly: boolean, getObjectGeometry?: (object: T) => THREE.Mesh | THREE.LineSegments): T[];
750
+ checkMeshIntersection(obj: THREE.Mesh, ndcFrustumBox: THREE.Box3, projMatrix: THREE.Matrix4, isContainsOnly: boolean): IntersectionType;
751
+ /**
752
+ * Calc intersection by SAT method
753
+ * * IntersectionType.Outside - no intersection
754
+ * * IntersectionType.Contains - a-polygon contains in b-polygon
755
+ * * IntersectionType.Intersects - a-polygon contains or intersects b-polygon
756
+ * @param {THREE.Vector2[]} a points
757
+ * @param {THREE.Vector2[]} b points
758
+ * @returns IntersectionType
759
+ */
760
+ calcSatIntersection(a: THREE.Vector2[], b: THREE.Vector2[]): IntersectionType;
761
+ }
762
+ export interface IModelIntersectionChecker {
763
+ get modelCenter(): THREE.Vector3;
764
+ getIntersectionPoint(): THREE.Vector3 | undefined;
765
+ getIntersectionByRay(ray: THREE.Ray): THREE.Intersection<THREE.Object3D> | undefined;
766
+ getIntersectionIDByRay(ray: THREE.Ray): {
767
+ modelId: string;
768
+ guid: string;
769
+ } | undefined;
770
+ getIntersectionByNdcPt(ndcPos: THREE.Vector2, camera: THREE.Camera): THREE.Intersection<THREE.Object3D> | undefined;
771
+ getIntersectionIDByNdcPt(ndcPos: THREE.Vector2, camera: THREE.Camera): {
772
+ modelId: string;
773
+ guid: string;
774
+ } | undefined;
775
+ getIntersectionIDByFrustumNdcPt(ndcFrustumBox: THREE.Box3, unProjMatrix: THREE.Matrix4, isContainsOnly: boolean): {
776
+ modelId: string;
777
+ guid: string;
778
+ }[] | undefined;
779
+ clear(): void;
780
+ dispose(): void;
781
+ loadObjects(iObjects: THREE.Object3D[]): void;
782
+ removeObjects(iObjects: THREE.Object3D[]): void;
783
+ updateObjects(iObjects: THREE.Object3D[]): void;
784
+ manageIntersectionModel(allottedTime: DOMHighResTimeStamp): boolean;
785
+ }
786
+ export abstract class IntersectionChecker<T extends THREE.Object3D> {
787
+ protected _raycaster: BvhRaycaster<T>;
788
+ protected _ndcRaycaster: THREE.Raycaster;
789
+ protected _frustumIntersector: BvhFrustumIntersector<T>;
790
+ protected _prevRay?: THREE.Ray;
791
+ protected _currentIntersection?: THREE.Intersection<T>;
792
+ get modelCenter(): THREE.Vector3;
793
+ getIntersectionPoint(): THREE.Vector3 | undefined;
794
+ getIntersectionByRay(ray: THREE.Ray): THREE.Intersection<T> | undefined;
795
+ getIntersectionByNdcPt(ndcPos: THREE.Vector2, camera: THREE.Camera): THREE.Intersection<T> | undefined;
796
+ clear(): void;
797
+ dispose(): void;
798
+ abstract loadObjects(iObjects: T[]): void;
799
+ protected abstract getBvh(): IBvh[];
800
+ protected updateIntersectionByRay(ray: THREE.Ray, iTolerance?: number): void;
801
+ protected updateIntersectionByNdcPt(ndc: THREE.Vector2, camera: THREE.Camera, iTolerance?: number): void;
802
+ }
803
+ export class ModelIntersectionChecker extends IntersectionChecker<ViewObject> implements IModelIntersectionChecker {
804
+ protected _modelCenter: THREE.Vector3;
805
+ get modelCenter(): THREE.Vector3;
806
+ loadObjects(iObjects: ViewObject[]): void;
807
+ removeObjects(iObjects: THREE.Object3D<THREE.Event>[]): void;
808
+ updateObjects(iObjects: THREE.Object3D<THREE.Event>[]): void;
809
+ manageIntersectionModel(allottedTime: number): boolean;
810
+ clear(): void;
811
+ getIntersectionIDByRay(ray: THREE.Ray): {
812
+ modelId: string;
813
+ guid: string;
814
+ };
815
+ getIntersectionIDByNdcPt(ndcPos: THREE.Vector2, camera: THREE.Camera): {
816
+ modelId: string;
817
+ guid: string;
818
+ } | undefined;
819
+ getIntersectionIDByFrustumNdcPt(ndcFrustumBox: THREE.Box3, unProjMatrix: THREE.Matrix4, isContainsOnly: boolean): {
820
+ modelId: string;
821
+ guid: string;
822
+ }[] | undefined;
823
+ protected getBvh(): Bvh[];
824
+ }
825
+ export abstract class NavigationEventHandler {
826
+ protected _isActive: boolean;
827
+ protected _canvas: HTMLCanvasElement;
828
+ protected _cameraControl: ICameraControl;
829
+ protected _intersectionChecker: IModelIntersectionChecker;
830
+ protected _viewCenter: THREE.Vector3;
831
+ abstract get name(): string;
832
+ init(canvas: HTMLCanvasElement, cameraControl: ICameraControl, intersectionChecker: IModelIntersectionChecker): void;
833
+ deInit(): void;
834
+ dispose(): void;
835
+ getViewCenter(): THREE.Vector3;
836
+ setViewCenter(viewCenter: THREE.Vector3): void;
837
+ setCameraParameters(iParams: {
838
+ position: THREE.Vector3;
839
+ eyeDir: THREE.Vector3;
840
+ angle: number;
841
+ viewCenter: THREE.Vector3;
842
+ }): void;
843
+ getCameraParameters(): {
844
+ position: THREE.Vector3;
845
+ eyeDir: THREE.Vector3;
846
+ angle: number;
847
+ viewCenter: THREE.Vector3;
848
+ };
849
+ clear(): void;
850
+ protected handleHovered(object: THREE.Object3D): void;
851
+ protected handleClick(object: THREE.Object3D, ctrlKey: boolean): void;
852
+ protected handleDblClick(object: THREE.Object3D): void;
853
+ protected abstract addEvents(): void;
854
+ protected abstract removeEvents(): void;
855
+ protected rotate(movement: THREE.Vector2): void;
856
+ protected translate(prevPos: THREE.Vector2, currPos: THREE.Vector2): void;
857
+ protected spin(movement: THREE.Vector2): void;
858
+ protected zoom(deltaSign: number): void;
859
+ protected resetSelection(): void;
860
+ }
861
+ export class DesktopNavigationEventHandler extends NavigationEventHandler {
862
+ protected _prevMousePos?: THREE.Vector2;
863
+ protected _mouseLftIsDown: boolean;
864
+ protected _mouseLftIsDownPos?: THREE.Vector2;
865
+ protected _mouseRhtIsDown: boolean;
866
+ protected _mouseMidIsDown: boolean;
867
+ protected _boundOnMouseEnter: any;
868
+ protected _boundOnMouseLeave: any;
869
+ protected _boundOnMouseMove: any;
870
+ protected _boundOnMouseClick: any;
871
+ protected _boundOnMouseDoubleClick: any;
872
+ protected _boundOnMouseScroll: any;
873
+ protected _boundOnMouseDown: any;
874
+ protected _boundOnMouseUp: any;
875
+ protected _boundOnKeyDown: any;
876
+ protected _boundOnKeyUp: any;
877
+ get name(): string;
878
+ protected addEvents(): void;
879
+ protected removeEvents(): void;
880
+ protected onMouseEnter(ev: MouseEvent): void;
881
+ protected onMouseLeave(ev: MouseEvent): void;
882
+ protected onMouseMove(ev: MouseEvent): void;
883
+ protected onMouseClick(ev: MouseEvent): void;
884
+ protected onMouseDoubleClick(ev: MouseEvent): void;
885
+ protected onMouseScroll(ev: WheelEvent): void;
886
+ protected onMouseDown(ev: MouseEvent): void;
887
+ protected onMouseUp(ev: MouseEvent): void;
888
+ protected onKeyDown(ev: KeyboardEvent): void;
889
+ protected onKeyUp(ev: KeyboardEvent): void;
890
+ protected findSupportedEvent(array: string[]): string | undefined;
891
+ protected isAllMouseButtonsUp(): boolean;
892
+ protected setImpulseDirection(dir: Direction, add: boolean): void;
893
+ protected setIncreasedImpulse(isIncreased: boolean): void;
894
+ }
895
+ export class MobileNavigationEventHandler extends NavigationEventHandler {
896
+ protected _initialTap?: THREE.Vector2;
897
+ protected _prevTap?: THREE.Vector2;
898
+ protected _prevPinch?: [THREE.Vector2, THREE.Vector2];
899
+ protected _boundOnTouchStart: any;
900
+ protected _boundOnTouchEnd: any;
901
+ protected _boundOnTouchMove: any;
902
+ get name(): string;
903
+ protected addEvents(): void;
904
+ protected removeEvents(): void;
905
+ protected onTouchStart(evt: TouchEvent): void;
906
+ protected onTouchEnd(evt: TouchEvent): void;
907
+ protected onTouchMove(evt: TouchEvent): void;
908
+ protected onSwipe(currentPos: THREE.Vector2): void;
909
+ protected onPinch(iTouchPair: [THREE.Vector2, THREE.Vector2]): void;
910
+ protected getPinchCenter(iTouchPair: [THREE.Vector2, THREE.Vector2]): THREE.Vector2;
911
+ protected getTouchPoint(touch: Touch): THREE.Vector2;
912
+ protected getTouchPair(curTouches: TouchList): [THREE.Vector2, THREE.Vector2];
913
+ }
914
+ export class ViewcubeIntersectionChecker extends IntersectionChecker<ViewcubeElement> {
915
+ protected _hovered?: ViewcubeElement;
916
+ tryToHoverByRay(ray: THREE.Ray): void;
917
+ tryToHoverByNdcPt(ndcPos: THREE.Vector2, camera: THREE.Camera): void;
918
+ resetHover(): void;
919
+ loadObjects(iObjects: ViewcubeElement[]): void;
920
+ click(ndcPos: THREE.Vector2, camera: THREE.Camera): void;
921
+ dblClick(ndcPos: THREE.Vector2, camera: THREE.Camera): void;
922
+ clear(): void;
923
+ protected getObject(): ViewcubeElement | undefined;
924
+ protected getBvh(): Bvh[];
925
+ }
926
+ export class GlobalTextures {
927
+ static getTexture(iName: string): Promise<THREE.Texture>;
928
+ static getTextureWithUrl(iName: string, url: string): Promise<THREE.Texture>;
929
+ }
930
+ export enum ViewcubeAxis {
931
+ X = 0,
932
+ Y = 1,
933
+ Z = 2
934
+ }
935
+ export class ViewcubeElement extends THREE.Mesh {
936
+ constructor(geometry: THREE.BufferGeometry, defaultFaceMaterial: THREE.MeshLambertMaterial, outline: THREE.LineSegments, outlineDefaultVisibility: boolean, outlineDefaultMaterial: THREE.LineBasicMaterial, _defaultOrientation: CameraOrientation, _viewcubeOrientationObserver: EventEmitter<CameraOrientation>);
937
+ getOutline(): THREE.LineSegments<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
938
+ createMaterials(): void;
939
+ setUpVector(up: THREE.Vector3): void;
940
+ getBoundingBox(): THREE.Box3;
941
+ setHovered(iVal: boolean): void;
942
+ handleClick(): void;
943
+ handleDblClick(): void;
944
+ getDefaultOrientation(): CameraOrientation;
945
+ setSelected(isSelected: boolean): void;
946
+ }
947
+ export class Viewcube {
948
+ constructor(_resizableCanvasHolder: HTMLDivElement, _viewcubeHolder: HTMLDivElement, _renderer: I3DRenderer, _viewcubeOrientationObserver: EventDispatcher<CameraOrientation>, _updateCanvas: () => void, _sideBase64Images: TMap<string, string>);
949
+ click(ndcPos: THREE.Vector2): void;
950
+ dblClick(ndcPos: THREE.Vector2): void;
951
+ tryToHover(ndcPos: THREE.Vector2): void;
952
+ render(): void;
953
+ dispose(): void;
954
+ getScene(): THREE.Scene;
955
+ getCamera(): LCPCamera;
956
+ setOrientation(iOrientation: CameraOrientation): void;
957
+ updateSelectedElement(iOrientation: CameraOrientation): void;
958
+ addArrows(): void;
959
+ addBoxWireFrame(): void;
960
+ }
961
+ export class ImagesHolder {
962
+ container: HTMLDivElement;
963
+ sideBase64Images: TMap<string, string>;
964
+ constructor(container: HTMLDivElement);
965
+ addImage(name: string, svg: string): ImagesHolder;
966
+ }
967
+ export function warn(m: string, ...p: any[]): void;
968
+ export function assert(cond: any, message?: string, ...p: any[]): void;
969
+ export function check(cond: () => boolean, message?: string, ...p: any[]): void;
970
+ export function log(level: number, message: string, ...p: any[]): void;
971
+ export abstract class ScenePart extends THREE.Scene {
972
+ constructor(settings: RenderViewSettings, name?: string);
973
+ get avgRenderTime(): DOMHighResTimeStamp;
974
+ get needsRedraw(): boolean;
975
+ abstract get needsUpdate(): boolean;
976
+ update(...objects: TPair<THREE.Object3D, UpdateType>[]): this;
977
+ has(obj: THREE.Object3D): boolean;
978
+ onBeforeRender: (renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera, renderTarget: any) => void;
979
+ onAfterRender: (renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera) => void;
980
+ render(renderer: I3DRenderer, lcpCamera: LCPCamera): void;
981
+ updateSettings(settings: RenderViewSettings): void;
982
+ clear(): this;
983
+ dispose(): void;
984
+ abstract updateRange(objects: TPair<THREE.Object3D, UpdateType>[]): void;
985
+ abstract addRange(objects: THREE.Object3D[]): void;
986
+ abstract removeRange(objects: THREE.Object3D[]): void;
987
+ abstract manageScene(allottedTime: DOMHighResTimeStamp): boolean;
988
+ protected _needsRedraw: boolean;
989
+ protected _settings: RenderViewSettings;
990
+ protected _allObjects: Map<string, THREE.Object3D<THREE.Event>>;
991
+ protected _directionalLight: THREE.PointLight;
992
+ protected _ambientLight: THREE.AmbientLight;
993
+ }
994
+ const gTypedArrays: (Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor)[];
995
+ type AttrTypedArrayCtor = (typeof gTypedArrays)[0];
996
+ type AttributeInfo = {
997
+ type: AttrTypedArrayCtor;
998
+ name: string;
999
+ itemSize: number;
1000
+ normalized: boolean;
1001
+ };
1002
+ type GeometryInfo = {
1003
+ attr: AttributeInfo[];
1004
+ vertexCount: number;
1005
+ indexCount: number;
1006
+ };
1007
+ function getGeometryInfo(geom: THREE.BufferGeometry): GeometryInfo | undefined;
1008
+ function allocateMerged(geoms: GeometryInfo[]): THREE.BufferGeometry;
1009
+ type Position = {
1010
+ vertex: number;
1011
+ index: number;
1012
+ };
1013
+ function copyBufferGeometry(mergedGeometry: THREE.BufferGeometry, starts: Position, geometry: THREE.BufferGeometry, transform: THREE.Matrix4): Position;
1014
+ function copyIndexes(target: THREE.BufferAttribute, targetStart: number, source: THREE.BufferAttribute, indexOffset: number): number;
1015
+ function copyVertices(target: THREE.BufferGeometry, targetStart: number, source: THREE.BufferGeometry, transform: THREE.Matrix4): number;
1016
+ export { GeometryInfo, getGeometryInfo, allocateMerged, copyBufferGeometry, copyIndexes, copyVertices };
1017
+ export class ObjectData {
1018
+ readonly threeObj: THREE.Object3D;
1019
+ constructor(threeObj: THREE.Object3D);
1020
+ }
1021
+ export abstract class StorageBase implements IStorage {
1022
+ readonly storageTag: string;
1023
+ constructor(tag: string);
1024
+ get needsUpdate(): boolean;
1025
+ get edgeVisible(): boolean;
1026
+ set edgeVisible(value: boolean);
1027
+ getThreeObject(): THREE.Object3D;
1028
+ isEmpty(): boolean;
1029
+ has(obj: THREE.Object3D): boolean;
1030
+ update(obj: THREE.Object3D<THREE.Event>, updateType: UpdateType): void;
1031
+ manageStorage(allottedTime: DOMHighResTimeStamp): number;
1032
+ dispose(): void;
1033
+ abstract add(obj: THREE.Object3D): boolean;
1034
+ abstract remove(obj: THREE.Object3D): void;
1035
+ protected abstract updateObject(objData: ObjectData, updateType: UpdateType): void;
1036
+ protected addDrawnObject(objData: ObjectData): void;
1037
+ protected removeDrawnObject(objData: ObjectData): void;
1038
+ protected updateDrawnObject(objData: ObjectData): void;
1039
+ protected arrayRemove<Type>(array: Type[], elem: Type): void;
1040
+ protected _isEdgeVisible: boolean;
1041
+ protected readonly _threeObj: THREE.Object3D<THREE.Event>;
1042
+ protected _allObjects: Map<string, ObjectData>;
1043
+ protected _drawnObjects: ObjectData[];
1044
+ protected _updateQueue: Map<ObjectData, UpdateType>;
1045
+ }
1046
+ export function isVisible(objData: ObjectData): boolean;
1047
+ export class Block {
1048
+ readonly threeObj: MergeableType;
1049
+ readonly objects: BlockObjectData[];
1050
+ private constructor();
1051
+ static create(objects: BlockObjectData[], info: MergeableObjectInfo): Block;
1052
+ isNeedVisibilityUpdate(): boolean;
1053
+ updateVisibilityInBlock(): void;
1054
+ isVisible(): boolean;
1055
+ isVisibleInBlock(objData: BlockObjectData): boolean;
1056
+ dispose(): void;
1057
+ }
1058
+ type BlockPos = {
1059
+ vertex: number;
1060
+ index: number;
1061
+ };
1062
+ export class BlockObjectData extends ObjectData {
1063
+ readonly threeObj: MergeableType;
1064
+ constructor(threeObj: MergeableType);
1065
+ static create(iThreeObj: THREE.Object3D): BlockObjectData | undefined;
1066
+ readonly geom: Geom.GeometryInfo;
1067
+ block: Block;
1068
+ blockPos: BlockPos;
1069
+ }
1070
+ export class BlockStorage extends StorageBase {
1071
+ readonly info: MergeableObjectInfo;
1072
+ constructor(tag: string, info: MergeableObjectInfo);
1073
+ set edgeVisible(value: boolean);
1074
+ get needsUpdate(): boolean;
1075
+ add(obj: THREE.Object3D): boolean;
1076
+ remove(obj: THREE.Object3D): void;
1077
+ tryToMergeOneBlock(makeIncomplete?: boolean): boolean;
1078
+ manageStorage(allottedTime: DOMHighResTimeStamp): number;
1079
+ dispose(): void;
1080
+ protected updateObject(objData: ObjectData, updateType: UpdateType): void;
1081
+ }
1082
+ export {};
1083
+ export class UnmergeableStorage extends StorageBase {
1084
+ constructor(tag: string);
1085
+ add(obj: THREE.Object3D): boolean;
1086
+ remove(obj: THREE.Object3D): void;
1087
+ protected updateObject(objData: ObjectData, updateType: UpdateType): void;
1088
+ }
1089
+ export class InstancedObjectsStorage extends StorageBase {
1090
+ constructor(tag: string);
1091
+ set edgeVisible(value: boolean);
1092
+ add(obj: THREE.Object3D): boolean;
1093
+ remove(obj: THREE.Object3D): void;
1094
+ protected updateObject(objData: ObjectData, updateType: UpdateType): void;
1095
+ protected addDrawnObject(objData: ObjectData): void;
1096
+ }
1097
+ export interface IStorage {
1098
+ readonly storageTag: string;
1099
+ edgeVisible: boolean;
1100
+ get needsUpdate(): boolean;
1101
+ getThreeObject(): THREE.Object3D;
1102
+ isEmpty(): boolean;
1103
+ add(obj: THREE.Object3D): boolean;
1104
+ remove(obj: THREE.Object3D): void;
1105
+ has(obj: THREE.Object3D): boolean;
1106
+ update(obj: THREE.Object3D, updateType: UpdateType): void;
1107
+ manageStorage(allottedTime: DOMHighResTimeStamp): number;
1108
+ dispose(): void;
1109
+ }
1110
+ export function createStorage(objectTag: ObjectTag): IStorage;
1111
+ export class OverlayStorage extends StorageBase {
1112
+ constructor(tag: string);
1113
+ get needsUpdate(): boolean;
1114
+ set edgeVisible(value: boolean);
1115
+ add(obj: THREE.Object3D): boolean;
1116
+ remove(obj: THREE.Object3D): void;
1117
+ manageStorage(allottedTime: DOMHighResTimeStamp): number;
1118
+ dispose(): void;
1119
+ protected updateObject(objData: ObjectData, updateType: UpdateType): void;
1120
+ }
1121
+ export class BlockScene extends ScenePart {
1122
+ get needsUpdate(): boolean;
1123
+ add(...objects: THREE.Object3D<THREE.Event>[]): this;
1124
+ remove(...objects: THREE.Object3D<THREE.Event>[]): this;
1125
+ addRange(objects: THREE.Object3D<THREE.Event>[]): void;
1126
+ removeRange(objects: THREE.Object3D<THREE.Event>[]): void;
1127
+ updateRange(objects: TPair<THREE.Object3D<THREE.Event>, UpdateType>[]): void;
1128
+ clear(): this;
1129
+ manageScene(allottedTime: DOMHighResTimeStamp): boolean;
1130
+ render(renderer: I3DRenderer, lcpCamera: LCPCamera): void;
1131
+ traverse(callback: (object: THREE.Object3D<THREE.Event>) => any): void;
1132
+ traverseVisible(callback: (object: THREE.Object3D<THREE.Event>) => any): void;
1133
+ }
1134
+ export class OverlayScene extends ScenePart {
1135
+ constructor(settings: RenderViewSettings, name?: string);
1136
+ get needsUpdate(): boolean;
1137
+ add(...objects: THREE.Object3D<THREE.Event>[]): this;
1138
+ remove(...objects: THREE.Object3D<THREE.Event>[]): this;
1139
+ addRange(objects: THREE.Object3D<THREE.Event>[]): void;
1140
+ removeRange(objects: THREE.Object3D<THREE.Event>[]): void;
1141
+ updateRange(objects: TPair<THREE.Object3D<THREE.Event>, UpdateType>[]): void;
1142
+ clear(): this;
1143
+ dispose(): void;
1144
+ manageScene(allottedTime: DOMHighResTimeStamp): boolean;
1145
+ }
1146
+ export enum OperationStatus {
1147
+ Planned = 0,
1148
+ Suspended = 1,
1149
+ Finished = 2
1150
+ }
1151
+ export enum OperationMode {
1152
+ OneTime = 0,
1153
+ EveryCycle = 1,
1154
+ EveryFrame = 2
1155
+ }
1156
+ export enum OperationPriority {
1157
+ beforeAll = 0,
1158
+ scanForChanges = 8,
1159
+ applyChanges = 16,
1160
+ manageScenes = 24,
1161
+ renderScenes = 32,
1162
+ renderViewcube = 40,
1163
+ afterAll = 999
1164
+ }
1165
+ export class RenderOperation {
1166
+ constructor(id: string, mode: OperationMode, priority: number | OperationPriority, opDelegate: RenderOperationDelegate, opCallback?: (status: OperationStatus) => void);
1167
+ operationID: string;
1168
+ status: OperationStatus;
1169
+ mode: OperationMode;
1170
+ priority: number;
1171
+ opDelegate: RenderOperationDelegate;
1172
+ opCallback: (status: OperationStatus) => void;
1173
+ execute(context: RenderOperationContext): void;
1174
+ }
1175
+ export class RenderOperationContext {
1176
+ constructor(schedulerContext: RenderLoopContext);
1177
+ get isSuspensionRequested(): boolean;
1178
+ isRedrawRequested: boolean;
1179
+ isForcedExecution: boolean;
1180
+ get renderer(): I3DRenderer;
1181
+ get camera(): LCPCamera;
1182
+ get remainedTime(): DOMHighResTimeStamp;
1183
+ get elapsedTime(): DOMHighResTimeStamp;
1184
+ get lastFrameTimestamp(): DOMHighResTimeStamp;
1185
+ get lastRenderCycleTimestamp(): DOMHighResTimeStamp;
1186
+ get isElapsed(): boolean;
1187
+ get userData(): Map<string, any>;
1188
+ start(allottedTime: DOMHighResTimeStamp): void;
1189
+ }
1190
+ export type RenderOperationDelegate = (context: RenderOperationContext) => OperationStatus;
1191
+ class RenderLoopContext {
1192
+ constructor(renderer: I3DRenderer, camera: LCPCamera, operations: RenderOperation[]);
1193
+ isRedrawRequested: boolean;
1194
+ isForcedExecution: boolean;
1195
+ lastFrameTimestamp: DOMHighResTimeStamp;
1196
+ lastRenderCycleTimestamp: DOMHighResTimeStamp;
1197
+ readonly userData: Map<string, any>;
1198
+ readonly renderer: I3DRenderer;
1199
+ readonly camera: LCPCamera;
1200
+ createOperationContext(): RenderOperationContext;
1201
+ reset(operations: RenderOperation[]): void;
1202
+ isDone(): boolean;
1203
+ execute(): void;
1204
+ }
1205
+ export class RenderScheduler {
1206
+ renderer: I3DRenderer;
1207
+ camera: LCPCamera;
1208
+ constructor(renderer: I3DRenderer, camera: LCPCamera);
1209
+ isRedrawRequested: boolean;
1210
+ get renderLoopContext(): RenderLoopContext;
1211
+ addOperation(operation: RenderOperation): boolean;
1212
+ removeOperation(operation: RenderOperation): boolean;
1213
+ render(force?: boolean): Promise<void>;
1214
+ run(): void;
1215
+ stop(): void;
1216
+ reset(): void;
1217
+ clear(): void;
1218
+ }
1219
+ export {};
1220
+ export class RenderEngine {
1221
+ constructor(settings: RenderViewSettings, renderer: I3DRenderer, camera: LCPCamera, intersectionChecker: IModelIntersectionChecker);
1222
+ placeObjectOnScene(obj: THREE.Object3D, forceUpdate?: boolean): Promise<void>;
1223
+ removeObjectFromScene(obj: THREE.Object3D, forceUpdate?: boolean): Promise<void>;
1224
+ addScene(scene: ScenePart): void;
1225
+ removeScene(scene: ScenePart): void;
1226
+ getScenes(): THREE.Scene[];
1227
+ addOperation(operation: RenderOperation): boolean;
1228
+ removeOperation(operation: RenderOperation): boolean;
1229
+ render(): Promise<void>;
1230
+ traverse(callback: (object: THREE.Object3D<THREE.Event>) => any): void;
1231
+ clear(): void;
1232
+ dispose(): void;
1233
+ manageUpdates(): boolean;
1234
+ manageScenes(): void;
1235
+ updateSettings(settings: RenderViewSettings): void;
1236
+ }
1237
+ export class RenderHUD {
1238
+ constructor(_width: number, _height: number, _imagesHolder: ImagesHolder);
1239
+ setNavTargetVisibility(visible: boolean): void;
1240
+ getNavTargetVisibility(): boolean;
1241
+ setNavTargetPosition(screenSpaceNavTarget: THREE.Vector3): void;
1242
+ setDimensions(width: number, height: number): boolean;
1243
+ render(renderer: I3DRenderer): void;
1244
+ }
1245
+ export interface I3DRenderer {
1246
+ clear(color?: boolean, depth?: boolean, stencil?: boolean): void;
1247
+ clearDepth(): void;
1248
+ render(scene: THREE.Object3D, camera: THREE.Camera): void;
1249
+ getSize(target: THREE.Vector2): THREE.Vector2;
1250
+ setSize(width: number, height: number, updateStyle?: boolean): void;
1251
+ setViewport(x: THREE.Vector4 | number, y?: number, width?: number, height?: number): void;
1252
+ dispose(): void;
1253
+ clippingPlanes: any[];
1254
+ domElement: HTMLCanvasElement;
1255
+ }
1256
+ export class RenderView implements IViewer3D {
1257
+ constructor(_canvas: HTMLCanvasElement, _resizableCanvasContainer: HTMLDivElement, _renderHUD: RenderHUD, _viewcubeHolder: ImagesHolder, _renderer?: I3DRenderer, _settings?: RenderViewSettings);
1258
+ zoomToFit(): void;
1259
+ getObjectsBBox(selectedOnly: boolean): THREE.Box3;
1260
+ getObjectsBBox(viewObjects: ViewObject[]): THREE.Box3;
1261
+ setNavigationHandler(navigationHandler: NavigationEventHandler): void;
1262
+ getNavigationHandler(): NavigationEventHandler;
1263
+ placeObjectOnScene(iObj: THREE.Object3D): Promise<void>;
1264
+ getScenes(): THREE.Scene[];
1265
+ getCanvas(): HTMLCanvasElement;
1266
+ getViewCube(): Viewcube;
1267
+ getRenderer(): I3DRenderer;
1268
+ getCameraControl(): ICameraControl;
1269
+ getInteractionManager(): IModelIntersectionChecker;
1270
+ getRenderImage(type?: string, quality?: number): Promise<Blob>;
1271
+ getRenderSettings(): RenderViewSettings;
1272
+ clear(): void;
1273
+ dispose(): void;
1274
+ updateCurrentCanvas(): Promise<void>;
1275
+ showStats(show: boolean): void;
1276
+ }
1277
+ export enum IfcType {
1278
+ IfcAbsorbedDoseMeasure = 0,
1279
+ IfcAccelerationMeasure = 1,
1280
+ IfcActionRequest = 2,
1281
+ IfcActionRequestTypeEnum = 3,
1282
+ IfcActionSourceTypeEnum = 4,
1283
+ IfcActionTypeEnum = 5,
1284
+ IfcActor = 6,
1285
+ IfcActorRole = 7,
1286
+ IfcActorSelect = 8,
1287
+ IfcActuator = 9,
1288
+ IfcActuatorType = 10,
1289
+ IfcActuatorTypeEnum = 11,
1290
+ IfcAddress = 12,
1291
+ IfcAddressTypeEnum = 13,
1292
+ IfcAdvancedBrep = 14,
1293
+ IfcAdvancedBrepWithVoids = 15,
1294
+ IfcAdvancedFace = 16,
1295
+ IfcAirTerminal = 17,
1296
+ IfcAirTerminalBox = 18,
1297
+ IfcAirTerminalBoxType = 19,
1298
+ IfcAirTerminalBoxTypeEnum = 20,
1299
+ IfcAirTerminalType = 21,
1300
+ IfcAirTerminalTypeEnum = 22,
1301
+ IfcAirToAirHeatRecovery = 23,
1302
+ IfcAirToAirHeatRecoveryType = 24,
1303
+ IfcAirToAirHeatRecoveryTypeEnum = 25,
1304
+ IfcAlarm = 26,
1305
+ IfcAlarmType = 27,
1306
+ IfcAlarmTypeEnum = 28,
1307
+ IfcAlignment = 29,
1308
+ IfcAlignment2DHorizontal = 30,
1309
+ IfcAlignment2DHorizontalSegment = 31,
1310
+ IfcAlignment2DSegment = 32,
1311
+ IfcAlignment2DVerSegCircularArc = 33,
1312
+ IfcAlignment2DVerSegLine = 34,
1313
+ IfcAlignment2DVerSegParabolicArc = 35,
1314
+ IfcAlignment2DVertical = 36,
1315
+ IfcAlignment2DVerticalSegment = 37,
1316
+ IfcAlignmentCurve = 38,
1317
+ IfcAlignmentTypeEnum = 39,
1318
+ IfcAmountOfSubstanceMeasure = 40,
1319
+ IfcAnalysisModelTypeEnum = 41,
1320
+ IfcAnalysisTheoryTypeEnum = 42,
1321
+ IfcAngularVelocityMeasure = 43,
1322
+ IfcAnnotation = 44,
1323
+ IfcAnnotationFillArea = 45,
1324
+ IfcApplication = 46,
1325
+ IfcAppliedValue = 47,
1326
+ IfcAppliedValueSelect = 48,
1327
+ IfcApproval = 49,
1328
+ IfcApprovalRelationship = 50,
1329
+ IfcArbitraryClosedProfileDef = 51,
1330
+ IfcArbitraryOpenProfileDef = 52,
1331
+ IfcArbitraryProfileDefWithVoids = 53,
1332
+ IfcArcIndex = 54,
1333
+ IfcAreaDensityMeasure = 55,
1334
+ IfcAreaMeasure = 56,
1335
+ IfcArithmeticOperatorEnum = 57,
1336
+ IfcAssemblyPlaceEnum = 58,
1337
+ IfcAsset = 59,
1338
+ IfcAsymmetricIShapeProfileDef = 60,
1339
+ IfcAudioVisualAppliance = 61,
1340
+ IfcAudioVisualApplianceType = 62,
1341
+ IfcAudioVisualApplianceTypeEnum = 63,
1342
+ IfcAxis1Placement = 64,
1343
+ IfcAxis2Placement = 65,
1344
+ IfcAxis2Placement2D = 66,
1345
+ IfcAxis2Placement3D = 67,
1346
+ IfcBeam = 68,
1347
+ IfcBeamStandardCase = 69,
1348
+ IfcBeamType = 70,
1349
+ IfcBeamTypeEnum = 71,
1350
+ IfcBenchmarkEnum = 72,
1351
+ IfcBendingParameterSelect = 73,
1352
+ IfcBinary = 74,
1353
+ IfcBlobTexture = 75,
1354
+ IfcBlock = 76,
1355
+ IfcBoiler = 77,
1356
+ IfcBoilerType = 78,
1357
+ IfcBoilerTypeEnum = 79,
1358
+ IfcBoolean = 80,
1359
+ IfcBooleanClippingResult = 81,
1360
+ IfcBooleanOperand = 82,
1361
+ IfcBooleanOperator = 83,
1362
+ IfcBooleanResult = 84,
1363
+ IfcBoundaryCondition = 85,
1364
+ IfcBoundaryCurve = 86,
1365
+ IfcBoundaryEdgeCondition = 87,
1366
+ IfcBoundaryFaceCondition = 88,
1367
+ IfcBoundaryNodeCondition = 89,
1368
+ IfcBoundaryNodeConditionWarping = 90,
1369
+ IfcBoundedCurve = 91,
1370
+ IfcBoundedSurface = 92,
1371
+ IfcBoundingBox = 93,
1372
+ IfcBoxAlignment = 94,
1373
+ IfcBoxedHalfSpace = 95,
1374
+ IfcBSplineCurve = 96,
1375
+ IfcBSplineCurveForm = 97,
1376
+ IfcBSplineCurveWithKnots = 98,
1377
+ IfcBSplineSurface = 99,
1378
+ IfcBSplineSurfaceForm = 100,
1379
+ IfcBSplineSurfaceWithKnots = 101,
1380
+ IfcBuilding = 102,
1381
+ IfcBuildingElement = 103,
1382
+ IfcBuildingElementPart = 104,
1383
+ IfcBuildingElementPartType = 105,
1384
+ IfcBuildingElementPartTypeEnum = 106,
1385
+ IfcBuildingElementProxy = 107,
1386
+ IfcBuildingElementProxyType = 108,
1387
+ IfcBuildingElementProxyTypeEnum = 109,
1388
+ IfcBuildingElementType = 110,
1389
+ IfcBuildingStorey = 111,
1390
+ IfcBuildingSystem = 112,
1391
+ IfcBuildingSystemTypeEnum = 113,
1392
+ IfcBurner = 114,
1393
+ IfcBurnerType = 115,
1394
+ IfcBurnerTypeEnum = 116,
1395
+ IfcCableCarrierFitting = 117,
1396
+ IfcCableCarrierFittingType = 118,
1397
+ IfcCableCarrierFittingTypeEnum = 119,
1398
+ IfcCableCarrierSegment = 120,
1399
+ IfcCableCarrierSegmentType = 121,
1400
+ IfcCableCarrierSegmentTypeEnum = 122,
1401
+ IfcCableFitting = 123,
1402
+ IfcCableFittingType = 124,
1403
+ IfcCableFittingTypeEnum = 125,
1404
+ IfcCableSegment = 126,
1405
+ IfcCableSegmentType = 127,
1406
+ IfcCableSegmentTypeEnum = 128,
1407
+ IfcCardinalPointReference = 129,
1408
+ IfcCartesianPoint = 130,
1409
+ IfcCartesianPointList = 131,
1410
+ IfcCartesianPointList2D = 132,
1411
+ IfcCartesianPointList3D = 133,
1412
+ IfcCartesianTransformationOperator = 134,
1413
+ IfcCartesianTransformationOperator2D = 135,
1414
+ IfcCartesianTransformationOperator2DnonUniform = 136,
1415
+ IfcCartesianTransformationOperator3D = 137,
1416
+ IfcCartesianTransformationOperator3DnonUniform = 138,
1417
+ IfcCenterLineProfileDef = 139,
1418
+ IfcChangeActionEnum = 140,
1419
+ IfcChiller = 141,
1420
+ IfcChillerType = 142,
1421
+ IfcChillerTypeEnum = 143,
1422
+ IfcChimney = 144,
1423
+ IfcChimneyType = 145,
1424
+ IfcChimneyTypeEnum = 146,
1425
+ IfcCircle = 147,
1426
+ IfcCircleHollowProfileDef = 148,
1427
+ IfcCircleProfileDef = 149,
1428
+ IfcCircularArcSegment2D = 150,
1429
+ IfcCivilElement = 151,
1430
+ IfcCivilElementType = 152,
1431
+ IfcClassification = 153,
1432
+ IfcClassificationReference = 154,
1433
+ IfcClassificationReferenceSelect = 155,
1434
+ IfcClassificationSelect = 156,
1435
+ IfcClosedShell = 157,
1436
+ IfcCoil = 158,
1437
+ IfcCoilType = 159,
1438
+ IfcCoilTypeEnum = 160,
1439
+ IfcColour = 161,
1440
+ IfcColourOrFactor = 162,
1441
+ IfcColourRgb = 163,
1442
+ IfcColourRgbList = 164,
1443
+ IfcColourSpecification = 165,
1444
+ IfcColumn = 166,
1445
+ IfcColumnStandardCase = 167,
1446
+ IfcColumnType = 168,
1447
+ IfcColumnTypeEnum = 169,
1448
+ IfcCommunicationsAppliance = 170,
1449
+ IfcCommunicationsApplianceType = 171,
1450
+ IfcCommunicationsApplianceTypeEnum = 172,
1451
+ IfcComplexNumber = 173,
1452
+ IfcComplexProperty = 174,
1453
+ IfcComplexPropertyTemplate = 175,
1454
+ IfcComplexPropertyTemplateTypeEnum = 176,
1455
+ IfcCompositeCurve = 177,
1456
+ IfcCompositeCurveOnSurface = 178,
1457
+ IfcCompositeCurveSegment = 179,
1458
+ IfcCompositeProfileDef = 180,
1459
+ IfcCompoundPlaneAngleMeasure = 181,
1460
+ IfcCompressor = 182,
1461
+ IfcCompressorType = 183,
1462
+ IfcCompressorTypeEnum = 184,
1463
+ IfcCondenser = 185,
1464
+ IfcCondenserType = 186,
1465
+ IfcCondenserTypeEnum = 187,
1466
+ IfcConic = 188,
1467
+ IfcConnectedFaceSet = 189,
1468
+ IfcConnectionCurveGeometry = 190,
1469
+ IfcConnectionGeometry = 191,
1470
+ IfcConnectionPointEccentricity = 192,
1471
+ IfcConnectionPointGeometry = 193,
1472
+ IfcConnectionSurfaceGeometry = 194,
1473
+ IfcConnectionTypeEnum = 195,
1474
+ IfcConnectionVolumeGeometry = 196,
1475
+ IfcConstraint = 197,
1476
+ IfcConstraintEnum = 198,
1477
+ IfcConstructionEquipmentResource = 199,
1478
+ IfcConstructionEquipmentResourceType = 200,
1479
+ IfcConstructionEquipmentResourceTypeEnum = 201,
1480
+ IfcConstructionMaterialResource = 202,
1481
+ IfcConstructionMaterialResourceType = 203,
1482
+ IfcConstructionMaterialResourceTypeEnum = 204,
1483
+ IfcConstructionProductResource = 205,
1484
+ IfcConstructionProductResourceType = 206,
1485
+ IfcConstructionProductResourceTypeEnum = 207,
1486
+ IfcConstructionResource = 208,
1487
+ IfcConstructionResourceType = 209,
1488
+ IfcContext = 210,
1489
+ IfcContextDependentMeasure = 211,
1490
+ IfcContextDependentUnit = 212,
1491
+ IfcControl = 213,
1492
+ IfcController = 214,
1493
+ IfcControllerType = 215,
1494
+ IfcControllerTypeEnum = 216,
1495
+ IfcConversionBasedUnit = 217,
1496
+ IfcConversionBasedUnitWithOffset = 218,
1497
+ IfcCooledBeam = 219,
1498
+ IfcCooledBeamType = 220,
1499
+ IfcCooledBeamTypeEnum = 221,
1500
+ IfcCoolingTower = 222,
1501
+ IfcCoolingTowerType = 223,
1502
+ IfcCoolingTowerTypeEnum = 224,
1503
+ IfcCoordinateOperation = 225,
1504
+ IfcCoordinateReferenceSystem = 226,
1505
+ IfcCoordinateReferenceSystemSelect = 227,
1506
+ IfcCostItem = 228,
1507
+ IfcCostItemTypeEnum = 229,
1508
+ IfcCostSchedule = 230,
1509
+ IfcCostScheduleTypeEnum = 231,
1510
+ IfcCostValue = 232,
1511
+ IfcCountMeasure = 233,
1512
+ IfcCovering = 234,
1513
+ IfcCoveringType = 235,
1514
+ IfcCoveringTypeEnum = 236,
1515
+ IfcCrewResource = 237,
1516
+ IfcCrewResourceType = 238,
1517
+ IfcCrewResourceTypeEnum = 239,
1518
+ IfcCsgPrimitive3D = 240,
1519
+ IfcCsgSelect = 241,
1520
+ IfcCsgSolid = 242,
1521
+ IfcCShapeProfileDef = 243,
1522
+ IfcCurrencyRelationship = 244,
1523
+ IfcCurtainWall = 245,
1524
+ IfcCurtainWallType = 246,
1525
+ IfcCurtainWallTypeEnum = 247,
1526
+ IfcCurvatureMeasure = 248,
1527
+ IfcCurve = 249,
1528
+ IfcCurveBoundedPlane = 250,
1529
+ IfcCurveBoundedSurface = 251,
1530
+ IfcCurveFontOrScaledCurveFontSelect = 252,
1531
+ IfcCurveInterpolationEnum = 253,
1532
+ IfcCurveOnSurface = 254,
1533
+ IfcCurveOrEdgeCurve = 255,
1534
+ IfcCurveSegment2D = 256,
1535
+ IfcCurveStyle = 257,
1536
+ IfcCurveStyleFont = 258,
1537
+ IfcCurveStyleFontAndScaling = 259,
1538
+ IfcCurveStyleFontPattern = 260,
1539
+ IfcCurveStyleFontSelect = 261,
1540
+ IfcCylindricalSurface = 262,
1541
+ IfcDamper = 263,
1542
+ IfcDamperType = 264,
1543
+ IfcDamperTypeEnum = 265,
1544
+ IfcDataOriginEnum = 266,
1545
+ IfcDate = 267,
1546
+ IfcDateTime = 268,
1547
+ IfcDayInMonthNumber = 269,
1548
+ IfcDayInWeekNumber = 270,
1549
+ IfcDefinitionSelect = 271,
1550
+ IfcDerivedMeasureValue = 272,
1551
+ IfcDerivedProfileDef = 273,
1552
+ IfcDerivedUnit = 274,
1553
+ IfcDerivedUnitElement = 275,
1554
+ IfcDerivedUnitEnum = 276,
1555
+ IfcDescriptiveMeasure = 277,
1556
+ IfcDimensionalExponents = 278,
1557
+ IfcDimensionCount = 279,
1558
+ IfcDirection = 280,
1559
+ IfcDirectionSenseEnum = 281,
1560
+ IfcDiscreteAccessory = 282,
1561
+ IfcDiscreteAccessoryType = 283,
1562
+ IfcDiscreteAccessoryTypeEnum = 284,
1563
+ IfcDistanceExpression = 285,
1564
+ IfcDistributionChamberElement = 286,
1565
+ IfcDistributionChamberElementType = 287,
1566
+ IfcDistributionChamberElementTypeEnum = 288,
1567
+ IfcDistributionCircuit = 289,
1568
+ IfcDistributionControlElement = 290,
1569
+ IfcDistributionControlElementType = 291,
1570
+ IfcDistributionElement = 292,
1571
+ IfcDistributionElementType = 293,
1572
+ IfcDistributionFlowElement = 294,
1573
+ IfcDistributionFlowElementType = 295,
1574
+ IfcDistributionPort = 296,
1575
+ IfcDistributionPortTypeEnum = 297,
1576
+ IfcDistributionSystem = 298,
1577
+ IfcDistributionSystemEnum = 299,
1578
+ IfcDocumentConfidentialityEnum = 300,
1579
+ IfcDocumentInformation = 301,
1580
+ IfcDocumentInformationRelationship = 302,
1581
+ IfcDocumentReference = 303,
1582
+ IfcDocumentSelect = 304,
1583
+ IfcDocumentStatusEnum = 305,
1584
+ IfcDoor = 306,
1585
+ IfcDoorLiningProperties = 307,
1586
+ IfcDoorPanelOperationEnum = 308,
1587
+ IfcDoorPanelPositionEnum = 309,
1588
+ IfcDoorPanelProperties = 310,
1589
+ IfcDoorStandardCase = 311,
1590
+ IfcDoorStyle = 312,
1591
+ IfcDoorStyleConstructionEnum = 313,
1592
+ IfcDoorStyleOperationEnum = 314,
1593
+ IfcDoorType = 315,
1594
+ IfcDoorTypeEnum = 316,
1595
+ IfcDoorTypeOperationEnum = 317,
1596
+ IfcDoseEquivalentMeasure = 318,
1597
+ IfcDraughtingPreDefinedColour = 319,
1598
+ IfcDraughtingPreDefinedCurveFont = 320,
1599
+ IfcDuctFitting = 321,
1600
+ IfcDuctFittingType = 322,
1601
+ IfcDuctFittingTypeEnum = 323,
1602
+ IfcDuctSegment = 324,
1603
+ IfcDuctSegmentType = 325,
1604
+ IfcDuctSegmentTypeEnum = 326,
1605
+ IfcDuctSilencer = 327,
1606
+ IfcDuctSilencerType = 328,
1607
+ IfcDuctSilencerTypeEnum = 329,
1608
+ IfcDuration = 330,
1609
+ IfcDynamicViscosityMeasure = 331,
1610
+ IfcEdge = 332,
1611
+ IfcEdgeCurve = 333,
1612
+ IfcEdgeLoop = 334,
1613
+ IfcElectricAppliance = 335,
1614
+ IfcElectricApplianceType = 336,
1615
+ IfcElectricApplianceTypeEnum = 337,
1616
+ IfcElectricCapacitanceMeasure = 338,
1617
+ IfcElectricChargeMeasure = 339,
1618
+ IfcElectricConductanceMeasure = 340,
1619
+ IfcElectricCurrentMeasure = 341,
1620
+ IfcElectricDistributionBoard = 342,
1621
+ IfcElectricDistributionBoardType = 343,
1622
+ IfcElectricDistributionBoardTypeEnum = 344,
1623
+ IfcElectricFlowStorageDevice = 345,
1624
+ IfcElectricFlowStorageDeviceType = 346,
1625
+ IfcElectricFlowStorageDeviceTypeEnum = 347,
1626
+ IfcElectricGenerator = 348,
1627
+ IfcElectricGeneratorType = 349,
1628
+ IfcElectricGeneratorTypeEnum = 350,
1629
+ IfcElectricMotor = 351,
1630
+ IfcElectricMotorType = 352,
1631
+ IfcElectricMotorTypeEnum = 353,
1632
+ IfcElectricResistanceMeasure = 354,
1633
+ IfcElectricTimeControl = 355,
1634
+ IfcElectricTimeControlType = 356,
1635
+ IfcElectricTimeControlTypeEnum = 357,
1636
+ IfcElectricVoltageMeasure = 358,
1637
+ IfcElement = 359,
1638
+ IfcElementarySurface = 360,
1639
+ IfcElementAssembly = 361,
1640
+ IfcElementAssemblyType = 362,
1641
+ IfcElementAssemblyTypeEnum = 363,
1642
+ IfcElementComponent = 364,
1643
+ IfcElementComponentType = 365,
1644
+ IfcElementCompositionEnum = 366,
1645
+ IfcElementQuantity = 367,
1646
+ IfcElementType = 368,
1647
+ IfcEllipse = 369,
1648
+ IfcEllipseProfileDef = 370,
1649
+ IfcEnergyConversionDevice = 371,
1650
+ IfcEnergyConversionDeviceType = 372,
1651
+ IfcEnergyMeasure = 373,
1652
+ IfcEngine = 374,
1653
+ IfcEngineType = 375,
1654
+ IfcEngineTypeEnum = 376,
1655
+ IfcEvaporativeCooler = 377,
1656
+ IfcEvaporativeCoolerType = 378,
1657
+ IfcEvaporativeCoolerTypeEnum = 379,
1658
+ IfcEvaporator = 380,
1659
+ IfcEvaporatorType = 381,
1660
+ IfcEvaporatorTypeEnum = 382,
1661
+ IfcEvent = 383,
1662
+ IfcEventTime = 384,
1663
+ IfcEventTriggerTypeEnum = 385,
1664
+ IfcEventType = 386,
1665
+ IfcEventTypeEnum = 387,
1666
+ IfcExtendedProperties = 388,
1667
+ IfcExternalInformation = 389,
1668
+ IfcExternallyDefinedHatchStyle = 390,
1669
+ IfcExternallyDefinedSurfaceStyle = 391,
1670
+ IfcExternallyDefinedTextFont = 392,
1671
+ IfcExternalReference = 393,
1672
+ IfcExternalReferenceRelationship = 394,
1673
+ IfcExternalSpatialElement = 395,
1674
+ IfcExternalSpatialElementTypeEnum = 396,
1675
+ IfcExternalSpatialStructureElement = 397,
1676
+ IfcExtrudedAreaSolid = 398,
1677
+ IfcExtrudedAreaSolidTapered = 399,
1678
+ IfcFace = 400,
1679
+ IfcFaceBasedSurfaceModel = 401,
1680
+ IfcFaceBound = 402,
1681
+ IfcFaceOuterBound = 403,
1682
+ IfcFaceSurface = 404,
1683
+ IfcFacetedBrep = 405,
1684
+ IfcFacetedBrepWithVoids = 406,
1685
+ IfcFailureConnectionCondition = 407,
1686
+ IfcFan = 408,
1687
+ IfcFanType = 409,
1688
+ IfcFanTypeEnum = 410,
1689
+ IfcFastener = 411,
1690
+ IfcFastenerType = 412,
1691
+ IfcFastenerTypeEnum = 413,
1692
+ IfcFeatureElement = 414,
1693
+ IfcFeatureElementAddition = 415,
1694
+ IfcFeatureElementSubtraction = 416,
1695
+ IfcFillAreaStyle = 417,
1696
+ IfcFillAreaStyleHatching = 418,
1697
+ IfcFillAreaStyleTiles = 419,
1698
+ IfcFillStyleSelect = 420,
1699
+ IfcFilter = 421,
1700
+ IfcFilterType = 422,
1701
+ IfcFilterTypeEnum = 423,
1702
+ IfcFireSuppressionTerminal = 424,
1703
+ IfcFireSuppressionTerminalType = 425,
1704
+ IfcFireSuppressionTerminalTypeEnum = 426,
1705
+ IfcFixedReferenceSweptAreaSolid = 427,
1706
+ IfcFlowController = 428,
1707
+ IfcFlowControllerType = 429,
1708
+ IfcFlowDirectionEnum = 430,
1709
+ IfcFlowFitting = 431,
1710
+ IfcFlowFittingType = 432,
1711
+ IfcFlowInstrument = 433,
1712
+ IfcFlowInstrumentType = 434,
1713
+ IfcFlowInstrumentTypeEnum = 435,
1714
+ IfcFlowMeter = 436,
1715
+ IfcFlowMeterType = 437,
1716
+ IfcFlowMeterTypeEnum = 438,
1717
+ IfcFlowMovingDevice = 439,
1718
+ IfcFlowMovingDeviceType = 440,
1719
+ IfcFlowSegment = 441,
1720
+ IfcFlowSegmentType = 442,
1721
+ IfcFlowStorageDevice = 443,
1722
+ IfcFlowStorageDeviceType = 444,
1723
+ IfcFlowTerminal = 445,
1724
+ IfcFlowTerminalType = 446,
1725
+ IfcFlowTreatmentDevice = 447,
1726
+ IfcFlowTreatmentDeviceType = 448,
1727
+ IfcFontStyle = 449,
1728
+ IfcFontVariant = 450,
1729
+ IfcFontWeight = 451,
1730
+ IfcFooting = 452,
1731
+ IfcFootingType = 453,
1732
+ IfcFootingTypeEnum = 454,
1733
+ IfcForceMeasure = 455,
1734
+ IfcFrequencyMeasure = 456,
1735
+ IfcFurnishingElement = 457,
1736
+ IfcFurnishingElementType = 458,
1737
+ IfcFurniture = 459,
1738
+ IfcFurnitureType = 460,
1739
+ IfcFurnitureTypeEnum = 461,
1740
+ IfcGeographicElement = 462,
1741
+ IfcGeographicElementType = 463,
1742
+ IfcGeographicElementTypeEnum = 464,
1743
+ IfcGeometricCurveSet = 465,
1744
+ IfcGeometricProjectionEnum = 466,
1745
+ IfcGeometricRepresentationContext = 467,
1746
+ IfcGeometricRepresentationItem = 468,
1747
+ IfcGeometricRepresentationSubContext = 469,
1748
+ IfcGeometricSet = 470,
1749
+ IfcGeometricSetSelect = 471,
1750
+ IfcGloballyUniqueId = 472,
1751
+ IfcGlobalOrLocalEnum = 473,
1752
+ IfcGrid = 474,
1753
+ IfcGridAxis = 475,
1754
+ IfcGridPlacement = 476,
1755
+ IfcGridPlacementDirectionSelect = 477,
1756
+ IfcGridTypeEnum = 478,
1757
+ IfcGroup = 479,
1758
+ IfcHalfSpaceSolid = 480,
1759
+ IfcHatchLineDistanceSelect = 481,
1760
+ IfcHeatExchanger = 482,
1761
+ IfcHeatExchangerType = 483,
1762
+ IfcHeatExchangerTypeEnum = 484,
1763
+ IfcHeatFluxDensityMeasure = 485,
1764
+ IfcHeatingValueMeasure = 486,
1765
+ IfcHumidifier = 487,
1766
+ IfcHumidifierType = 488,
1767
+ IfcHumidifierTypeEnum = 489,
1768
+ IfcIdentifier = 490,
1769
+ IfcIlluminanceMeasure = 491,
1770
+ IfcImageTexture = 492,
1771
+ IfcIndexedColourMap = 493,
1772
+ IfcIndexedPolyCurve = 494,
1773
+ IfcIndexedPolygonalFace = 495,
1774
+ IfcIndexedPolygonalFaceWithVoids = 496,
1775
+ IfcIndexedTextureMap = 497,
1776
+ IfcIndexedTriangleTextureMap = 498,
1777
+ IfcInductanceMeasure = 499,
1778
+ IfcInteger = 500,
1779
+ IfcIntegerCountRateMeasure = 501,
1780
+ IfcInterceptor = 502,
1781
+ IfcInterceptorType = 503,
1782
+ IfcInterceptorTypeEnum = 504,
1783
+ IfcInternalOrExternalEnum = 505,
1784
+ IfcIntersectionCurve = 506,
1785
+ IfcInventory = 507,
1786
+ IfcInventoryTypeEnum = 508,
1787
+ IfcIonConcentrationMeasure = 509,
1788
+ IfcIrregularTimeSeries = 510,
1789
+ IfcIrregularTimeSeriesValue = 511,
1790
+ IfcIShapeProfileDef = 512,
1791
+ IfcIsothermalMoistureCapacityMeasure = 513,
1792
+ IfcJunctionBox = 514,
1793
+ IfcJunctionBoxType = 515,
1794
+ IfcJunctionBoxTypeEnum = 516,
1795
+ IfcKinematicViscosityMeasure = 517,
1796
+ IfcKnotType = 518,
1797
+ IfcLabel = 519,
1798
+ IfcLaborResource = 520,
1799
+ IfcLaborResourceType = 521,
1800
+ IfcLaborResourceTypeEnum = 522,
1801
+ IfcLagTime = 523,
1802
+ IfcLamp = 524,
1803
+ IfcLampType = 525,
1804
+ IfcLampTypeEnum = 526,
1805
+ IfcLanguageId = 527,
1806
+ IfcLayeredItem = 528,
1807
+ IfcLayerSetDirectionEnum = 529,
1808
+ IfcLengthMeasure = 530,
1809
+ IfcLibraryInformation = 531,
1810
+ IfcLibraryReference = 532,
1811
+ IfcLibrarySelect = 533,
1812
+ IfcLightDistributionCurveEnum = 534,
1813
+ IfcLightDistributionData = 535,
1814
+ IfcLightDistributionDataSourceSelect = 536,
1815
+ IfcLightEmissionSourceEnum = 537,
1816
+ IfcLightFixture = 538,
1817
+ IfcLightFixtureType = 539,
1818
+ IfcLightFixtureTypeEnum = 540,
1819
+ IfcLightIntensityDistribution = 541,
1820
+ IfcLightSource = 542,
1821
+ IfcLightSourceAmbient = 543,
1822
+ IfcLightSourceDirectional = 544,
1823
+ IfcLightSourceGoniometric = 545,
1824
+ IfcLightSourcePositional = 546,
1825
+ IfcLightSourceSpot = 547,
1826
+ IfcLine = 548,
1827
+ IfcLinearForceMeasure = 549,
1828
+ IfcLinearMomentMeasure = 550,
1829
+ IfcLinearPlacement = 551,
1830
+ IfcLinearPositioningElement = 552,
1831
+ IfcLinearStiffnessMeasure = 553,
1832
+ IfcLinearVelocityMeasure = 554,
1833
+ IfcLineIndex = 555,
1834
+ IfcLineSegment2D = 556,
1835
+ IfcLoadGroupTypeEnum = 557,
1836
+ IfcLocalPlacement = 558,
1837
+ IfcLogical = 559,
1838
+ IfcLogicalOperatorEnum = 560,
1839
+ IfcLoop = 561,
1840
+ IfcLShapeProfileDef = 562,
1841
+ IfcLuminousFluxMeasure = 563,
1842
+ IfcLuminousIntensityDistributionMeasure = 564,
1843
+ IfcLuminousIntensityMeasure = 565,
1844
+ IfcMagneticFluxDensityMeasure = 566,
1845
+ IfcMagneticFluxMeasure = 567,
1846
+ IfcManifoldSolidBrep = 568,
1847
+ IfcMapConversion = 569,
1848
+ IfcMappedItem = 570,
1849
+ IfcMassDensityMeasure = 571,
1850
+ IfcMassFlowRateMeasure = 572,
1851
+ IfcMassMeasure = 573,
1852
+ IfcMassPerLengthMeasure = 574,
1853
+ IfcMaterial = 575,
1854
+ IfcMaterialClassificationRelationship = 576,
1855
+ IfcMaterialConstituent = 577,
1856
+ IfcMaterialConstituentSet = 578,
1857
+ IfcMaterialDefinition = 579,
1858
+ IfcMaterialDefinitionRepresentation = 580,
1859
+ IfcMaterialLayer = 581,
1860
+ IfcMaterialLayerSet = 582,
1861
+ IfcMaterialLayerSetUsage = 583,
1862
+ IfcMaterialLayerWithOffsets = 584,
1863
+ IfcMaterialList = 585,
1864
+ IfcMaterialProfile = 586,
1865
+ IfcMaterialProfileSet = 587,
1866
+ IfcMaterialProfileSetUsage = 588,
1867
+ IfcMaterialProfileSetUsageTapering = 589,
1868
+ IfcMaterialProfileWithOffsets = 590,
1869
+ IfcMaterialProperties = 591,
1870
+ IfcMaterialRelationship = 592,
1871
+ IfcMaterialSelect = 593,
1872
+ IfcMaterialUsageDefinition = 594,
1873
+ IfcMeasureValue = 595,
1874
+ IfcMeasureWithUnit = 596,
1875
+ IfcMechanicalFastener = 597,
1876
+ IfcMechanicalFastenerType = 598,
1877
+ IfcMechanicalFastenerTypeEnum = 599,
1878
+ IfcMedicalDevice = 600,
1879
+ IfcMedicalDeviceType = 601,
1880
+ IfcMedicalDeviceTypeEnum = 602,
1881
+ IfcMember = 603,
1882
+ IfcMemberStandardCase = 604,
1883
+ IfcMemberType = 605,
1884
+ IfcMemberTypeEnum = 606,
1885
+ IfcMetric = 607,
1886
+ IfcMetricValueSelect = 608,
1887
+ IfcMirroredProfileDef = 609,
1888
+ IfcModulusOfElasticityMeasure = 610,
1889
+ IfcModulusOfLinearSubgradeReactionMeasure = 611,
1890
+ IfcModulusOfRotationalSubgradeReactionMeasure = 612,
1891
+ IfcModulusOfRotationalSubgradeReactionSelect = 613,
1892
+ IfcModulusOfSubgradeReactionMeasure = 614,
1893
+ IfcModulusOfSubgradeReactionSelect = 615,
1894
+ IfcModulusOfTranslationalSubgradeReactionSelect = 616,
1895
+ IfcMoistureDiffusivityMeasure = 617,
1896
+ IfcMolecularWeightMeasure = 618,
1897
+ IfcMomentOfInertiaMeasure = 619,
1898
+ IfcMonetaryMeasure = 620,
1899
+ IfcMonetaryUnit = 621,
1900
+ IfcMonthInYearNumber = 622,
1901
+ IfcMotorConnection = 623,
1902
+ IfcMotorConnectionType = 624,
1903
+ IfcMotorConnectionTypeEnum = 625,
1904
+ IfcNamedUnit = 626,
1905
+ IfcNonNegativeLengthMeasure = 627,
1906
+ IfcNormalisedRatioMeasure = 628,
1907
+ IfcNullStyle = 629,
1908
+ IfcNumericMeasure = 630,
1909
+ IfcObject = 631,
1910
+ IfcObjectDefinition = 632,
1911
+ IfcObjective = 633,
1912
+ IfcObjectiveEnum = 634,
1913
+ IfcObjectPlacement = 635,
1914
+ IfcObjectReferenceSelect = 636,
1915
+ IfcObjectTypeEnum = 637,
1916
+ IfcOccupant = 638,
1917
+ IfcOccupantTypeEnum = 639,
1918
+ IfcOffsetCurve = 640,
1919
+ IfcOffsetCurve2D = 641,
1920
+ IfcOffsetCurve3D = 642,
1921
+ IfcOffsetCurveByDistances = 643,
1922
+ IfcOpeningElement = 644,
1923
+ IfcOpeningElementTypeEnum = 645,
1924
+ IfcOpeningStandardCase = 646,
1925
+ IfcOpenShell = 647,
1926
+ IfcOrganization = 648,
1927
+ IfcOrganizationRelationship = 649,
1928
+ IfcOrientationExpression = 650,
1929
+ IfcOrientedEdge = 651,
1930
+ IfcOuterBoundaryCurve = 652,
1931
+ IfcOutlet = 653,
1932
+ IfcOutletType = 654,
1933
+ IfcOutletTypeEnum = 655,
1934
+ IfcOwnerHistory = 656,
1935
+ IfcParameterizedProfileDef = 657,
1936
+ IfcParameterValue = 658,
1937
+ IfcPath = 659,
1938
+ IfcPcurve = 660,
1939
+ IfcPerformanceHistory = 661,
1940
+ IfcPerformanceHistoryTypeEnum = 662,
1941
+ IfcPermeableCoveringOperationEnum = 663,
1942
+ IfcPermeableCoveringProperties = 664,
1943
+ IfcPermit = 665,
1944
+ IfcPermitTypeEnum = 666,
1945
+ IfcPerson = 667,
1946
+ IfcPersonAndOrganization = 668,
1947
+ IfcPHMeasure = 669,
1948
+ IfcPhysicalComplexQuantity = 670,
1949
+ IfcPhysicalOrVirtualEnum = 671,
1950
+ IfcPhysicalQuantity = 672,
1951
+ IfcPhysicalSimpleQuantity = 673,
1952
+ IfcPile = 674,
1953
+ IfcPileConstructionEnum = 675,
1954
+ IfcPileType = 676,
1955
+ IfcPileTypeEnum = 677,
1956
+ IfcPipeFitting = 678,
1957
+ IfcPipeFittingType = 679,
1958
+ IfcPipeFittingTypeEnum = 680,
1959
+ IfcPipeSegment = 681,
1960
+ IfcPipeSegmentType = 682,
1961
+ IfcPipeSegmentTypeEnum = 683,
1962
+ IfcPixelTexture = 684,
1963
+ IfcPlacement = 685,
1964
+ IfcPlanarBox = 686,
1965
+ IfcPlanarExtent = 687,
1966
+ IfcPlanarForceMeasure = 688,
1967
+ IfcPlane = 689,
1968
+ IfcPlaneAngleMeasure = 690,
1969
+ IfcPlate = 691,
1970
+ IfcPlateStandardCase = 692,
1971
+ IfcPlateType = 693,
1972
+ IfcPlateTypeEnum = 694,
1973
+ IfcPoint = 695,
1974
+ IfcPointOnCurve = 696,
1975
+ IfcPointOnSurface = 697,
1976
+ IfcPointOrVertexPoint = 698,
1977
+ IfcPolygonalBoundedHalfSpace = 699,
1978
+ IfcPolygonalFaceSet = 700,
1979
+ IfcPolyline = 701,
1980
+ IfcPolyLoop = 702,
1981
+ IfcPort = 703,
1982
+ IfcPositioningElement = 704,
1983
+ IfcPositiveInteger = 705,
1984
+ IfcPositiveLengthMeasure = 706,
1985
+ IfcPositivePlaneAngleMeasure = 707,
1986
+ IfcPositiveRatioMeasure = 708,
1987
+ IfcPostalAddress = 709,
1988
+ IfcPowerMeasure = 710,
1989
+ IfcPreDefinedColour = 711,
1990
+ IfcPreDefinedCurveFont = 712,
1991
+ IfcPreDefinedItem = 713,
1992
+ IfcPreDefinedProperties = 714,
1993
+ IfcPreDefinedPropertySet = 715,
1994
+ IfcPreDefinedTextFont = 716,
1995
+ IfcPreferredSurfaceCurveRepresentation = 717,
1996
+ IfcPresentableText = 718,
1997
+ IfcPresentationItem = 719,
1998
+ IfcPresentationLayerAssignment = 720,
1999
+ IfcPresentationLayerWithStyle = 721,
2000
+ IfcPresentationStyle = 722,
2001
+ IfcPresentationStyleAssignment = 723,
2002
+ IfcPresentationStyleSelect = 724,
2003
+ IfcPressureMeasure = 725,
2004
+ IfcProcedure = 726,
2005
+ IfcProcedureType = 727,
2006
+ IfcProcedureTypeEnum = 728,
2007
+ IfcProcess = 729,
2008
+ IfcProcessSelect = 730,
2009
+ IfcProduct = 731,
2010
+ IfcProductDefinitionShape = 732,
2011
+ IfcProductRepresentation = 733,
2012
+ IfcProductRepresentationSelect = 734,
2013
+ IfcProductSelect = 735,
2014
+ IfcProfileDef = 736,
2015
+ IfcProfileProperties = 737,
2016
+ IfcProfileTypeEnum = 738,
2017
+ IfcProject = 739,
2018
+ IfcProjectedCRS = 740,
2019
+ IfcProjectedOrTrueLengthEnum = 741,
2020
+ IfcProjectionElement = 742,
2021
+ IfcProjectionElementTypeEnum = 743,
2022
+ IfcProjectLibrary = 744,
2023
+ IfcProjectOrder = 745,
2024
+ IfcProjectOrderTypeEnum = 746,
2025
+ IfcProperty = 747,
2026
+ IfcPropertyAbstraction = 748,
2027
+ IfcPropertyBoundedValue = 749,
2028
+ IfcPropertyDefinition = 750,
2029
+ IfcPropertyDependencyRelationship = 751,
2030
+ IfcPropertyEnumeratedValue = 752,
2031
+ IfcPropertyEnumeration = 753,
2032
+ IfcPropertyListValue = 754,
2033
+ IfcPropertyReferenceValue = 755,
2034
+ IfcPropertySet = 756,
2035
+ IfcPropertySetDefinition = 757,
2036
+ IfcPropertySetDefinitionSelect = 758,
2037
+ IfcPropertySetDefinitionSet = 759,
2038
+ IfcPropertySetTemplate = 760,
2039
+ IfcPropertySetTemplateTypeEnum = 761,
2040
+ IfcPropertySingleValue = 762,
2041
+ IfcPropertyTableValue = 763,
2042
+ IfcPropertyTemplate = 764,
2043
+ IfcPropertyTemplateDefinition = 765,
2044
+ IfcProtectiveDevice = 766,
2045
+ IfcProtectiveDeviceTrippingUnit = 767,
2046
+ IfcProtectiveDeviceTrippingUnitType = 768,
2047
+ IfcProtectiveDeviceTrippingUnitTypeEnum = 769,
2048
+ IfcProtectiveDeviceType = 770,
2049
+ IfcProtectiveDeviceTypeEnum = 771,
2050
+ IfcProxy = 772,
2051
+ IfcPump = 773,
2052
+ IfcPumpType = 774,
2053
+ IfcPumpTypeEnum = 775,
2054
+ IfcQuantityArea = 776,
2055
+ IfcQuantityCount = 777,
2056
+ IfcQuantityLength = 778,
2057
+ IfcQuantitySet = 779,
2058
+ IfcQuantityTime = 780,
2059
+ IfcQuantityVolume = 781,
2060
+ IfcQuantityWeight = 782,
2061
+ IfcRadioActivityMeasure = 783,
2062
+ IfcRailing = 784,
2063
+ IfcRailingType = 785,
2064
+ IfcRailingTypeEnum = 786,
2065
+ IfcRamp = 787,
2066
+ IfcRampFlight = 788,
2067
+ IfcRampFlightType = 789,
2068
+ IfcRampFlightTypeEnum = 790,
2069
+ IfcRampType = 791,
2070
+ IfcRampTypeEnum = 792,
2071
+ IfcRatioMeasure = 793,
2072
+ IfcRationalBSplineCurveWithKnots = 794,
2073
+ IfcRationalBSplineSurfaceWithKnots = 795,
2074
+ IfcReal = 796,
2075
+ IfcRectangleHollowProfileDef = 797,
2076
+ IfcRectangleProfileDef = 798,
2077
+ IfcRectangularPyramid = 799,
2078
+ IfcRectangularTrimmedSurface = 800,
2079
+ IfcRecurrencePattern = 801,
2080
+ IfcRecurrenceTypeEnum = 802,
2081
+ IfcReference = 803,
2082
+ IfcReferent = 804,
2083
+ IfcReferentTypeEnum = 805,
2084
+ IfcReflectanceMethodEnum = 806,
2085
+ IfcRegularTimeSeries = 807,
2086
+ IfcReinforcementBarProperties = 808,
2087
+ IfcReinforcementDefinitionProperties = 809,
2088
+ IfcReinforcingBar = 810,
2089
+ IfcReinforcingBarRoleEnum = 811,
2090
+ IfcReinforcingBarSurfaceEnum = 812,
2091
+ IfcReinforcingBarType = 813,
2092
+ IfcReinforcingBarTypeEnum = 814,
2093
+ IfcReinforcingElement = 815,
2094
+ IfcReinforcingElementType = 816,
2095
+ IfcReinforcingMesh = 817,
2096
+ IfcReinforcingMeshType = 818,
2097
+ IfcReinforcingMeshTypeEnum = 819,
2098
+ IfcRelAggregates = 820,
2099
+ IfcRelAssigns = 821,
2100
+ IfcRelAssignsToActor = 822,
2101
+ IfcRelAssignsToControl = 823,
2102
+ IfcRelAssignsToGroup = 824,
2103
+ IfcRelAssignsToGroupByFactor = 825,
2104
+ IfcRelAssignsToProcess = 826,
2105
+ IfcRelAssignsToProduct = 827,
2106
+ IfcRelAssignsToResource = 828,
2107
+ IfcRelAssociates = 829,
2108
+ IfcRelAssociatesApproval = 830,
2109
+ IfcRelAssociatesClassification = 831,
2110
+ IfcRelAssociatesConstraint = 832,
2111
+ IfcRelAssociatesDocument = 833,
2112
+ IfcRelAssociatesLibrary = 834,
2113
+ IfcRelAssociatesMaterial = 835,
2114
+ IfcRelationship = 836,
2115
+ IfcRelConnects = 837,
2116
+ IfcRelConnectsElements = 838,
2117
+ IfcRelConnectsPathElements = 839,
2118
+ IfcRelConnectsPorts = 840,
2119
+ IfcRelConnectsPortToElement = 841,
2120
+ IfcRelConnectsStructuralActivity = 842,
2121
+ IfcRelConnectsStructuralMember = 843,
2122
+ IfcRelConnectsWithEccentricity = 844,
2123
+ IfcRelConnectsWithRealizingElements = 845,
2124
+ IfcRelContainedInSpatialStructure = 846,
2125
+ IfcRelCoversBldgElements = 847,
2126
+ IfcRelCoversSpaces = 848,
2127
+ IfcRelDeclares = 849,
2128
+ IfcRelDecomposes = 850,
2129
+ IfcRelDefines = 851,
2130
+ IfcRelDefinesByObject = 852,
2131
+ IfcRelDefinesByProperties = 853,
2132
+ IfcRelDefinesByTemplate = 854,
2133
+ IfcRelDefinesByType = 855,
2134
+ IfcRelFillsElement = 856,
2135
+ IfcRelFlowControlElements = 857,
2136
+ IfcRelInterferesElements = 858,
2137
+ IfcRelNests = 859,
2138
+ IfcRelProjectsElement = 860,
2139
+ IfcRelReferencedInSpatialStructure = 861,
2140
+ IfcRelSequence = 862,
2141
+ IfcRelServicesBuildings = 863,
2142
+ IfcRelSpaceBoundary = 864,
2143
+ IfcRelSpaceBoundary1stLevel = 865,
2144
+ IfcRelSpaceBoundary2ndLevel = 866,
2145
+ IfcRelVoidsElement = 867,
2146
+ IfcReparametrisedCompositeCurveSegment = 868,
2147
+ IfcRepresentation = 869,
2148
+ IfcRepresentationContext = 870,
2149
+ IfcRepresentationItem = 871,
2150
+ IfcRepresentationMap = 872,
2151
+ IfcResource = 873,
2152
+ IfcResourceApprovalRelationship = 874,
2153
+ IfcResourceConstraintRelationship = 875,
2154
+ IfcResourceLevelRelationship = 876,
2155
+ IfcResourceObjectSelect = 877,
2156
+ IfcResourceSelect = 878,
2157
+ IfcResourceTime = 879,
2158
+ IfcRevolvedAreaSolid = 880,
2159
+ IfcRevolvedAreaSolidTapered = 881,
2160
+ IfcRightCircularCone = 882,
2161
+ IfcRightCircularCylinder = 883,
2162
+ IfcRoleEnum = 884,
2163
+ IfcRoof = 885,
2164
+ IfcRoofType = 886,
2165
+ IfcRoofTypeEnum = 887,
2166
+ IfcRoot = 888,
2167
+ IfcRotationalFrequencyMeasure = 889,
2168
+ IfcRotationalMassMeasure = 890,
2169
+ IfcRotationalStiffnessMeasure = 891,
2170
+ IfcRotationalStiffnessSelect = 892,
2171
+ IfcRoundedRectangleProfileDef = 893,
2172
+ IfcSanitaryTerminal = 894,
2173
+ IfcSanitaryTerminalType = 895,
2174
+ IfcSanitaryTerminalTypeEnum = 896,
2175
+ IfcSchedulingTime = 897,
2176
+ IfcSeamCurve = 898,
2177
+ IfcSectionalAreaIntegralMeasure = 899,
2178
+ IfcSectionedSolid = 900,
2179
+ IfcSectionedSolidHorizontal = 901,
2180
+ IfcSectionedSpine = 902,
2181
+ IfcSectionModulusMeasure = 903,
2182
+ IfcSectionProperties = 904,
2183
+ IfcSectionReinforcementProperties = 905,
2184
+ IfcSectionTypeEnum = 906,
2185
+ IfcSegmentIndexSelect = 907,
2186
+ IfcSensor = 908,
2187
+ IfcSensorType = 909,
2188
+ IfcSensorTypeEnum = 910,
2189
+ IfcSequenceEnum = 911,
2190
+ IfcShadingDevice = 912,
2191
+ IfcShadingDeviceType = 913,
2192
+ IfcShadingDeviceTypeEnum = 914,
2193
+ IfcShapeAspect = 915,
2194
+ IfcShapeModel = 916,
2195
+ IfcShapeRepresentation = 917,
2196
+ IfcShearModulusMeasure = 918,
2197
+ IfcShell = 919,
2198
+ IfcShellBasedSurfaceModel = 920,
2199
+ IfcSimpleProperty = 921,
2200
+ IfcSimplePropertyTemplate = 922,
2201
+ IfcSimplePropertyTemplateTypeEnum = 923,
2202
+ IfcSimpleValue = 924,
2203
+ IfcSIPrefix = 925,
2204
+ IfcSite = 926,
2205
+ IfcSIUnit = 927,
2206
+ IfcSIUnitName = 928,
2207
+ IfcSizeSelect = 929,
2208
+ IfcSlab = 930,
2209
+ IfcSlabElementedCase = 931,
2210
+ IfcSlabStandardCase = 932,
2211
+ IfcSlabType = 933,
2212
+ IfcSlabTypeEnum = 934,
2213
+ IfcSlippageConnectionCondition = 935,
2214
+ IfcSolarDevice = 936,
2215
+ IfcSolarDeviceType = 937,
2216
+ IfcSolarDeviceTypeEnum = 938,
2217
+ IfcSolidAngleMeasure = 939,
2218
+ IfcSolidModel = 940,
2219
+ IfcSolidOrShell = 941,
2220
+ IfcSoundPowerLevelMeasure = 942,
2221
+ IfcSoundPowerMeasure = 943,
2222
+ IfcSoundPressureLevelMeasure = 944,
2223
+ IfcSoundPressureMeasure = 945,
2224
+ IfcSpace = 946,
2225
+ IfcSpaceBoundarySelect = 947,
2226
+ IfcSpaceHeater = 948,
2227
+ IfcSpaceHeaterType = 949,
2228
+ IfcSpaceHeaterTypeEnum = 950,
2229
+ IfcSpaceType = 951,
2230
+ IfcSpaceTypeEnum = 952,
2231
+ IfcSpatialElement = 953,
2232
+ IfcSpatialElementType = 954,
2233
+ IfcSpatialStructureElement = 955,
2234
+ IfcSpatialStructureElementType = 956,
2235
+ IfcSpatialZone = 957,
2236
+ IfcSpatialZoneType = 958,
2237
+ IfcSpatialZoneTypeEnum = 959,
2238
+ IfcSpecificHeatCapacityMeasure = 960,
2239
+ IfcSpecularExponent = 961,
2240
+ IfcSpecularHighlightSelect = 962,
2241
+ IfcSpecularRoughness = 963,
2242
+ IfcSphere = 964,
2243
+ IfcSphericalSurface = 965,
2244
+ IfcStackTerminal = 966,
2245
+ IfcStackTerminalType = 967,
2246
+ IfcStackTerminalTypeEnum = 968,
2247
+ IfcStair = 969,
2248
+ IfcStairFlight = 970,
2249
+ IfcStairFlightType = 971,
2250
+ IfcStairFlightTypeEnum = 972,
2251
+ IfcStairType = 973,
2252
+ IfcStairTypeEnum = 974,
2253
+ IfcStateEnum = 975,
2254
+ IfcStrippedOptional = 976,
2255
+ IfcStructuralAction = 977,
2256
+ IfcStructuralActivity = 978,
2257
+ IfcStructuralActivityAssignmentSelect = 979,
2258
+ IfcStructuralAnalysisModel = 980,
2259
+ IfcStructuralConnection = 981,
2260
+ IfcStructuralConnectionCondition = 982,
2261
+ IfcStructuralCurveAction = 983,
2262
+ IfcStructuralCurveActivityTypeEnum = 984,
2263
+ IfcStructuralCurveConnection = 985,
2264
+ IfcStructuralCurveMember = 986,
2265
+ IfcStructuralCurveMemberTypeEnum = 987,
2266
+ IfcStructuralCurveMemberVarying = 988,
2267
+ IfcStructuralCurveReaction = 989,
2268
+ IfcStructuralItem = 990,
2269
+ IfcStructuralLinearAction = 991,
2270
+ IfcStructuralLoad = 992,
2271
+ IfcStructuralLoadCase = 993,
2272
+ IfcStructuralLoadConfiguration = 994,
2273
+ IfcStructuralLoadGroup = 995,
2274
+ IfcStructuralLoadLinearForce = 996,
2275
+ IfcStructuralLoadOrResult = 997,
2276
+ IfcStructuralLoadPlanarForce = 998,
2277
+ IfcStructuralLoadSingleDisplacement = 999,
2278
+ IfcStructuralLoadSingleDisplacementDistortion = 1000,
2279
+ IfcStructuralLoadSingleForce = 1001,
2280
+ IfcStructuralLoadSingleForceWarping = 1002,
2281
+ IfcStructuralLoadStatic = 1003,
2282
+ IfcStructuralLoadTemperature = 1004,
2283
+ IfcStructuralMember = 1005,
2284
+ IfcStructuralPlanarAction = 1006,
2285
+ IfcStructuralPointAction = 1007,
2286
+ IfcStructuralPointConnection = 1008,
2287
+ IfcStructuralPointReaction = 1009,
2288
+ IfcStructuralReaction = 1010,
2289
+ IfcStructuralResultGroup = 1011,
2290
+ IfcStructuralSurfaceAction = 1012,
2291
+ IfcStructuralSurfaceActivityTypeEnum = 1013,
2292
+ IfcStructuralSurfaceConnection = 1014,
2293
+ IfcStructuralSurfaceMember = 1015,
2294
+ IfcStructuralSurfaceMemberTypeEnum = 1016,
2295
+ IfcStructuralSurfaceMemberVarying = 1017,
2296
+ IfcStructuralSurfaceReaction = 1018,
2297
+ IfcStyleAssignmentSelect = 1019,
2298
+ IfcStyledItem = 1020,
2299
+ IfcStyledRepresentation = 1021,
2300
+ IfcStyleModel = 1022,
2301
+ IfcSubContractResource = 1023,
2302
+ IfcSubContractResourceType = 1024,
2303
+ IfcSubContractResourceTypeEnum = 1025,
2304
+ IfcSubedge = 1026,
2305
+ IfcSurface = 1027,
2306
+ IfcSurfaceCurve = 1028,
2307
+ IfcSurfaceCurveSweptAreaSolid = 1029,
2308
+ IfcSurfaceFeature = 1030,
2309
+ IfcSurfaceFeatureTypeEnum = 1031,
2310
+ IfcSurfaceOfLinearExtrusion = 1032,
2311
+ IfcSurfaceOfRevolution = 1033,
2312
+ IfcSurfaceOrFaceSurface = 1034,
2313
+ IfcSurfaceReinforcementArea = 1035,
2314
+ IfcSurfaceSide = 1036,
2315
+ IfcSurfaceStyle = 1037,
2316
+ IfcSurfaceStyleElementSelect = 1038,
2317
+ IfcSurfaceStyleLighting = 1039,
2318
+ IfcSurfaceStyleRefraction = 1040,
2319
+ IfcSurfaceStyleRendering = 1041,
2320
+ IfcSurfaceStyleShading = 1042,
2321
+ IfcSurfaceStyleWithTextures = 1043,
2322
+ IfcSurfaceTexture = 1044,
2323
+ IfcSweptAreaSolid = 1045,
2324
+ IfcSweptDiskSolid = 1046,
2325
+ IfcSweptDiskSolidPolygonal = 1047,
2326
+ IfcSweptSurface = 1048,
2327
+ IfcSwitchingDevice = 1049,
2328
+ IfcSwitchingDeviceType = 1050,
2329
+ IfcSwitchingDeviceTypeEnum = 1051,
2330
+ IfcSystem = 1052,
2331
+ IfcSystemFurnitureElement = 1053,
2332
+ IfcSystemFurnitureElementType = 1054,
2333
+ IfcSystemFurnitureElementTypeEnum = 1055,
2334
+ IfcTable = 1056,
2335
+ IfcTableColumn = 1057,
2336
+ IfcTableRow = 1058,
2337
+ IfcTank = 1059,
2338
+ IfcTankType = 1060,
2339
+ IfcTankTypeEnum = 1061,
2340
+ IfcTask = 1062,
2341
+ IfcTaskDurationEnum = 1063,
2342
+ IfcTaskTime = 1064,
2343
+ IfcTaskTimeRecurring = 1065,
2344
+ IfcTaskType = 1066,
2345
+ IfcTaskTypeEnum = 1067,
2346
+ IfcTelecomAddress = 1068,
2347
+ IfcTemperatureGradientMeasure = 1069,
2348
+ IfcTemperatureRateOfChangeMeasure = 1070,
2349
+ IfcTendon = 1071,
2350
+ IfcTendonAnchor = 1072,
2351
+ IfcTendonAnchorType = 1073,
2352
+ IfcTendonAnchorTypeEnum = 1074,
2353
+ IfcTendonType = 1075,
2354
+ IfcTendonTypeEnum = 1076,
2355
+ IfcTessellatedFaceSet = 1077,
2356
+ IfcTessellatedItem = 1078,
2357
+ IfcText = 1079,
2358
+ IfcTextAlignment = 1080,
2359
+ IfcTextDecoration = 1081,
2360
+ IfcTextFontName = 1082,
2361
+ IfcTextFontSelect = 1083,
2362
+ IfcTextLiteral = 1084,
2363
+ IfcTextLiteralWithExtent = 1085,
2364
+ IfcTextPath = 1086,
2365
+ IfcTextStyle = 1087,
2366
+ IfcTextStyleFontModel = 1088,
2367
+ IfcTextStyleForDefinedFont = 1089,
2368
+ IfcTextStyleTextModel = 1090,
2369
+ IfcTextTransformation = 1091,
2370
+ IfcTextureCoordinate = 1092,
2371
+ IfcTextureCoordinateGenerator = 1093,
2372
+ IfcTextureMap = 1094,
2373
+ IfcTextureVertex = 1095,
2374
+ IfcTextureVertexList = 1096,
2375
+ IfcThermalAdmittanceMeasure = 1097,
2376
+ IfcThermalConductivityMeasure = 1098,
2377
+ IfcThermalExpansionCoefficientMeasure = 1099,
2378
+ IfcThermalResistanceMeasure = 1100,
2379
+ IfcThermalTransmittanceMeasure = 1101,
2380
+ IfcThermodynamicTemperatureMeasure = 1102,
2381
+ IfcTime = 1103,
2382
+ IfcTimeMeasure = 1104,
2383
+ IfcTimeOrRatioSelect = 1105,
2384
+ IfcTimePeriod = 1106,
2385
+ IfcTimeSeries = 1107,
2386
+ IfcTimeSeriesDataTypeEnum = 1108,
2387
+ IfcTimeSeriesValue = 1109,
2388
+ IfcTimeStamp = 1110,
2389
+ IfcTopologicalRepresentationItem = 1111,
2390
+ IfcTopologyRepresentation = 1112,
2391
+ IfcToroidalSurface = 1113,
2392
+ IfcTorqueMeasure = 1114,
2393
+ IfcTransformer = 1115,
2394
+ IfcTransformerType = 1116,
2395
+ IfcTransformerTypeEnum = 1117,
2396
+ IfcTransitionCode = 1118,
2397
+ IfcTransitionCurveSegment2D = 1119,
2398
+ IfcTransitionCurveType = 1120,
2399
+ IfcTranslationalStiffnessSelect = 1121,
2400
+ IfcTransportElement = 1122,
2401
+ IfcTransportElementType = 1123,
2402
+ IfcTransportElementTypeEnum = 1124,
2403
+ IfcTrapeziumProfileDef = 1125,
2404
+ IfcTriangulatedFaceSet = 1126,
2405
+ IfcTriangulatedIrregularNetwork = 1127,
2406
+ IfcTrimmedCurve = 1128,
2407
+ IfcTrimmingPreference = 1129,
2408
+ IfcTrimmingSelect = 1130,
2409
+ IfcTShapeProfileDef = 1131,
2410
+ IfcTubeBundle = 1132,
2411
+ IfcTubeBundleType = 1133,
2412
+ IfcTubeBundleTypeEnum = 1134,
2413
+ IfcTypeObject = 1135,
2414
+ IfcTypeProcess = 1136,
2415
+ IfcTypeProduct = 1137,
2416
+ IfcTypeResource = 1138,
2417
+ IfcUnit = 1139,
2418
+ IfcUnitaryControlElement = 1140,
2419
+ IfcUnitaryControlElementType = 1141,
2420
+ IfcUnitaryControlElementTypeEnum = 1142,
2421
+ IfcUnitaryEquipment = 1143,
2422
+ IfcUnitaryEquipmentType = 1144,
2423
+ IfcUnitaryEquipmentTypeEnum = 1145,
2424
+ IfcUnitAssignment = 1146,
2425
+ IfcUnitEnum = 1147,
2426
+ IfcURIReference = 1148,
2427
+ IfcUShapeProfileDef = 1149,
2428
+ IfcValue = 1150,
2429
+ IfcValve = 1151,
2430
+ IfcValveType = 1152,
2431
+ IfcValveTypeEnum = 1153,
2432
+ IfcVaporPermeabilityMeasure = 1154,
2433
+ IfcVector = 1155,
2434
+ IfcVectorOrDirection = 1156,
2435
+ IfcVertex = 1157,
2436
+ IfcVertexLoop = 1158,
2437
+ IfcVertexPoint = 1159,
2438
+ IfcVibrationIsolator = 1160,
2439
+ IfcVibrationIsolatorType = 1161,
2440
+ IfcVibrationIsolatorTypeEnum = 1162,
2441
+ IfcVirtualElement = 1163,
2442
+ IfcVirtualGridIntersection = 1164,
2443
+ IfcVoidingFeature = 1165,
2444
+ IfcVoidingFeatureTypeEnum = 1166,
2445
+ IfcVolumeMeasure = 1167,
2446
+ IfcVolumetricFlowRateMeasure = 1168,
2447
+ IfcWall = 1169,
2448
+ IfcWallElementedCase = 1170,
2449
+ IfcWallStandardCase = 1171,
2450
+ IfcWallType = 1172,
2451
+ IfcWallTypeEnum = 1173,
2452
+ IfcWarpingConstantMeasure = 1174,
2453
+ IfcWarpingMomentMeasure = 1175,
2454
+ IfcWarpingStiffnessSelect = 1176,
2455
+ IfcWasteTerminal = 1177,
2456
+ IfcWasteTerminalType = 1178,
2457
+ IfcWasteTerminalTypeEnum = 1179,
2458
+ IfcWindow = 1180,
2459
+ IfcWindowLiningProperties = 1181,
2460
+ IfcWindowPanelOperationEnum = 1182,
2461
+ IfcWindowPanelPositionEnum = 1183,
2462
+ IfcWindowPanelProperties = 1184,
2463
+ IfcWindowStandardCase = 1185,
2464
+ IfcWindowStyle = 1186,
2465
+ IfcWindowStyleConstructionEnum = 1187,
2466
+ IfcWindowStyleOperationEnum = 1188,
2467
+ IfcWindowType = 1189,
2468
+ IfcWindowTypeEnum = 1190,
2469
+ IfcWindowTypePartitioningEnum = 1191,
2470
+ IfcWorkCalendar = 1192,
2471
+ IfcWorkCalendarTypeEnum = 1193,
2472
+ IfcWorkControl = 1194,
2473
+ IfcWorkPlan = 1195,
2474
+ IfcWorkPlanTypeEnum = 1196,
2475
+ IfcWorkSchedule = 1197,
2476
+ IfcWorkScheduleTypeEnum = 1198,
2477
+ IfcWorkTime = 1199,
2478
+ IfcZone = 1200,
2479
+ IfcZShapeProfileDef = 1201,
2480
+ UNDEFINED = 1202,
2481
+ Other3DModel = 1203
2482
+ }
2483
+ export class ModelElementPropertySet {
2484
+ name: string;
2485
+ properties: ModelElementProperty[];
2486
+ type: IfcType;
2487
+ }
2488
+ export class ModelElementProperty {
2489
+ name: string;
2490
+ unit: number;
2491
+ value: ModelElementPropertyValue;
2492
+ }
2493
+ export class ModelElementPropertyValue {
2494
+ str_value?: string;
2495
+ int_value?: number;
2496
+ double_value?: number;
2497
+ date_value?: BigInt;
2498
+ array_value: Array<string>;
2499
+ decimal_value?: number;
2500
+ guid_value?: string;
2501
+ array_int_value: Array<number>;
2502
+ bool_value?: boolean;
2503
+ get value(): any;
2504
+ }
2505
+ export const svgBack: string;
2506
+ export const svgBottom: string;
2507
+ export const svgFront: string;
2508
+ export const svgLeft: string;
2509
+ export const svgRight: string;
2510
+ export const svgTop: string;
2511
+ export const navTarget: string;
2512
+ export class ModelElement {
2513
+ constructor(entity: ModelEntity);
2514
+ get id(): string;
2515
+ get modelPartId(): string;
2516
+ get parent(): ModelElement | undefined;
2517
+ get type(): string;
2518
+ get name(): string;
2519
+ get children(): ModelElement[];
2520
+ get hasGeometry(): boolean;
2521
+ get boundingBoxCenter(): {
2522
+ x: number;
2523
+ y: number;
2524
+ z: number;
2525
+ };
2526
+ }
2527
+ export class ModelElementTree {
2528
+ constructor(_treeAccess: ModelEntityTreeAccess);
2529
+ /**
2530
+ *
2531
+ * @param {string|ModelElement} element - element id or element instance
2532
+ * @param callback
2533
+ * @param recursive
2534
+ */
2535
+ enumElementChildren(element: string | ModelElement, callback: (guid: string) => void, recursive?: boolean): void;
2536
+ /**
2537
+ * Gets the root element of the model part
2538
+ * @returns {ModelElement} - model element instance
2539
+ */
2540
+ getRootElement(): ModelElement;
2541
+ /**
2542
+ * Gets all elements of the model part
2543
+ * @returns array of the model elements
2544
+ */
2545
+ getAllElements(): ModelElement[];
2546
+ /**
2547
+ * Gets model element by id
2548
+ * @param { string } id - model element id
2549
+ * @returns model element;
2550
+ */
2551
+ getElement(id: string): ModelElement;
2552
+ /**
2553
+ * Checks given element is viewable
2554
+ * @param {string|ModelElement} element - element id or element instance
2555
+ * @returns {boolean}
2556
+ */
2557
+ isViewableElement(element: string | ModelElement): boolean;
2558
+ /**
2559
+ * Checks given element is detached from the root element
2560
+ * @param {string|ModelElement} element - element id or element instance
2561
+ * @returns {boolean}
2562
+ */
2563
+ isDetachedElement(element: string | ModelElement): boolean;
2564
+ /**
2565
+ * Gets the element level in the element tree
2566
+ * @param {string|ModelElement} element - element id or element instance
2567
+ * @returns {number} - level of the element
2568
+ */
2569
+ getChildLevelNumber(element: string | ModelElement): number;
2570
+ }
2571
+ export class ModelPart {
2572
+ constructor(model: ModelImpl);
2573
+ get id(): string;
2574
+ get elementTree(): ModelElementTree;
2575
+ dispose(): void;
2576
+ }
2577
+ export class SettingsNames {
2578
+ static TELEMETRY: string;
2579
+ static AXES: string;
2580
+ static CAMERA_ANIMATION: string;
2581
+ static HIDE_SMALL_ELEMENTS_WHEN_NAVIGATING: string;
2582
+ static GLOBAL_LIGHT: string;
2583
+ static LIGHT_SOURCE: string;
2584
+ static ANTI_ALIASING: string;
2585
+ static HIDE_SMALL_ELEMENTS_MOVING: string;
2586
+ static SMALL_ELEMENT_SIZE: string;
2587
+ static LABEL_LINE_LENGTH: string;
2588
+ static HIDE_EDGES_WHEN_NAVIGATING: string;
2589
+ static DISPLAY_MODE: string;
2590
+ static NAVIGATION_CUBE: string;
2591
+ }
2592
+ export enum ValueType {
2593
+ STRING = 0,
2594
+ NUMBER = 1,
2595
+ ENUM = 2,
2596
+ BOOL = 3
2597
+ }
2598
+ export class Viewer3DConfiguration extends ViewerConfiguration {
2599
+ settings?: ViewerSettings;
2600
+ }
2601
+ export const defaultViewer3DSettings: ViewerSettings;
2602
+ export class SettingsActualizer {
2603
+ constructor(settingsStorage: ISettings);
2604
+ actualize(settings?: ViewerSettings): ViewerSettings;
2605
+ actualizeRenderSettings(settings?: ViewerSettings): RenderViewSettings;
2606
+ }
2607
+ export class ColorManager {
2608
+ constructor(elementEntityProvider: IElementEntityProvider);
2609
+ getColoredNodes(): ElementEntitySet[];
2610
+ setColor(entityIds: string[], color: Color, modelId: string): void;
2611
+ reset(entityIds: string[], modelId: string): void;
2612
+ resetAll(modelId?: string): void;
2613
+ }
2614
+ export class VisibilityManager {
2615
+ constructor(elementEntityProvider: IElementEntityProvider);
2616
+ getHiddenElementEntities(): ElementEntitySet[];
2617
+ hide(entityIds: string[], modelId: string): void;
2618
+ show(entityIds: string[], modelId: string): void;
2619
+ showAll(): void;
2620
+ hideModel(modelId: string): void;
2621
+ showModel(modelId: string): void;
2622
+ getHiddenModelIds(): string[];
2623
+ }
2624
+ export class ModelPartContainer {
2625
+ modelPartImpl: ModelImpl;
2626
+ modelWasm: IWasmModelPart;
2627
+ constructor(impl: ModelImpl, wasm: IWasmModelPart);
2628
+ dispose(): void;
2629
+ }
2630
+ export class ModelPartsHolder implements IElementEntityProvider {
2631
+ getElementEntity(id: string, modelPartId: string): ModelEntity | undefined;
2632
+ getElementEntities(modelPartId: string): ModelEntity[];
2633
+ addModelPart(modelPart: ModelImpl, wasmPart: IWasmModelPart): boolean;
2634
+ removeModelPart(modelPartId: string): boolean;
2635
+ clear(): void;
2636
+ getModelParts(): ModelPartContainer[];
2637
+ getModelPart(modelPartId?: string): ModelPartContainer | undefined;
2638
+ hasModelPart(modelPartId: string): boolean;
2639
+ }
2640
+ export class ModelElementIds {
2641
+ constructor(set: ElementEntitySet);
2642
+ modelPartId: string;
2643
+ elementIds: string[];
2644
+ }
2645
+ export class EventTypes extends CoreEventTypes {
2646
+ static SELECTION_CHANGED_EVENT: string;
2647
+ static MODEL_PART_LOADED: string;
2648
+ static MODEL_PART_UNLOADED: string;
2649
+ }
2650
+ export class SelectionEvent extends Event {
2651
+ resetPreviousSelection: boolean;
2652
+ isAddToSelection: boolean;
2653
+ selectionIds: ModelElementIds[];
2654
+ options: SelectionOptions;
2655
+ constructor(type: string, resetSelection: boolean, isAddToSelection: boolean, selectionIds: ModelElementIds[], options: SelectionOptions);
2656
+ }
2657
+ export class ModelPartEvent extends Event {
2658
+ modelPartId: string;
2659
+ constructor(type: string, modelPartId: string);
2660
+ }
2661
+ export class RenderViewHolder {
2662
+ renderView: RenderView;
2663
+ }
2664
+ export class Settings extends SettingsBase {
2665
+ constructor(renderViewHandler: RenderViewHolder, storage: ISettingsStorage, eventDispatcher: IEventsDispatcher);
2666
+ getSettingValue<T>(name: string): T;
2667
+ protected getKeyWithPrefix(key: string): string;
2668
+ }
2669
+ export function normalizeModelPartId(modelPartsHolder: ModelPartsHolder, model?: string | ModelPart): string | undefined;
2670
+ export function normalizeIds(nodeIds: string | string[]): string[];
2671
+ export const BigIntMaxValue: BigInt;
2672
+ export const BigIntMinValue: BigInt;
2673
+ export type CameraPosition = {
2674
+ /**
2675
+ * Position of camera/eye
2676
+ */
2677
+ position: {
2678
+ x: number;
2679
+ y: number;
2680
+ z: number;
2681
+ };
2682
+ /**
2683
+ * Eye direction: vector pointing from camera to target
2684
+ */
2685
+ eyeDir: {
2686
+ x: number;
2687
+ y: number;
2688
+ z: number;
2689
+ };
2690
+ /**
2691
+ * Field of view: angle in radians
2692
+ */
2693
+ angle: number;
2694
+ /**
2695
+ * Vector pointing to the center of viewing area
2696
+ */
2697
+ viewCenter: {
2698
+ x: number;
2699
+ y: number;
2700
+ z: number;
2701
+ };
2702
+ };
2703
+ export interface INavigaton {
2704
+ registerEventHandler(navEventHandler: NavigationEventHandler): void;
2705
+ unregisterEventHandler(navEventHandler: NavigationEventHandler): void;
2706
+ setActive(nvEventHandlerName: string, isActive: boolean): void;
2707
+ getActiveNavigation(): NavigationEventHandler;
2708
+ setDefaultNavigation(): void;
2709
+ setCameraPosition(params: CameraPosition): void;
2710
+ getCameraPosition(): CameraPosition;
2711
+ fitToView(elementIds: string[] | string, modelPart: string | ModelPart, immediate?: boolean): void;
2712
+ setPivotPoint(x: number, y: number, z: number): void;
2713
+ getPivotPoint(): {
2714
+ x: number;
2715
+ y: number;
2716
+ z: number;
2717
+ };
2718
+ resetPivotPoint(): void;
2719
+ clear(): void;
2720
+ }
2721
+ export class Navigation implements INavigaton {
2722
+ constructor(_renderViewHandler: RenderViewHolder, _modelPartsHolder: ModelPartsHolder);
2723
+ clear(): void;
2724
+ registerEventHandler(navEventHandler: NavigationEventHandler): void;
2725
+ unregisterEventHandler(navEventHandler: NavigationEventHandler): void;
2726
+ setActive(navEventHandlerName: string, isActive: boolean): void;
2727
+ setDefaultNavigation(): void;
2728
+ getActiveNavigation(): NavigationEventHandler;
2729
+ /**
2730
+ * Sets the cameras parameters.
2731
+ */
2732
+ setCameraPosition(params: CameraPosition): void;
2733
+ /**
2734
+ * Gets the cameras parameters.
2735
+ */
2736
+ getCameraPosition(): CameraPosition;
2737
+ /**
2738
+ *
2739
+ * @param {string[] | string} elementIds - element or array of elements
2740
+ * @param {string | ModelPart} modelPart - the model part id or the model part instance containing the elements.
2741
+ * @param {boolean} immediate - true to avoid the default transition.
2742
+ * @returns
2743
+ */
2744
+ fitToView(elementIds: string[] | string, modelPart?: string | ModelPart, immediate?: boolean): void;
2745
+ setPivotPoint(x: number, y: number, z: number): void;
2746
+ getPivotPoint(): {
2747
+ x: number;
2748
+ y: number;
2749
+ z: number;
2750
+ };
2751
+ resetPivotPoint(): void;
2752
+ }
2753
+ export interface IManagersProvider {
2754
+ getSelectionManger(modelsHolder: ModelPartsHolder): SelectionManager;
2755
+ getVisibilityManager(modelsHolder: ModelPartsHolder): VisibilityManager;
2756
+ getColorManager(modelsHolder: ModelPartsHolder): ColorManager;
2757
+ getSettingsManager(renderViewHolder: RenderViewHolder, eventsDispatcher: IEventsDispatcher): Settings;
2758
+ getNavigationManager(renderViewHolder: RenderViewHolder, modelPartsHolder: ModelPartsHolder): Navigation;
2759
+ }
2760
+ export class ManagerProvider implements IManagersProvider {
2761
+ getSelectionManger(modelsHolder: ModelPartsHolder): SelectionManager;
2762
+ getVisibilityManager(modelsHolder: ModelPartsHolder): VisibilityManager;
2763
+ getColorManager(modelsHolder: ModelPartsHolder): ColorManager;
2764
+ getSettingsManager(renderViewHolder: RenderViewHolder, eventsDispatcher: IEventsDispatcher): Settings;
2765
+ getNavigationManager(renderViewHolder: RenderViewHolder, modelPartsHolder: ModelPartsHolder): Navigation;
2766
+ }
2767
+ export class Tools {
2768
+ static is3dDocument(buffer: ArrayBuffer): Boolean;
2769
+ static is2dDocument(buffer: ArrayBuffer): boolean;
2770
+ }
2771
+ export const version = "1.0.0-1192";
2772
+ export class RenderEventsDispatcher extends EventsDispatcherCore {
2773
+ constructor();
2774
+ addEventListener(event: string, listener: EventListener, options?: any): void;
2775
+ }
2776
+ export class EventsObserver {
2777
+ protected eventsDispatcher: IEventsDispatcher;
2778
+ protected _listeners: Map<string, EventListener>;
2779
+ constructor(eventsDispatcher: IEventsDispatcher);
2780
+ watch(): void;
2781
+ dispose(): void;
2782
+ }
2783
+ /**
2784
+ * This class describes the coordination model. The coordination model contains parts of the model (aka ModelPart).
2785
+ */
2786
+ export class Model {
2787
+ constructor(modelPartsHolder: ModelPartsHolder, renderMaker: IRenderMaker, managerProvider: IManagersProvider, updateViewerFunc: () => void);
2788
+ /**
2789
+ * Returns all model parts loaded in the viewer.
2790
+ * @returns {ModelPart[]} - An array of visible and hidden model parts
2791
+ */
2792
+ getAllModelParts(): ModelPart[];
2793
+ /**
2794
+ * Returns specific model part loaded in the viewer by its id.
2795
+ * @returns {ModelPart} - a model part with specified id
2796
+ */
2797
+ getModelPart(id: string): ModelPart;
2798
+ /**
2799
+ * Gets visible model parst
2800
+ * @returns {ModelPart[]} - An array of visible model parts
2801
+ */
2802
+ getVisibleModelParts(): ModelPart[];
2803
+ /**
2804
+ * Gets hidden model parts
2805
+ * @returns {ModelPart[]} - An array of hidden model parts
2806
+ */
2807
+ getHiddenModelParts(): ModelPart[];
2808
+ /**
2809
+ * Temporarily remove a model part from the Viewer, but keep loaders, materials, and geometry alive.
2810
+ * @param {string | ModelPart} modelPart - model part id or model part instance
2811
+ * @param {SelectionOptions} options - selection options
2812
+ */
2813
+ hideModelPart(modelPart: string | ModelPart, options?: SelectionOptions): void;
2814
+ /**
2815
+ * Shows hidden model part
2816
+ * @param {string | ModelPart} modelPart - model part id or model part instance
2817
+ */
2818
+ showModelPart(modelPart: string | ModelPart): void;
2819
+ /**
2820
+ * Hide model elements
2821
+ * @param {string[]|string} elementIds - An array of model elements id or just a single model element id.
2822
+ * @param {string | ModelPart} modelPart - id of the model part that contains the element ids. By default uses the initial model part loaded into the scene.
2823
+ */
2824
+ hide(elementIds: string[] | string, modelPart?: string | ModelPart): void;
2825
+ /**
2826
+ * Hides all elements and model parts from the viewer
2827
+ */
2828
+ hideAll(): void;
2829
+ /**
2830
+ * Ensures the passed in elements are shown.
2831
+ *
2832
+ * @param {string[] | string} elementIds - An array of model elements or just a single model element.
2833
+ * @param {string | ModelPart} modelPart - id of the model part that contains the model element id. By default uses the initial model part loaded into the scene.
2834
+ *
2835
+ */
2836
+ show(elementIds: string[] | string, modelPart?: string | ModelPart): void;
2837
+ /**
2838
+ * Shows all elements and model parts
2839
+ */
2840
+ showAll(): void;
2841
+ /**
2842
+ * Selects the array of model elements. You can also pass in a single model element id instead of an array.
2843
+ *
2844
+ * @param {string[] | string} elementIds - element or array of elements to select.
2845
+ * @param {string | ModelPart} modelPart - model part id or the model part instance containing the elements.
2846
+ * @param {SelectionOptions} options - selection options
2847
+ */
2848
+ select(elementIds: string[] | string, modelPart?: string | ModelPart, options?: SelectionOptions): void;
2849
+ /**
2850
+ * Deselects the array of model elements. You can also pass in a single model element id instead of an array.
2851
+ * @param {string[] | string} elementIds - element or array of elements to select.
2852
+ * @param {string | ModelPart} modelPart - model part id or the model part instance containing the elements.
2853
+ * @param {SelectionOptions} options - selection options
2854
+ */
2855
+ deselect(elementIds: string[] | string, modelPart?: string | ModelPart, options?: SelectionOptions): void;
2856
+ /**
2857
+ * Unselect all model elements in all model parts
2858
+ * @param {SelectionOptions} options - selection options
2859
+ */
2860
+ clearSelection(options?: SelectionOptions): void;
2861
+ /**
2862
+ * Returns the current selection.
2863
+ * @returns {ModelElementIds[]} Array of the currently selected model elements.
2864
+ */
2865
+ getSelection(): ModelElementIds[];
2866
+ /**
2867
+ * Returns the hidden element ids.
2868
+ * @returns {ModelElementIds[]} Array of the currently hidden model elements.
2869
+ */
2870
+ getHiddenElements(): ModelElementIds[];
2871
+ /**
2872
+ * Returns the visible element ids.
2873
+ * @returns {ModelElementIds[]} Array of the currently visible model elements.
2874
+ */
2875
+ getVisibleElements(): ModelElementIds[];
2876
+ /**
2877
+ * Sets color to elements
2878
+ * @param {string[] | string} elementIds - element or array of elements to change color.
2879
+ * @param {number} r - red
2880
+ * @param {number} g - green
2881
+ * @param {number} b - blue
2882
+ * @param {number} a - alpha
2883
+ * @param {string | ModelPart} modelPart - id of the model part or model part instance containing the elements.
2884
+ */
2885
+ setColor(elementIds: string[] | string, r: number, g: number, b: number, a: number, modelPart?: string | ModelPart): void;
2886
+ /**
2887
+ * Resets all changed colors for all elements in all model parts
2888
+ * @param {string | ModelPart} modelPart - id of the model part or model part instance.
2889
+ */
2890
+ clearColors(modelPart?: string | ModelPart): void;
2891
+ /**
2892
+ *
2893
+ * @param {string} elementId - element id
2894
+ * @param {string?} modelPart - id of the model part or model part instance.
2895
+ * @param {BigInt} version - version of the model in ticks.
2896
+ *
2897
+ * @returns {ModelElementPropertySet[]} - property data array.
2898
+ */
2899
+ getElementProperties(elementId: string, modelPart?: string | ModelPart, version?: BigInt): ModelElementPropertySet[];
2900
+ }
2901
+ export var ViewerInstance: Viewer3D;
2902
+ export class Viewer3D extends ViewerBase {
2903
+ protected _configuration: Viewer3DConfiguration;
2904
+ settings: Readonly<ISettings>;
2905
+ navigation: Readonly<INavigaton>;
2906
+ events: Readonly<IEventsDispatcher>;
2907
+ constructor(container: HTMLElement, wasmModel: IWasmModel, renderModelMaker: IRenderMaker, managers: IManagersProvider, configuration?: Viewer3DConfiguration);
2908
+ start(): Promise<number>;
2909
+ finish(): void;
2910
+ /**
2911
+ * Loads new model part to the viewer
2912
+ * @param buffer
2913
+ * @param options
2914
+ * @param onSuccessCallback
2915
+ * @param onErrorCallback
2916
+ */
2917
+ loadModelPart(buffer: ArrayBuffer, options: {}, onSuccessCallback: SuccessCallback, onErrorCallback: ErrorCallback): void;
2918
+ /**
2919
+ * unloads model part from the viewer
2920
+ * @param modelPart - model part id or model part instance
2921
+ */
2922
+ unloadModelPart(modelPart?: string | ModelPart): void;
2923
+ /**
2924
+ * Returns general model
2925
+ * @returns { Model } - general model
2926
+ */
2927
+ get model(): Model;
2928
+ /**
2929
+ * Makes screenshot
2930
+ * @param {string} [mimeType=image/png] Image MIME type.
2931
+ * @param {number} [qualityArgument=1.0] Image quality to be used for image/jpeg or image/webp formats.
2932
+ * @returns Blob object representing render image.
2933
+ */
2934
+ makeScreenshot(mimeType?: string, quality?: number): Promise<Blob>;
2935
+ }
2936
+ export class GuiViewer3D extends Viewer3D {
2937
+ constructor(container: HTMLElement, wasmModel: IWasmModel, renderModelMaker: IRenderMaker, managers: IManagersProvider, configuration?: Viewer3DConfiguration);
2938
+ loadModelPart(buffer: ArrayBuffer, options: {}, onSuccessCallback: SuccessCallback, onErrorCallback: ErrorCallback): void;
2939
+ getToolbar(): ViewerToolbar;
2940
+ onPostExtensionLoad(extension: ExtensionBase): void;
2941
+ protected getToolbarHeight(): number;
2942
+ }
2943
+ export function CreateViewer(container: HTMLElement, configuration?: Viewer3DConfiguration): GuiViewer3D;
2944
+ export class Extension extends ExtensionBase {
2945
+ protected _viewer: Viewer3D;
2946
+ constructor(viewer: Viewer3D, options?: object);
2947
+ }
2948
+ export class Global {
2949
+ G: any;
2950
+ RESOURCE_ROOT: string;
2951
+ constructor();
2952
+ /**
2953
+ * @param {object} options - Initialization options
2954
+ * @private
2955
+ */
2956
+ initializeResourceRoot(options: any): void;
2957
+ getResourceUrl(resourceRelativePath: string): string;
2958
+ }
2959
+ export const global: Global;
2960
+ export class Localization {
2961
+ static initialize(options: any): Promise<void>;
2962
+ static localize(domElement: HTMLElement): void;
2963
+ static translate(stringToTrans: string): string;
2964
+ static setLanguage(language: string): Promise<any>;
2965
+ }
2966
+ type InitializeSuccessCallback = () => void;
2967
+ /**
2968
+ *
2969
+ * @param options
2970
+ * @param callback
2971
+ */
2972
+ export function Initializer(options: any, callback: InitializeSuccessCallback): void;
2973
+ export function shutdown(): void;
2974
+ export {};
2975
+ export class Button extends Control {
2976
+ constructor(id: string);
2977
+ setIsChecked(value: boolean): void;
2978
+ setState(state: Button.State): boolean;
2979
+ getState(): Button.State;
2980
+ setIcon(iconClassName: string): void;
2981
+ /**
2982
+ * Override this method to be notified when the user clicks on the button.
2983
+ * @param {MouseEvent} event
2984
+ */
2985
+ onClick: (event: MouseEvent) => void;
2986
+ /**
2987
+ * Override this method to be notified when the mouse enters the button.
2988
+ * @param {MouseEvent} event
2989
+ */
2990
+ onMouseOver: (event: MouseEvent) => void;
2991
+ /**
2992
+ * Override this method to be notified when the mouse leaves the button.
2993
+ * @param {MouseEvent} event
2994
+ */
2995
+ onMouseOut: (event: MouseEvent) => void;
2996
+ }
2997
+ export namespace Button {
2998
+ enum State {
2999
+ ACTIVE = 0,
3000
+ INACTIVE = 1,
3001
+ DISABLED = 2
3002
+ }
3003
+ enum Event {
3004
+ STATE_CHANGED = "Button.StateChanged",
3005
+ CLICK = "click"
3006
+ }
3007
+ }
3008
+
383
3009
  }