@inweb/viewer-core 25.3.18 → 25.3.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/viewer-core.js +71 -59
- package/dist/viewer-core.js.map +1 -1
- package/dist/viewer-core.module.js +83 -72
- package/dist/viewer-core.module.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/options/IOptions.d.ts +155 -0
- package/lib/options/Options.d.ts +7 -159
- package/lib/options/OptionsEvents.d.ts +2 -2
- package/lib/viewer/IViewer.d.ts +2 -2
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/options/IOptions.ts +224 -0
- package/src/options/Options.ts +49 -239
- package/src/options/OptionsEvents.ts +2 -2
- package/src/viewer/IViewer.ts +2 -2
|
@@ -59,54 +59,62 @@ commands("VisualizeJS").registerCommand("noop", (() => {}));
|
|
|
59
59
|
|
|
60
60
|
commands("ThreeJS").registerCommand("noop", (() => {}));
|
|
61
61
|
|
|
62
|
+
function defaultOptions() {
|
|
63
|
+
return {
|
|
64
|
+
showWCS: true,
|
|
65
|
+
cameraAnimation: true,
|
|
66
|
+
antialiasing: true,
|
|
67
|
+
groundShadow: false,
|
|
68
|
+
shadows: false,
|
|
69
|
+
cameraAxisXSpeed: 4,
|
|
70
|
+
cameraAxisYSpeed: 1,
|
|
71
|
+
ambientOcclusion: false,
|
|
72
|
+
enableStreamingMode: true,
|
|
73
|
+
enablePartialMode: false,
|
|
74
|
+
memoryLimit: 3294967296,
|
|
75
|
+
cuttingPlaneFillColor: {
|
|
76
|
+
red: 255,
|
|
77
|
+
green: 152,
|
|
78
|
+
blue: 0
|
|
79
|
+
},
|
|
80
|
+
edgesColor: {
|
|
81
|
+
r: 255,
|
|
82
|
+
g: 152,
|
|
83
|
+
b: 0
|
|
84
|
+
},
|
|
85
|
+
facesColor: {
|
|
86
|
+
r: 255,
|
|
87
|
+
g: 152,
|
|
88
|
+
b: 0
|
|
89
|
+
},
|
|
90
|
+
edgesVisibility: true,
|
|
91
|
+
edgesOverlap: true,
|
|
92
|
+
facesOverlap: false,
|
|
93
|
+
facesTransparancy: 200,
|
|
94
|
+
enableCustomHighlight: true,
|
|
95
|
+
sceneGraph: false,
|
|
96
|
+
edgeModel: true,
|
|
97
|
+
reverseZoomWheel: false,
|
|
98
|
+
enableZoomWheel: true,
|
|
99
|
+
enableGestures: true,
|
|
100
|
+
geometryType: "vsfx"
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
62
104
|
class Options {
|
|
63
105
|
constructor(emitter) {
|
|
64
106
|
this._emitter = emitter;
|
|
65
|
-
this._data =
|
|
107
|
+
this._data = defaultOptions();
|
|
66
108
|
this.loadFromStorage();
|
|
67
109
|
}
|
|
68
110
|
static defaults() {
|
|
69
|
-
return
|
|
70
|
-
showWCS: true,
|
|
71
|
-
cameraAnimation: true,
|
|
72
|
-
antialiasing: true,
|
|
73
|
-
groundShadow: false,
|
|
74
|
-
shadows: false,
|
|
75
|
-
cameraAxisXSpeed: 4,
|
|
76
|
-
cameraAxisYSpeed: 1,
|
|
77
|
-
ambientOcclusion: false,
|
|
78
|
-
enableStreamingMode: true,
|
|
79
|
-
enablePartialMode: false,
|
|
80
|
-
memoryLimit: 3294967296,
|
|
81
|
-
cuttingPlaneFillColor: {
|
|
82
|
-
red: 255,
|
|
83
|
-
green: 152,
|
|
84
|
-
blue: 0
|
|
85
|
-
},
|
|
86
|
-
edgesColor: {
|
|
87
|
-
r: 255,
|
|
88
|
-
g: 152,
|
|
89
|
-
b: 0
|
|
90
|
-
},
|
|
91
|
-
facesColor: {
|
|
92
|
-
r: 255,
|
|
93
|
-
g: 152,
|
|
94
|
-
b: 0
|
|
95
|
-
},
|
|
96
|
-
edgesVisibility: true,
|
|
97
|
-
edgesOverlap: true,
|
|
98
|
-
facesOverlap: false,
|
|
99
|
-
facesTransparancy: 200,
|
|
100
|
-
enableCustomHighlight: true,
|
|
101
|
-
sceneGraph: false,
|
|
102
|
-
edgeModel: true,
|
|
103
|
-
reverseZoomWheel: false,
|
|
104
|
-
enableZoomWheel: true,
|
|
105
|
-
enableGestures: true,
|
|
106
|
-
geometryType: "vsfx"
|
|
107
|
-
};
|
|
111
|
+
return defaultOptions();
|
|
108
112
|
}
|
|
109
113
|
notifierChangeEvent() {
|
|
114
|
+
console.warn("Options.notifierChangeEvent() has been deprecated since 25.3 and will be removed in a future release, use Options.change() instead.");
|
|
115
|
+
this.change();
|
|
116
|
+
}
|
|
117
|
+
change() {
|
|
110
118
|
if (this._emitter !== undefined) {
|
|
111
119
|
this.saveToStorage();
|
|
112
120
|
this._emitter.emit({
|
|
@@ -157,151 +165,154 @@ class Options {
|
|
|
157
165
|
return this._data;
|
|
158
166
|
}
|
|
159
167
|
set data(value) {
|
|
160
|
-
const
|
|
168
|
+
const enablePartialMode = value.enableStreamingMode ? value.enablePartialMode : false;
|
|
169
|
+
const sceneGraph = enablePartialMode ? false : value.sceneGraph;
|
|
161
170
|
this._data = {
|
|
162
171
|
...Options.defaults(),
|
|
163
172
|
...this._data,
|
|
164
173
|
...value,
|
|
174
|
+
enablePartialMode: enablePartialMode,
|
|
165
175
|
sceneGraph: sceneGraph
|
|
166
176
|
};
|
|
167
|
-
this.
|
|
177
|
+
this.change();
|
|
168
178
|
}
|
|
169
179
|
get showWCS() {
|
|
170
180
|
return this._data.showWCS;
|
|
171
181
|
}
|
|
172
182
|
set showWCS(value) {
|
|
173
183
|
this._data.showWCS = value;
|
|
174
|
-
this.
|
|
184
|
+
this.change();
|
|
175
185
|
}
|
|
176
186
|
get cameraAnimation() {
|
|
177
187
|
return this._data.cameraAnimation;
|
|
178
188
|
}
|
|
179
189
|
set cameraAnimation(value) {
|
|
180
190
|
this._data.cameraAnimation = value;
|
|
181
|
-
this.
|
|
191
|
+
this.change();
|
|
182
192
|
}
|
|
183
193
|
get antialiasing() {
|
|
184
194
|
return this._data.antialiasing;
|
|
185
195
|
}
|
|
186
196
|
set antialiasing(value) {
|
|
187
197
|
this._data.antialiasing = value;
|
|
188
|
-
this.
|
|
198
|
+
this.change();
|
|
189
199
|
}
|
|
190
200
|
get groundShadow() {
|
|
191
201
|
return this._data.groundShadow;
|
|
192
202
|
}
|
|
193
203
|
set groundShadow(value) {
|
|
194
204
|
this._data.groundShadow = value;
|
|
195
|
-
this.
|
|
205
|
+
this.change();
|
|
196
206
|
}
|
|
197
207
|
get shadows() {
|
|
198
208
|
return this._data.shadows;
|
|
199
209
|
}
|
|
200
210
|
set shadows(value) {
|
|
201
211
|
this._data.shadows = value;
|
|
202
|
-
this.
|
|
212
|
+
this.change();
|
|
203
213
|
}
|
|
204
214
|
get cameraAxisXSpeed() {
|
|
205
215
|
return this._data.cameraAxisXSpeed;
|
|
206
216
|
}
|
|
207
217
|
set cameraAxisXSpeed(value) {
|
|
208
218
|
this._data.cameraAxisXSpeed = value;
|
|
209
|
-
this.
|
|
219
|
+
this.change();
|
|
210
220
|
}
|
|
211
221
|
get cameraAxisYSpeed() {
|
|
212
222
|
return this._data.cameraAxisYSpeed;
|
|
213
223
|
}
|
|
214
224
|
set cameraAxisYSpeed(value) {
|
|
215
225
|
this.cameraAxisYSpeed = value;
|
|
216
|
-
this.
|
|
226
|
+
this.change();
|
|
217
227
|
}
|
|
218
228
|
get ambientOcclusion() {
|
|
219
229
|
return this._data.ambientOcclusion;
|
|
220
230
|
}
|
|
221
231
|
set ambientOcclusion(value) {
|
|
222
232
|
this._data.ambientOcclusion = value;
|
|
223
|
-
this.
|
|
233
|
+
this.change();
|
|
224
234
|
}
|
|
225
235
|
get enableStreamingMode() {
|
|
226
236
|
return this._data.enableStreamingMode;
|
|
227
237
|
}
|
|
228
238
|
set enableStreamingMode(value) {
|
|
229
239
|
this._data.enableStreamingMode = value;
|
|
230
|
-
if (this._data.
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
this.notifierChangeEvent();
|
|
240
|
+
if (!value) this._data.enablePartialMode = false;
|
|
241
|
+
this.change();
|
|
234
242
|
}
|
|
235
243
|
get enablePartialMode() {
|
|
236
244
|
return this._data.enablePartialMode;
|
|
237
245
|
}
|
|
238
246
|
set enablePartialMode(value) {
|
|
239
247
|
this._data.enablePartialMode = value;
|
|
240
|
-
if (value)
|
|
241
|
-
|
|
248
|
+
if (value) {
|
|
249
|
+
this._data.enableStreamingMode = true;
|
|
250
|
+
this._data.sceneGraph = false;
|
|
251
|
+
}
|
|
252
|
+
this.change();
|
|
242
253
|
}
|
|
243
254
|
get memoryLimit() {
|
|
244
255
|
return this._data.memoryLimit;
|
|
245
256
|
}
|
|
246
257
|
set memoryLimit(value) {
|
|
247
258
|
this._data.memoryLimit = value;
|
|
248
|
-
this.
|
|
259
|
+
this.change();
|
|
249
260
|
}
|
|
250
261
|
get cuttingPlaneFillColor() {
|
|
251
262
|
return this._data.cuttingPlaneFillColor;
|
|
252
263
|
}
|
|
253
264
|
set cuttingPlaneFillColor(value) {
|
|
254
265
|
this._data.cuttingPlaneFillColor = value;
|
|
255
|
-
this.
|
|
266
|
+
this.change();
|
|
256
267
|
}
|
|
257
268
|
get edgesColor() {
|
|
258
269
|
return this._data.edgesColor;
|
|
259
270
|
}
|
|
260
271
|
set edgesColor(value) {
|
|
261
272
|
this._data.edgesColor = value;
|
|
262
|
-
this.
|
|
273
|
+
this.change();
|
|
263
274
|
}
|
|
264
275
|
get facesColor() {
|
|
265
276
|
return this._data.facesColor;
|
|
266
277
|
}
|
|
267
278
|
set facesColor(value) {
|
|
268
279
|
this._data.facesColor = value;
|
|
269
|
-
this.
|
|
280
|
+
this.change();
|
|
270
281
|
}
|
|
271
282
|
get edgesVisibility() {
|
|
272
283
|
return this._data.edgesVisibility;
|
|
273
284
|
}
|
|
274
285
|
set edgesVisibility(value) {
|
|
275
286
|
this._data.edgesVisibility = value;
|
|
276
|
-
this.
|
|
287
|
+
this.change();
|
|
277
288
|
}
|
|
278
289
|
get edgesOverlap() {
|
|
279
290
|
return this._data.edgesOverlap;
|
|
280
291
|
}
|
|
281
292
|
set edgesOverlap(value) {
|
|
282
293
|
this._data.edgesOverlap = value;
|
|
283
|
-
this.
|
|
294
|
+
this.change();
|
|
284
295
|
}
|
|
285
296
|
get facesOverlap() {
|
|
286
297
|
return this._data.facesOverlap;
|
|
287
298
|
}
|
|
288
299
|
set facesOverlap(value) {
|
|
289
300
|
this._data.facesOverlap = value;
|
|
290
|
-
this.
|
|
301
|
+
this.change();
|
|
291
302
|
}
|
|
292
303
|
get facesTransparancy() {
|
|
293
304
|
return this._data.facesTransparancy;
|
|
294
305
|
}
|
|
295
306
|
set facesTransparancy(value) {
|
|
296
307
|
this._data.facesTransparancy = value;
|
|
297
|
-
this.
|
|
308
|
+
this.change();
|
|
298
309
|
}
|
|
299
310
|
get enableCustomHighlight() {
|
|
300
311
|
return this._data.enableCustomHighlight;
|
|
301
312
|
}
|
|
302
313
|
set enableCustomHighlight(value) {
|
|
303
314
|
this._data.enableCustomHighlight = value;
|
|
304
|
-
this.
|
|
315
|
+
this.change();
|
|
305
316
|
}
|
|
306
317
|
get sceneGraph() {
|
|
307
318
|
return this._data.sceneGraph;
|
|
@@ -309,46 +320,46 @@ class Options {
|
|
|
309
320
|
set sceneGraph(value) {
|
|
310
321
|
this._data.sceneGraph = value;
|
|
311
322
|
if (value) this._data.enablePartialMode = false;
|
|
312
|
-
this.
|
|
323
|
+
this.change();
|
|
313
324
|
}
|
|
314
325
|
get edgeModel() {
|
|
315
326
|
return Boolean(this._data.edgeModel);
|
|
316
327
|
}
|
|
317
328
|
set edgeModel(value) {
|
|
318
329
|
this._data.edgeModel = Boolean(value);
|
|
319
|
-
this.
|
|
330
|
+
this.change();
|
|
320
331
|
}
|
|
321
332
|
get reverseZoomWheel() {
|
|
322
333
|
return this._data.reverseZoomWheel;
|
|
323
334
|
}
|
|
324
335
|
set reverseZoomWheel(value) {
|
|
325
336
|
this._data.reverseZoomWheel = !!value;
|
|
326
|
-
this.
|
|
337
|
+
this.change();
|
|
327
338
|
}
|
|
328
339
|
get enableZoomWheel() {
|
|
329
340
|
return this._data.enableZoomWheel;
|
|
330
341
|
}
|
|
331
342
|
set enableZoomWheel(value) {
|
|
332
343
|
this._data.enableZoomWheel = !!value;
|
|
333
|
-
this.
|
|
344
|
+
this.change();
|
|
334
345
|
}
|
|
335
346
|
get enableGestures() {
|
|
336
347
|
return this._data.enableGestures;
|
|
337
348
|
}
|
|
338
349
|
set enableGestures(value) {
|
|
339
350
|
this._data.enableGestures = !!value;
|
|
340
|
-
this.
|
|
351
|
+
this.change();
|
|
341
352
|
}
|
|
342
353
|
get geometryType() {
|
|
343
354
|
return this._data.geometryType;
|
|
344
355
|
}
|
|
345
356
|
set geometryType(value) {
|
|
346
357
|
this._data.geometryType = value;
|
|
347
|
-
this.
|
|
358
|
+
this.change();
|
|
348
359
|
}
|
|
349
360
|
}
|
|
350
361
|
|
|
351
362
|
const CANVAS_EVENTS = [ "click", "dblclick", "mousedown", "mousemove", "mouseup", "mouseleave", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "wheel", "touchstart", "touchmove", "touchend", "touchcancel" ];
|
|
352
363
|
|
|
353
|
-
export { CANVAS_EVENTS, Options, commands };
|
|
364
|
+
export { CANVAS_EVENTS, Options, commands, defaultOptions };
|
|
354
365
|
//# sourceMappingURL=viewer-core.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer-core.module.js","sources":["../src/commands/Commands.ts","../src/options/Options.ts","../src/viewer/CanvasEvents.ts"],"sourcesContent":["///////////////////////////////////////////////////////////////////////////////\n// Copyright (C) 2002-2023, Open Design Alliance (the \"Alliance\").\n// All rights reserved.\n//\n// This software and its documentation and related materials are owned by\n// the Alliance. The software may only be incorporated into application\n// programs owned by members of the Alliance, subject to a signed\n// Membership Agreement and Supplemental Software License Agreement with the\n// Alliance. The structure and organization of this software are the valuable\n// trade secrets of the Alliance and its suppliers. The software is also\n// protected by copyright law and international treaty provisions. Application\n// programs incorporating this software must include the following statement\n// with their copyright notices:\n//\n// This application incorporates Open Design Alliance software pursuant to a\n// license agreement with Open Design Alliance.\n// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.\n// All rights reserved.\n//\n// By use of this software, its documentation or related materials, you\n// acknowledge and accept the above terms.\n///////////////////////////////////////////////////////////////////////////////\n\nimport { IViewer } from \"../viewer/IViewer\";\nimport { ICommand, ICommandHandler, ICommandDescription, ICommandsMap, ICommands } from \"./ICommands\";\n\nclass Commands implements ICommands {\n private readonly _commands = new Map<string, ICommand>();\n\n registerCommand(id: string, handler: ICommandHandler, description?: ICommandDescription, thisArg?: any): void {\n this._commands.set(id, { id, handler, thisArg, description });\n }\n\n registerCommandAlias(id: string, alias: string): void {\n this.registerCommand(alias, (viewer: IViewer, ...args) => this.executeCommand(id, viewer, ...args));\n }\n\n getCommand(id: string): ICommand | undefined {\n return this._commands.get(id);\n }\n\n getCommands(): ICommandsMap {\n const map = new Map<string, ICommand>();\n this._commands.forEach((value, key) => map.set(key, value));\n return map;\n }\n\n executeCommand(id: string, viewer: IViewer, ...args: any[]): any {\n const command = this._commands.get(id);\n if (!command) {\n if (viewer) {\n const isDraggerCommand = viewer.draggers.includes(id);\n if (isDraggerCommand) return viewer.setActiveDragger(id);\n }\n\n console.warn(`Command '${id}' not found`);\n return undefined;\n }\n\n const { handler, thisArg } = command;\n const result = handler.apply(thisArg, [viewer, ...args]);\n\n viewer?.emit({ type: \"command\", data: id, args });\n\n return result;\n }\n}\n\nconst _commands = new Map<string, Commands>();\n\nfunction commands(viewerType = \"\"): ICommands {\n let result = _commands.get(viewerType);\n if (!result) {\n result = new Commands();\n _commands.set(viewerType, result);\n }\n return result;\n}\n\ncommands(\"\").registerCommand(\"noop\", () => {});\ncommands(\"VisualizeJS\").registerCommand(\"noop\", () => {});\ncommands(\"ThreeJS\").registerCommand(\"noop\", () => {});\n\nexport { commands };\n","///////////////////////////////////////////////////////////////////////////////\n// Copyright (C) 2002-2021, Open Design Alliance (the \"Alliance\").\n// All rights reserved.\n//\n// This software and its documentation and related materials are owned by\n// the Alliance. The software may only be incorporated into application\n// programs owned by members of the Alliance, subject to a signed\n// Membership Agreement and Supplemental Software License Agreement with the\n// Alliance. The structure and organization of this software are the valuable\n// trade secrets of the Alliance and its suppliers. The software is also\n// protected by copyright law and international treaty provisions. Application\n// programs incorporating this software must include the following statement\n// with their copyright notices:\n//\n// This application incorporates Open Design Alliance software pursuant to a\n// license agreement with Open Design Alliance.\n// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.\n// All rights reserved.\n//\n// By use of this software, its documentation or related materials, you\n// acknowledge and accept the above terms.\n///////////////////////////////////////////////////////////////////////////////\n\nimport { EventEmitter2 } from \"@inweb/eventemitter2\";\n\nexport interface RGB {\n red: number;\n green: number;\n blue: number;\n}\n\n/**\n * `VisualizeJS` parameters.\n */\nexport interface OptionsData {\n /**\n * Show WCS\n *\n * @defaultValue true\n */\n showWCS?: boolean;\n\n /**\n * Enable camera animation\n *\n * @defaultValue true\n */\n cameraAnimation?: boolean;\n\n /**\n * Enable antialiasing use FXAA\n *\n * @defaultValue true\n */\n antialiasing?: boolean;\n\n /**\n * Enable ground shadows\n *\n * @defaultValue false\n */\n groundShadow?: boolean;\n\n /**\n * Enable shadows\n *\n * @defaultValue false\n */\n shadows?: boolean;\n\n /**\n * Camera speed on X axis\n *\n * @defaultValue 4\n */\n cameraAxisXSpeed?: number;\n\n /**\n * Camera speed on Y axis\n *\n * @defaultValue 1\n */\n cameraAxisYSpeed?: number;\n\n /**\n * Ambient occlusion\n *\n * @defaultValue false\n */\n ambientOcclusion?: boolean;\n\n /**\n * Enable streaming mode\n *\n * If enableStreamingMode is true then enablePartialMode will be used, otherwise -\n * enablePartialMode will be ignored and file / assembly will be loaded in one go\n *\n * @defaultValue true\n */\n enableStreamingMode?: boolean;\n\n /**\n * Enable partial load mode to be able open large drawing If enablePartialMode enabled, then\n * sceneGraph will be switched off\n *\n * @defaultValue false\n */\n enablePartialMode?: boolean;\n\n /**\n * The size of the memory buffer that the Viewer can use for graphics data\n *\n * @defaultValue 3294967296\n */\n memoryLimit?: number;\n\n /**\n * Cutting plane fill color\n *\n * @defaultValue { red: 0xff, green: 0x98, blue: 0x00 }\n */\n cuttingPlaneFillColor?: RGB;\n\n /**\n * Outline edges color in RGB format.\n */\n edgesColor?: { r: number; g: number; b: number };\n\n /**\n * Faces color in the RGB format.\n */\n facesColor?: { r: number; g: number; b: number };\n\n /**\n * Show or hide edges.\n */\n edgesVisibility?: boolean;\n\n /**\n * Show edges over drawing.\n */\n edgesOverlap?: boolean;\n\n /**\n * Show faces over drawing.\n */\n facesOverlap?: boolean;\n\n /**\n * Faces transparency value from 0 to 255.\n */\n facesTransparancy?: number;\n\n /**\n * Enable custom highlight settings.\n */\n enableCustomHighlight?: boolean;\n\n /**\n * Enable or disable scene graph, it increases perfomance improvement, but consumes memory\n * Large drawings can take up a lot of memory. If sceneGraph enabled, then enablePartialMode\n * will be switched off\n */\n sceneGraph: boolean;\n\n /**\n * Edge display models. No edges is usefull for less memory consumption: `false` - no edges\n * are displayed, `true` - display isolines.\n */\n edgeModel: boolean;\n\n /**\n * Reverse the mouse wheel direction for zooming: false - moving the wheel up zooms in,\n * moving down zooms out, `true` - moving the wheel up zooms out, moving down zooms in.\n */\n reverseZoomWheel: boolean;\n\n /**\n * Enable mouse wheel zooming.\n */\n enableZoomWheel: boolean;\n\n /**\n * Enable touch gestures. This option will be ignored when enableZoomWheel is disabled, since\n * gestures contains touch zoom.\n */\n enableGestures: boolean;\n\n /**\n * Default file geometry data type. Can be one of:\n *\n * - `vsfx` - `VSFX` (default), for opening a file in `VisualizeJS` viewer.\n * - `gltf` - `glTF`, for opening a file in `Three.js` viewer.\n */\n geometryType?: string;\n}\n\nexport class Options {\n protected _emitter?: EventEmitter2;\n protected _data: OptionsData;\n\n constructor(emitter?: EventEmitter2) {\n this._emitter = emitter;\n this._data = Options.defaults();\n this.loadFromStorage();\n }\n\n static defaults(): OptionsData {\n return {\n showWCS: true,\n cameraAnimation: true,\n antialiasing: true,\n groundShadow: false,\n shadows: false,\n cameraAxisXSpeed: 4,\n cameraAxisYSpeed: 1,\n ambientOcclusion: false,\n enableStreamingMode: true,\n enablePartialMode: false,\n memoryLimit: 3294967296,\n cuttingPlaneFillColor: { red: 0xff, green: 0x98, blue: 0x00 },\n edgesColor: { r: 0xff, g: 0x98, b: 0x00 },\n facesColor: { r: 0xff, g: 0x98, b: 0x00 },\n edgesVisibility: true,\n edgesOverlap: true,\n facesOverlap: false,\n facesTransparancy: 200,\n enableCustomHighlight: true,\n sceneGraph: false,\n edgeModel: true,\n reverseZoomWheel: false,\n enableZoomWheel: true,\n enableGestures: true,\n geometryType: \"vsfx\",\n };\n }\n\n notifierChangeEvent(): void {\n if (this._emitter !== undefined) {\n this.saveToStorage();\n this._emitter.emit({ type: \"optionschange\", data: this });\n }\n }\n\n saveToStorage(): void {\n if (typeof window !== \"undefined\")\n try {\n localStorage.setItem(\"od-client-settings\", JSON.stringify(this.data));\n } catch (error) {\n console.error(\"Cannot save client settings.\", error);\n }\n }\n\n loadFromStorage(): void {\n if (typeof window !== \"undefined\")\n try {\n const item = localStorage.getItem(\"od-client-settings\");\n if (item) {\n const data = JSON.parse(item);\n this.data = { ...data };\n }\n } catch (error) {\n console.error(\"Cannot load client settings.\", error);\n }\n }\n\n /**\n * Reset options to default\n *\n * @param fields - Name of fields to be reset\n */\n resetToDefaults(fields?: string[]): void {\n if (fields !== undefined) {\n const defaults = Options.defaults();\n const resetData = fields.reduce((acc, field) => {\n acc[field] = defaults[field];\n return acc;\n }, {});\n\n this.data = { ...this.data, ...resetData };\n } else {\n this.data = { ...this.data, ...Options.defaults() };\n }\n }\n\n get data(): OptionsData {\n return this._data;\n }\n\n set data(value: OptionsData) {\n const sceneGraph = value.enablePartialMode ? false : value.sceneGraph;\n this._data = { ...Options.defaults(), ...this._data, ...value, sceneGraph };\n this.notifierChangeEvent();\n }\n\n get showWCS(): boolean {\n return this._data.showWCS;\n }\n\n set showWCS(value: boolean) {\n this._data.showWCS = value;\n this.notifierChangeEvent();\n }\n\n get cameraAnimation(): boolean {\n return this._data.cameraAnimation;\n }\n\n set cameraAnimation(value: boolean) {\n this._data.cameraAnimation = value;\n this.notifierChangeEvent();\n }\n\n get antialiasing(): boolean {\n return this._data.antialiasing;\n }\n\n set antialiasing(value: boolean) {\n this._data.antialiasing = value;\n this.notifierChangeEvent();\n }\n\n get groundShadow(): boolean {\n return this._data.groundShadow;\n }\n\n set groundShadow(value: boolean) {\n this._data.groundShadow = value;\n this.notifierChangeEvent();\n }\n\n get shadows(): boolean {\n return this._data.shadows;\n }\n\n set shadows(value: boolean) {\n this._data.shadows = value;\n this.notifierChangeEvent();\n }\n\n get cameraAxisXSpeed(): number {\n return this._data.cameraAxisXSpeed;\n }\n\n set cameraAxisXSpeed(value: number) {\n this._data.cameraAxisXSpeed = value;\n this.notifierChangeEvent();\n }\n\n get cameraAxisYSpeed(): number {\n return this._data.cameraAxisYSpeed;\n }\n\n set cameraAxisYSpeed(value: number) {\n this.cameraAxisYSpeed = value;\n this.notifierChangeEvent();\n }\n\n get ambientOcclusion(): boolean {\n return this._data.ambientOcclusion;\n }\n\n set ambientOcclusion(value: boolean) {\n this._data.ambientOcclusion = value;\n this.notifierChangeEvent();\n }\n\n get enableStreamingMode(): boolean {\n return this._data.enableStreamingMode;\n }\n\n set enableStreamingMode(value: boolean) {\n this._data.enableStreamingMode = value;\n\n if (this._data.enableStreamingMode) {\n this._data.enablePartialMode = false;\n }\n\n this.notifierChangeEvent();\n }\n\n get enablePartialMode(): boolean {\n return this._data.enablePartialMode;\n }\n\n set enablePartialMode(value: boolean) {\n this._data.enablePartialMode = value;\n if (value) this._data.sceneGraph = false;\n this.notifierChangeEvent();\n }\n\n get memoryLimit(): number {\n return this._data.memoryLimit;\n }\n\n set memoryLimit(value: number) {\n this._data.memoryLimit = value;\n this.notifierChangeEvent();\n }\n\n get cuttingPlaneFillColor(): RGB {\n return this._data.cuttingPlaneFillColor;\n }\n\n set cuttingPlaneFillColor(value: RGB) {\n this._data.cuttingPlaneFillColor = value;\n this.notifierChangeEvent();\n }\n\n get edgesColor() {\n return this._data.edgesColor;\n }\n\n set edgesColor(value) {\n this._data.edgesColor = value;\n this.notifierChangeEvent();\n }\n\n get facesColor() {\n return this._data.facesColor;\n }\n\n set facesColor(value) {\n this._data.facesColor = value;\n this.notifierChangeEvent();\n }\n\n get edgesVisibility() {\n return this._data.edgesVisibility;\n }\n\n set edgesVisibility(value) {\n this._data.edgesVisibility = value;\n this.notifierChangeEvent();\n }\n\n get edgesOverlap() {\n return this._data.edgesOverlap;\n }\n\n set edgesOverlap(value) {\n this._data.edgesOverlap = value;\n this.notifierChangeEvent();\n }\n\n get facesOverlap() {\n return this._data.facesOverlap;\n }\n\n set facesOverlap(value) {\n this._data.facesOverlap = value;\n this.notifierChangeEvent();\n }\n\n get facesTransparancy() {\n return this._data.facesTransparancy;\n }\n\n set facesTransparancy(value) {\n this._data.facesTransparancy = value;\n this.notifierChangeEvent();\n }\n\n get enableCustomHighlight() {\n return this._data.enableCustomHighlight;\n }\n\n set enableCustomHighlight(value) {\n this._data.enableCustomHighlight = value;\n this.notifierChangeEvent();\n }\n\n get sceneGraph() {\n return this._data.sceneGraph;\n }\n\n set sceneGraph(value) {\n this._data.sceneGraph = value;\n if (value) this._data.enablePartialMode = false;\n this.notifierChangeEvent();\n }\n\n get edgeModel() {\n return Boolean(this._data.edgeModel);\n }\n\n set edgeModel(value) {\n this._data.edgeModel = Boolean(value);\n this.notifierChangeEvent();\n }\n\n get reverseZoomWheel() {\n return this._data.reverseZoomWheel;\n }\n\n set reverseZoomWheel(value: boolean) {\n this._data.reverseZoomWheel = !!value;\n this.notifierChangeEvent();\n }\n\n get enableZoomWheel() {\n return this._data.enableZoomWheel;\n }\n\n set enableZoomWheel(value: boolean) {\n this._data.enableZoomWheel = !!value;\n this.notifierChangeEvent();\n }\n\n get enableGestures() {\n return this._data.enableGestures;\n }\n\n set enableGestures(value: boolean) {\n this._data.enableGestures = !!value;\n this.notifierChangeEvent();\n }\n\n get geometryType() {\n return this._data.geometryType;\n }\n\n set geometryType(value: string) {\n this._data.geometryType = value;\n this.notifierChangeEvent();\n }\n}\n","///////////////////////////////////////////////////////////////////////////////\n// Copyright (C) 2002-2021, Open Design Alliance (the \"Alliance\").\n// All rights reserved.\n//\n// This software and its documentation and related materials are owned by\n// the Alliance. The software may only be incorporated into application\n// programs owned by members of the Alliance, subject to a signed\n// Membership Agreement and Supplemental Software License Agreement with the\n// Alliance. The structure and organization of this software are the valuable\n// trade secrets of the Alliance and its suppliers. The software is also\n// protected by copyright law and international treaty provisions. Application\n// programs incorporating this software must include the following statement\n// with their copyright notices:\n//\n// This application incorporates Open Design Alliance software pursuant to a\n// license agreement with Open Design Alliance.\n// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.\n// All rights reserved.\n//\n// By use of this software, its documentation or related materials, you\n// acknowledge and accept the above terms.\n///////////////////////////////////////////////////////////////////////////////\n\nexport const CANVAS_EVENTS = [\n \"click\",\n \"dblclick\",\n \"mousedown\",\n \"mousemove\",\n \"mouseup\",\n \"mouseleave\",\n \"pointerdown\",\n \"pointermove\",\n \"pointerup\",\n \"pointerleave\",\n \"pointercancel\",\n \"wheel\",\n \"touchstart\",\n \"touchmove\",\n \"touchend\",\n \"touchcancel\",\n];\n"],"names":["Commands","constructor","this","_commands","Map","registerCommand","id","handler","description","thisArg","set","registerCommandAlias","alias","viewer","args","executeCommand","getCommand","get","getCommands","map","forEach","value","key","command","isDraggerCommand","draggers","includes","setActiveDragger","console","warn","undefined","result","apply","emit","type","data","commands","viewerType","Options","emitter","_emitter","_data","defaults","loadFromStorage","showWCS","cameraAnimation","antialiasing","groundShadow","shadows","cameraAxisXSpeed","cameraAxisYSpeed","ambientOcclusion","enableStreamingMode","enablePartialMode","memoryLimit","cuttingPlaneFillColor","red","green","blue","edgesColor","r","g","b","facesColor","edgesVisibility","edgesOverlap","facesOverlap","facesTransparancy","enableCustomHighlight","sceneGraph","edgeModel","reverseZoomWheel","enableZoomWheel","enableGestures","geometryType","notifierChangeEvent","saveToStorage","window","localStorage","setItem","JSON","stringify","error","item","getItem","parse","resetToDefaults","fields","resetData","reduce","acc","field","Boolean","CANVAS_EVENTS"],"mappings":"AA0BA,MAAMA;IAAN,WAAAC;QACmBC,KAAAC,YAAY,IAAIC;AAuClC;IArCC,eAAAC,CAAgBC,IAAYC,SAA0BC,aAAmCC;QACvFP,KAAKC,UAAUO,IAAIJ,IAAI;YAAEA;YAAIC;YAASE;YAASD;;AAChD;IAED,oBAAAG,CAAqBL,IAAYM;QAC/BV,KAAKG,gBAAgBO,QAAO,CAACC,WAAoBC,SAASZ,KAAKa,eAAeT,IAAIO,WAAWC;AAC9F;IAED,UAAAE,CAAWV;QACT,OAAOJ,KAAKC,UAAUc,IAAIX;AAC3B;IAED,WAAAY;QACE,MAAMC,MAAM,IAAIf;QAChBF,KAAKC,UAAUiB,SAAQ,CAACC,OAAOC,QAAQH,IAAIT,IAAIY,KAAKD;QACpD,OAAOF;AACR;IAED,cAAAJ,CAAeT,IAAYO,WAAoBC;QAC7C,MAAMS,UAAUrB,KAAKC,UAAUc,IAAIX;QACnC,KAAKiB,SAAS;YACZ,IAAIV,QAAQ;gBACV,MAAMW,mBAAmBX,OAAOY,SAASC,SAASpB;gBAClD,IAAIkB,kBAAkB,OAAOX,OAAOc,iBAAiBrB;AACtD;YAEDsB,QAAQC,KAAK,YAAYvB;YACzB,OAAOwB;AACR;QAED,OAAMvB,SAAEA,SAAOE,SAAEA,WAAYc;QAC7B,MAAMQ,SAASxB,QAAQyB,MAAMvB,SAAS,EAACI,WAAWC;QAElDD,mBAAAA,gBAAM,SAAA,IAANA,OAAQoB,KAAK;YAAEC,MAAM;YAAWC,MAAM7B;YAAIQ;;QAE1C,OAAOiB;AACR;;;AAGH,MAAM5B,YAAY,IAAIC;;AAEtB,SAASgC,SAASC,aAAa;IAC7B,IAAIN,SAAS5B,UAAUc,IAAIoB;IAC3B,KAAKN,QAAQ;QACXA,SAAS,IAAI/B;QACbG,UAAUO,IAAI2B,YAAYN;AAC3B;IACD,OAAOA;AACT;;AAEAK,SAAS,IAAI/B,gBAAgB,SAAQ;;AACrC+B,SAAS,eAAe/B,gBAAgB,SAAQ;;AAChD+B,SAAS,WAAW/B,gBAAgB,SAAQ;;MCoH/BiC;IAIX,WAAArC,CAAYsC;QACVrC,KAAKsC,WAAWD;QAChBrC,KAAKuC,QAAQH,QAAQI;QACrBxC,KAAKyC;AACN;IAED,eAAOD;QACL,OAAO;YACLE,SAAS;YACTC,iBAAiB;YACjBC,cAAc;YACdC,cAAc;YACdC,SAAS;YACTC,kBAAkB;YAClBC,kBAAkB;YAClBC,kBAAkB;YAClBC,qBAAqB;YACrBC,mBAAmB;YACnBC,aAAa;YACbC,uBAAuB;gBAAEC,KAAK;gBAAMC,OAAO;gBAAMC,MAAM;;YACvDC,YAAY;gBAAEC,GAAG;gBAAMC,GAAG;gBAAMC,GAAG;;YACnCC,YAAY;gBAAEH,GAAG;gBAAMC,GAAG;gBAAMC,GAAG;;YACnCE,iBAAiB;YACjBC,cAAc;YACdC,cAAc;YACdC,mBAAmB;YACnBC,uBAAuB;YACvBC,YAAY;YACZC,WAAW;YACXC,kBAAkB;YAClBC,iBAAiB;YACjBC,gBAAgB;YAChBC,cAAc;;AAEjB;IAED,mBAAAC;QACE,IAAIzE,KAAKsC,aAAaV,WAAW;YAC/B5B,KAAK0E;YACL1E,KAAKsC,SAASP,KAAK;gBAAEC,MAAM;gBAAiBC,MAAMjC;;AACnD;AACF;IAED,aAAA0E;QACE,WAAWC,WAAW,aACpB;YACEC,aAAaC,QAAQ,sBAAsBC,KAAKC,UAAU/E,KAAKiC;AAChE,UAAC,OAAO+C;YACPtD,QAAQsD,MAAM,gCAAgCA;AAC/C;AACJ;IAED,eAAAvC;QACE,WAAWkC,WAAW,aACpB;YACE,MAAMM,OAAOL,aAAaM,QAAQ;YAClC,IAAID,MAAM;gBACR,MAAMhD,OAAO6C,KAAKK,MAAMF;gBACxBjF,KAAKiC,OAAO;uBAAKA;;AAClB;AACF,UAAC,OAAO+C;YACPtD,QAAQsD,MAAM,gCAAgCA;AAC/C;AACJ;IAOD,eAAAI,CAAgBC;QACd,IAAIA,WAAWzD,WAAW;YACxB,MAAMY,WAAWJ,QAAQI;YACzB,MAAM8C,YAAYD,OAAOE,QAAO,CAACC,KAAKC;gBACpCD,IAAIC,SAASjD,SAASiD;gBACtB,OAAOD;AAAG,gBACT,CAAE;YAELxF,KAAKiC,OAAO;mBAAKjC,KAAKiC;mBAASqD;;AAChC,eAAM;YACLtF,KAAKiC,OAAO;mBAAKjC,KAAKiC;mBAASG,QAAQI;;AACxC;AACF;IAED,QAAIP;QACF,OAAOjC,KAAKuC;AACb;IAED,QAAIN,CAAKd;QACP,MAAMgD,aAAahD,MAAMgC,oBAAoB,QAAQhC,MAAMgD;QAC3DnE,KAAKuC,QAAQ;eAAKH,QAAQI;eAAexC,KAAKuC;eAAUpB;YAAOgD;;QAC/DnE,KAAKyE;AACN;IAED,WAAI/B;QACF,OAAO1C,KAAKuC,MAAMG;AACnB;IAED,WAAIA,CAAQvB;QACVnB,KAAKuC,MAAMG,UAAUvB;QACrBnB,KAAKyE;AACN;IAED,mBAAI9B;QACF,OAAO3C,KAAKuC,MAAMI;AACnB;IAED,mBAAIA,CAAgBxB;QAClBnB,KAAKuC,MAAMI,kBAAkBxB;QAC7BnB,KAAKyE;AACN;IAED,gBAAI7B;QACF,OAAO5C,KAAKuC,MAAMK;AACnB;IAED,gBAAIA,CAAazB;QACfnB,KAAKuC,MAAMK,eAAezB;QAC1BnB,KAAKyE;AACN;IAED,gBAAI5B;QACF,OAAO7C,KAAKuC,MAAMM;AACnB;IAED,gBAAIA,CAAa1B;QACfnB,KAAKuC,MAAMM,eAAe1B;QAC1BnB,KAAKyE;AACN;IAED,WAAI3B;QACF,OAAO9C,KAAKuC,MAAMO;AACnB;IAED,WAAIA,CAAQ3B;QACVnB,KAAKuC,MAAMO,UAAU3B;QACrBnB,KAAKyE;AACN;IAED,oBAAI1B;QACF,OAAO/C,KAAKuC,MAAMQ;AACnB;IAED,oBAAIA,CAAiB5B;QACnBnB,KAAKuC,MAAMQ,mBAAmB5B;QAC9BnB,KAAKyE;AACN;IAED,oBAAIzB;QACF,OAAOhD,KAAKuC,MAAMS;AACnB;IAED,oBAAIA,CAAiB7B;QACnBnB,KAAKgD,mBAAmB7B;QACxBnB,KAAKyE;AACN;IAED,oBAAIxB;QACF,OAAOjD,KAAKuC,MAAMU;AACnB;IAED,oBAAIA,CAAiB9B;QACnBnB,KAAKuC,MAAMU,mBAAmB9B;QAC9BnB,KAAKyE;AACN;IAED,uBAAIvB;QACF,OAAOlD,KAAKuC,MAAMW;AACnB;IAED,uBAAIA,CAAoB/B;QACtBnB,KAAKuC,MAAMW,sBAAsB/B;QAEjC,IAAInB,KAAKuC,MAAMW,qBAAqB;YAClClD,KAAKuC,MAAMY,oBAAoB;AAChC;QAEDnD,KAAKyE;AACN;IAED,qBAAItB;QACF,OAAOnD,KAAKuC,MAAMY;AACnB;IAED,qBAAIA,CAAkBhC;QACpBnB,KAAKuC,MAAMY,oBAAoBhC;QAC/B,IAAIA,OAAOnB,KAAKuC,MAAM4B,aAAa;QACnCnE,KAAKyE;AACN;IAED,eAAIrB;QACF,OAAOpD,KAAKuC,MAAMa;AACnB;IAED,eAAIA,CAAYjC;QACdnB,KAAKuC,MAAMa,cAAcjC;QACzBnB,KAAKyE;AACN;IAED,yBAAIpB;QACF,OAAOrD,KAAKuC,MAAMc;AACnB;IAED,yBAAIA,CAAsBlC;QACxBnB,KAAKuC,MAAMc,wBAAwBlC;QACnCnB,KAAKyE;AACN;IAED,cAAIhB;QACF,OAAOzD,KAAKuC,MAAMkB;AACnB;IAED,cAAIA,CAAWtC;QACbnB,KAAKuC,MAAMkB,aAAatC;QACxBnB,KAAKyE;AACN;IAED,cAAIZ;QACF,OAAO7D,KAAKuC,MAAMsB;AACnB;IAED,cAAIA,CAAW1C;QACbnB,KAAKuC,MAAMsB,aAAa1C;QACxBnB,KAAKyE;AACN;IAED,mBAAIX;QACF,OAAO9D,KAAKuC,MAAMuB;AACnB;IAED,mBAAIA,CAAgB3C;QAClBnB,KAAKuC,MAAMuB,kBAAkB3C;QAC7BnB,KAAKyE;AACN;IAED,gBAAIV;QACF,OAAO/D,KAAKuC,MAAMwB;AACnB;IAED,gBAAIA,CAAa5C;QACfnB,KAAKuC,MAAMwB,eAAe5C;QAC1BnB,KAAKyE;AACN;IAED,gBAAIT;QACF,OAAOhE,KAAKuC,MAAMyB;AACnB;IAED,gBAAIA,CAAa7C;QACfnB,KAAKuC,MAAMyB,eAAe7C;QAC1BnB,KAAKyE;AACN;IAED,qBAAIR;QACF,OAAOjE,KAAKuC,MAAM0B;AACnB;IAED,qBAAIA,CAAkB9C;QACpBnB,KAAKuC,MAAM0B,oBAAoB9C;QAC/BnB,KAAKyE;AACN;IAED,yBAAIP;QACF,OAAOlE,KAAKuC,MAAM2B;AACnB;IAED,yBAAIA,CAAsB/C;QACxBnB,KAAKuC,MAAM2B,wBAAwB/C;QACnCnB,KAAKyE;AACN;IAED,cAAIN;QACF,OAAOnE,KAAKuC,MAAM4B;AACnB;IAED,cAAIA,CAAWhD;QACbnB,KAAKuC,MAAM4B,aAAahD;QACxB,IAAIA,OAAOnB,KAAKuC,MAAMY,oBAAoB;QAC1CnD,KAAKyE;AACN;IAED,aAAIL;QACF,OAAOsB,QAAQ1F,KAAKuC,MAAM6B;AAC3B;IAED,aAAIA,CAAUjD;QACZnB,KAAKuC,MAAM6B,YAAYsB,QAAQvE;QAC/BnB,KAAKyE;AACN;IAED,oBAAIJ;QACF,OAAOrE,KAAKuC,MAAM8B;AACnB;IAED,oBAAIA,CAAiBlD;QACnBnB,KAAKuC,MAAM8B,qBAAqBlD;QAChCnB,KAAKyE;AACN;IAED,mBAAIH;QACF,OAAOtE,KAAKuC,MAAM+B;AACnB;IAED,mBAAIA,CAAgBnD;QAClBnB,KAAKuC,MAAM+B,oBAAoBnD;QAC/BnB,KAAKyE;AACN;IAED,kBAAIF;QACF,OAAOvE,KAAKuC,MAAMgC;AACnB;IAED,kBAAIA,CAAepD;QACjBnB,KAAKuC,MAAMgC,mBAAmBpD;QAC9BnB,KAAKyE;AACN;IAED,gBAAID;QACF,OAAOxE,KAAKuC,MAAMiC;AACnB;IAED,gBAAIA,CAAarD;QACfnB,KAAKuC,MAAMiC,eAAerD;QAC1BnB,KAAKyE;AACN;;;ACtfU,MAAAkB,gBAAgB,EAC3B,SACA,YACA,aACA,aACA,WACA,cACA,eACA,eACA,aACA,gBACA,iBACA,SACA,cACA,aACA,YACA;;"}
|
|
1
|
+
{"version":3,"file":"viewer-core.module.js","sources":["../src/commands/Commands.ts","../src/options/IOptions.ts","../src/options/Options.ts","../src/viewer/CanvasEvents.ts"],"sourcesContent":["///////////////////////////////////////////////////////////////////////////////\n// Copyright (C) 2002-2023, Open Design Alliance (the \"Alliance\").\n// All rights reserved.\n//\n// This software and its documentation and related materials are owned by\n// the Alliance. The software may only be incorporated into application\n// programs owned by members of the Alliance, subject to a signed\n// Membership Agreement and Supplemental Software License Agreement with the\n// Alliance. The structure and organization of this software are the valuable\n// trade secrets of the Alliance and its suppliers. The software is also\n// protected by copyright law and international treaty provisions. Application\n// programs incorporating this software must include the following statement\n// with their copyright notices:\n//\n// This application incorporates Open Design Alliance software pursuant to a\n// license agreement with Open Design Alliance.\n// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.\n// All rights reserved.\n//\n// By use of this software, its documentation or related materials, you\n// acknowledge and accept the above terms.\n///////////////////////////////////////////////////////////////////////////////\n\nimport { IViewer } from \"../viewer/IViewer\";\nimport { ICommand, ICommandHandler, ICommandDescription, ICommandsMap, ICommands } from \"./ICommands\";\n\nclass Commands implements ICommands {\n private readonly _commands = new Map<string, ICommand>();\n\n registerCommand(id: string, handler: ICommandHandler, description?: ICommandDescription, thisArg?: any): void {\n this._commands.set(id, { id, handler, thisArg, description });\n }\n\n registerCommandAlias(id: string, alias: string): void {\n this.registerCommand(alias, (viewer: IViewer, ...args) => this.executeCommand(id, viewer, ...args));\n }\n\n getCommand(id: string): ICommand | undefined {\n return this._commands.get(id);\n }\n\n getCommands(): ICommandsMap {\n const map = new Map<string, ICommand>();\n this._commands.forEach((value, key) => map.set(key, value));\n return map;\n }\n\n executeCommand(id: string, viewer: IViewer, ...args: any[]): any {\n const command = this._commands.get(id);\n if (!command) {\n if (viewer) {\n const isDraggerCommand = viewer.draggers.includes(id);\n if (isDraggerCommand) return viewer.setActiveDragger(id);\n }\n\n console.warn(`Command '${id}' not found`);\n return undefined;\n }\n\n const { handler, thisArg } = command;\n const result = handler.apply(thisArg, [viewer, ...args]);\n\n viewer?.emit({ type: \"command\", data: id, args });\n\n return result;\n }\n}\n\nconst _commands = new Map<string, Commands>();\n\nfunction commands(viewerType = \"\"): ICommands {\n let result = _commands.get(viewerType);\n if (!result) {\n result = new Commands();\n _commands.set(viewerType, result);\n }\n return result;\n}\n\ncommands(\"\").registerCommand(\"noop\", () => {});\ncommands(\"VisualizeJS\").registerCommand(\"noop\", () => {});\ncommands(\"ThreeJS\").registerCommand(\"noop\", () => {});\n\nexport { commands };\n","///////////////////////////////////////////////////////////////////////////////\n// Copyright (C) 2002-2021, Open Design Alliance (the \"Alliance\").\n// All rights reserved.\n//\n// This software and its documentation and related materials are owned by\n// the Alliance. The software may only be incorporated into application\n// programs owned by members of the Alliance, subject to a signed\n// Membership Agreement and Supplemental Software License Agreement with the\n// Alliance. The structure and organization of this software are the valuable\n// trade secrets of the Alliance and its suppliers. The software is also\n// protected by copyright law and international treaty provisions. Application\n// programs incorporating this software must include the following statement\n// with their copyright notices:\n//\n// This application incorporates Open Design Alliance software pursuant to a\n// license agreement with Open Design Alliance.\n// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.\n// All rights reserved.\n//\n// By use of this software, its documentation or related materials, you\n// acknowledge and accept the above terms.\n///////////////////////////////////////////////////////////////////////////////\n\nexport interface RGB {\n red: number;\n green: number;\n blue: number;\n}\n\n/**\n * Viewer parameters.\n */\nexport interface IOptions {\n /**\n * Show WCS\n *\n * @defaultValue true\n */\n showWCS?: boolean;\n\n /**\n * Enable camera animation\n *\n * @defaultValue true\n */\n cameraAnimation?: boolean;\n\n /**\n * Enable antialiasing use FXAA\n *\n * @defaultValue true\n */\n antialiasing?: boolean;\n\n /**\n * Enable ground shadows\n *\n * @defaultValue false\n */\n groundShadow?: boolean;\n\n /**\n * Enable shadows\n *\n * @defaultValue false\n */\n shadows?: boolean;\n\n /**\n * Camera speed on X axis\n *\n * @defaultValue 4\n */\n cameraAxisXSpeed?: number;\n\n /**\n * Camera speed on Y axis\n *\n * @defaultValue 1\n */\n cameraAxisYSpeed?: number;\n\n /**\n * Ambient occlusion\n *\n * @defaultValue false\n */\n ambientOcclusion?: boolean;\n\n /**\n * Enable streaming of drawings from the server\n *\n * If streaming is disabled, the file/assembly will be loaded in one go. If streaming is\n * enabled, partial download mode may be enabled as well.\n *\n * @defaultValue true\n */\n enableStreamingMode?: boolean;\n\n /**\n * Enable partial load mode to be able open large drawing. Only used if streaming is enabled.\n * If partial mode is enabled, then scene graph will be disabled.\n *\n * @defaultValue false\n */\n enablePartialMode?: boolean;\n\n /**\n * The size of the memory buffer that the Viewer can use for graphics data\n *\n * @defaultValue 3294967296\n */\n memoryLimit?: number;\n\n /**\n * Cutting plane fill color\n *\n * @defaultValue { red: 0xff, green: 0x98, blue: 0x00 }\n */\n cuttingPlaneFillColor?: RGB;\n\n /**\n * Outline edges color in RGB format.\n */\n edgesColor?: { r: number; g: number; b: number };\n\n /**\n * Faces color in the RGB format.\n */\n facesColor?: { r: number; g: number; b: number };\n\n /**\n * Show or hide edges.\n */\n edgesVisibility?: boolean;\n\n /**\n * Show edges over drawing.\n */\n edgesOverlap?: boolean;\n\n /**\n * Show faces over drawing.\n */\n facesOverlap?: boolean;\n\n /**\n * Faces transparency value from 0 to 255.\n */\n facesTransparancy?: number;\n\n /**\n * Enable custom highlight settings.\n */\n enableCustomHighlight?: boolean;\n\n /**\n * Enable or disable scene graph, it increases perfomance improvement, but consumes memory.\n * Large drawings can take up a lot of memory. If sceneGraph enabled, then enablePartialMode\n * will be disabled\n */\n sceneGraph: boolean;\n\n /**\n * Edge display models. No edges is usefull for less memory consumption: `false` - no edges\n * are displayed, `true` - display isolines.\n */\n edgeModel: boolean;\n\n /**\n * Reverse the mouse wheel direction for zooming: false - moving the wheel up zooms in,\n * moving down zooms out, `true` - moving the wheel up zooms out, moving down zooms in.\n */\n reverseZoomWheel: boolean;\n\n /**\n * Enable mouse wheel zooming.\n */\n enableZoomWheel: boolean;\n\n /**\n * Enable touch gestures. This option will be ignored when enableZoomWheel is disabled, since\n * gestures contains touch zoom.\n */\n enableGestures: boolean;\n\n /**\n * Default file geometry data type. Can be one of:\n *\n * - `vsfx` - `VSFX` (default), for opening a file in `VisualizeJS` viewer.\n * - `gltf` - `glTF`, for opening a file in `Three.js` viewer.\n */\n geometryType?: string;\n}\n\nexport function defaultOptions(): IOptions {\n return {\n showWCS: true,\n cameraAnimation: true,\n antialiasing: true,\n groundShadow: false,\n shadows: false,\n cameraAxisXSpeed: 4,\n cameraAxisYSpeed: 1,\n ambientOcclusion: false,\n enableStreamingMode: true,\n enablePartialMode: false,\n memoryLimit: 3294967296,\n cuttingPlaneFillColor: { red: 0xff, green: 0x98, blue: 0x00 },\n edgesColor: { r: 0xff, g: 0x98, b: 0x00 },\n facesColor: { r: 0xff, g: 0x98, b: 0x00 },\n edgesVisibility: true,\n edgesOverlap: true,\n facesOverlap: false,\n facesTransparancy: 200,\n enableCustomHighlight: true,\n sceneGraph: false,\n edgeModel: true,\n reverseZoomWheel: false,\n enableZoomWheel: true,\n enableGestures: true,\n geometryType: \"vsfx\",\n };\n}\n","///////////////////////////////////////////////////////////////////////////////\n// Copyright (C) 2002-2021, Open Design Alliance (the \"Alliance\").\n// All rights reserved.\n//\n// This software and its documentation and related materials are owned by\n// the Alliance. The software may only be incorporated into application\n// programs owned by members of the Alliance, subject to a signed\n// Membership Agreement and Supplemental Software License Agreement with the\n// Alliance. The structure and organization of this software are the valuable\n// trade secrets of the Alliance and its suppliers. The software is also\n// protected by copyright law and international treaty provisions. Application\n// programs incorporating this software must include the following statement\n// with their copyright notices:\n//\n// This application incorporates Open Design Alliance software pursuant to a\n// license agreement with Open Design Alliance.\n// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.\n// All rights reserved.\n//\n// By use of this software, its documentation or related materials, you\n// acknowledge and accept the above terms.\n///////////////////////////////////////////////////////////////////////////////\n\nimport { EventEmitter2 } from \"@inweb/eventemitter2\";\nimport { IOptions, RGB, defaultOptions } from \"./IOptions\";\n\nexport class Options implements IOptions {\n protected _emitter?: EventEmitter2;\n protected _data: IOptions;\n\n constructor(emitter?: EventEmitter2) {\n this._emitter = emitter;\n this._data = defaultOptions();\n this.loadFromStorage();\n }\n\n static defaults(): IOptions {\n return defaultOptions();\n }\n\n notifierChangeEvent(): void {\n console.warn(\n \"Options.notifierChangeEvent() has been deprecated since 25.3 and will be removed in a future release, use Options.change() instead.\"\n );\n this.change();\n }\n\n change(): void {\n if (this._emitter !== undefined) {\n this.saveToStorage();\n this._emitter.emit({ type: \"optionschange\", data: this });\n }\n }\n\n saveToStorage(): void {\n if (typeof window !== \"undefined\")\n try {\n localStorage.setItem(\"od-client-settings\", JSON.stringify(this.data));\n } catch (error) {\n console.error(\"Cannot save client settings.\", error);\n }\n }\n\n loadFromStorage(): void {\n if (typeof window !== \"undefined\")\n try {\n const item = localStorage.getItem(\"od-client-settings\");\n if (item) {\n const data = JSON.parse(item);\n this.data = { ...data };\n }\n } catch (error) {\n console.error(\"Cannot load client settings.\", error);\n }\n }\n\n /**\n * Reset options to default\n *\n * @param fields - Name of fields to be reset\n */\n resetToDefaults(fields?: string[]): void {\n if (fields !== undefined) {\n const defaults = Options.defaults();\n const resetData = fields.reduce((acc, field) => {\n acc[field] = defaults[field];\n return acc;\n }, {});\n\n this.data = { ...this.data, ...resetData };\n } else {\n this.data = { ...this.data, ...Options.defaults() };\n }\n }\n\n get data(): IOptions {\n return this._data;\n }\n\n set data(value: IOptions) {\n const enablePartialMode = value.enableStreamingMode ? value.enablePartialMode : false;\n const sceneGraph = enablePartialMode ? false : value.sceneGraph;\n this._data = { ...Options.defaults(), ...this._data, ...value, enablePartialMode, sceneGraph };\n this.change();\n }\n\n get showWCS(): boolean {\n return this._data.showWCS;\n }\n\n set showWCS(value: boolean) {\n this._data.showWCS = value;\n this.change();\n }\n\n get cameraAnimation(): boolean {\n return this._data.cameraAnimation;\n }\n\n set cameraAnimation(value: boolean) {\n this._data.cameraAnimation = value;\n this.change();\n }\n\n get antialiasing(): boolean {\n return this._data.antialiasing;\n }\n\n set antialiasing(value: boolean) {\n this._data.antialiasing = value;\n this.change();\n }\n\n get groundShadow(): boolean {\n return this._data.groundShadow;\n }\n\n set groundShadow(value: boolean) {\n this._data.groundShadow = value;\n this.change();\n }\n\n get shadows(): boolean {\n return this._data.shadows;\n }\n\n set shadows(value: boolean) {\n this._data.shadows = value;\n this.change();\n }\n\n get cameraAxisXSpeed(): number {\n return this._data.cameraAxisXSpeed;\n }\n\n set cameraAxisXSpeed(value: number) {\n this._data.cameraAxisXSpeed = value;\n this.change();\n }\n\n get cameraAxisYSpeed(): number {\n return this._data.cameraAxisYSpeed;\n }\n\n set cameraAxisYSpeed(value: number) {\n this.cameraAxisYSpeed = value;\n this.change();\n }\n\n get ambientOcclusion(): boolean {\n return this._data.ambientOcclusion;\n }\n\n set ambientOcclusion(value: boolean) {\n this._data.ambientOcclusion = value;\n this.change();\n }\n\n get enableStreamingMode(): boolean {\n return this._data.enableStreamingMode;\n }\n\n set enableStreamingMode(value: boolean) {\n this._data.enableStreamingMode = value;\n if (!value) this._data.enablePartialMode = false;\n this.change();\n }\n\n get enablePartialMode(): boolean {\n return this._data.enablePartialMode;\n }\n\n set enablePartialMode(value: boolean) {\n this._data.enablePartialMode = value;\n if (value) {\n this._data.enableStreamingMode = true;\n this._data.sceneGraph = false;\n }\n this.change();\n }\n\n get memoryLimit(): number {\n return this._data.memoryLimit;\n }\n\n set memoryLimit(value: number) {\n this._data.memoryLimit = value;\n this.change();\n }\n\n get cuttingPlaneFillColor(): RGB {\n return this._data.cuttingPlaneFillColor;\n }\n\n set cuttingPlaneFillColor(value: RGB) {\n this._data.cuttingPlaneFillColor = value;\n this.change();\n }\n\n get edgesColor() {\n return this._data.edgesColor;\n }\n\n set edgesColor(value) {\n this._data.edgesColor = value;\n this.change();\n }\n\n get facesColor() {\n return this._data.facesColor;\n }\n\n set facesColor(value) {\n this._data.facesColor = value;\n this.change();\n }\n\n get edgesVisibility() {\n return this._data.edgesVisibility;\n }\n\n set edgesVisibility(value) {\n this._data.edgesVisibility = value;\n this.change();\n }\n\n get edgesOverlap() {\n return this._data.edgesOverlap;\n }\n\n set edgesOverlap(value) {\n this._data.edgesOverlap = value;\n this.change();\n }\n\n get facesOverlap() {\n return this._data.facesOverlap;\n }\n\n set facesOverlap(value) {\n this._data.facesOverlap = value;\n this.change();\n }\n\n get facesTransparancy() {\n return this._data.facesTransparancy;\n }\n\n set facesTransparancy(value) {\n this._data.facesTransparancy = value;\n this.change();\n }\n\n get enableCustomHighlight() {\n return this._data.enableCustomHighlight;\n }\n\n set enableCustomHighlight(value) {\n this._data.enableCustomHighlight = value;\n this.change();\n }\n\n get sceneGraph() {\n return this._data.sceneGraph;\n }\n\n set sceneGraph(value) {\n this._data.sceneGraph = value;\n if (value) this._data.enablePartialMode = false;\n this.change();\n }\n\n get edgeModel() {\n return Boolean(this._data.edgeModel);\n }\n\n set edgeModel(value) {\n this._data.edgeModel = Boolean(value);\n this.change();\n }\n\n get reverseZoomWheel() {\n return this._data.reverseZoomWheel;\n }\n\n set reverseZoomWheel(value: boolean) {\n this._data.reverseZoomWheel = !!value;\n this.change();\n }\n\n get enableZoomWheel() {\n return this._data.enableZoomWheel;\n }\n\n set enableZoomWheel(value: boolean) {\n this._data.enableZoomWheel = !!value;\n this.change();\n }\n\n get enableGestures() {\n return this._data.enableGestures;\n }\n\n set enableGestures(value: boolean) {\n this._data.enableGestures = !!value;\n this.change();\n }\n\n get geometryType() {\n return this._data.geometryType;\n }\n\n set geometryType(value: string) {\n this._data.geometryType = value;\n this.change();\n }\n}\n","///////////////////////////////////////////////////////////////////////////////\n// Copyright (C) 2002-2021, Open Design Alliance (the \"Alliance\").\n// All rights reserved.\n//\n// This software and its documentation and related materials are owned by\n// the Alliance. The software may only be incorporated into application\n// programs owned by members of the Alliance, subject to a signed\n// Membership Agreement and Supplemental Software License Agreement with the\n// Alliance. The structure and organization of this software are the valuable\n// trade secrets of the Alliance and its suppliers. The software is also\n// protected by copyright law and international treaty provisions. Application\n// programs incorporating this software must include the following statement\n// with their copyright notices:\n//\n// This application incorporates Open Design Alliance software pursuant to a\n// license agreement with Open Design Alliance.\n// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.\n// All rights reserved.\n//\n// By use of this software, its documentation or related materials, you\n// acknowledge and accept the above terms.\n///////////////////////////////////////////////////////////////////////////////\n\nexport const CANVAS_EVENTS = [\n \"click\",\n \"dblclick\",\n \"mousedown\",\n \"mousemove\",\n \"mouseup\",\n \"mouseleave\",\n \"pointerdown\",\n \"pointermove\",\n \"pointerup\",\n \"pointerleave\",\n \"pointercancel\",\n \"wheel\",\n \"touchstart\",\n \"touchmove\",\n \"touchend\",\n \"touchcancel\",\n];\n"],"names":["Commands","constructor","this","_commands","Map","registerCommand","id","handler","description","thisArg","set","registerCommandAlias","alias","viewer","args","executeCommand","getCommand","get","getCommands","map","forEach","value","key","command","isDraggerCommand","draggers","includes","setActiveDragger","console","warn","undefined","result","apply","emit","type","data","commands","viewerType","defaultOptions","showWCS","cameraAnimation","antialiasing","groundShadow","shadows","cameraAxisXSpeed","cameraAxisYSpeed","ambientOcclusion","enableStreamingMode","enablePartialMode","memoryLimit","cuttingPlaneFillColor","red","green","blue","edgesColor","r","g","b","facesColor","edgesVisibility","edgesOverlap","facesOverlap","facesTransparancy","enableCustomHighlight","sceneGraph","edgeModel","reverseZoomWheel","enableZoomWheel","enableGestures","geometryType","Options","emitter","_emitter","_data","loadFromStorage","defaults","notifierChangeEvent","change","saveToStorage","window","localStorage","setItem","JSON","stringify","error","item","getItem","parse","resetToDefaults","fields","resetData","reduce","acc","field","Boolean","CANVAS_EVENTS"],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export interface RGB {
|
|
2
|
+
red: number;
|
|
3
|
+
green: number;
|
|
4
|
+
blue: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Viewer parameters.
|
|
8
|
+
*/
|
|
9
|
+
export interface IOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Show WCS
|
|
12
|
+
*
|
|
13
|
+
* @defaultValue true
|
|
14
|
+
*/
|
|
15
|
+
showWCS?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Enable camera animation
|
|
18
|
+
*
|
|
19
|
+
* @defaultValue true
|
|
20
|
+
*/
|
|
21
|
+
cameraAnimation?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Enable antialiasing use FXAA
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue true
|
|
26
|
+
*/
|
|
27
|
+
antialiasing?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Enable ground shadows
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue false
|
|
32
|
+
*/
|
|
33
|
+
groundShadow?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Enable shadows
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue false
|
|
38
|
+
*/
|
|
39
|
+
shadows?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Camera speed on X axis
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue 4
|
|
44
|
+
*/
|
|
45
|
+
cameraAxisXSpeed?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Camera speed on Y axis
|
|
48
|
+
*
|
|
49
|
+
* @defaultValue 1
|
|
50
|
+
*/
|
|
51
|
+
cameraAxisYSpeed?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Ambient occlusion
|
|
54
|
+
*
|
|
55
|
+
* @defaultValue false
|
|
56
|
+
*/
|
|
57
|
+
ambientOcclusion?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Enable streaming of drawings from the server
|
|
60
|
+
*
|
|
61
|
+
* If streaming is disabled, the file/assembly will be loaded in one go. If streaming is
|
|
62
|
+
* enabled, partial download mode may be enabled as well.
|
|
63
|
+
*
|
|
64
|
+
* @defaultValue true
|
|
65
|
+
*/
|
|
66
|
+
enableStreamingMode?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Enable partial load mode to be able open large drawing. Only used if streaming is enabled.
|
|
69
|
+
* If partial mode is enabled, then scene graph will be disabled.
|
|
70
|
+
*
|
|
71
|
+
* @defaultValue false
|
|
72
|
+
*/
|
|
73
|
+
enablePartialMode?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* The size of the memory buffer that the Viewer can use for graphics data
|
|
76
|
+
*
|
|
77
|
+
* @defaultValue 3294967296
|
|
78
|
+
*/
|
|
79
|
+
memoryLimit?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Cutting plane fill color
|
|
82
|
+
*
|
|
83
|
+
* @defaultValue { red: 0xff, green: 0x98, blue: 0x00 }
|
|
84
|
+
*/
|
|
85
|
+
cuttingPlaneFillColor?: RGB;
|
|
86
|
+
/**
|
|
87
|
+
* Outline edges color in RGB format.
|
|
88
|
+
*/
|
|
89
|
+
edgesColor?: {
|
|
90
|
+
r: number;
|
|
91
|
+
g: number;
|
|
92
|
+
b: number;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Faces color in the RGB format.
|
|
96
|
+
*/
|
|
97
|
+
facesColor?: {
|
|
98
|
+
r: number;
|
|
99
|
+
g: number;
|
|
100
|
+
b: number;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Show or hide edges.
|
|
104
|
+
*/
|
|
105
|
+
edgesVisibility?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Show edges over drawing.
|
|
108
|
+
*/
|
|
109
|
+
edgesOverlap?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Show faces over drawing.
|
|
112
|
+
*/
|
|
113
|
+
facesOverlap?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Faces transparency value from 0 to 255.
|
|
116
|
+
*/
|
|
117
|
+
facesTransparancy?: number;
|
|
118
|
+
/**
|
|
119
|
+
* Enable custom highlight settings.
|
|
120
|
+
*/
|
|
121
|
+
enableCustomHighlight?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Enable or disable scene graph, it increases perfomance improvement, but consumes memory.
|
|
124
|
+
* Large drawings can take up a lot of memory. If sceneGraph enabled, then enablePartialMode
|
|
125
|
+
* will be disabled
|
|
126
|
+
*/
|
|
127
|
+
sceneGraph: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Edge display models. No edges is usefull for less memory consumption: `false` - no edges
|
|
130
|
+
* are displayed, `true` - display isolines.
|
|
131
|
+
*/
|
|
132
|
+
edgeModel: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Reverse the mouse wheel direction for zooming: false - moving the wheel up zooms in,
|
|
135
|
+
* moving down zooms out, `true` - moving the wheel up zooms out, moving down zooms in.
|
|
136
|
+
*/
|
|
137
|
+
reverseZoomWheel: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Enable mouse wheel zooming.
|
|
140
|
+
*/
|
|
141
|
+
enableZoomWheel: boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Enable touch gestures. This option will be ignored when enableZoomWheel is disabled, since
|
|
144
|
+
* gestures contains touch zoom.
|
|
145
|
+
*/
|
|
146
|
+
enableGestures: boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Default file geometry data type. Can be one of:
|
|
149
|
+
*
|
|
150
|
+
* - `vsfx` - `VSFX` (default), for opening a file in `VisualizeJS` viewer.
|
|
151
|
+
* - `gltf` - `glTF`, for opening a file in `Three.js` viewer.
|
|
152
|
+
*/
|
|
153
|
+
geometryType?: string;
|
|
154
|
+
}
|
|
155
|
+
export declare function defaultOptions(): IOptions;
|