@vertexvis/viewer 0.18.2-testing.0 → 0.18.2-testing.1

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 (228) hide show
  1. package/dist/cjs/index-b99cd335.js +126 -1
  2. package/dist/esm/index-fd7d7b68.js +126 -1
  3. package/package.json +7 -7
  4. package/dist/components/_commonjsHelpers.js +0 -41
  5. package/dist/components/_commonjsHelpers.js.map +0 -1
  6. package/dist/components/browser.esm.js +0 -3173
  7. package/dist/components/browser.esm.js.map +0 -1
  8. package/dist/components/bundle.esm.js +0 -2250
  9. package/dist/components/bundle.esm.js.map +0 -1
  10. package/dist/components/bundle.esm2.js +0 -39740
  11. package/dist/components/bundle.esm2.js.map +0 -1
  12. package/dist/components/config.js +0 -81
  13. package/dist/components/config.js.map +0 -1
  14. package/dist/components/controller.js +0 -7627
  15. package/dist/components/controller.js.map +0 -1
  16. package/dist/components/controller2.js +0 -124
  17. package/dist/components/controller2.js.map +0 -1
  18. package/dist/components/controller3.js +0 -111
  19. package/dist/components/controller3.js.map +0 -1
  20. package/dist/components/cursors.js +0 -110
  21. package/dist/components/cursors.js.map +0 -1
  22. package/dist/components/dom.js +0 -43
  23. package/dist/components/dom.js.map +0 -1
  24. package/dist/components/dom2.js +0 -10
  25. package/dist/components/dom2.js.map +0 -1
  26. package/dist/components/elementRectObserver.js +0 -25
  27. package/dist/components/elementRectObserver.js.map +0 -1
  28. package/dist/components/entities.js +0 -179
  29. package/dist/components/entities.js.map +0 -1
  30. package/dist/components/errors.js +0 -80
  31. package/dist/components/errors.js.map +0 -1
  32. package/dist/components/events.js +0 -11
  33. package/dist/components/events.js.map +0 -1
  34. package/dist/components/index.d.ts +0 -26
  35. package/dist/components/index.js +0 -365
  36. package/dist/components/index.js.map +0 -1
  37. package/dist/components/index2.js +0 -63
  38. package/dist/components/index2.js.map +0 -1
  39. package/dist/components/interactions.js +0 -236
  40. package/dist/components/interactions.js.map +0 -1
  41. package/dist/components/mapper.js +0 -9811
  42. package/dist/components/mapper.js.map +0 -1
  43. package/dist/components/markup.js +0 -33
  44. package/dist/components/markup.js.map +0 -1
  45. package/dist/components/model.js +0 -134
  46. package/dist/components/model.js.map +0 -1
  47. package/dist/components/model2.js +0 -157
  48. package/dist/components/model2.js.map +0 -1
  49. package/dist/components/overlays.js +0 -76
  50. package/dist/components/overlays.js.map +0 -1
  51. package/dist/components/png-decoder.js +0 -2405
  52. package/dist/components/png-decoder.js.map +0 -1
  53. package/dist/components/regl-component.js +0 -12582
  54. package/dist/components/regl-component.js.map +0 -1
  55. package/dist/components/results.js +0 -24
  56. package/dist/components/results.js.map +0 -1
  57. package/dist/components/row.js +0 -32
  58. package/dist/components/row.js.map +0 -1
  59. package/dist/components/scene-tree-search.js +0 -146
  60. package/dist/components/scene-tree-search.js.map +0 -1
  61. package/dist/components/scene-tree-table-layout.js +0 -928
  62. package/dist/components/scene-tree-table-layout.js.map +0 -1
  63. package/dist/components/scene-tree-toolbar.js +0 -35
  64. package/dist/components/scene-tree-toolbar.js.map +0 -1
  65. package/dist/components/scene.js +0 -1508
  66. package/dist/components/scene.js.map +0 -1
  67. package/dist/components/stencil.js +0 -25
  68. package/dist/components/stencil.js.map +0 -1
  69. package/dist/components/streamAttributes.js +0 -40833
  70. package/dist/components/streamAttributes.js.map +0 -1
  71. package/dist/components/templates.js +0 -36
  72. package/dist/components/templates.js.map +0 -1
  73. package/dist/components/tslib.es6.js +0 -125
  74. package/dist/components/tslib.es6.js.map +0 -1
  75. package/dist/components/vertex-scene-tree-search.d.ts +0 -11
  76. package/dist/components/vertex-scene-tree-search.js +0 -11
  77. package/dist/components/vertex-scene-tree-search.js.map +0 -1
  78. package/dist/components/vertex-scene-tree-table-cell.d.ts +0 -11
  79. package/dist/components/vertex-scene-tree-table-cell.js +0 -209
  80. package/dist/components/vertex-scene-tree-table-cell.js.map +0 -1
  81. package/dist/components/vertex-scene-tree-table-column.d.ts +0 -11
  82. package/dist/components/vertex-scene-tree-table-column.js +0 -42
  83. package/dist/components/vertex-scene-tree-table-column.js.map +0 -1
  84. package/dist/components/vertex-scene-tree-table-header.d.ts +0 -11
  85. package/dist/components/vertex-scene-tree-table-header.js +0 -38
  86. package/dist/components/vertex-scene-tree-table-header.js.map +0 -1
  87. package/dist/components/vertex-scene-tree-table-layout.d.ts +0 -11
  88. package/dist/components/vertex-scene-tree-table-layout.js +0 -11
  89. package/dist/components/vertex-scene-tree-table-layout.js.map +0 -1
  90. package/dist/components/vertex-scene-tree-table-resize-divider.d.ts +0 -11
  91. package/dist/components/vertex-scene-tree-table-resize-divider.js +0 -57
  92. package/dist/components/vertex-scene-tree-table-resize-divider.js.map +0 -1
  93. package/dist/components/vertex-scene-tree-toolbar-group.d.ts +0 -11
  94. package/dist/components/vertex-scene-tree-toolbar-group.js +0 -38
  95. package/dist/components/vertex-scene-tree-toolbar-group.js.map +0 -1
  96. package/dist/components/vertex-scene-tree-toolbar.d.ts +0 -11
  97. package/dist/components/vertex-scene-tree-toolbar.js +0 -11
  98. package/dist/components/vertex-scene-tree-toolbar.js.map +0 -1
  99. package/dist/components/vertex-scene-tree.d.ts +0 -11
  100. package/dist/components/vertex-scene-tree.js +0 -803
  101. package/dist/components/vertex-scene-tree.js.map +0 -1
  102. package/dist/components/vertex-viewer-box-query-tool.d.ts +0 -11
  103. package/dist/components/vertex-viewer-box-query-tool.js +0 -352
  104. package/dist/components/vertex-viewer-box-query-tool.js.map +0 -1
  105. package/dist/components/vertex-viewer-button.d.ts +0 -11
  106. package/dist/components/vertex-viewer-button.js +0 -11
  107. package/dist/components/vertex-viewer-button.js.map +0 -1
  108. package/dist/components/vertex-viewer-default-toolbar.d.ts +0 -11
  109. package/dist/components/vertex-viewer-default-toolbar.js +0 -99
  110. package/dist/components/vertex-viewer-default-toolbar.js.map +0 -1
  111. package/dist/components/vertex-viewer-dom-element.d.ts +0 -11
  112. package/dist/components/vertex-viewer-dom-element.js +0 -11
  113. package/dist/components/vertex-viewer-dom-element.js.map +0 -1
  114. package/dist/components/vertex-viewer-dom-group.d.ts +0 -11
  115. package/dist/components/vertex-viewer-dom-group.js +0 -11
  116. package/dist/components/vertex-viewer-dom-group.js.map +0 -1
  117. package/dist/components/vertex-viewer-dom-renderer.d.ts +0 -11
  118. package/dist/components/vertex-viewer-dom-renderer.js +0 -11
  119. package/dist/components/vertex-viewer-dom-renderer.js.map +0 -1
  120. package/dist/components/vertex-viewer-hit-result-indicator.d.ts +0 -11
  121. package/dist/components/vertex-viewer-hit-result-indicator.js +0 -335
  122. package/dist/components/vertex-viewer-hit-result-indicator.js.map +0 -1
  123. package/dist/components/vertex-viewer-icon.d.ts +0 -11
  124. package/dist/components/vertex-viewer-icon.js +0 -11
  125. package/dist/components/vertex-viewer-icon.js.map +0 -1
  126. package/dist/components/vertex-viewer-layer.d.ts +0 -11
  127. package/dist/components/vertex-viewer-layer.js +0 -11
  128. package/dist/components/vertex-viewer-layer.js.map +0 -1
  129. package/dist/components/vertex-viewer-markup-arrow.d.ts +0 -11
  130. package/dist/components/vertex-viewer-markup-arrow.js +0 -11
  131. package/dist/components/vertex-viewer-markup-arrow.js.map +0 -1
  132. package/dist/components/vertex-viewer-markup-circle.d.ts +0 -11
  133. package/dist/components/vertex-viewer-markup-circle.js +0 -11
  134. package/dist/components/vertex-viewer-markup-circle.js.map +0 -1
  135. package/dist/components/vertex-viewer-markup-freeform.d.ts +0 -11
  136. package/dist/components/vertex-viewer-markup-freeform.js +0 -11
  137. package/dist/components/vertex-viewer-markup-freeform.js.map +0 -1
  138. package/dist/components/vertex-viewer-markup-tool.d.ts +0 -11
  139. package/dist/components/vertex-viewer-markup-tool.js +0 -257
  140. package/dist/components/vertex-viewer-markup-tool.js.map +0 -1
  141. package/dist/components/vertex-viewer-markup.d.ts +0 -11
  142. package/dist/components/vertex-viewer-markup.js +0 -362
  143. package/dist/components/vertex-viewer-markup.js.map +0 -1
  144. package/dist/components/vertex-viewer-measurement-details.d.ts +0 -11
  145. package/dist/components/vertex-viewer-measurement-details.js +0 -307
  146. package/dist/components/vertex-viewer-measurement-details.js.map +0 -1
  147. package/dist/components/vertex-viewer-measurement-distance.d.ts +0 -11
  148. package/dist/components/vertex-viewer-measurement-distance.js +0 -1067
  149. package/dist/components/vertex-viewer-measurement-distance.js.map +0 -1
  150. package/dist/components/vertex-viewer-measurement-line.d.ts +0 -11
  151. package/dist/components/vertex-viewer-measurement-line.js +0 -11
  152. package/dist/components/vertex-viewer-measurement-line.js.map +0 -1
  153. package/dist/components/vertex-viewer-measurement-overlays.d.ts +0 -11
  154. package/dist/components/vertex-viewer-measurement-overlays.js +0 -11
  155. package/dist/components/vertex-viewer-measurement-overlays.js.map +0 -1
  156. package/dist/components/vertex-viewer-measurement-precise.d.ts +0 -11
  157. package/dist/components/vertex-viewer-measurement-precise.js +0 -362
  158. package/dist/components/vertex-viewer-measurement-precise.js.map +0 -1
  159. package/dist/components/vertex-viewer-pin-group.d.ts +0 -11
  160. package/dist/components/vertex-viewer-pin-group.js +0 -11
  161. package/dist/components/vertex-viewer-pin-group.js.map +0 -1
  162. package/dist/components/vertex-viewer-pin-label-line.d.ts +0 -11
  163. package/dist/components/vertex-viewer-pin-label-line.js +0 -11
  164. package/dist/components/vertex-viewer-pin-label-line.js.map +0 -1
  165. package/dist/components/vertex-viewer-pin-label.d.ts +0 -11
  166. package/dist/components/vertex-viewer-pin-label.js +0 -11
  167. package/dist/components/vertex-viewer-pin-label.js.map +0 -1
  168. package/dist/components/vertex-viewer-pin-tool.d.ts +0 -11
  169. package/dist/components/vertex-viewer-pin-tool.js +0 -430
  170. package/dist/components/vertex-viewer-pin-tool.js.map +0 -1
  171. package/dist/components/vertex-viewer-spinner.d.ts +0 -11
  172. package/dist/components/vertex-viewer-spinner.js +0 -11
  173. package/dist/components/vertex-viewer-spinner.js.map +0 -1
  174. package/dist/components/vertex-viewer-toolbar-group.d.ts +0 -11
  175. package/dist/components/vertex-viewer-toolbar-group.js +0 -11
  176. package/dist/components/vertex-viewer-toolbar-group.js.map +0 -1
  177. package/dist/components/vertex-viewer-toolbar.d.ts +0 -11
  178. package/dist/components/vertex-viewer-toolbar.js +0 -11
  179. package/dist/components/vertex-viewer-toolbar.js.map +0 -1
  180. package/dist/components/vertex-viewer-transform-widget.d.ts +0 -11
  181. package/dist/components/vertex-viewer-transform-widget.js +0 -838
  182. package/dist/components/vertex-viewer-transform-widget.js.map +0 -1
  183. package/dist/components/vertex-viewer-view-cube.d.ts +0 -11
  184. package/dist/components/vertex-viewer-view-cube.js +0 -270
  185. package/dist/components/vertex-viewer-view-cube.js.map +0 -1
  186. package/dist/components/vertex-viewer.d.ts +0 -11
  187. package/dist/components/vertex-viewer.js +0 -3543
  188. package/dist/components/vertex-viewer.js.map +0 -1
  189. package/dist/components/viewer-button.js +0 -35
  190. package/dist/components/viewer-button.js.map +0 -1
  191. package/dist/components/viewer-dom-element.js +0 -250
  192. package/dist/components/viewer-dom-element.js.map +0 -1
  193. package/dist/components/viewer-dom-group.js +0 -214
  194. package/dist/components/viewer-dom-group.js.map +0 -1
  195. package/dist/components/viewer-dom-renderer.js +0 -295
  196. package/dist/components/viewer-dom-renderer.js.map +0 -1
  197. package/dist/components/viewer-icon.js +0 -87
  198. package/dist/components/viewer-icon.js.map +0 -1
  199. package/dist/components/viewer-layer.js +0 -46
  200. package/dist/components/viewer-layer.js.map +0 -1
  201. package/dist/components/viewer-markup-arrow.js +0 -235
  202. package/dist/components/viewer-markup-arrow.js.map +0 -1
  203. package/dist/components/viewer-markup-circle-components.js +0 -42
  204. package/dist/components/viewer-markup-circle-components.js.map +0 -1
  205. package/dist/components/viewer-markup-circle.js +0 -201
  206. package/dist/components/viewer-markup-circle.js.map +0 -1
  207. package/dist/components/viewer-markup-freeform.js +0 -251
  208. package/dist/components/viewer-markup-freeform.js.map +0 -1
  209. package/dist/components/viewer-measurement-line.js +0 -77
  210. package/dist/components/viewer-measurement-line.js.map +0 -1
  211. package/dist/components/viewer-measurement-overlays.js +0 -184
  212. package/dist/components/viewer-measurement-overlays.js.map +0 -1
  213. package/dist/components/viewer-pin-group.js +0 -207
  214. package/dist/components/viewer-pin-group.js.map +0 -1
  215. package/dist/components/viewer-pin-label-line.js +0 -43
  216. package/dist/components/viewer-pin-label-line.js.map +0 -1
  217. package/dist/components/viewer-pin-label.js +0 -427
  218. package/dist/components/viewer-pin-label.js.map +0 -1
  219. package/dist/components/viewer-spinner.js +0 -53
  220. package/dist/components/viewer-spinner.js.map +0 -1
  221. package/dist/components/viewer-toolbar-group.js +0 -42
  222. package/dist/components/viewer-toolbar-group.js.map +0 -1
  223. package/dist/components/viewer-toolbar.js +0 -61
  224. package/dist/components/viewer-toolbar.js.map +0 -1
  225. package/dist/components/viewport.js +0 -188
  226. package/dist/components/viewport.js.map +0 -1
  227. package/dist/components/wrappers_pb.js +0 -1926
  228. package/dist/components/wrappers_pb.js.map +0 -1
@@ -1,33 +0,0 @@
1
- /*!
2
- * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
- */
4
- import { p as point, e as rectangle } from './bundle.esm.js';
5
- import { b as uuid } from './browser.esm.js';
6
-
7
- class ArrowMarkup {
8
- constructor(init) {
9
- var _a, _b, _c;
10
- this.start = (_a = init.start) !== null && _a !== void 0 ? _a : point.create();
11
- this.end = (_b = init.end) !== null && _b !== void 0 ? _b : point.create();
12
- this.id = (_c = init.id) !== null && _c !== void 0 ? _c : `arrow-markup--${uuid.create()}`;
13
- }
14
- }
15
- class CircleMarkup {
16
- constructor(init) {
17
- var _a, _b;
18
- this.bounds = (_a = init.bounds) !== null && _a !== void 0 ? _a : rectangle.create(0, 0, 0, 0);
19
- this.id = (_b = init.id) !== null && _b !== void 0 ? _b : `circle-markup--${uuid.create()}`;
20
- }
21
- }
22
- class FreeformMarkup {
23
- constructor(init) {
24
- var _a, _b, _c;
25
- this.bounds = (_a = init.bounds) !== null && _a !== void 0 ? _a : rectangle.create(0, 0, 0, 0);
26
- this.points = (_b = init.points) !== null && _b !== void 0 ? _b : [];
27
- this.id = (_c = init.id) !== null && _c !== void 0 ? _c : `freeform-markup--${uuid.create()}`;
28
- }
29
- }
30
-
31
- export { ArrowMarkup as A, CircleMarkup as C, FreeformMarkup as F };
32
-
33
- //# sourceMappingURL=markup.js.map
@@ -1 +0,0 @@
1
- {"file":"markup.js","mappings":";;;;;;MASa,WAAW;EAKtB,YAAmB,IAAqB;;IACtC,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAIA,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1C,IAAI,CAAC,GAAG,GAAG,MAAA,IAAI,CAAC,GAAG,mCAAIA,KAAK,CAAC,MAAM,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE,GAAG,MAAA,IAAI,CAAC,EAAE,mCAAI,iBAAiBC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;GACvD;CACF;MAOY,YAAY;EAIvB,YAAmB,IAAsB;;IACvC,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAIC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,GAAG,MAAA,IAAI,CAAC,EAAE,mCAAI,kBAAkBD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;GACxD;CACF;MAQY,cAAc;EAKzB,YAAmB,IAAwB;;IACzC,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAIC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,GAAG,MAAA,IAAI,CAAC,EAAE,mCAAI,oBAAoBD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;GAC1D;;;;;","names":["Point","UUID","Rectangle"],"sources":["./src/lib/types/markup.ts"],"sourcesContent":["import { Point, Rectangle } from '@vertexvis/geometry';\nimport { UUID } from '@vertexvis/utils';\n\nexport interface ArrowMarkupInit {\n start?: Point.Point;\n end?: Point.Point;\n id?: string;\n}\n\nexport class ArrowMarkup {\n public readonly start: Point.Point;\n public readonly end: Point.Point;\n public readonly id: string;\n\n public constructor(init: ArrowMarkupInit) {\n this.start = init.start ?? Point.create();\n this.end = init.end ?? Point.create();\n this.id = init.id ?? `arrow-markup--${UUID.create()}`;\n }\n}\n\nexport interface CircleMarkupInit {\n bounds?: Rectangle.Rectangle;\n id?: string;\n}\n\nexport class CircleMarkup {\n public readonly bounds: Rectangle.Rectangle;\n public readonly id: string;\n\n public constructor(init: CircleMarkupInit) {\n this.bounds = init.bounds ?? Rectangle.create(0, 0, 0, 0);\n this.id = init.id ?? `circle-markup--${UUID.create()}`;\n }\n}\n\nexport interface FreeformMarkupInit {\n bounds?: Rectangle.Rectangle;\n points?: Point.Point[];\n id?: string;\n}\n\nexport class FreeformMarkup {\n public readonly bounds: Rectangle.Rectangle;\n public readonly points: Point.Point[];\n public readonly id: string;\n\n public constructor(init: FreeformMarkupInit) {\n this.bounds = init.bounds ?? Rectangle.create(0, 0, 0, 0);\n this.points = init.points ?? [];\n this.id = init.id ?? `freeform-markup--${UUID.create()}`;\n }\n}\n\nexport type Markup = ArrowMarkup | CircleMarkup | FreeformMarkup;\n"],"version":3}
@@ -1,134 +0,0 @@
1
- /*!
2
- * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
- */
4
- import { E as EventDispatcher, o as objects } from './browser.esm.js';
5
-
6
- /**
7
- * A model representing the state of measurement.
8
- *
9
- * Measurement contains a set of `MeasureEntity`s that represent what's being
10
- * measured, and a set of `MeasurementResult`s representing the results of the
11
- * measurement.
12
- *
13
- * Views can register event listeners to the model to be notified when new
14
- * measurements have been added.
15
- */
16
- class MeasurementModel {
17
- constructor() {
18
- this.entities = new Set();
19
- this.results = new Set();
20
- this.entitiesChanged = new EventDispatcher();
21
- this.outcomeChanged = new EventDispatcher();
22
- }
23
- /**
24
- * Registers an entity to be measured with the model.
25
- *
26
- * @param entity An entity to measure.
27
- * @returns `true` if the entity has been added.
28
- */
29
- addEntity(entity) {
30
- if (!this.entities.has(entity)) {
31
- this.entities.add(entity);
32
- this.entitiesChanged.emit(this.getEntities());
33
- return true;
34
- }
35
- else {
36
- return false;
37
- }
38
- }
39
- /**
40
- * Clears all registered entities from the model.
41
- */
42
- clearEntities() {
43
- this.entities.forEach((e) => this.removeEntity(e));
44
- }
45
- /**
46
- * Clears the outcome containing the results of a measurement.
47
- */
48
- clearOutcome() {
49
- this.setOutcome(undefined);
50
- }
51
- /**
52
- * Sets the outcome containing the results of a measurement.
53
- *
54
- * Emits a _outcome changed_ event.
55
- *
56
- * @param outcome The outcome containing results.
57
- */
58
- setOutcome(outcome) {
59
- if (!objects.isEqual(this.outcome, outcome)) {
60
- this.outcome = outcome;
61
- this.outcomeChanged.emit(outcome);
62
- }
63
- }
64
- /**
65
- * Returns all the entities registered with the model.
66
- */
67
- getEntities() {
68
- return Array.from(this.entities);
69
- }
70
- /**
71
- * Returns the outcome that contains the results of a measurement.
72
- */
73
- getOutcome() {
74
- return this.outcome;
75
- }
76
- /**
77
- * Returns all the measurement results of the model.
78
- */
79
- getResults() {
80
- return Array.from(this.results);
81
- }
82
- /**
83
- * Unregisters an entity from the model.
84
- *
85
- * @param entity The entity to remove.
86
- * @returns `true` if the entity was removed.
87
- */
88
- removeEntity(entity) {
89
- if (this.entities.has(entity)) {
90
- this.entities.delete(entity);
91
- this.entitiesChanged.emit(this.getEntities());
92
- return true;
93
- }
94
- else {
95
- return false;
96
- }
97
- }
98
- /**
99
- * Sets the set of entities to be measured with the model.
100
- *
101
- * @param entities A set of entities to measure.
102
- * @returns `true` if the entity has been added.
103
- */
104
- setEntities(entities) {
105
- this.entities.clear();
106
- entities.forEach((e) => this.entities.add(e));
107
- this.entitiesChanged.emit(this.getEntities());
108
- return true;
109
- }
110
- /**
111
- * Registers an event listener that will be invoked when the model's outcome
112
- * changes.
113
- *
114
- * @param listener The listener to add.
115
- * @returns A disposable that can be used to remove the listener.
116
- */
117
- onOutcomeChanged(listener) {
118
- return this.outcomeChanged.on(listener);
119
- }
120
- /**
121
- * Registers an event listener that will be invoked when the model's
122
- * measurement entities change.
123
- *
124
- * @param listener The listener to add.
125
- * @returns A disposable that can be used to remove the listener.
126
- */
127
- onEntitiesChanged(listener) {
128
- return this.entitiesChanged.on(listener);
129
- }
130
- }
131
-
132
- export { MeasurementModel as M };
133
-
134
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"file":"model.js","mappings":";;;;;AAWA;;;;;;;;;;MAUa,gBAAgB;EAA7B;IACU,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAExC,YAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEvC,oBAAe,GAAG,IAAI,eAAe,EAAuB,CAAC;IAE7D,mBAAc,GAAG,IAAI,eAAe,EAEzC,CAAC;GAyHL;;;;;;;EAjHQ,SAAS,CAAC,MAAyB;IACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;MAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;MAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;MAC9C,OAAO,IAAI,CAAC;KACb;SAAM;MACL,OAAO,KAAK,CAAC;KACd;GACF;;;;EAKM,aAAa;IAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;GACpD;;;;EAKM,YAAY;IACjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;GAC5B;;;;;;;;EASM,UAAU,CAAC,OAAuC;IACvD,IAAI,CAACA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;MAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;MACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACnC;GACF;;;;EAKM,WAAW;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;GAClC;;;;EAKM,UAAU;IACf,OAAO,IAAI,CAAC,OAAO,CAAC;GACrB;;;;EAKM,UAAU;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;GACjC;;;;;;;EAQM,YAAY,CAAC,MAAyB;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;MAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;MAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;MAC9C,OAAO,IAAI,CAAC;KACb;SAAM;MACL,OAAO,KAAK,CAAC;KACd;GACF;;;;;;;EAQM,WAAW,CAAC,QAAgC;IACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC;GACb;;;;;;;;EASM,gBAAgB,CACrB,QAAkD;IAElD,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;GACzC;;;;;;;;EASM,iBAAiB,CACtB,QAAuC;IAEvC,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;GAC1C;;;;;","names":["Objects"],"sources":["./src/lib/measurement/model.ts"],"sourcesContent":["import {\n Disposable,\n EventDispatcher,\n Listener,\n Objects,\n} from '@vertexvis/utils';\n\nimport { MeasurementEntity } from './entities';\nimport { MeasurementOutcome } from './outcomes';\nimport { MeasurementResult } from './results';\n\n/**\n * A model representing the state of measurement.\n *\n * Measurement contains a set of `MeasureEntity`s that represent what's being\n * measured, and a set of `MeasurementResult`s representing the results of the\n * measurement.\n *\n * Views can register event listeners to the model to be notified when new\n * measurements have been added.\n */\nexport class MeasurementModel {\n private entities = new Set<MeasurementEntity>();\n private outcome?: MeasurementOutcome;\n private results = new Set<MeasurementResult>();\n\n private entitiesChanged = new EventDispatcher<MeasurementEntity[]>();\n\n private outcomeChanged = new EventDispatcher<\n MeasurementOutcome | undefined\n >();\n\n /**\n * Registers an entity to be measured with the model.\n *\n * @param entity An entity to measure.\n * @returns `true` if the entity has been added.\n */\n public addEntity(entity: MeasurementEntity): boolean {\n if (!this.entities.has(entity)) {\n this.entities.add(entity);\n this.entitiesChanged.emit(this.getEntities());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Clears all registered entities from the model.\n */\n public clearEntities(): void {\n this.entities.forEach((e) => this.removeEntity(e));\n }\n\n /**\n * Clears the outcome containing the results of a measurement.\n */\n public clearOutcome(): void {\n this.setOutcome(undefined);\n }\n\n /**\n * Sets the outcome containing the results of a measurement.\n *\n * Emits a _outcome changed_ event.\n *\n * @param outcome The outcome containing results.\n */\n public setOutcome(outcome: MeasurementOutcome | undefined): void {\n if (!Objects.isEqual(this.outcome, outcome)) {\n this.outcome = outcome;\n this.outcomeChanged.emit(outcome);\n }\n }\n\n /**\n * Returns all the entities registered with the model.\n */\n public getEntities(): MeasurementEntity[] {\n return Array.from(this.entities);\n }\n\n /**\n * Returns the outcome that contains the results of a measurement.\n */\n public getOutcome(): MeasurementOutcome | undefined {\n return this.outcome;\n }\n\n /**\n * Returns all the measurement results of the model.\n */\n public getResults(): MeasurementResult[] {\n return Array.from(this.results);\n }\n\n /**\n * Unregisters an entity from the model.\n *\n * @param entity The entity to remove.\n * @returns `true` if the entity was removed.\n */\n public removeEntity(entity: MeasurementEntity): boolean {\n if (this.entities.has(entity)) {\n this.entities.delete(entity);\n this.entitiesChanged.emit(this.getEntities());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Sets the set of entities to be measured with the model.\n *\n * @param entities A set of entities to measure.\n * @returns `true` if the entity has been added.\n */\n public setEntities(entities: Set<MeasurementEntity>): boolean {\n this.entities.clear();\n entities.forEach((e) => this.entities.add(e));\n this.entitiesChanged.emit(this.getEntities());\n return true;\n }\n\n /**\n * Registers an event listener that will be invoked when the model's outcome\n * changes.\n *\n * @param listener The listener to add.\n * @returns A disposable that can be used to remove the listener.\n */\n public onOutcomeChanged(\n listener: Listener<MeasurementOutcome | undefined>\n ): Disposable {\n return this.outcomeChanged.on(listener);\n }\n\n /**\n * Registers an event listener that will be invoked when the model's\n * measurement entities change.\n *\n * @param listener The listener to add.\n * @returns A disposable that can be used to remove the listener.\n */\n public onEntitiesChanged(\n listener: Listener<MeasurementEntity[]>\n ): Disposable {\n return this.entitiesChanged.on(listener);\n }\n}\n"],"version":3}
@@ -1,157 +0,0 @@
1
- /*!
2
- * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
- */
4
- import { c as color, E as EventDispatcher } from './browser.esm.js';
5
-
6
- function isTextPin(pin) {
7
- return (pin === null || pin === void 0 ? void 0 : pin.type) === 'text';
8
- }
9
- function isIconPin(pin) {
10
- return (pin === null || pin === void 0 ? void 0 : pin.type) === 'icon';
11
- }
12
- function convertColorToString(color$1) {
13
- return typeof color$1 === 'string' ? color$1 : color.toHexString(color$1);
14
- }
15
- function getPinColors(pin) {
16
- var _a, _b, _c, _d, _e, _f, _g, _h;
17
- return {
18
- primaryColor: ((_b = (_a = pin === null || pin === void 0 ? void 0 : pin.attributes) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.primaryColor) == null
19
- ? undefined
20
- : convertColorToString((_d = (_c = pin === null || pin === void 0 ? void 0 : pin.attributes) === null || _c === void 0 ? void 0 : _c.style) === null || _d === void 0 ? void 0 : _d.primaryColor),
21
- accentColor: ((_f = (_e = pin === null || pin === void 0 ? void 0 : pin.attributes) === null || _e === void 0 ? void 0 : _e.style) === null || _f === void 0 ? void 0 : _f.accentColor) == null
22
- ? undefined
23
- : convertColorToString((_h = (_g = pin === null || pin === void 0 ? void 0 : pin.attributes) === null || _g === void 0 ? void 0 : _g.style) === null || _h === void 0 ? void 0 : _h.accentColor),
24
- };
25
- }
26
- class PinModel {
27
- constructor() {
28
- this.entities = {};
29
- this.entitiesChanged = new EventDispatcher();
30
- this.selectionChanged = new EventDispatcher();
31
- }
32
- /**
33
- * Registers an entity to be drawn in the canvas
34
- *
35
- * @param pin A pin entity to draw.
36
- * @returns `true` if the entity has been added.
37
- */
38
- addPin(pin, suppressEvent = false) {
39
- if (this.entities[pin.id] == null) {
40
- this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
41
- if (!suppressEvent) {
42
- this.entitiesChanged.emit(this.getPins());
43
- }
44
- return true;
45
- }
46
- else {
47
- return false;
48
- }
49
- }
50
- /**
51
- * Clears all registered entities from the model.
52
- */
53
- clearPins() {
54
- this.getPins().forEach((e) => this.removePin(e));
55
- }
56
- /**
57
- * Returns all the entities registered with the model.
58
- */
59
- getPins() {
60
- return Object.keys(this.entities).map((key) => this.entities[key]);
61
- }
62
- /**
63
- * Returns single entity by id if present in the model.
64
- */
65
- getPinById(id) {
66
- return this.entities[id];
67
- }
68
- getSelectedPinId() {
69
- return this.selectedPinId;
70
- }
71
- /**
72
- * Unregisters an entity from the model.
73
- *
74
- * @param entity The entity to remove.
75
- * @returns `true` if the entity was removed.
76
- */
77
- removePin(entity) {
78
- if (this.entities[entity.id] != null) {
79
- delete this.entities[entity.id];
80
- this.entitiesChanged.emit(this.getPins());
81
- return true;
82
- }
83
- else {
84
- return false;
85
- }
86
- }
87
- /**
88
- * Sets the set of entities to be placed with the model.
89
- *
90
- * @param entities A set of entities to draw.
91
- * @returns `true` if the entity has been added.
92
- */
93
- setPins(pins) {
94
- this.clearPins();
95
- pins.forEach((e) => this.addPin(e, true));
96
- this.entitiesChanged.emit(this.getPins());
97
- return true;
98
- }
99
- /**
100
- * Sets the set of entities to be placed with the model.
101
- *
102
- * @param pin A pin to set
103
- * @returns `true` if the entity has been set
104
- */
105
- setPin(pin) {
106
- this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
107
- this.entitiesChanged.emit(this.getPins());
108
- return true;
109
- }
110
- /**
111
- * Sets the set of entities to be placed with the model.
112
- *
113
- * @param pin A pin to set
114
- * @returns `true` if the entity has been set
115
- */
116
- updatePin(pin) {
117
- const pinById = this.getPinById(pin.id);
118
- if (pinById != null) {
119
- this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
120
- this.entitiesChanged.emit(this.getPins());
121
- return true;
122
- }
123
- return false;
124
- }
125
- /**
126
- * Registers an event listener that will be invoked when the model's
127
- * pin entities change.
128
- *
129
- * @param listener The listener to add.
130
- * @returns A disposable that can be used to remove the listener.
131
- */
132
- onEntitiesChanged(listener) {
133
- return this.entitiesChanged.on(listener);
134
- }
135
- /**
136
- * Registers an event listener that will be invoked when the model's
137
- * pin selection changes
138
- *
139
- * @param listener The listener to add.
140
- * @returns A disposable that can be used to remove the listener.
141
- */
142
- onSelectionChange(listener) {
143
- return this.selectionChanged.on(listener);
144
- }
145
- /**
146
- * Sets the selected pin Id
147
- * @param pinId
148
- */
149
- setSelectedPin(pinId) {
150
- this.selectedPinId = pinId;
151
- this.selectionChanged.emit(this.selectedPinId);
152
- }
153
- }
154
-
155
- export { PinModel as P, isIconPin as a, getPinColors as g, isTextPin as i };
156
-
157
- //# sourceMappingURL=model2.js.map
@@ -1 +0,0 @@
1
- {"file":"model2.js","mappings":"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","names":["color","Color"],"sources":["./src/lib/pins/model.ts"],"sourcesContent":["import { Color, Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\n/**\n * The types of pins that can be performed by this tool.\n */\nexport type ViewerPinToolType = 'pin-icon' | 'pin-text';\n\n/**\n * The mode of the pin tool\n */\nexport type ViewerPinToolMode = 'edit' | 'view';\n\n/**\n * A model representing the state of pins.\n *\n */\n\nimport { Point, Vector3 } from '@vertexvis/geometry';\n\ninterface BasePinAttributes {\n style?: PinStyleAttributes;\n}\n\ninterface BasePin {\n id: string;\n worldPosition: Vector3.Vector3;\n partId?: string;\n attributes?: BasePinAttributes;\n}\n\nexport interface TextPin extends BasePin {\n type: 'text';\n label: PinLabel;\n}\n\n// Future: Support custom icons.\nexport interface IconPin extends BasePin {\n type: 'icon';\n}\n\nexport type Pin = IconPin | TextPin;\n\nexport interface PinLabel {\n point: Point.Point;\n text?: string;\n}\n\nexport function isTextPin(pin?: Pin): pin is TextPin {\n return pin?.type === 'text';\n}\n\nexport interface PinStyleAttributes {\n primaryColor?: Color.Color | string;\n accentColor?: Color.Color | string;\n}\n\nexport function isIconPin(pin?: Pin): pin is Pin {\n return pin?.type === 'icon';\n}\n\nfunction convertColorToString(color: Color.Color | string): string {\n return typeof color === 'string' ? color : Color.toHexString(color);\n}\nexport function getPinColors(pin?: Pin): {\n primaryColor?: string;\n accentColor?: string;\n} {\n return {\n primaryColor:\n pin?.attributes?.style?.primaryColor == null\n ? undefined\n : convertColorToString(pin?.attributes?.style?.primaryColor),\n accentColor:\n pin?.attributes?.style?.accentColor == null\n ? undefined\n : convertColorToString(pin?.attributes?.style?.accentColor),\n };\n}\n\nexport class PinModel {\n private entities: Record<string, Pin> = {};\n private selectedPinId?: string;\n\n private entitiesChanged = new EventDispatcher<Pin[]>();\n private selectionChanged = new EventDispatcher<string | undefined>();\n\n /**\n * Registers an entity to be drawn in the canvas\n *\n * @param pin A pin entity to draw.\n * @returns `true` if the entity has been added.\n */\n public addPin(pin: Pin, suppressEvent = false): boolean {\n if (this.entities[pin.id] == null) {\n this.entities = {\n ...this.entities,\n [pin.id]: pin,\n };\n\n if (!suppressEvent) {\n this.entitiesChanged.emit(this.getPins());\n }\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Clears all registered entities from the model.\n */\n public clearPins(): void {\n this.getPins().forEach((e) => this.removePin(e));\n }\n\n /**\n * Returns all the entities registered with the model.\n */\n public getPins(): Pin[] {\n return Object.keys(this.entities).map((key) => this.entities[key]);\n }\n\n /**\n * Returns single entity by id if present in the model.\n */\n public getPinById(id: string): Pin | undefined {\n return this.entities[id];\n }\n\n public getSelectedPinId(): string | undefined {\n return this.selectedPinId;\n }\n\n /**\n * Unregisters an entity from the model.\n *\n * @param entity The entity to remove.\n * @returns `true` if the entity was removed.\n */\n public removePin(entity: Pin): boolean {\n if (this.entities[entity.id] != null) {\n delete this.entities[entity.id];\n this.entitiesChanged.emit(this.getPins());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Sets the set of entities to be placed with the model.\n *\n * @param entities A set of entities to draw.\n * @returns `true` if the entity has been added.\n */\n public setPins(pins: Set<Pin>): boolean {\n this.clearPins();\n pins.forEach((e) => this.addPin(e, true));\n this.entitiesChanged.emit(this.getPins());\n\n return true;\n }\n\n /**\n * Sets the set of entities to be placed with the model.\n *\n * @param pin A pin to set\n * @returns `true` if the entity has been set\n */\n public setPin(pin: Pin): boolean {\n this.entities = {\n ...this.entities,\n [pin.id]: pin,\n };\n this.entitiesChanged.emit(this.getPins());\n\n return true;\n }\n\n /**\n * Sets the set of entities to be placed with the model.\n *\n * @param pin A pin to set\n * @returns `true` if the entity has been set\n */\n public updatePin(pin: Pin): boolean {\n const pinById = this.getPinById(pin.id);\n if (pinById != null) {\n this.entities = {\n ...this.entities,\n [pin.id]: pin,\n };\n this.entitiesChanged.emit(this.getPins());\n\n return true;\n }\n return false;\n }\n\n /**\n * Registers an event listener that will be invoked when the model's\n * pin entities change.\n *\n * @param listener The listener to add.\n * @returns A disposable that can be used to remove the listener.\n */\n public onEntitiesChanged(listener: Listener<Pin[]>): Disposable {\n return this.entitiesChanged.on(listener);\n }\n\n /**\n * Registers an event listener that will be invoked when the model's\n * pin selection changes\n *\n * @param listener The listener to add.\n * @returns A disposable that can be used to remove the listener.\n */\n public onSelectionChange(listener: Listener<string | undefined>): Disposable {\n return this.selectionChanged.on(listener);\n }\n\n /**\n * Sets the selected pin Id\n * @param pinId\n */\n public setSelectedPin(pinId?: string): void {\n this.selectedPinId = pinId;\n this.selectionChanged.emit(this.selectedPinId);\n }\n}\n"],"version":3}
@@ -1,76 +0,0 @@
1
- /*!
2
- * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
- */
4
- import { v as vector3 } from './bundle.esm.js';
5
- import { E as EventDispatcher, b as uuid } from './browser.esm.js';
6
-
7
- class MeasurementOverlayManager {
8
- constructor() {
9
- this.overlays = new Map();
10
- this.overlaysChanged = new EventDispatcher();
11
- }
12
- addLineFromResult(result) {
13
- return this.addLine(result.point1, result.point2);
14
- }
15
- addLine(start, end) {
16
- const id = uuid.create();
17
- const overlay = {
18
- type: 'line',
19
- id: id,
20
- start,
21
- end,
22
- dispose: () => this.remove(id),
23
- };
24
- this.addOverlay(overlay);
25
- return overlay;
26
- }
27
- addDistanceVectorFromResult(result) {
28
- return this.addDistanceVector(result.point1, result.point2);
29
- }
30
- addDistanceVector(start, end) {
31
- const id = uuid.create();
32
- const v = vector3.subtract(start, end);
33
- const ye = vector3.add(start, vector3.create(0, -v.y, 0));
34
- const y = { start: start, end: ye };
35
- const ze = vector3.add(ye, vector3.create(0, 0, -v.z));
36
- const z = { start: ye, end: ze };
37
- const xe = vector3.add(ze, vector3.create(-v.x, 0, 0));
38
- const x = { start: ze, end: xe };
39
- const overlay = {
40
- type: 'distance-vector',
41
- id,
42
- x,
43
- y,
44
- z,
45
- dispose: () => this.remove(id),
46
- };
47
- this.addOverlay(overlay);
48
- return overlay;
49
- }
50
- addOverlay(overlay) {
51
- if (!this.overlays.has(overlay.id)) {
52
- this.overlays.set(overlay.id, overlay);
53
- this.overlaysChanged.emit(this.getOverlays());
54
- }
55
- }
56
- getOverlays() {
57
- return Array.from(this.overlays.values());
58
- }
59
- remove(id) {
60
- if (this.overlays.has(id)) {
61
- this.overlays.delete(id);
62
- this.overlaysChanged.emit(this.getOverlays());
63
- return true;
64
- }
65
- else {
66
- return false;
67
- }
68
- }
69
- onOverlaysChanged(listener) {
70
- return this.overlaysChanged.on(listener);
71
- }
72
- }
73
-
74
- export { MeasurementOverlayManager as M };
75
-
76
- //# sourceMappingURL=overlays.js.map
@@ -1 +0,0 @@
1
- {"file":"overlays.js","mappings":"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","names":["UUID","Vector3"],"sources":["./src/lib/measurement/overlays.ts"],"sourcesContent":["import { Vector3 } from '@vertexvis/geometry';\nimport { Disposable, EventDispatcher, Listener, UUID } from '@vertexvis/utils';\n\nimport { MinimumDistanceMeasurementResult } from './results';\n\nexport interface LineOverlay extends Disposable {\n type: 'line';\n id: string;\n start: Vector3.Vector3;\n end: Vector3.Vector3;\n}\n\nexport interface DistanceVectorOverlay extends Disposable {\n type: 'distance-vector';\n id: string;\n x: { start: Vector3.Vector3; end: Vector3.Vector3 };\n y: { start: Vector3.Vector3; end: Vector3.Vector3 };\n z: { start: Vector3.Vector3; end: Vector3.Vector3 };\n}\n\nexport type MeasurementOverlay = LineOverlay | DistanceVectorOverlay;\n\nexport class MeasurementOverlayManager {\n private overlays = new Map<string, MeasurementOverlay>();\n private overlaysChanged = new EventDispatcher<MeasurementOverlay[]>();\n\n public addLineFromResult(\n result: MinimumDistanceMeasurementResult\n ): LineOverlay {\n return this.addLine(result.point1, result.point2);\n }\n\n public addLine(start: Vector3.Vector3, end: Vector3.Vector3): LineOverlay {\n const id = UUID.create();\n const overlay: LineOverlay = {\n type: 'line',\n id: id,\n start,\n end,\n dispose: () => this.remove(id),\n };\n this.addOverlay(overlay);\n return overlay;\n }\n\n public addDistanceVectorFromResult(\n result: MinimumDistanceMeasurementResult\n ): DistanceVectorOverlay {\n return this.addDistanceVector(result.point1, result.point2);\n }\n\n public addDistanceVector(\n start: Vector3.Vector3,\n end: Vector3.Vector3\n ): DistanceVectorOverlay {\n const id = UUID.create();\n const v = Vector3.subtract(start, end);\n\n const ye = Vector3.add(start, Vector3.create(0, -v.y, 0));\n const y = { start: start, end: ye };\n\n const ze = Vector3.add(ye, Vector3.create(0, 0, -v.z));\n const z = { start: ye, end: ze };\n\n const xe = Vector3.add(ze, Vector3.create(-v.x, 0, 0));\n const x = { start: ze, end: xe };\n\n const overlay: DistanceVectorOverlay = {\n type: 'distance-vector',\n id,\n x,\n y,\n z,\n dispose: () => this.remove(id),\n };\n this.addOverlay(overlay);\n return overlay;\n }\n\n private addOverlay(overlay: MeasurementOverlay): void {\n if (!this.overlays.has(overlay.id)) {\n this.overlays.set(overlay.id, overlay);\n this.overlaysChanged.emit(this.getOverlays());\n }\n }\n\n public getOverlays(): MeasurementOverlay[] {\n return Array.from(this.overlays.values());\n }\n\n private remove(id: string): boolean {\n if (this.overlays.has(id)) {\n this.overlays.delete(id);\n this.overlaysChanged.emit(this.getOverlays());\n return true;\n } else {\n return false;\n }\n }\n\n public onOverlaysChanged(\n listener: Listener<MeasurementOverlay[]>\n ): Disposable {\n return this.overlaysChanged.on(listener);\n }\n}\n"],"version":3}