@inweb/viewer-visualize 25.7.0 → 25.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/LICENSE +2 -2
  2. package/dist/viewer-visualize.js +330 -295
  3. package/dist/viewer-visualize.js.map +1 -1
  4. package/dist/viewer-visualize.min.js +1 -1
  5. package/dist/viewer-visualize.module.js +164 -149
  6. package/dist/viewer-visualize.module.js.map +1 -1
  7. package/lib/Viewer/Markup/Api/IMarkupLine.d.ts +4 -0
  8. package/lib/Viewer/Markup/Api/Impl/Konva/KonvaLine.d.ts +2 -3
  9. package/lib/Viewer/Markup/IMarkup.d.ts +28 -32
  10. package/lib/Viewer/Markup/IWorldTransform.d.ts +39 -0
  11. package/lib/Viewer/Markup/Impl/Konva/KonvaMarkup.d.ts +11 -6
  12. package/lib/Viewer/Markup/Impl/Konva/MarkupColor.d.ts +3 -0
  13. package/lib/Viewer/Markup/Impl/Visualize/VisualizeMarkup.d.ts +4 -4
  14. package/lib/Viewer/Markup/MarkupFactory.d.ts +10 -10
  15. package/lib/Viewer/Viewer.d.ts +60 -42
  16. package/lib/index.d.ts +12 -0
  17. package/package.json +5 -5
  18. package/src/Viewer/Commands/ApplyModelTransform.ts +2 -2
  19. package/src/Viewer/Commands/ClearMarkup.ts +2 -2
  20. package/src/Viewer/Commands/ClearSlices.ts +2 -2
  21. package/src/Viewer/Commands/CreatePreview.ts +2 -2
  22. package/src/Viewer/Commands/Explode.ts +2 -2
  23. package/src/Viewer/Commands/GetDefaultViewPositions.ts +2 -2
  24. package/src/Viewer/Commands/GetModels.ts +2 -2
  25. package/src/Viewer/Commands/GetSelected.ts +2 -2
  26. package/src/Viewer/Commands/HideSelected.ts +2 -2
  27. package/src/Viewer/Commands/IsolateSelected.ts +2 -2
  28. package/src/Viewer/Commands/RegenerateAll.ts +2 -2
  29. package/src/Viewer/Commands/ResetView.ts +2 -2
  30. package/src/Viewer/Commands/SelectModel.ts +2 -2
  31. package/src/Viewer/Commands/SetActiveDragger.ts +2 -2
  32. package/src/Viewer/Commands/SetDefaultViewPosition.ts +2 -2
  33. package/src/Viewer/Commands/SetMarkupColor.ts +2 -2
  34. package/src/Viewer/Commands/SetSelected.ts +2 -2
  35. package/src/Viewer/Commands/ShowAll.ts +2 -2
  36. package/src/Viewer/Commands/Unselect.ts +2 -2
  37. package/src/Viewer/Commands/ZoomToExtents.ts +2 -2
  38. package/src/Viewer/Commands/ZoomToObjects.ts +2 -2
  39. package/src/Viewer/Commands/ZoomToSelected.ts +2 -2
  40. package/src/Viewer/Commands/index.ts +2 -2
  41. package/src/Viewer/Draggers/Actions/OrbitAction.ts +2 -2
  42. package/src/Viewer/Draggers/Actions/PanAction.ts +2 -2
  43. package/src/Viewer/Draggers/Actions/ZoomAction.ts +2 -2
  44. package/src/Viewer/Draggers/Common/Geometry.ts +2 -2
  45. package/src/Viewer/Draggers/Common/GestureManager.ts +2 -2
  46. package/src/Viewer/Draggers/Common/OdBaseDragger.ts +2 -2
  47. package/src/Viewer/Draggers/Common/OdaGeAction.ts +2 -2
  48. package/src/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.ts +2 -2
  49. package/src/Viewer/Draggers/MeasureLineDragger/MeasureUtils.ts +2 -2
  50. package/src/Viewer/Draggers/MeasureLineDragger/index.ts +2 -2
  51. package/src/Viewer/Draggers/OdBaseCuttingPlaneDragger.ts +2 -2
  52. package/src/Viewer/Draggers/OdCuttingPlaneXAxisDragger.ts +2 -2
  53. package/src/Viewer/Draggers/OdCuttingPlaneYAxisDragger.ts +2 -2
  54. package/src/Viewer/Draggers/OdCuttingPlaneZAxisDragger.ts +2 -2
  55. package/src/Viewer/Draggers/OdOrbitDragger.ts +2 -2
  56. package/src/Viewer/Draggers/OdPanDragger.ts +2 -2
  57. package/src/Viewer/Draggers/OdZoomDragger.ts +2 -2
  58. package/src/Viewer/Draggers/OdZoomWheelDragger.ts +2 -2
  59. package/src/Viewer/Draggers/OdZoomWindowDragger/OdSelectionFrame.ts +2 -2
  60. package/src/Viewer/Draggers/OdZoomWindowDragger/index.ts +2 -2
  61. package/src/Viewer/Draggers/OdaLineDragger.ts +2 -2
  62. package/src/Viewer/Draggers/OdaTextDragger.ts +2 -2
  63. package/src/Viewer/Draggers/OdaWalkDragger.ts +2 -2
  64. package/src/Viewer/Draggers/OrbitAroundBuildingDragger.ts +2 -2
  65. package/src/Viewer/Loaders/BaseLoader.ts +2 -2
  66. package/src/Viewer/Loaders/LoaderFactory.ts +2 -2
  67. package/src/Viewer/Loaders/TCSLoader.ts +2 -2
  68. package/src/Viewer/Loaders/VsfXLoader.ts +2 -2
  69. package/src/Viewer/Loaders/VsfXPartialLoader.ts +2 -2
  70. package/src/Viewer/Loaders/VsfXStreamingLoader.ts +2 -2
  71. package/src/Viewer/Markup/Api/IMarkupLine.ts +5 -0
  72. package/src/Viewer/Markup/Api/Impl/Konva/KonvaArrow.ts +1 -1
  73. package/src/Viewer/Markup/Api/Impl/Konva/KonvaCloud.ts +1 -1
  74. package/src/Viewer/Markup/Api/Impl/Konva/KonvaEllipse.ts +1 -1
  75. package/src/Viewer/Markup/Api/Impl/Konva/KonvaLine.ts +4 -5
  76. package/src/Viewer/Markup/Api/Impl/Konva/KonvaRectangle.ts +1 -1
  77. package/src/Viewer/Markup/Api/Impl/Konva/KonvaText.ts +1 -1
  78. package/src/Viewer/Markup/IMarkup.ts +34 -35
  79. package/src/Viewer/Markup/IWorldTransform.ts +46 -0
  80. package/src/Viewer/Markup/Impl/Konva/KonvaMarkup.ts +85 -161
  81. package/src/Viewer/Markup/Impl/Konva/MarkupColor.ts +3 -0
  82. package/src/Viewer/Markup/Impl/Visualize/VisualizeMarkup.ts +45 -10
  83. package/src/Viewer/Markup/MarkupFactory.ts +16 -20
  84. package/src/Viewer/Viewer.ts +103 -95
  85. package/src/Viewer/utils.ts +2 -2
  86. package/src/index.ts +14 -2
@@ -1,4 +1,8 @@
1
1
  import { IMarkupObject } from "./IMarkupObject";
2
+ /**
3
+ * Type of the markup line.
4
+ */
5
+ export type MarkupLineType = "solid" | "dot" | "dash";
2
6
  /**
3
7
  * Line Markup object
4
8
  */
@@ -1,5 +1,4 @@
1
- import { LineType } from "@inweb/viewer-core";
2
- import { IMarkupLine } from "../../IMarkupLine";
1
+ import { IMarkupLine, MarkupLineType } from "../../IMarkupLine";
3
2
  import { IMarkupColorable } from "../../IMarkupColorable";
4
3
  export declare class KonvaLine implements IMarkupLine, IMarkupColorable {
5
4
  private _ref;
@@ -8,7 +7,7 @@ export declare class KonvaLine implements IMarkupLine, IMarkupColorable {
8
7
  x: number;
9
8
  y: number;
10
9
  }[];
11
- type?: LineType;
10
+ type?: MarkupLineType;
12
11
  width?: number;
13
12
  color?: string;
14
13
  id?: string;
@@ -1,18 +1,10 @@
1
+ import { IEventEmitter } from "@inweb/eventemitter2";
1
2
  import { IViewpoint } from "@inweb/viewer-core";
2
- import { OdBaseDragger } from "../Draggers/Common/OdBaseDragger";
3
- import { Viewer } from "../Viewer";
3
+ import { IWorldTransform } from "./IWorldTransform";
4
4
  import { IMarkupObject } from "./Api/IMarkupObject";
5
5
  /**
6
- * Version of the markup support. Old = "Visualize", New = "Konva"
7
- */
8
- export declare enum MarkupType {
9
- Unknown = 0,
10
- Konva = "Konva",
11
- Visualize = "Visualize"
12
- }
13
- /**
14
- * Defines type of markup object. For old Visualize markup ({@link MarkupType}) only "Line" and
15
- * "Text" markup objects are supported.
6
+ * Defines type of markup object. For `VisualizeJS` markup only the `Line` and `Text` markup
7
+ * objects are supported.
16
8
  */
17
9
  export declare enum MarkupMode {
18
10
  SelectMarkup = "SelectMarkup",
@@ -25,41 +17,45 @@ export declare enum MarkupMode {
25
17
  Cloud = "Cloud"
26
18
  }
27
19
  /**
28
- * Specifies parameters and methods of the Markup object
20
+ * 2D markup core interface.
29
21
  */
30
22
  export interface IMarkup {
31
23
  /**
32
- * Width of the markup object line. Default is 4.
24
+ * Line width of the markup objects. Default is 4.
33
25
  */
34
26
  lineWidth: number;
35
27
  /**
36
- * Type of the Line markup object. Available types: "solid", "dot", "dash". Default is "solid".
28
+ * Type of the markup line. Available types: `solid`, `dot`, `dash`. Default is `solid`.
37
29
  */
38
30
  lineType: string;
39
31
  /**
40
- * Font size of the markup text. Default is 34.
32
+ * Font size of the markup text. Default is 34 px.
41
33
  */
42
34
  fontSize: number;
43
35
  /**
44
36
  * Start method to init Markup support for the Viewer instance.
45
37
  *
46
- * @param {Viewer} viewer - current {@link Viewer} object
47
- * @param canvas - {@link HTMLCanvasElement} of the Viewer
48
- * @param canvasEvents - list of used events of the Viewer
38
+ * @param canvas -
39
+ * {@link https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement | HTMLCanvasElement}
40
+ * used to operate on.
41
+ * @param canvasEvents - List of `canvas` events that the markup should redirect to the `viewer`.
42
+ * @param viewer - `Viewer` instance viewer that receives `canvas` events.
43
+ * @param worldTransformer - Transformer of screen space into world space and vice versa. If
44
+ * a transformer is defined, viewpoint objects will be stored in world coordinates,
45
+ * otherwise in screen coordinates.
49
46
  */
50
- initialize(viewer: Viewer, canvas: HTMLCanvasElement, canvasEvents: string[]): void;
47
+ initialize(canvas: HTMLCanvasElement, canvasEvents: string[], viewer?: IEventEmitter, worldTransformer?: IWorldTransform): void;
51
48
  /**
52
49
  * Releases all resources allocated by this `Markup` instance. Call this method before
53
50
  * release the `Markup` instance.
54
51
  */
55
52
  dispose(): void;
56
53
  /**
57
- * Provide Javascript Map with all {@link OdBaseDragger} draggers used by Markup. We need this
58
- * map to register in {@link Viewer.registerDragger}
54
+ * Create markup overlay.
59
55
  */
60
- getDraggers(): Map<string, typeof OdBaseDragger>;
56
+ syncOverlay(): void;
61
57
  /**
62
- * Remove markup overlay.
58
+ * Clear markup overlay.
63
59
  */
64
60
  clearOverlay(): void;
65
61
  /**
@@ -103,32 +99,32 @@ export interface IMarkup {
103
99
  */
104
100
  setViewpoint(viewpoint: IViewpoint): void;
105
101
  /**
106
- * Create a {@link IViewpoint} viewpoint
102
+ * Create a viewpoint.
107
103
  */
108
104
  getViewpoint(): IViewpoint;
109
105
  /**
110
- * Create a Markup object
106
+ * Create a Markup object.
111
107
  *
112
- * @param type - string identificator of Markup type
113
- * @param params - object with parameters of Markup
108
+ * @param type - string identificator of Markup object type.
109
+ * @param params - Markup object parameters.
114
110
  */
115
111
  createObject(type: string, params: any): IMarkupObject;
116
112
  /**
117
- * Get array of all existed Markup objects
113
+ * Get Markup objects.
118
114
  */
119
115
  getObjects(): IMarkupObject[];
120
116
  /**
121
- * Get array of currently selected Markup objects
117
+ * Get selected Markup objects.
122
118
  */
123
119
  getSelectedObjects(): IMarkupObject[];
124
120
  /**
125
- * Select list of Markup objects
121
+ * Select Markup objects.
126
122
  *
127
123
  * @param objects
128
124
  */
129
125
  selectObjects(objects: IMarkupObject[]): void;
130
126
  /**
131
- * Clear list of currently selected Markup objects
127
+ * Clear Markup objects selection.
132
128
  */
133
129
  clearSelected(): void;
134
130
  }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Viewer coordiate system transformer.
3
+ */
4
+ export interface IWorldTransform {
5
+ /**
6
+ * Transforms `position` from screen space into world space.
7
+ *
8
+ * @param position - screen position in pixels.
9
+ */
10
+ screenToWorld(position: {
11
+ x: number;
12
+ y: number;
13
+ }): {
14
+ x: number;
15
+ y: number;
16
+ z: number;
17
+ };
18
+ /**
19
+ * Transforms `position` from world space into screen space.
20
+ *
21
+ * @param position - position in world space coordinates.
22
+ */
23
+ worldToScreen(position: {
24
+ x: number;
25
+ y: number;
26
+ z: number;
27
+ }): {
28
+ x: number;
29
+ y: number;
30
+ };
31
+ /**
32
+ * Returns the scaling factors for each axis in world space.
33
+ */
34
+ getScale(): {
35
+ x: number;
36
+ y: number;
37
+ z: number;
38
+ };
39
+ }
@@ -1,11 +1,16 @@
1
- import { ChangeActiveDraggerEvent, IViewpoint, LineType, PanEvent } from "@inweb/viewer-core";
1
+ import { IEventEmitter } from "@inweb/eventemitter2";
2
+ import { ChangeActiveDraggerEvent, IViewpoint, PanEvent } from "@inweb/viewer-core";
2
3
  import { IMarkup } from "../../IMarkup";
3
- import { Viewer } from "../../../Viewer";
4
- import { OdBaseDragger } from "../../../Draggers/Common/OdBaseDragger";
4
+ import { IWorldTransform } from "../../IWorldTransform";
5
5
  import { IMarkupObject } from "../../Api/IMarkupObject";
6
+ import { MarkupLineType } from "../../Api/IMarkupLine";
7
+ /**
8
+ * 2D markup core.
9
+ */
6
10
  export declare class KonvaMarkup implements IMarkup {
7
11
  private _isInitialized;
8
12
  private _viewer;
13
+ private _worldTransformer;
9
14
  private _canvasOriginal;
10
15
  private _canvasEvents;
11
16
  private _markupIsActive;
@@ -23,15 +28,15 @@ export declare class KonvaMarkup implements IMarkup {
23
28
  private _zIndex;
24
29
  private readonly _markupContainerName;
25
30
  lineWidth: number;
26
- lineType: LineType;
31
+ lineType: MarkupLineType;
27
32
  fontSize: number;
28
- initialize(viewer: Viewer, canvas: HTMLCanvasElement, canvasEvents?: string[]): void;
33
+ initialize(canvas: HTMLCanvasElement, canvasEvents: string[], viewer?: IEventEmitter, worldTransformer?: IWorldTransform): void;
29
34
  dispose(): void;
30
35
  changeActiveDragger: (event: ChangeActiveDraggerEvent) => void;
31
36
  resize: () => void;
32
37
  pan: (event: PanEvent) => void;
33
38
  redirectToViewer: (event: any) => void;
34
- getDraggers(): Map<string, typeof OdBaseDragger>;
39
+ syncOverlay(): void;
35
40
  clearOverlay(): void;
36
41
  getMarkupColor(): {
37
42
  r: number;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Markup color.
3
+ */
1
4
  export declare class MarkupColor {
2
5
  R: number;
3
6
  G: number;
@@ -1,7 +1,7 @@
1
+ import { IEventEmitter } from "@inweb/eventemitter2";
1
2
  import { IViewpoint } from "@inweb/viewer-core";
2
3
  import { IMarkup } from "../../IMarkup";
3
- import { Viewer } from "../../../Viewer";
4
- import { OdBaseDragger } from "../../../Draggers/Common/OdBaseDragger";
4
+ import { IWorldTransform } from "../../IWorldTransform";
5
5
  import { IMarkupObject } from "../../Api/IMarkupObject";
6
6
  export declare class VisualizeMarkup implements IMarkup {
7
7
  private _viewer;
@@ -13,9 +13,9 @@ export declare class VisualizeMarkup implements IMarkup {
13
13
  lineWidth: number;
14
14
  lineType: "solid";
15
15
  fontSize: number;
16
- initialize(viewer: Viewer, canvas: HTMLCanvasElement, canvasEvents: string[]): void;
16
+ initialize(canvas: HTMLCanvasElement, canvasEvents: string[], viewer?: IEventEmitter, worldTransformer?: IWorldTransform): void;
17
17
  dispose(): void;
18
- getDraggers(): Map<string, typeof OdBaseDragger>;
18
+ syncOverlay(): void;
19
19
  clearOverlay(): void;
20
20
  getMarkupColor(): {
21
21
  r: number;
@@ -1,12 +1,12 @@
1
- import { IMarkup, MarkupType } from "./IMarkup";
1
+ import { IMarkup } from "./IMarkup";
2
+ /**
3
+ * The markup type: `Visualize` (deprecated) or `Konva`.
4
+ */
5
+ export declare enum MarkupType {
6
+ Unknown = 0,
7
+ Konva = "Konva",
8
+ Visualize = "Visualize"
9
+ }
2
10
  export declare class MarkupFactory {
3
- /**
4
- * Initialize {@link IMarkup} instance
5
- *
6
- * @param markupType - Specifies version of the markup support. Two variants of markup
7
- * support are implemented: old "Visualize" and new "Konva". Default is "Konva". {@link MarkupType}
8
- */
9
- static createMarkup(markupType: MarkupType): IMarkup;
10
- private static createKonva;
11
- private static createVisualize;
11
+ static createMarkup(markupType?: MarkupType): IMarkup;
12
12
  }
@@ -1,13 +1,14 @@
1
1
  import { EventEmitter2 } from "@inweb/eventemitter2";
2
2
  import { Assembly, Client, File, Model } from "@inweb/client";
3
- import { IOptions, IViewpoint, IViewer, Options, OptionsEventMap, ViewerEventMap } from "@inweb/viewer-core";
4
- import { OdBaseDragger } from "./Draggers/Common/OdBaseDragger";
5
- import { IMarkup, MarkupType } from "./Markup/IMarkup";
3
+ import { CanvasEventMap, Dragger, IDragger, IOptions, IViewer, IViewpoint, Options, OptionsEventMap, ViewerEventMap } from "@inweb/viewer-core";
4
+ import { IMarkup } from "./Markup/IMarkup";
5
+ import { IWorldTransform } from "./Markup/IWorldTransform";
6
+ import { MarkupType } from "./Markup/MarkupFactory";
6
7
  /**
7
8
  * The `Client.js` library class that provides methods to integrate with the
8
- * [VisualizeJS](https://cloud.opendesign.com/docs/index.html#/visualizejs) library.
9
+ * {@link https://cloud.opendesign.com/docs/index.html#/visualizejs | VisualizeJS} library.
9
10
  */
10
- export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventMap> implements IViewer {
11
+ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMap & OptionsEventMap> implements IViewer, IWorldTransform {
11
12
  private _activeDragger;
12
13
  private _zoomWheelDragger;
13
14
  private _gestureManager;
@@ -19,12 +20,12 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
19
20
  protected _visualizeJsUrl: string;
20
21
  protected _visualizeJs: any;
21
22
  private canvaseventlistener;
22
- draggerFactory: Map<string, typeof OdBaseDragger>;
23
+ draggerFactory: Map<string, typeof Dragger>;
23
24
  canvasEvents: string[];
24
25
  private frameId;
25
26
  private _resizeObserver;
27
+ private _markup;
26
28
  canvas: HTMLCanvasElement | undefined;
27
- markup: IMarkup;
28
29
  _abortController: AbortController | undefined;
29
30
  _abortControllerForRequestMap: Map<string, AbortController> | undefined;
30
31
  _abortControllerForReferences: AbortController | undefined;
@@ -40,10 +41,10 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
40
41
  * _Note: Your own `VisualizeJS` library version must match the version of the `Client.js`
41
42
  * you are using._
42
43
  * @param params.enableAutoUpdate - Enable auto-update of the viewer after any changes. If
43
- * the auto-update is disabled, you need to update the `VisualizeJS` viewer and the active
44
- * dragger manually using the `update` event. Default is `true`.
45
- * @param params.markupType - Specifies version of the markup support. Two variants of markup
46
- * support are implemented: old "Visualize" and new "Konva". Default is "Konva". {@link MarkupType}
44
+ * the auto-update is disabled, you need to register the `update` event handler and update
45
+ * the viewer and the active dragger manually. Default is `true`.
46
+ * @param params.markupType - Specifies type of the markup core: `Visualize` (deprecated) or
47
+ * `Konva`. Default is `Konva`.
47
48
  */
48
49
  constructor(client?: Client, params?: {
49
50
  visualizeJsUrl?: string;
@@ -51,15 +52,21 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
51
52
  markupType?: MarkupType;
52
53
  });
53
54
  /**
54
- * `VisualizeJS` parameters.
55
+ * Viewer options.
55
56
  */
56
57
  get options(): Options;
57
58
  /**
58
- * `VisualizeJS` library URL. Use {@link Viewer#configure | configure()} to change library URL.
59
+ * `VisualizeJS` library URL. Use {@link configure | configure()} to change library URL.
59
60
  *
60
61
  * @readonly
61
62
  */
62
63
  get visualizeJsUrl(): string;
64
+ /**
65
+ * 2D markup core.
66
+ *
67
+ * @readonly
68
+ */
69
+ get markup(): IMarkup;
63
70
  /**
64
71
  * Change the viewer configuration parameters.
65
72
  *
@@ -70,25 +77,19 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
70
77
  configure(params: {
71
78
  visualizeJsUrl?: string;
72
79
  }): this;
73
- /**
74
- * A [Viewer]{@link Viewer} event measuring progress of loading a `VisualizeJS` library.
75
- *
76
- * @property {string} type - `visualizeprogress`
77
- * @property {number} loaded - A 64-bit unsigned integer value indicating the amount of work
78
- * already performed by the underlying process. The ratio of work done can be calculated by
79
- * dividing total by the value of this property.
80
- * @property {number} total - A 64-bit unsigned integer representing the total amount of work
81
- * that the underlying process is in the progress of performing.
82
- * @event visualizeprogress
83
- */
84
80
  /**
85
81
  * Load `VisualizeJS` module and initialize it with the specified canvas. Call
86
- * {@link Viewer#dispose | dispose()} to release allocated resources.
82
+ * {@link dispose | dispose()} to release allocated resources.
87
83
  *
88
- * @async
89
- * @param canvas - HTML `<canvas>` element for `VisualizeJS`.
84
+ * Fires:
85
+ *
86
+ * - {@link InitializeProgressEvent | initializeprogress}
87
+ *
88
+ * @param canvas -
89
+ * {@link https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement | HTMLCanvasElement}
90
+ * for `VisualizeJS`.
90
91
  * @param onProgress - A callback function that handles events measuring progress of loading
91
- * of the `VisualizeJS` library. Retrieves {@link event:visualizeprogress | visualizeprogress} event.
92
+ * of the `VisualizeJS` library.
92
93
  */
93
94
  initialize(canvas: HTMLCanvasElement, onProgress?: (event: ProgressEvent) => void): Promise<this>;
94
95
  /**
@@ -167,23 +168,22 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
167
168
  * @param name - Dragger name.
168
169
  * @param dragger - Dragger class.
169
170
  */
170
- registerDragger(name: string, dragger: typeof OdBaseDragger): void;
171
+ registerDragger(name: string, dragger: typeof Dragger): void;
171
172
  /**
172
173
  * Returns active dragger instance or `null` if there is no active dragger.
173
174
  */
174
- activeDragger(): any | null;
175
+ activeDragger(): IDragger | null;
175
176
  /**
176
- * Set active dragger. `Viewer` must be {@link Viewer#initialize | initialized} before enable
177
- * dragger or exception is thrown.
177
+ * Set active dragger. `Viewer` must be initialized before enable dragger or exception is thrown.
178
178
  *
179
179
  * Fires:
180
180
  *
181
181
  * - {@link ChangeActiveDraggerEvent | changeactivedragger}
182
182
  *
183
- * @param name - Dragger name. Can be one of the {@link Viewer#draggers | draggers} list.
183
+ * @param name - Dragger name. Can be one of the {@link draggers} list.
184
184
  * @returns Returns active dragger instance or `null` if there is no dragger with the given name.
185
185
  */
186
- setActiveDragger(name: string): OdBaseDragger | null;
186
+ setActiveDragger(name: string): IDragger | null;
187
187
  /**
188
188
  * Reset the state of the active dragger.
189
189
  */
@@ -204,6 +204,27 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
204
204
  * Returns `true` if current drawing is 3D drawing.
205
205
  */
206
206
  is3D(): boolean;
207
+ screenToWorld(position: {
208
+ x: number;
209
+ y: number;
210
+ }): {
211
+ x: number;
212
+ y: number;
213
+ z: number;
214
+ };
215
+ worldToScreen(position: {
216
+ x: number;
217
+ y: number;
218
+ z: number;
219
+ }): {
220
+ x: number;
221
+ y: number;
222
+ };
223
+ getScale(): {
224
+ x: number;
225
+ y: number;
226
+ z: number;
227
+ };
207
228
  /**
208
229
  * Returns a list of original handles for the selected entities.
209
230
  */
@@ -224,7 +245,6 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
224
245
  * Load model references into the viewer. References are images, fonts, or any other files to
225
246
  * correct rendering of the model.
226
247
  *
227
- * @async
228
248
  * @param model - Instance of model with references. If a `File` instance is specified
229
249
  * instead of a model, the file references will be loaded.
230
250
  */
@@ -234,9 +254,8 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
234
254
  /**
235
255
  * Loads a model of a file or assembly into the viewer.
236
256
  *
237
- * This method requires a [Client]{@link Client | Client} instance to work. For standalone
238
- * viewer instance use {@link Viewer#openVsfFile | openVsfFile()} or
239
- * {@link Viewer#openVsfxFile | openVsfxFile()}.
257
+ * This method requires a {@link Client} instance to work. For standalone viewer instance use
258
+ * {@link openVsfFile | openVsfFile()} or {@link openVsfxFile | openVsfxFile()}.
240
259
  *
241
260
  * Fires:
242
261
  *
@@ -248,7 +267,6 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
248
267
  * - {@link GeometryEndEvent | geometryend}
249
268
  * - {@link GeometryErrorEvent | geometryerror}
250
269
  *
251
- * @async
252
270
  * @param file - File or Assembly or Model instance to load. If a `File` instance with
253
271
  * multiple models is specified, the default model will be loaded. If there is no default
254
272
  * model, first availiable model will be loaded.
@@ -285,7 +303,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
285
303
  */
286
304
  openVsfxFile(buffer: Uint8Array | ArrayBuffer): this;
287
305
  /**
288
- * Cancels asynchronous model loading started by {@link Viewer#open | open()}.
306
+ * Cancels asynchronous model loading started by {@link open | open()}.
289
307
  */
290
308
  cancel(): this;
291
309
  /**
@@ -332,14 +350,14 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventM
332
350
  addMarkupEntity(entityName: string): any;
333
351
  /**
334
352
  * Draw a viewpoint. To get a list of available model viewpoints, use the
335
- * {@link Model.getViewpoints()} or {@link File.getViewpoints()}.
353
+ * `Model.getViewpoints()` or `File.getViewpoints()` or `Assembly.getViewpoints()`.
336
354
  *
337
355
  * @param viewpoint - Viewpoint data.
338
356
  */
339
357
  drawViewpoint(viewpoint: IViewpoint): void;
340
358
  /**
341
359
  * Create a viewpoint. To add a viewpoint to the list of model viewpoints, use the
342
- * {@link Model.saveViewpoint()} or {@link File.saveViewpoint()}.
360
+ * `Model.saveViewpoint()` or `File.saveViewpoint()` or . `Assembly.saveViewpoint()`.
343
361
  */
344
362
  createViewpoint(): IViewpoint;
345
363
  private getPoint3dFromArray;
package/lib/index.d.ts CHANGED
@@ -2,3 +2,15 @@ import "./Viewer/Commands";
2
2
  export * from "@inweb/viewer-core";
3
3
  export { Viewer } from "./Viewer/Viewer";
4
4
  export { OdBaseDragger } from "./Viewer/Draggers/Common/OdBaseDragger";
5
+ export { IMarkup } from "./Viewer/Markup/IMarkup";
6
+ export { IMarkupArrow } from "./Viewer/Markup/Api/IMarkupArrow";
7
+ export { IMarkupCloud } from "./Viewer/Markup/Api/IMarkupCloud";
8
+ export { IMarkupColorable } from "./Viewer/Markup/Api/IMarkupColorable";
9
+ export { IMarkupEllipse } from "./Viewer/Markup/Api/IMarkupEllipse";
10
+ export { IMarkupImage } from "./Viewer/Markup/Api/IMarkupImage";
11
+ export { IMarkupLine, MarkupLineType } from "./Viewer/Markup/Api/IMarkupLine";
12
+ export { IMarkupRectangle } from "./Viewer/Markup/Api/IMarkupRectangle";
13
+ export { IMarkupObject } from "./Viewer/Markup/Api/IMarkupObject";
14
+ export { IMarkupText } from "./Viewer/Markup/Api/IMarkupText";
15
+ export { IWorldTransform } from "./Viewer/Markup/IWorldTransform";
16
+ export { MarkupType } from "./Viewer/Markup/MarkupFactory";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inweb/viewer-visualize",
3
- "version": "25.7.0",
3
+ "version": "25.7.2",
4
4
  "description": "3D CAD and BIM data Viewer powered by Visualize",
5
5
  "homepage": "https://cloud.opendesign.com/docs/index.html",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -26,12 +26,12 @@
26
26
  "scripts": {
27
27
  "build": "rollup -c rollup.config.js",
28
28
  "test": "karma start karma.conf.js",
29
- "ts-docs": "typedoc"
29
+ "docs": "typedoc"
30
30
  },
31
31
  "dependencies": {
32
- "@inweb/client": "~25.7.0",
33
- "@inweb/eventemitter2": "~25.7.0",
34
- "@inweb/viewer-core": "~25.7.0"
32
+ "@inweb/client": "~25.7.2",
33
+ "@inweb/eventemitter2": "~25.7.2",
34
+ "@inweb/viewer-core": "~25.7.2"
35
35
  },
36
36
  "devDependencies": {
37
37
  "canvas": "^2.11.2",
@@ -1,5 +1,5 @@
1
1
  ///////////////////////////////////////////////////////////////////////////////
2
- // Copyright (C) 2002-2023, Open Design Alliance (the "Alliance").
2
+ // Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3
3
  // All rights reserved.
4
4
  //
5
5
  // This software and its documentation and related materials are owned by
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // This application incorporates Open Design Alliance software pursuant to a
16
16
  // license agreement with Open Design Alliance.
17
- // Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
17
+ // Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18
18
  // All rights reserved.
19
19
  //
20
20
  // By use of this software, its documentation or related materials, you
@@ -1,5 +1,5 @@
1
1
  ///////////////////////////////////////////////////////////////////////////////
2
- // Copyright (C) 2002-2023, Open Design Alliance (the "Alliance").
2
+ // Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3
3
  // All rights reserved.
4
4
  //
5
5
  // This software and its documentation and related materials are owned by
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // This application incorporates Open Design Alliance software pursuant to a
16
16
  // license agreement with Open Design Alliance.
17
- // Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
17
+ // Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18
18
  // All rights reserved.
19
19
  //
20
20
  // By use of this software, its documentation or related materials, you
@@ -1,5 +1,5 @@
1
1
  ///////////////////////////////////////////////////////////////////////////////
2
- // Copyright (C) 2002-2023, Open Design Alliance (the "Alliance").
2
+ // Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3
3
  // All rights reserved.
4
4
  //
5
5
  // This software and its documentation and related materials are owned by
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // This application incorporates Open Design Alliance software pursuant to a
16
16
  // license agreement with Open Design Alliance.
17
- // Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
17
+ // Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18
18
  // All rights reserved.
19
19
  //
20
20
  // By use of this software, its documentation or related materials, you
@@ -1,5 +1,5 @@
1
1
  ///////////////////////////////////////////////////////////////////////////////
2
- // Copyright (C) 2002-2023, Open Design Alliance (the "Alliance").
2
+ // Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3
3
  // All rights reserved.
4
4
  //
5
5
  // This software and its documentation and related materials are owned by
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // This application incorporates Open Design Alliance software pursuant to a
16
16
  // license agreement with Open Design Alliance.
17
- // Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
17
+ // Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18
18
  // All rights reserved.
19
19
  //
20
20
  // By use of this software, its documentation or related materials, you
@@ -1,5 +1,5 @@
1
1
  ///////////////////////////////////////////////////////////////////////////////
2
- // Copyright (C) 2002-2023, Open Design Alliance (the "Alliance").
2
+ // Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3
3
  // All rights reserved.
4
4
  //
5
5
  // This software and its documentation and related materials are owned by
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // This application incorporates Open Design Alliance software pursuant to a
16
16
  // license agreement with Open Design Alliance.
17
- // Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
17
+ // Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18
18
  // All rights reserved.
19
19
  //
20
20
  // By use of this software, its documentation or related materials, you
@@ -1,5 +1,5 @@
1
1
  ///////////////////////////////////////////////////////////////////////////////
2
- // Copyright (C) 2002-2023, Open Design Alliance (the "Alliance").
2
+ // Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3
3
  // All rights reserved.
4
4
  //
5
5
  // This software and its documentation and related materials are owned by
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // This application incorporates Open Design Alliance software pursuant to a
16
16
  // license agreement with Open Design Alliance.
17
- // Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
17
+ // Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18
18
  // All rights reserved.
19
19
  //
20
20
  // By use of this software, its documentation or related materials, you