@inweb/viewer-visualize 27.1.5 → 27.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/viewer-visualize.js +330 -317
  2. package/dist/viewer-visualize.js.map +1 -1
  3. package/dist/viewer-visualize.min.js +1 -1
  4. package/dist/viewer-visualize.module.js +210 -295
  5. package/dist/viewer-visualize.module.js.map +1 -1
  6. package/lib/Viewer/Components/GestureManagerComponent.d.ts +0 -1
  7. package/lib/Viewer/Components/ZoomWheelComponent.d.ts +0 -1
  8. package/lib/Viewer/Draggers/Common/GestureManager.d.ts +1 -0
  9. package/lib/Viewer/Draggers/Common/OdBaseDragger.d.ts +0 -4
  10. package/lib/Viewer/Draggers/MeasureLineDragger/index.d.ts +0 -1
  11. package/lib/Viewer/Draggers/OdZoomWheelDragger.d.ts +7 -1
  12. package/lib/Viewer/Draggers/OdaFlyDragger.d.ts +0 -1
  13. package/lib/Viewer/Draggers/OdaWalkDragger.d.ts +0 -1
  14. package/lib/Viewer/Viewer.d.ts +5 -42
  15. package/package.json +5 -5
  16. package/src/Viewer/Components/GestureManagerComponent.ts +0 -3
  17. package/src/Viewer/Components/ZoomWheelComponent.ts +0 -3
  18. package/src/Viewer/Draggers/Actions/OrbitAction.ts +1 -1
  19. package/src/Viewer/Draggers/Actions/PanAction.ts +1 -1
  20. package/src/Viewer/Draggers/Actions/ZoomAction.ts +1 -1
  21. package/src/Viewer/Draggers/Common/GestureManager.ts +9 -0
  22. package/src/Viewer/Draggers/Common/OdBaseDragger.ts +33 -30
  23. package/src/Viewer/Draggers/MeasureLineDragger/index.ts +9 -6
  24. package/src/Viewer/Draggers/OdZoomWheelDragger.ts +29 -21
  25. package/src/Viewer/Draggers/OdaFlyDragger.ts +0 -4
  26. package/src/Viewer/Draggers/OdaWalkDragger.ts +0 -4
  27. package/src/Viewer/Draggers/index.ts +4 -0
  28. package/src/Viewer/Markup/Visualize/VisualizeMarkup.ts +13 -7
  29. package/src/Viewer/Viewer.ts +16 -168
@@ -1,7 +1,6 @@
1
1
  import { IComponent } from "@inweb/viewer-core";
2
2
  import type { Viewer } from "../Viewer";
3
3
  export declare class GestureManagerComponent implements IComponent {
4
- protected viewer: Viewer;
5
4
  private gestureManager;
6
5
  constructor(viewer: Viewer);
7
6
  dispose(): void;
@@ -1,7 +1,6 @@
1
1
  import { IComponent } from "@inweb/viewer-core";
2
2
  import type { Viewer } from "../Viewer";
3
3
  export declare class ZoomWheelComponent implements IComponent {
4
- protected viewer: Viewer;
5
4
  private zoomWheelDragger;
6
5
  constructor(viewer: Viewer);
7
6
  dispose(): void;
@@ -19,6 +19,7 @@ export declare class GestureManager extends OdBaseDragger {
19
19
  get isSingleTouchEnabled(): boolean;
20
20
  set isSingleTouchEnabled(value: boolean);
21
21
  constructor(subject: Viewer);
22
+ dispose(): void;
22
23
  private getMiddlePoint;
23
24
  private getFirstPoint;
24
25
  private getDistance;
@@ -6,13 +6,10 @@ export declare class OdBaseDragger extends OdaGeAction {
6
6
  protected needInputText: boolean;
7
7
  protected mouseDownPosition: Point2d;
8
8
  protected autoSelect: boolean;
9
- protected onmessage: (event: any) => boolean;
10
- protected canvasEvents: string[];
11
9
  protected isDragging: boolean;
12
10
  protected press: boolean;
13
11
  name: string;
14
12
  constructor(subject: Viewer);
15
- initialize(): void;
16
13
  dispose(): void;
17
14
  protected relativeCoords(event: MouseEvent): Point2d;
18
15
  protected pointerdown(ev: PointerEvent): void;
@@ -29,7 +26,6 @@ export declare class OdBaseDragger extends OdaGeAction {
29
26
  protected getActiveMarkupEntity(entityName: string): any;
30
27
  private syncOverlayView;
31
28
  protected deleteAll(objects: any): void;
32
- updatePreview(): void;
33
29
  private static _isGestureActive;
34
30
  protected static set isGestureActive(value: boolean);
35
31
  protected static get isGestureActive(): boolean;
@@ -14,7 +14,6 @@ export declare class MeasureLineDragger extends OdBaseDragger {
14
14
  protected rulerUnit: string;
15
15
  protected rulerPrecision: any;
16
16
  constructor(subject: Viewer);
17
- initialize(): void;
18
17
  dispose(): void;
19
18
  updatePreview(): void;
20
19
  resize(): void;
@@ -5,6 +5,12 @@ export declare class OdZoomWheelDragger extends OdBaseDragger {
5
5
  private _endInteractivityTimeOutId;
6
6
  private _isEnableInteractivityMode;
7
7
  constructor(subject: Viewer);
8
- wheel(event: any): void;
9
8
  dispose(): void;
9
+ pointerdown(): void;
10
+ pointerup(): void;
11
+ pointercancel(): void;
12
+ pointermove(): void;
13
+ click(): void;
14
+ dblclick(): void;
15
+ wheel(event: any): void;
10
16
  }
@@ -24,7 +24,6 @@ export declare class OdaFlyDragger extends OdBaseDragger {
24
24
  protected joyStickOverlayElement: HTMLDivElement;
25
25
  protected joyStickDragger: OdJoyStickDragger;
26
26
  constructor(subject: Viewer);
27
- initialize(): void;
28
27
  dispose(): void;
29
28
  keydown(ev: any): void;
30
29
  keyup(ev: any): void;
@@ -23,7 +23,6 @@ export declare class OdaWalkDragger extends OdBaseDragger {
23
23
  protected isJoyStickMoving: boolean;
24
24
  protected lastJoyStickCoord: Point2d;
25
25
  constructor(subject: Viewer);
26
- initialize(): void;
27
26
  dispose(): void;
28
27
  keydown(ev: KeyboardEvent): void;
29
28
  keyup(ev: KeyboardEvent): void;
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter2 } from "@inweb/eventemitter2";
2
2
  import { Assembly, Client, File, Model } from "@inweb/client";
3
- import { CanvasEventMap, Dragger, FileSource, IComponent, IDragger, IInfo, ILoader, IOptions, IViewer, IViewpoint, OptionsEventMap, ViewerEventMap } from "@inweb/viewer-core";
3
+ import { CanvasEventMap, FileSource, IComponent, IDragger, IInfo, ILoader, IOptions, IViewer, IViewpoint, OptionsEventMap, ViewerEventMap } from "@inweb/viewer-core";
4
4
  import { IMarkup, IWorldTransform } from "@inweb/markup";
5
5
  import { IModelImpl } from "./Models/IModelImpl";
6
6
  import { MarkupType } from "./Markup/MarkupFactory";
@@ -27,7 +27,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
27
27
  private _renderNeeded;
28
28
  private _renderTime;
29
29
  private _enableAutoUpdate;
30
- private _isRunAsyncUpdate;
30
+ private _maxRegenTime;
31
31
  _abortControllerForReferences: AbortController | undefined;
32
32
  private _markup;
33
33
  /**
@@ -45,8 +45,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
45
45
  * @param params.enableAutoUpdate - Enable auto-update of the viewer after any changes. If the
46
46
  * auto-update is disabled, you need to register an `update` event handler and update the
47
47
  * `VisualizeJS` viewer and active dragger manually. Default is `true`.
48
- * @param params.markupType - The type of the markup core: `Visualize` (deprecated) or `Konva`. Default
49
- * is `Konva`.
48
+ * @param params.markupType - The type of the markup core: `Visualize` or `Konva`. Default is `Konva`.
50
49
  */
51
50
  constructor(client?: Client, params?: {
52
51
  visualizeJsUrl?: string;
@@ -122,7 +121,6 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
122
121
  */
123
122
  isInitialized(): boolean;
124
123
  setSize(width: number, height: number, updateStyle?: boolean): void;
125
- resize(): this;
126
124
  /**
127
125
  * Updates the viewer.
128
126
  *
@@ -132,6 +130,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
132
130
  * Fires:
133
131
  *
134
132
  * - {@link UpdateEvent | update}
133
+ * - {@link RenderEvent | render}
135
134
  *
136
135
  * @param force - If `true` updates the viewer immidietly. Otherwise updates on next animation frame.
137
136
  * Default is `false`.
@@ -213,18 +212,6 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
213
212
  requestHeader?: HeadersInit;
214
213
  withCredentials?: boolean;
215
214
  }): Promise<this>;
216
- /**
217
- * Deprecated since `26.4`. Use {@link open | open()} instead.
218
- *
219
- * @deprecated
220
- */
221
- openVsfFile(buffer: Uint8Array | ArrayBuffer): this;
222
- /**
223
- * Deprecated since `26.4`. Use {@link open | open()} instead.
224
- *
225
- * @deprecated
226
- */
227
- openVsfxFile(buffer: Uint8Array | ArrayBuffer): this;
228
215
  cancel(): this;
229
216
  clear(): this;
230
217
  is3D(): boolean;
@@ -242,10 +229,6 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
242
229
  showAll(): void;
243
230
  explode(index?: number): void;
244
231
  collect(): void;
245
- /**
246
- * Deprecated since `25.12`. Use {@link draggers.registerDragger} instead.
247
- */
248
- registerDragger(name: string, dragger: typeof Dragger): void;
249
232
  activeDragger(): IDragger | null;
250
233
  setActiveDragger(name?: string): IDragger | null;
251
234
  resetActiveDragger(): void;
@@ -316,27 +299,6 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
316
299
  * Adds an empty `Visualize` markup entity to the VisualizeJS overlay.
317
300
  */
318
301
  addMarkupEntity(entityName: string): any;
319
- /**
320
- * Deprecated since `25.11`. Use {@link IMarkup.getMarkupColor | markup.getMarkupColor()} instead.
321
- */
322
- getMarkupColor(): {
323
- r: number;
324
- g: number;
325
- b: number;
326
- };
327
- /**
328
- * Deprecated since `25.11`. Use {@link IMarkup.setMarkupColor | markup.setMarkupColor()} instead.
329
- */
330
- setMarkupColor(r?: number, g?: number, b?: number): void;
331
- /**
332
- * Deprecated since `25.11`. Use {@link IMarkup.colorizeAllMarkup | markup.colorizeAllMarkup()} instead.
333
- */
334
- colorizeAllMarkup(r?: number, g?: number, b?: number): void;
335
- /**
336
- * Deprecated since `25.11`. Use
337
- * {@link IMarkup.colorizeSelectedMarkups | markup.colorizeSelectedMarkups()} instead.
338
- */
339
- colorizeSelectedMarkups(r?: number, g?: number, b?: number): void;
340
302
  private scheduleUpdateAsync;
341
303
  /**
342
304
  * Updates the viewer asynchronously without locking the user interface. Used to update the viewer
@@ -348,6 +310,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
348
310
  * Fires:
349
311
  *
350
312
  * - {@link UpdateEvent | update}
313
+ * - {@link RenderEvent | render}
351
314
  *
352
315
  * @param maxScheduleUpdateTimeInMs - Maximum time for one update, default 30 ms.
353
316
  * @param maxScheduleUpdateCount - Maximum count of scheduled updates.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inweb/viewer-visualize",
3
- "version": "27.1.5",
3
+ "version": "27.1.7",
4
4
  "description": "JavaScript library for rendering CAD and BIM files in a browser using VisualizeJS",
5
5
  "homepage": "https://cloud.opendesign.com/docs/index.html",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -29,10 +29,10 @@
29
29
  "docs": "typedoc"
30
30
  },
31
31
  "dependencies": {
32
- "@inweb/client": "~27.1.5",
33
- "@inweb/eventemitter2": "~27.1.5",
34
- "@inweb/markup": "~27.1.5",
35
- "@inweb/viewer-core": "~27.1.5"
32
+ "@inweb/client": "~27.1.7",
33
+ "@inweb/eventemitter2": "~27.1.7",
34
+ "@inweb/markup": "~27.1.7",
35
+ "@inweb/viewer-core": "~27.1.7"
36
36
  },
37
37
  "visualizeJS": "https://public-fhemb7e3embacwec.z02.azurefd.net/libs/visualizejs/master/Visualize.js"
38
38
  }
@@ -26,13 +26,10 @@ import type { Viewer } from "../Viewer";
26
26
  import { GestureManager } from "../Draggers/Common/GestureManager";
27
27
 
28
28
  export class GestureManagerComponent implements IComponent {
29
- protected viewer: Viewer;
30
29
  private gestureManager: GestureManager;
31
30
 
32
31
  constructor(viewer: Viewer) {
33
- this.viewer = viewer;
34
32
  this.gestureManager = new GestureManager(viewer);
35
- this.gestureManager.initialize();
36
33
  }
37
34
 
38
35
  dispose() {
@@ -26,14 +26,11 @@ import type { Viewer } from "../Viewer";
26
26
  import { OdZoomWheelDragger } from "../Draggers/OdZoomWheelDragger";
27
27
 
28
28
  export class ZoomWheelComponent implements IComponent {
29
- protected viewer: Viewer;
30
29
  private zoomWheelDragger: OdZoomWheelDragger;
31
30
 
32
31
  constructor(viewer: Viewer) {
33
- this.viewer = viewer;
34
32
  this.zoomWheelDragger = new OdZoomWheelDragger(viewer);
35
33
  this.zoomWheelDragger.name = "ZoomWheel";
36
- this.zoomWheelDragger.initialize();
37
34
  }
38
35
 
39
36
  dispose() {
@@ -100,7 +100,7 @@ export class OrbitAction {
100
100
  );
101
101
  extView.delete();
102
102
 
103
- this._subject.activeDragger()?.updatePreview?.();
103
+ this._subject.update();
104
104
  this._subject.emitEvent({
105
105
  type: "orbit",
106
106
  });
@@ -80,7 +80,7 @@ export class PanAction {
80
80
  position.delete();
81
81
  positionWithDelta.delete();
82
82
 
83
- this._subject.activeDragger()?.updatePreview?.();
83
+ this._subject.update();
84
84
  this._subject.emitEvent({
85
85
  type: "pan",
86
86
  x: absoluteX,
@@ -38,7 +38,7 @@ export class ZoomAction {
38
38
 
39
39
  this._subject.deviceAutoRegeneration();
40
40
 
41
- this._subject.activeDragger()?.updatePreview?.();
41
+ this._subject.update();
42
42
  this._subject.emitEvent({
43
43
  type: "zoomat",
44
44
  data: zoomFactor,
@@ -69,6 +69,15 @@ export class GestureManager extends OdBaseDragger {
69
69
  this.setViewParams
70
70
  );
71
71
  this._zoomAction = new ZoomAction(this.m_module, this.subject);
72
+
73
+ // Subscribe to pointerleave event (not handled by base class)
74
+ this.pointerleave = this.pointerleave.bind(this);
75
+ this.subject.addEventListener("pointerleave", this.pointerleave);
76
+ }
77
+
78
+ override dispose(): void {
79
+ super.dispose();
80
+ this.subject.removeEventListener("pointerleave", this.pointerleave);
72
81
  }
73
82
 
74
83
  private getMiddlePoint(events: Map<number, PointerEvent>): Point2d {
@@ -21,7 +21,6 @@
21
21
  // acknowledge and accept the above terms.
22
22
  ///////////////////////////////////////////////////////////////////////////////
23
23
 
24
- import { CANVAS_EVENTS } from "@inweb/viewer-core";
25
24
  import { Viewer } from "../../Viewer";
26
25
  import { Point2d } from "./Geometry";
27
26
  import { OdaGeAction } from "./OdaGeAction";
@@ -35,8 +34,6 @@ export class OdBaseDragger extends OdaGeAction {
35
34
  protected needInputText: boolean;
36
35
  protected mouseDownPosition: Point2d;
37
36
  protected autoSelect: boolean;
38
- protected onmessage: (event: any) => boolean;
39
- protected canvasEvents: string[];
40
37
  protected isDragging: boolean;
41
38
  protected press: boolean;
42
39
 
@@ -49,20 +46,30 @@ export class OdBaseDragger extends OdaGeAction {
49
46
  this.mouseDownPosition = { x: 0, y: 0 };
50
47
  this.autoSelect = false;
51
48
 
52
- this.onmessage = (event) => this.subject.emitEvent(event);
53
- this.canvasEvents = CANVAS_EVENTS;
54
- }
55
-
56
- public initialize(): void {
57
- this.canvasEvents = this.canvasEvents.filter((x) => typeof this[x] === "function");
58
- this.canvasEvents.forEach((x) => (this[x] = this[x].bind(this)));
59
- this.canvasEvents.forEach((x) => this.subject.on(x, this[x]));
60
-
61
- this.getViewer().setEnableAutoSelect(!!this.autoSelect);
49
+ this.pointerdown = this.pointerdown.bind(this);
50
+ this.pointerup = this.pointerup.bind(this);
51
+ this.pointercancel = this.pointercancel.bind(this);
52
+ this.pointermove = this.pointermove.bind(this);
53
+ this.click = this.click.bind(this);
54
+ this.dblclick = this.dblclick.bind(this);
55
+
56
+ this.subject.addEventListener("pointerdown", this.pointerdown);
57
+ this.subject.addEventListener("pointerup", this.pointerup);
58
+ this.subject.addEventListener("pointercancel", this.pointercancel);
59
+ this.subject.addEventListener("pointermove", this.pointermove);
60
+ this.subject.addEventListener("click", this.click);
61
+ this.subject.addEventListener("dblclick", this.dblclick);
62
+
63
+ this.getViewer().setEnableAutoSelect(false);
62
64
  }
63
65
 
64
66
  public dispose(): void {
65
- this.canvasEvents.forEach((x) => this.subject.off(x, this[x]));
67
+ this.subject.removeEventListener("pointerdown", this.pointerdown);
68
+ this.subject.removeEventListener("pointerup", this.pointerup);
69
+ this.subject.removeEventListener("pointercancel", this.pointercancel);
70
+ this.subject.removeEventListener("pointermove", this.pointermove);
71
+ this.subject.removeEventListener("click", this.click);
72
+ this.subject.removeEventListener("dblclick", this.dblclick);
66
73
  }
67
74
 
68
75
  protected relativeCoords(event: MouseEvent): Point2d {
@@ -129,15 +136,15 @@ export class OdBaseDragger extends OdaGeAction {
129
136
  const isNotDragging =
130
137
  Math.abs(x - this.mouseDownPosition.x) < CLICK_DELTA && Math.abs(y - this.mouseDownPosition.y) < CLICK_DELTA;
131
138
 
132
- if (viewer && viewer.getEnableAutoSelect() && isNotDragging) {
139
+ if (this.autoSelect && isNotDragging) {
133
140
  viewer.unselect();
134
141
  viewer.select(x, y, x, y);
135
142
  this.subject.update();
136
143
 
137
144
  const selectionSet = viewer.getSelected();
138
145
 
139
- this.onmessage({ type: "select", data: selectionSet, handles: this.subject.getSelected() });
140
- this.onmessage({ type: "select2", data: selectionSet, handles: this.subject.getSelected2() });
146
+ this.subject.emitEvent({ type: "select", data: selectionSet, handles: this.subject.getSelected() });
147
+ this.subject.emitEvent({ type: "select2", data: selectionSet, handles: this.subject.getSelected2() });
141
148
  }
142
149
  }
143
150
 
@@ -153,20 +160,18 @@ export class OdBaseDragger extends OdaGeAction {
153
160
  viewer.activeView = clickView;
154
161
  clickView.delete();
155
162
  this.subject.update();
156
- } else {
157
- if (viewer && viewer.getEnableAutoSelect()) {
158
- const pSelected = viewer.getSelected();
163
+ } else if (this.autoSelect) {
164
+ const pSelected = viewer.getSelected();
159
165
 
160
- if (!pSelected.isNull() && pSelected.numItems() !== 0) {
161
- const itr = pSelected.getIterator();
162
- const entity = itr.getEntity();
163
- viewer.zoomToEntity(entity);
166
+ if (!pSelected.isNull() && pSelected.numItems() !== 0) {
167
+ const itr = pSelected.getIterator();
168
+ const entity = itr.getEntity();
169
+ viewer.zoomToEntity(entity);
164
170
 
165
- this.onmessage({ type: "zoomtoentity", data: entity });
166
- this.subject.update();
171
+ this.subject.emitEvent({ type: "zoomtoentity", data: entity });
172
+ this.subject.update();
167
173
 
168
- this.deleteAll([itr, entity]);
169
- }
174
+ this.deleteAll([itr, entity]);
170
175
  }
171
176
  }
172
177
 
@@ -218,8 +223,6 @@ export class OdBaseDragger extends OdaGeAction {
218
223
  }
219
224
  }
220
225
 
221
- public updatePreview(): void {}
222
-
223
226
  private static _isGestureActive = false;
224
227
 
225
228
  protected static set isGestureActive(value: boolean) {
@@ -70,11 +70,6 @@ export class MeasureLineDragger extends OdBaseDragger {
70
70
  this.rulerPrecision = subject.options.rulerPrecision ?? "Default";
71
71
 
72
72
  this.items = [];
73
- this.canvasEvents.push("resize", "optionsChange");
74
- }
75
-
76
- override initialize(): void {
77
- super.initialize();
78
73
 
79
74
  this.m_overlayElement = document.createElement("div");
80
75
  this.m_overlayElement.style.background = "rgba(0,0,0,0)";
@@ -82,18 +77,26 @@ export class MeasureLineDragger extends OdBaseDragger {
82
77
  this.m_overlayElement.style.zIndex = "1";
83
78
  this.m_overlayElement.style.pointerEvents = "none";
84
79
  document.body.appendChild(this.m_overlayElement);
80
+
81
+ this.optionsChange = this.optionsChange.bind(this);
82
+ this.updatePreview = this.updatePreview.bind(this);
83
+
85
84
  this.subject.addEventListener("optionschange", this.optionsChange);
85
+ this.subject.addEventListener("render", this.updatePreview);
86
86
 
87
87
  this.resize();
88
88
  }
89
89
 
90
90
  override dispose(): void {
91
91
  super.dispose();
92
+
92
93
  this.m_overlayElement.remove();
94
+
93
95
  this.subject.removeEventListener("optionschange", this.optionsChange);
96
+ this.subject.removeEventListener("render", this.updatePreview);
94
97
  }
95
98
 
96
- override updatePreview(): void {
99
+ updatePreview(): void {
97
100
  this.items.forEach((item) => item.update());
98
101
  }
99
102
 
@@ -29,21 +29,46 @@ const INTERACTIVITY_TIME_OUT = 100;
29
29
 
30
30
  export class OdZoomWheelDragger extends OdBaseDragger {
31
31
  private _zoomAction: ZoomAction;
32
-
33
32
  private _endInteractivityTimeOutId;
34
-
35
33
  private _isEnableInteractivityMode: boolean;
36
34
 
37
35
  constructor(subject: Viewer) {
38
36
  super(subject);
39
37
 
40
- // ignore all events except "wheel" so as not to interfere with other handlers
41
- this.canvasEvents = ["wheel"];
38
+ this.wheel = this.wheel.bind(this);
39
+ this.subject.addEventListener("wheel", this.wheel);
40
+
42
41
  this._zoomAction = new ZoomAction(this.m_module, this.subject);
43
42
  this._endInteractivityTimeOutId = undefined;
44
43
  this._isEnableInteractivityMode = false;
45
44
  }
46
45
 
46
+ override dispose(): void {
47
+ super.dispose();
48
+
49
+ this.subject.removeEventListener("wheel", this.wheel);
50
+
51
+ if (this._endInteractivityTimeOutId) {
52
+ clearTimeout(this._endInteractivityTimeOutId);
53
+ this.endInteractivity();
54
+ this._isEnableInteractivityMode = false;
55
+ }
56
+ }
57
+
58
+ // ignore all events except "wheel" so as not to interfere with other handlers
59
+
60
+ override pointerdown() {}
61
+
62
+ override pointerup() {}
63
+
64
+ override pointercancel() {}
65
+
66
+ override pointermove() {}
67
+
68
+ override click() {}
69
+
70
+ override dblclick() {}
71
+
47
72
  wheel(event) {
48
73
  if (!this.subject.options.enableZoomWheel) {
49
74
  return;
@@ -76,15 +101,6 @@ export class OdZoomWheelDragger extends OdBaseDragger {
76
101
  clearTimeout(this._endInteractivityTimeOutId);
77
102
  }
78
103
 
79
- if (!this._isEnableInteractivityMode) {
80
- this._isEnableInteractivityMode = true;
81
- this.beginInteractivity();
82
- }
83
-
84
- if (this._endInteractivityTimeOutId) {
85
- clearTimeout(this._endInteractivityTimeOutId);
86
- }
87
-
88
104
  this.subject.update(true);
89
105
 
90
106
  this._endInteractivityTimeOutId = setTimeout(() => {
@@ -94,12 +110,4 @@ export class OdZoomWheelDragger extends OdBaseDragger {
94
110
  }, INTERACTIVITY_TIME_OUT);
95
111
  }
96
112
  }
97
-
98
- override dispose(): void {
99
- if (this._endInteractivityTimeOutId) {
100
- clearTimeout(this._endInteractivityTimeOutId);
101
- this.endInteractivity();
102
- this._isEnableInteractivityMode = false;
103
- }
104
- }
105
113
  }
@@ -55,7 +55,6 @@ export class OdaFlyDragger extends OdBaseDragger {
55
55
 
56
56
  constructor(subject: Viewer) {
57
57
  super(subject);
58
- this.viewer = undefined;
59
58
 
60
59
  this.multiplier = 5;
61
60
  this.speed = 1;
@@ -75,10 +74,7 @@ export class OdaFlyDragger extends OdBaseDragger {
75
74
 
76
75
  this.isJoyStickMoving = false;
77
76
  this.addJoyStickDragger(subject.canvas.parentElement);
78
- }
79
77
 
80
- override initialize() {
81
- super.initialize();
82
78
  this.viewer = this.getViewer();
83
79
 
84
80
  window.addEventListener("keydown", this.keydown, false);
@@ -54,7 +54,6 @@ export class OdaWalkDragger extends OdBaseDragger {
54
54
 
55
55
  constructor(subject: Viewer) {
56
56
  super(subject);
57
- this.viewer = undefined;
58
57
 
59
58
  this.multiplier = 5;
60
59
  this.baseSpeed = 1;
@@ -74,10 +73,7 @@ export class OdaWalkDragger extends OdBaseDragger {
74
73
 
75
74
  this.isJoyStickMoving = false;
76
75
  this.addJoyStickDragger(subject.canvas.parentElement);
77
- }
78
76
 
79
- override initialize() {
80
- super.initialize();
81
77
  this.viewer = this.getViewer();
82
78
 
83
79
  window.addEventListener("keydown", this.keydown, false);
@@ -35,6 +35,8 @@ import { OdZoomDragger } from "./OdZoomDragger";
35
35
  import { OdZoomWheelDragger } from "./OdZoomWheelDragger";
36
36
  import { OdZoomWindowDragger } from "./OdZoomWindowDragger";
37
37
  import { OrbitAroundBuildingDragger } from "./OrbitAroundBuildingDragger";
38
+ import { OdaLineDragger } from "./OdaLineDragger";
39
+ import { OdaTextDragger } from "./OdaTextDragger";
38
40
 
39
41
  /**
40
42
  * A draggers registry. Use this registry to register custom draggers.
@@ -95,3 +97,5 @@ draggers.registerDragger("CuttingPlaneYAxis", (viewer) => new OdCuttingPlaneYAxi
95
97
  draggers.registerDragger("CuttingPlaneZAxis", (viewer) => new OdCuttingPlaneZAxisDragger(viewer));
96
98
  draggers.registerDragger("Walk", (viewer) => new OdaWalkDragger(viewer));
97
99
  draggers.registerDragger("Fly", (viewer) => new OdaFlyDragger(viewer));
100
+ draggers.registerDragger("Line", (viewer) => new OdaLineDragger(viewer));
101
+ draggers.registerDragger("Text", (viewer) => new OdaTextDragger(viewer));
@@ -25,8 +25,8 @@ import { IEventEmitter } from "@inweb/eventemitter2";
25
25
  import { ILine, IText, IViewpoint } from "@inweb/viewer-core";
26
26
  import { IMarkup, IMarkupObject, IWorldTransform, MarkupMode } from "@inweb/markup";
27
27
  import { Viewer } from "../../Viewer";
28
- import { MARKUP_ENTITY_LINE, OdaLineDragger } from "../../Draggers/OdaLineDragger";
29
- import { MARKUP_ENTITY_TEXT, OdaTextDragger } from "../../Draggers/OdaTextDragger";
28
+ import { MARKUP_ENTITY_LINE } from "../../Draggers/OdaLineDragger";
29
+ import { MARKUP_ENTITY_TEXT } from "../../Draggers/OdaTextDragger";
30
30
 
31
31
  export class VisualizeMarkup implements IMarkup {
32
32
  private _viewer: Viewer;
@@ -43,8 +43,6 @@ export class VisualizeMarkup implements IMarkup {
43
43
  worldTransformer?: IWorldTransform
44
44
  ): void {
45
45
  this._viewer = viewer as Viewer;
46
- this._viewer.registerDragger("Line", OdaLineDragger);
47
- this._viewer.registerDragger("Text", OdaTextDragger);
48
46
  }
49
47
 
50
48
  dispose(): void {}
@@ -93,7 +91,7 @@ export class VisualizeMarkup implements IMarkup {
93
91
  }
94
92
 
95
93
  colorizeSelectedMarkups(r = 255, g = 0, b = 0): void {
96
- throw new Error("Not implemented yet");
94
+ console.warn("VisualizeMarkup: colorizeSelectedMarkups() not implemented yet");
97
95
  }
98
96
 
99
97
  setViewpoint(viewpoint: IViewpoint): void {
@@ -231,22 +229,30 @@ export class VisualizeMarkup implements IMarkup {
231
229
  }
232
230
 
233
231
  enableEditMode(mode: MarkupMode | false): this {
232
+ if (mode === "Line" || mode === "Text") this._viewer.setActiveDragger(mode);
234
233
  return this;
235
234
  }
236
235
 
237
236
  createObject(type: string, params: any): IMarkupObject {
237
+ console.warn("VisualizeMarkup: createObject() not implemented yet");
238
238
  return undefined;
239
239
  }
240
240
 
241
241
  getObjects(): IMarkupObject[] {
242
+ console.warn("VisualizeMarkup: getObjects() not implemented yet");
242
243
  return [];
243
244
  }
244
245
 
245
246
  getSelectedObjects(): IMarkupObject[] {
247
+ console.warn("VisualizeMarkup: getSelectedObjects() not implemented yet");
246
248
  return [];
247
249
  }
248
250
 
249
- selectObjects(objects: IMarkupObject[]): void {}
251
+ selectObjects(objects: IMarkupObject[]): void {
252
+ console.warn("VisualizeMarkup: selectObjects() not implemented yet");
253
+ }
250
254
 
251
- clearSelected(): void {}
255
+ clearSelected(): void {
256
+ console.warn("VisualizeMarkup: clearSelected() not implemented yet");
257
+ }
252
258
  }