@inweb/client 25.2.2 → 25.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +70 -70
- package/dist/client.js +12739 -12352
- package/dist/client.js.map +1 -1
- package/dist/client.min.js +1 -1
- package/dist/client.module.js +588 -157
- package/dist/client.module.js.map +1 -1
- package/lib/Api/Assembly.d.ts +338 -338
- package/lib/Api/ClashTest.d.ts +175 -175
- package/lib/Api/Client.d.ts +451 -451
- package/lib/Api/ClientEvents.d.ts +28 -28
- package/lib/Api/File.d.ts +567 -567
- package/lib/Api/HttpClient.d.ts +12 -12
- package/lib/Api/IAssembly.d.ts +13 -13
- package/lib/Api/IFile.d.ts +45 -45
- package/lib/Api/IHttpClient.d.ts +10 -10
- package/lib/Api/IUser.d.ts +10 -10
- package/lib/Api/Job.d.ts +141 -141
- package/lib/Api/Member.d.ts +84 -84
- package/lib/Api/Model.d.ts +146 -146
- package/lib/Api/Permission.d.ts +92 -92
- package/lib/Api/Project.d.ts +246 -246
- package/lib/Api/Role.d.ts +81 -81
- package/lib/Api/User.d.ts +196 -196
- package/lib/Api/impl/FetchError.d.ts +17 -17
- package/lib/Api/impl/Utils.d.ts +32 -32
- package/lib/Api/impl/http.d.ts +66 -66
- package/lib/ConvetMath.d.ts +28 -28
- package/lib/Viewer/CanvasEvents.d.ts +1 -1
- package/lib/Viewer/Commands/ApplyModelTransform.d.ts +1 -1
- package/lib/Viewer/Commands/ClearMarkup.d.ts +1 -1
- package/lib/Viewer/Commands/ClearSlices.d.ts +1 -1
- package/lib/Viewer/Commands/CreatePreview.d.ts +1 -1
- package/lib/Viewer/Commands/Explode.d.ts +1 -1
- package/lib/Viewer/Commands/GetDefaultViewPositions.d.ts +1 -1
- package/lib/Viewer/Commands/GetModels.d.ts +1 -1
- package/lib/Viewer/Commands/GetSelected.d.ts +1 -1
- package/lib/Viewer/Commands/HideSelected.d.ts +1 -1
- package/lib/Viewer/Commands/IsolateSelected.d.ts +1 -1
- package/lib/Viewer/Commands/RegenerateAll.d.ts +1 -1
- package/lib/Viewer/Commands/ResetView.d.ts +1 -1
- package/lib/Viewer/Commands/SelectModel.d.ts +1 -1
- package/lib/Viewer/Commands/SetActiveDragger.d.ts +1 -1
- package/lib/Viewer/Commands/SetDefaultViewPosition.d.ts +1 -1
- package/lib/Viewer/Commands/SetMarkupColor.d.ts +1 -1
- package/lib/Viewer/Commands/SetSelected.d.ts +1 -1
- package/lib/Viewer/Commands/ShowAll.d.ts +1 -1
- package/lib/Viewer/Commands/Unselect.d.ts +1 -1
- package/lib/Viewer/Commands/ZoomToExtents.d.ts +1 -1
- package/lib/Viewer/Commands/ZoomToObjects.d.ts +1 -1
- package/lib/Viewer/Commands/ZoomToSelected.d.ts +1 -1
- package/lib/Viewer/Commands.d.ts +2 -2
- package/lib/Viewer/Draggers/Actions/OrbitAction.d.ts +21 -21
- package/lib/Viewer/Draggers/Actions/PanAction.d.ts +17 -17
- package/lib/Viewer/Draggers/Actions/ZoomAction.d.ts +7 -7
- package/lib/Viewer/Draggers/Common/Geometry.d.ts +114 -114
- package/lib/Viewer/Draggers/Common/GestureManager.d.ts +40 -40
- package/lib/Viewer/Draggers/Common/OdBaseDragger.d.ts +53 -53
- package/lib/Viewer/Draggers/Common/OdaGeAction.d.ts +29 -29
- package/lib/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.d.ts +30 -30
- package/lib/Viewer/Draggers/MeasureLineDragger/MeasureUtils.d.ts +19 -19
- package/lib/Viewer/Draggers/MeasureLineDragger/index.d.ts +23 -23
- package/lib/Viewer/Draggers/OdBaseCuttingPlaneDragger.d.ts +26 -26
- package/lib/Viewer/Draggers/OdCuttingPlaneXAxisDragger.d.ts +7 -7
- package/lib/Viewer/Draggers/OdCuttingPlaneYAxisDragger.d.ts +7 -7
- package/lib/Viewer/Draggers/OdCuttingPlaneZAxisDragger.d.ts +7 -7
- package/lib/Viewer/Draggers/OdOrbitDragger.d.ts +14 -14
- package/lib/Viewer/Draggers/OdPanDragger.d.ts +11 -11
- package/lib/Viewer/Draggers/OdZoomDragger.d.ts +11 -11
- package/lib/Viewer/Draggers/OdZoomWheelDragger.d.ts +10 -10
- package/lib/Viewer/Draggers/OdZoomWindowDragger/OdSelectionFrame.d.ts +18 -18
- package/lib/Viewer/Draggers/OdZoomWindowDragger/index.d.ts +13 -13
- package/lib/Viewer/Draggers/OdaLineDragger.d.ts +14 -14
- package/lib/Viewer/Draggers/OdaTextDragger.d.ts +15 -15
- package/lib/Viewer/Draggers/OdaWalkDragger.d.ts +29 -29
- package/lib/Viewer/Draggers/OrbitAroundBuildingDragger.d.ts +18 -18
- package/lib/Viewer/EventEmitter2.d.ts +53 -53
- package/lib/Viewer/ICommands.d.ts +24 -24
- package/lib/Viewer/IEventEmitter2.d.ts +12 -12
- package/lib/Viewer/IViewer.d.ts +26 -26
- package/lib/Viewer/Loaders/BaseLoader.d.ts +10 -10
- package/lib/Viewer/Loaders/LoaderFactory.d.ts +9 -9
- package/lib/Viewer/Loaders/TCSLoader.d.ts +4 -4
- package/lib/Viewer/Loaders/UpdaterController.d.ts +14 -14
- package/lib/Viewer/Loaders/VsfXLoader.d.ts +4 -4
- package/lib/Viewer/Loaders/VsfXPartialLoader.d.ts +4 -4
- package/lib/Viewer/Markup/Api/IMarkupArrow.d.ts +21 -11
- package/lib/Viewer/Markup/Api/IMarkupCloud.d.ts +15 -0
- package/lib/Viewer/Markup/Api/IMarkupColorable.d.ts +4 -4
- package/lib/Viewer/Markup/Api/IMarkupEllipse.d.ts +14 -14
- package/lib/Viewer/Markup/Api/IMarkupImage.d.ts +14 -14
- package/lib/Viewer/Markup/Api/IMarkupLine.d.ts +18 -10
- package/lib/Viewer/Markup/Api/IMarkupObject.d.ts +11 -11
- package/lib/Viewer/Markup/Api/IMarkupRectangle.d.ts +14 -14
- package/lib/Viewer/Markup/Api/IMarkupText.d.ts +12 -12
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaArrow.d.ts +46 -31
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaCloud.d.ts +36 -0
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaEllipse.d.ts +40 -39
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaImage.d.ts +36 -35
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaLine.d.ts +35 -31
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaRectangle.d.ts +38 -37
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaText.d.ts +37 -36
- package/lib/Viewer/Markup/IMarkup.d.ts +38 -37
- package/lib/Viewer/Markup/Impl/Konva/KonvaMarkup.d.ts +71 -62
- package/lib/Viewer/Markup/Impl/Konva/MarkupColor.d.ts +18 -18
- package/lib/Viewer/Markup/Impl/Visualize/VisualizeMarkup.d.ts +32 -32
- package/lib/Viewer/Markup/MarkupFactory.d.ts +6 -6
- package/lib/Viewer/Options.d.ts +227 -227
- package/lib/Viewer/OptionsEvents.d.ts +25 -25
- package/lib/Viewer/Viewer.d.ts +352 -352
- package/lib/Viewer/ViewerCommands.d.ts +22 -22
- package/lib/Viewer/ViewerEvents.d.ts +600 -600
- package/lib/Viewer/utils.d.ts +3 -3
- package/lib/index.d.ts +23 -23
- package/package.json +38 -32
- package/src/Api/Assembly.ts +678 -678
- package/src/Api/ClashTest.ts +290 -290
- package/src/Api/Client.ts +816 -816
- package/src/Api/ClientEvents.ts +31 -31
- package/src/Api/File.ts +962 -962
- package/src/Api/HttpClient.ts +73 -73
- package/src/Api/IAssembly.ts +37 -37
- package/src/Api/IFile.ts +74 -74
- package/src/Api/IHttpClient.ts +50 -50
- package/src/Api/IUser.ts +33 -33
- package/src/Api/Job.ts +253 -253
- package/src/Api/Member.ts +161 -161
- package/src/Api/Model.ts +259 -259
- package/src/Api/Permission.ts +173 -173
- package/src/Api/Project.ts +479 -479
- package/src/Api/Role.ts +158 -158
- package/src/Api/User.ts +357 -357
- package/src/Api/impl/FetchError.ts +48 -48
- package/src/Api/impl/Utils.ts +367 -367
- package/src/Api/impl/http.ts +92 -92
- package/src/ConvetMath.ts +372 -372
- package/src/Viewer/CanvasEvents.ts +41 -41
- package/src/Viewer/Commands/ApplyModelTransform.ts +70 -70
- package/src/Viewer/Commands/ClearMarkup.ts +28 -28
- package/src/Viewer/Commands/ClearSlices.ts +27 -27
- package/src/Viewer/Commands/CreatePreview.ts +33 -33
- package/src/Viewer/Commands/Explode.ts +38 -38
- package/src/Viewer/Commands/GetDefaultViewPositions.ts +36 -36
- package/src/Viewer/Commands/GetModels.ts +43 -43
- package/src/Viewer/Commands/GetSelected.ts +58 -58
- package/src/Viewer/Commands/HideSelected.ts +37 -37
- package/src/Viewer/Commands/IsolateSelected.ts +37 -37
- package/src/Viewer/Commands/RegenerateAll.ts +37 -37
- package/src/Viewer/Commands/ResetView.ts +43 -43
- package/src/Viewer/Commands/SelectModel.ts +52 -52
- package/src/Viewer/Commands/SetActiveDragger.ts +29 -29
- package/src/Viewer/Commands/SetDefaultViewPosition.ts +50 -50
- package/src/Viewer/Commands/SetMarkupColor.ts +29 -29
- package/src/Viewer/Commands/SetSelected.ts +47 -47
- package/src/Viewer/Commands/ShowAll.ts +37 -37
- package/src/Viewer/Commands/Unselect.ts +37 -37
- package/src/Viewer/Commands/ZoomToExtents.ts +43 -43
- package/src/Viewer/Commands/ZoomToObjects.ts +47 -47
- package/src/Viewer/Commands/ZoomToSelected.ts +39 -39
- package/src/Viewer/Commands.ts +81 -81
- package/src/Viewer/Draggers/Actions/OrbitAction.ts +250 -250
- package/src/Viewer/Draggers/Actions/PanAction.ts +102 -102
- package/src/Viewer/Draggers/Actions/ZoomAction.ts +45 -45
- package/src/Viewer/Draggers/Common/Geometry.ts +152 -152
- package/src/Viewer/Draggers/Common/GestureManager.ts +263 -263
- package/src/Viewer/Draggers/Common/OdBaseDragger.ts +270 -270
- package/src/Viewer/Draggers/Common/OdaGeAction.ts +146 -146
- package/src/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.ts +248 -248
- package/src/Viewer/Draggers/MeasureLineDragger/MeasureUtils.ts +182 -182
- package/src/Viewer/Draggers/MeasureLineDragger/index.ts +166 -166
- package/src/Viewer/Draggers/OdBaseCuttingPlaneDragger.ts +182 -182
- package/src/Viewer/Draggers/OdCuttingPlaneXAxisDragger.ts +53 -53
- package/src/Viewer/Draggers/OdCuttingPlaneYAxisDragger.ts +53 -53
- package/src/Viewer/Draggers/OdCuttingPlaneZAxisDragger.ts +53 -53
- package/src/Viewer/Draggers/OdOrbitDragger.ts +70 -70
- package/src/Viewer/Draggers/OdPanDragger.ts +62 -62
- package/src/Viewer/Draggers/OdZoomDragger.ts +59 -59
- package/src/Viewer/Draggers/OdZoomWheelDragger.ts +103 -103
- package/src/Viewer/Draggers/OdZoomWindowDragger/OdSelectionFrame.ts +123 -123
- package/src/Viewer/Draggers/OdZoomWindowDragger/index.ts +75 -75
- package/src/Viewer/Draggers/OdaLineDragger.ts +80 -80
- package/src/Viewer/Draggers/OdaTextDragger.ts +118 -118
- package/src/Viewer/Draggers/OdaWalkDragger.ts +278 -278
- package/src/Viewer/Draggers/OrbitAroundBuildingDragger.ts +184 -184
- package/src/Viewer/EventEmitter2.ts +116 -116
- package/src/Viewer/ICommands.ts +53 -53
- package/src/Viewer/IEventEmitter2.ts +36 -36
- package/src/Viewer/IViewer.ts +55 -55
- package/src/Viewer/Loaders/BaseLoader.ts +40 -40
- package/src/Viewer/Loaders/LoaderFactory.ts +44 -44
- package/src/Viewer/Loaders/TCSLoader.ts +82 -82
- package/src/Viewer/Loaders/UpdaterController.ts +36 -36
- package/src/Viewer/Loaders/VsfXLoader.ts +87 -87
- package/src/Viewer/Loaders/VsfXPartialLoader.ts +208 -208
- package/src/Viewer/Markup/Api/IMarkupArrow.ts +12 -15
- package/src/Viewer/Markup/Api/IMarkupCloud.ts +15 -0
- package/src/Viewer/Markup/Api/IMarkupColorable.ts +4 -4
- package/src/Viewer/Markup/Api/IMarkupEllipse.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupImage.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupLine.ts +20 -10
- package/src/Viewer/Markup/Api/IMarkupObject.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupRectangle.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupText.ts +12 -12
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaArrow.ts +117 -119
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaCloud.ts +208 -0
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaEllipse.ts +118 -113
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaImage.ts +123 -121
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaLine.ts +130 -99
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaRectangle.ts +119 -113
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaText.ts +110 -104
- package/src/Viewer/Markup/IMarkup.ts +40 -39
- package/src/Viewer/Markup/Impl/Konva/KonvaMarkup.ts +1208 -872
- package/src/Viewer/Markup/Impl/Konva/MarkupColor.ts +39 -39
- package/src/Viewer/Markup/Impl/Visualize/VisualizeMarkup.ts +273 -273
- package/src/Viewer/Markup/MarkupFactory.ts +32 -32
- package/src/Viewer/Options.ts +502 -502
- package/src/Viewer/OptionsEvents.ts +28 -28
- package/src/Viewer/Viewer.ts +1109 -1109
- package/src/Viewer/ViewerCommands.ts +45 -45
- package/src/Viewer/ViewerEvents.ts +700 -700
- package/src/Viewer/utils.ts +74 -74
- package/src/index.ts +48 -48
package/src/Api/Model.ts
CHANGED
|
@@ -1,259 +1,259 @@
|
|
|
1
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
// Copyright (C) 2002-2021, Open Design Alliance (the "Alliance").
|
|
3
|
-
// All rights reserved.
|
|
4
|
-
//
|
|
5
|
-
// This software and its documentation and related materials are owned by
|
|
6
|
-
// the Alliance. The software may only be incorporated into application
|
|
7
|
-
// programs owned by members of the Alliance, subject to a signed
|
|
8
|
-
// Membership Agreement and Supplemental Software License Agreement with the
|
|
9
|
-
// Alliance. The structure and organization of this software are the valuable
|
|
10
|
-
// trade secrets of the Alliance and its suppliers. The software is also
|
|
11
|
-
// protected by copyright law and international treaty provisions. Application
|
|
12
|
-
// programs incorporating this software must include the following statement
|
|
13
|
-
// with their copyright notices:
|
|
14
|
-
//
|
|
15
|
-
// This application incorporates Open Design Alliance software pursuant to a
|
|
16
|
-
// license agreement with Open Design Alliance.
|
|
17
|
-
// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
|
|
18
|
-
// All rights reserved.
|
|
19
|
-
//
|
|
20
|
-
// By use of this software, its documentation or related materials, you
|
|
21
|
-
// acknowledge and accept the above terms.
|
|
22
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
23
|
-
|
|
24
|
-
import { IHttpClient } from "./IHttpClient";
|
|
25
|
-
import { File } from "./File";
|
|
26
|
-
import { Assembly } from "./Assembly";
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* The class representing the is a description of view of the file or assembly. For example,
|
|
30
|
-
* for `dwg` it is a `Model` space or layout, and for `rvt` files it is a `3D` view.
|
|
31
|
-
*/
|
|
32
|
-
export class Model {
|
|
33
|
-
private _data: any;
|
|
34
|
-
private _file: File | Assembly;
|
|
35
|
-
public httpClient: IHttpClient;
|
|
36
|
-
public path: string;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* @param data - An object that implements model data storage.
|
|
40
|
-
* @param file - The `File` of 'Assembly' instance that owns the model.
|
|
41
|
-
*/
|
|
42
|
-
constructor(data: any, file: File | Assembly) {
|
|
43
|
-
this.path = `${file.path}/downloads`;
|
|
44
|
-
this.httpClient = file.httpClient;
|
|
45
|
-
this._file = file;
|
|
46
|
-
this._data = data;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* The `Assembly` instance that owns the model.
|
|
51
|
-
*
|
|
52
|
-
* @readonly
|
|
53
|
-
*/
|
|
54
|
-
get assembly(): Assembly {
|
|
55
|
-
return this._file as Assembly;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Raw model data received from the server.
|
|
60
|
-
*
|
|
61
|
-
* @readonly
|
|
62
|
-
*/
|
|
63
|
-
get data(): any {
|
|
64
|
-
return this._data;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private set data(value: any) {
|
|
68
|
-
this._data = value;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Scene description file resource ID. Use {@link Model#downloadResource | downloadResource()}
|
|
73
|
-
* to download scene description file.
|
|
74
|
-
*
|
|
75
|
-
* @readonly
|
|
76
|
-
*/
|
|
77
|
-
get database(): string {
|
|
78
|
-
return this.data.database;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* `true` if this is default model.
|
|
83
|
-
*
|
|
84
|
-
* @readonly
|
|
85
|
-
*/
|
|
86
|
-
get default(): boolean {
|
|
87
|
-
return this.data.default;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* The `File` instance that owns the model.
|
|
92
|
-
*
|
|
93
|
-
* @readonly
|
|
94
|
-
*/
|
|
95
|
-
get file(): File {
|
|
96
|
-
return this._file as File;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* The ID of the file that owns the model.
|
|
101
|
-
*
|
|
102
|
-
* @readonly
|
|
103
|
-
*/
|
|
104
|
-
get fileId(): string {
|
|
105
|
-
return this.data.fileId;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* The list of resource IDs for geometry data files. Use
|
|
110
|
-
* {@link Model#downloadResource | downloadResource()} to download geometry data files.
|
|
111
|
-
*
|
|
112
|
-
* @readonly
|
|
113
|
-
*/
|
|
114
|
-
get geometry(): string[] {
|
|
115
|
-
return this.data.geometry;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Unique model ID.
|
|
120
|
-
*
|
|
121
|
-
* @readonly
|
|
122
|
-
*/
|
|
123
|
-
get id(): string {
|
|
124
|
-
return this.data.id;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Model name.
|
|
129
|
-
*
|
|
130
|
-
* @readonly
|
|
131
|
-
*/
|
|
132
|
-
get name(): string {
|
|
133
|
-
return this.data.name;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Reserved for future use.
|
|
137
|
-
get version(): string {
|
|
138
|
-
return this.data.version;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Returns model viewpoint list.
|
|
143
|
-
*
|
|
144
|
-
* _**Note**: Assemblу models do not support viewpoints_.
|
|
145
|
-
*
|
|
146
|
-
* @async
|
|
147
|
-
*/
|
|
148
|
-
getViewpoints(): Promise<any[]> {
|
|
149
|
-
return this._file
|
|
150
|
-
.getViewpoints()
|
|
151
|
-
.then((array) =>
|
|
152
|
-
array.filter(
|
|
153
|
-
({ custom_fields = {} }) => custom_fields.modelId === this.id || custom_fields.modelName === this.name
|
|
154
|
-
)
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Add new model viewpoint. To create a new viewpoint use
|
|
160
|
-
* {@link Viewer#createViewpoint | Viewer.createViewpoint()}.
|
|
161
|
-
*
|
|
162
|
-
* _**Note**: Assemblу models do not support viewpoints_.
|
|
163
|
-
*
|
|
164
|
-
* @async
|
|
165
|
-
* @param viewpoint - Viewpoint.
|
|
166
|
-
*/
|
|
167
|
-
saveViewpoint(viewpoint: any): Promise<any> {
|
|
168
|
-
return this._file.saveViewpoint({
|
|
169
|
-
...viewpoint,
|
|
170
|
-
custom_fields: { ...viewpoint.custom_fields, modelId: this.id, modelName: this.name },
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Delete model viewpoint.
|
|
176
|
-
*
|
|
177
|
-
* _**Note**: Assemblу models do not support viewpoints_.
|
|
178
|
-
*
|
|
179
|
-
* @async
|
|
180
|
-
* @param guid - Viewpoint GUID.
|
|
181
|
-
* @returns Returns the raw data of a deleted viewpoint.
|
|
182
|
-
*/
|
|
183
|
-
deleteViewpoint(guid: string): Promise<any> {
|
|
184
|
-
return this._file.deleteViewpoint(guid);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Returns viewpoint preview image as <a
|
|
189
|
-
* href="https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"
|
|
190
|
-
* target="_blank">Data URL</a>.
|
|
191
|
-
*
|
|
192
|
-
* @async
|
|
193
|
-
* @param guid - Viewpoint GIID.
|
|
194
|
-
*/
|
|
195
|
-
getSnapshot(guid: string): Promise<string> {
|
|
196
|
-
return this._file.getSnapshot(guid);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Returns snapshot data.
|
|
201
|
-
*
|
|
202
|
-
* @async
|
|
203
|
-
* @param guid - Viewpoint GUID.
|
|
204
|
-
* @param bitmapGuid - Bitmap GUID.
|
|
205
|
-
*/
|
|
206
|
-
getSnapshotData(guid: string, bitmapGuid: string): Promise<string> {
|
|
207
|
-
return this._file.getSnapshotData(guid, bitmapGuid);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Downloads model resource, such as scene description file or geometry data files.
|
|
212
|
-
*
|
|
213
|
-
* @async
|
|
214
|
-
* @param resourceId - Resource ID.
|
|
215
|
-
* @param onProgress - Download progress callback.
|
|
216
|
-
* @param signal - An <a href="https://developer.mozilla.org/docs/Web/API/AbortSignal" target
|
|
217
|
-
* ="_blank">AbortSignal</a> object instance. Allows to communicate with a fetch request
|
|
218
|
-
* and abort it if desired.
|
|
219
|
-
*/
|
|
220
|
-
downloadResource(
|
|
221
|
-
dataId: string,
|
|
222
|
-
onProgress?: (progress: number) => void,
|
|
223
|
-
signal?: AbortSignal
|
|
224
|
-
): Promise<ArrayBuffer> {
|
|
225
|
-
return this._file.downloadResource(dataId, onProgress, signal);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Internal download routines used by Viewer.
|
|
229
|
-
|
|
230
|
-
partialDownloadResource(
|
|
231
|
-
dataId: string,
|
|
232
|
-
onProgress?: (progress: number, downloaded: Uint8Array) => void,
|
|
233
|
-
signal?: AbortSignal
|
|
234
|
-
): Promise<void> {
|
|
235
|
-
return this._file.partialDownloadResource(dataId, onProgress, signal);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
downloadFileRange(
|
|
239
|
-
requestId: number,
|
|
240
|
-
records: any | null,
|
|
241
|
-
dataId: string,
|
|
242
|
-
onProgress?: (progress: number, downloaded: Uint8Array, requestId: number) => void,
|
|
243
|
-
signal?: AbortSignal
|
|
244
|
-
): Promise<void> {
|
|
245
|
-
return this._file.downloadFileRange(requestId, records, dataId, onProgress, signal);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Returns a list of references to files used to extract geometry data.
|
|
250
|
-
*
|
|
251
|
-
* @async
|
|
252
|
-
* @param [signal] - An <a
|
|
253
|
-
* href="https://developer.mozilla.org/docs/Web/API/AbortController">AbortController</a>
|
|
254
|
-
* signal object instance, which can be used to abort waiting as desired.
|
|
255
|
-
*/
|
|
256
|
-
getReferences(signal?: AbortSignal) {
|
|
257
|
-
return this._file.getReferences(signal);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
1
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
// Copyright (C) 2002-2021, Open Design Alliance (the "Alliance").
|
|
3
|
+
// All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This software and its documentation and related materials are owned by
|
|
6
|
+
// the Alliance. The software may only be incorporated into application
|
|
7
|
+
// programs owned by members of the Alliance, subject to a signed
|
|
8
|
+
// Membership Agreement and Supplemental Software License Agreement with the
|
|
9
|
+
// Alliance. The structure and organization of this software are the valuable
|
|
10
|
+
// trade secrets of the Alliance and its suppliers. The software is also
|
|
11
|
+
// protected by copyright law and international treaty provisions. Application
|
|
12
|
+
// programs incorporating this software must include the following statement
|
|
13
|
+
// with their copyright notices:
|
|
14
|
+
//
|
|
15
|
+
// This application incorporates Open Design Alliance software pursuant to a
|
|
16
|
+
// license agreement with Open Design Alliance.
|
|
17
|
+
// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
|
|
18
|
+
// All rights reserved.
|
|
19
|
+
//
|
|
20
|
+
// By use of this software, its documentation or related materials, you
|
|
21
|
+
// acknowledge and accept the above terms.
|
|
22
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
|
|
24
|
+
import { IHttpClient } from "./IHttpClient";
|
|
25
|
+
import { File } from "./File";
|
|
26
|
+
import { Assembly } from "./Assembly";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The class representing the is a description of view of the file or assembly. For example,
|
|
30
|
+
* for `dwg` it is a `Model` space or layout, and for `rvt` files it is a `3D` view.
|
|
31
|
+
*/
|
|
32
|
+
export class Model {
|
|
33
|
+
private _data: any;
|
|
34
|
+
private _file: File | Assembly;
|
|
35
|
+
public httpClient: IHttpClient;
|
|
36
|
+
public path: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @param data - An object that implements model data storage.
|
|
40
|
+
* @param file - The `File` of 'Assembly' instance that owns the model.
|
|
41
|
+
*/
|
|
42
|
+
constructor(data: any, file: File | Assembly) {
|
|
43
|
+
this.path = `${file.path}/downloads`;
|
|
44
|
+
this.httpClient = file.httpClient;
|
|
45
|
+
this._file = file;
|
|
46
|
+
this._data = data;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The `Assembly` instance that owns the model.
|
|
51
|
+
*
|
|
52
|
+
* @readonly
|
|
53
|
+
*/
|
|
54
|
+
get assembly(): Assembly {
|
|
55
|
+
return this._file as Assembly;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Raw model data received from the server.
|
|
60
|
+
*
|
|
61
|
+
* @readonly
|
|
62
|
+
*/
|
|
63
|
+
get data(): any {
|
|
64
|
+
return this._data;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
private set data(value: any) {
|
|
68
|
+
this._data = value;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Scene description file resource ID. Use {@link Model#downloadResource | downloadResource()}
|
|
73
|
+
* to download scene description file.
|
|
74
|
+
*
|
|
75
|
+
* @readonly
|
|
76
|
+
*/
|
|
77
|
+
get database(): string {
|
|
78
|
+
return this.data.database;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* `true` if this is default model.
|
|
83
|
+
*
|
|
84
|
+
* @readonly
|
|
85
|
+
*/
|
|
86
|
+
get default(): boolean {
|
|
87
|
+
return this.data.default;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* The `File` instance that owns the model.
|
|
92
|
+
*
|
|
93
|
+
* @readonly
|
|
94
|
+
*/
|
|
95
|
+
get file(): File {
|
|
96
|
+
return this._file as File;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The ID of the file that owns the model.
|
|
101
|
+
*
|
|
102
|
+
* @readonly
|
|
103
|
+
*/
|
|
104
|
+
get fileId(): string {
|
|
105
|
+
return this.data.fileId;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* The list of resource IDs for geometry data files. Use
|
|
110
|
+
* {@link Model#downloadResource | downloadResource()} to download geometry data files.
|
|
111
|
+
*
|
|
112
|
+
* @readonly
|
|
113
|
+
*/
|
|
114
|
+
get geometry(): string[] {
|
|
115
|
+
return this.data.geometry;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Unique model ID.
|
|
120
|
+
*
|
|
121
|
+
* @readonly
|
|
122
|
+
*/
|
|
123
|
+
get id(): string {
|
|
124
|
+
return this.data.id;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Model name.
|
|
129
|
+
*
|
|
130
|
+
* @readonly
|
|
131
|
+
*/
|
|
132
|
+
get name(): string {
|
|
133
|
+
return this.data.name;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Reserved for future use.
|
|
137
|
+
get version(): string {
|
|
138
|
+
return this.data.version;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Returns model viewpoint list.
|
|
143
|
+
*
|
|
144
|
+
* _**Note**: Assemblу models do not support viewpoints_.
|
|
145
|
+
*
|
|
146
|
+
* @async
|
|
147
|
+
*/
|
|
148
|
+
getViewpoints(): Promise<any[]> {
|
|
149
|
+
return this._file
|
|
150
|
+
.getViewpoints()
|
|
151
|
+
.then((array) =>
|
|
152
|
+
array.filter(
|
|
153
|
+
({ custom_fields = {} }) => custom_fields.modelId === this.id || custom_fields.modelName === this.name
|
|
154
|
+
)
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Add new model viewpoint. To create a new viewpoint use
|
|
160
|
+
* {@link Viewer#createViewpoint | Viewer.createViewpoint()}.
|
|
161
|
+
*
|
|
162
|
+
* _**Note**: Assemblу models do not support viewpoints_.
|
|
163
|
+
*
|
|
164
|
+
* @async
|
|
165
|
+
* @param viewpoint - Viewpoint.
|
|
166
|
+
*/
|
|
167
|
+
saveViewpoint(viewpoint: any): Promise<any> {
|
|
168
|
+
return this._file.saveViewpoint({
|
|
169
|
+
...viewpoint,
|
|
170
|
+
custom_fields: { ...viewpoint.custom_fields, modelId: this.id, modelName: this.name },
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Delete model viewpoint.
|
|
176
|
+
*
|
|
177
|
+
* _**Note**: Assemblу models do not support viewpoints_.
|
|
178
|
+
*
|
|
179
|
+
* @async
|
|
180
|
+
* @param guid - Viewpoint GUID.
|
|
181
|
+
* @returns Returns the raw data of a deleted viewpoint.
|
|
182
|
+
*/
|
|
183
|
+
deleteViewpoint(guid: string): Promise<any> {
|
|
184
|
+
return this._file.deleteViewpoint(guid);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Returns viewpoint preview image as <a
|
|
189
|
+
* href="https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"
|
|
190
|
+
* target="_blank">Data URL</a>.
|
|
191
|
+
*
|
|
192
|
+
* @async
|
|
193
|
+
* @param guid - Viewpoint GIID.
|
|
194
|
+
*/
|
|
195
|
+
getSnapshot(guid: string): Promise<string> {
|
|
196
|
+
return this._file.getSnapshot(guid);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Returns snapshot data.
|
|
201
|
+
*
|
|
202
|
+
* @async
|
|
203
|
+
* @param guid - Viewpoint GUID.
|
|
204
|
+
* @param bitmapGuid - Bitmap GUID.
|
|
205
|
+
*/
|
|
206
|
+
getSnapshotData(guid: string, bitmapGuid: string): Promise<string> {
|
|
207
|
+
return this._file.getSnapshotData(guid, bitmapGuid);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Downloads model resource, such as scene description file or geometry data files.
|
|
212
|
+
*
|
|
213
|
+
* @async
|
|
214
|
+
* @param resourceId - Resource ID.
|
|
215
|
+
* @param onProgress - Download progress callback.
|
|
216
|
+
* @param signal - An <a href="https://developer.mozilla.org/docs/Web/API/AbortSignal" target
|
|
217
|
+
* ="_blank">AbortSignal</a> object instance. Allows to communicate with a fetch request
|
|
218
|
+
* and abort it if desired.
|
|
219
|
+
*/
|
|
220
|
+
downloadResource(
|
|
221
|
+
dataId: string,
|
|
222
|
+
onProgress?: (progress: number) => void,
|
|
223
|
+
signal?: AbortSignal
|
|
224
|
+
): Promise<ArrayBuffer> {
|
|
225
|
+
return this._file.downloadResource(dataId, onProgress, signal);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// Internal download routines used by Viewer.
|
|
229
|
+
|
|
230
|
+
partialDownloadResource(
|
|
231
|
+
dataId: string,
|
|
232
|
+
onProgress?: (progress: number, downloaded: Uint8Array) => void,
|
|
233
|
+
signal?: AbortSignal
|
|
234
|
+
): Promise<void> {
|
|
235
|
+
return this._file.partialDownloadResource(dataId, onProgress, signal);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
downloadFileRange(
|
|
239
|
+
requestId: number,
|
|
240
|
+
records: any | null,
|
|
241
|
+
dataId: string,
|
|
242
|
+
onProgress?: (progress: number, downloaded: Uint8Array, requestId: number) => void,
|
|
243
|
+
signal?: AbortSignal
|
|
244
|
+
): Promise<void> {
|
|
245
|
+
return this._file.downloadFileRange(requestId, records, dataId, onProgress, signal);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Returns a list of references to files used to extract geometry data.
|
|
250
|
+
*
|
|
251
|
+
* @async
|
|
252
|
+
* @param [signal] - An <a
|
|
253
|
+
* href="https://developer.mozilla.org/docs/Web/API/AbortController">AbortController</a>
|
|
254
|
+
* signal object instance, which can be used to abort waiting as desired.
|
|
255
|
+
*/
|
|
256
|
+
getReferences(signal?: AbortSignal) {
|
|
257
|
+
return this._file.getReferences(signal);
|
|
258
|
+
}
|
|
259
|
+
}
|