@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.
@@ -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 = Options.defaults();
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 sceneGraph = value.enablePartialMode ? false : value.sceneGraph;
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.enableStreamingMode) {
231
- this._data.enablePartialMode = false;
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) this._data.sceneGraph = false;
241
- this.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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.notifierChangeEvent();
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":"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"}
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
@@ -1,5 +1,6 @@
1
1
  export * from "./commands/Commands";
2
2
  export * from "./commands/ICommands";
3
+ export * from "./options/IOptions";
3
4
  export * from "./options/Options";
4
5
  export * from "./options/OptionsEvents";
5
6
  export * from "./viewer/CanvasEvents";
@@ -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;