@vertexvis/viewer 0.12.0 → 0.13.0-canary.0

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 (225) hide show
  1. package/dist/cjs/{config-acd7cea9.js → config-90ee43d5.js} +1 -1
  2. package/dist/cjs/{cursors-399a9648.js → cursors-ad2fd395.js} +7 -0
  3. package/dist/cjs/{controller-8cbcdd8d.js → entities-aa59890e.js} +57 -22
  4. package/dist/cjs/{index-cc65325e.js → index-e100709a.js} +64 -3
  5. package/dist/cjs/index.cjs.js +21 -11
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/{model-18ef3363.js → mapper-f6e6cafe.js} +37 -191
  8. package/dist/cjs/model-4ec0c36e.js +134 -0
  9. package/dist/cjs/overlays-8a582edf.js +76 -0
  10. package/dist/cjs/results-bc325974.js +24 -0
  11. package/dist/cjs/{scene-ffee07ee.js → scene-f4040800.js} +1 -1
  12. package/dist/cjs/{stencil-bd453a38.js → stencil-a664cd10.js} +1 -1
  13. package/dist/cjs/{streamAttributes-9d6226ac.js → streamAttributes-d6236448.js} +87 -30
  14. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +2 -2
  15. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  16. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  17. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  18. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +1 -1
  19. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  20. package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -3
  21. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
  22. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  23. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
  24. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +1 -1
  25. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  26. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +1 -1
  27. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +1 -1
  28. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
  29. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +221 -75
  30. package/dist/cjs/{vertex-viewer-measurement-distance_2.cjs.entry.js → vertex-viewer-measurement-distance.cjs.entry.js} +30 -69
  31. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +170 -0
  32. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +163 -55
  33. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +2 -2
  34. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +33 -4
  35. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +4 -4
  36. package/dist/cjs/vertex-viewer.cjs.entry.js +58 -10
  37. package/dist/cjs/viewer.cjs.js +2 -2
  38. package/dist/cjs/{viewport-51aa05ab.js → viewport-8c39089f.js} +11 -0
  39. package/dist/collection/collection-manifest.json +1 -0
  40. package/dist/collection/components/viewer/viewer.js +2 -2
  41. package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +2 -2
  42. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-entry.js +14 -0
  43. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +22 -0
  44. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.css +3 -10
  45. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.js +125 -188
  46. package/dist/collection/components/viewer-measurement-distance/interactions.js +3 -14
  47. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +41 -1
  48. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays-components.js +30 -0
  49. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.css +51 -0
  50. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +149 -0
  51. package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js +118 -26
  52. package/dist/collection/components/viewer-measurements/viewer-measurements.js +67 -2
  53. package/dist/collection/components/viewer-view-cube/viewer-view-cube.css +21 -3
  54. package/dist/collection/index.js +2 -2
  55. package/dist/collection/lib/cursors.js +7 -1
  56. package/dist/collection/lib/elementRectObserver.js +19 -0
  57. package/dist/collection/lib/interactions/interactionApi.js +53 -4
  58. package/dist/collection/lib/mappers/frameStreaming.js +2 -4
  59. package/dist/collection/lib/measurement/controller.js +21 -17
  60. package/dist/collection/lib/measurement/entities.js +34 -0
  61. package/dist/collection/lib/measurement/index.js +4 -2
  62. package/dist/collection/lib/measurement/interactions.js +74 -28
  63. package/dist/collection/lib/measurement/mapper.js +5 -5
  64. package/dist/collection/lib/measurement/model.js +24 -85
  65. package/dist/collection/lib/measurement/outcomes.js +2 -0
  66. package/dist/collection/lib/measurement/overlays.js +69 -0
  67. package/dist/collection/lib/measurement/results.js +17 -0
  68. package/dist/collection/lib/types/entities.js +5 -1
  69. package/dist/collection/lib/types/featureMap.js +14 -5
  70. package/dist/collection/lib/types/frame.js +3 -3
  71. package/dist/collection/lib/types/measurementUnits.js +7 -7
  72. package/dist/collection/lib/types/viewport.js +12 -1
  73. package/dist/collection/testing/eventually.js +30 -0
  74. package/dist/collection/testing/fixtures.js +11 -4
  75. package/dist/collection/testing/index.js +2 -1
  76. package/dist/custom-elements/index.d.ts +6 -0
  77. package/dist/custom-elements/index.js +851 -287
  78. package/dist/esm/{browser.esm-e6827921.js → browser.esm-59e914f6.js} +1 -1
  79. package/dist/esm/{bundle.esm-8f14ac60.js → bundle.esm-d899b2d5.js} +1 -1
  80. package/dist/esm/{config-a200c227.js → config-604c644e.js} +2 -2
  81. package/dist/esm/{cursors-5157d29d.js → cursors-a7ec4adb.js} +8 -2
  82. package/dist/esm/{dom-2d6a1e1e.js → dom-780d25be.js} +1 -1
  83. package/dist/esm/{controller-a756cf9c.js → entities-759d97cd.js} +52 -18
  84. package/dist/esm/{index-f0053642.js → index-10c1495a.js} +64 -3
  85. package/dist/esm/index.js +13 -11
  86. package/dist/esm/index.mjs +13 -11
  87. package/dist/esm/loader.js +2 -2
  88. package/dist/esm/loader.mjs +2 -2
  89. package/dist/esm/{model-f711a825.js → mapper-4b815e31.js} +37 -190
  90. package/dist/esm/{markup-e46623b3.js → markup-1d177b4a.js} +2 -2
  91. package/dist/esm/{measurement-702d6b8c.js → measurement-12cdbf5c.js} +2 -2
  92. package/dist/esm/model-e5a4f00f.js +132 -0
  93. package/dist/esm/overlays-dbe5d652.js +74 -0
  94. package/dist/esm/{png-decoder-59a0e9c2.js → png-decoder-3f1fa486.js} +1 -1
  95. package/dist/esm/results-994bdb50.js +22 -0
  96. package/dist/esm/{scene-16490983.js → scene-9ac8a484.js} +3 -3
  97. package/dist/esm/{stencil-7d04d41a.js → stencil-9bf7fb9e.js} +1 -1
  98. package/dist/esm/{streamAttributes-7aa486b2.js → streamAttributes-d623bb60.js} +77 -20
  99. package/dist/esm/{utils-8070900a.js → utils-01e4f587.js} +1 -1
  100. package/dist/esm/{utils-953a1619.js → utils-5e57bf24.js} +1 -1
  101. package/dist/esm/vertex-scene-tree-search_3.entry.js +3 -3
  102. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  103. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  104. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  105. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +1 -1
  106. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  107. package/dist/esm/vertex-scene-tree.entry.js +5 -5
  108. package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
  109. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  110. package/dist/esm/vertex-viewer-dom-element_3.entry.js +6 -6
  111. package/dist/esm/vertex-viewer-icon.entry.js +1 -1
  112. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  113. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +4 -4
  114. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  115. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  116. package/dist/esm/vertex-viewer-measurement-details.entry.js +221 -75
  117. package/dist/esm/{vertex-viewer-measurement-distance_2.entry.js → vertex-viewer-measurement-distance.entry.js} +35 -73
  118. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +165 -0
  119. package/dist/esm/vertex-viewer-measurement-precise.entry.js +160 -52
  120. package/dist/esm/vertex-viewer-measurement-tool.entry.js +6 -6
  121. package/dist/esm/vertex-viewer-measurements.entry.js +36 -7
  122. package/dist/esm/vertex-viewer-view-cube.entry.js +6 -6
  123. package/dist/esm/vertex-viewer.entry.js +61 -13
  124. package/dist/esm/viewer.js +2 -2
  125. package/dist/esm/{viewport-bb7c46d9.js → viewport-01c886ea.js} +12 -1
  126. package/dist/types/components/viewer-dom-renderer/viewer-dom-renderer.d.ts +1 -1
  127. package/dist/types/components/viewer-measurement-details/viewer-measurement-details-entry.d.ts +8 -0
  128. package/dist/types/components/viewer-measurement-details/viewer-measurement-details-results.d.ts +15 -0
  129. package/dist/types/components/viewer-measurement-details/viewer-measurement-details.d.ts +44 -42
  130. package/dist/types/components/viewer-measurement-distance/interactions.d.ts +23 -1
  131. package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +8 -0
  132. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays-components.d.ts +10 -0
  133. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays.d.ts +41 -0
  134. package/dist/types/components/viewer-measurement-precise/viewer-measurement-precise.d.ts +62 -6
  135. package/dist/types/components/viewer-measurements/viewer-measurements.d.ts +12 -0
  136. package/dist/types/components.d.ts +103 -40
  137. package/dist/types/index.d.ts +1 -1
  138. package/dist/types/lib/cursors.d.ts +5 -0
  139. package/dist/types/lib/elementRectObserver.d.ts +8 -0
  140. package/dist/types/lib/interactions/interactionApi.d.ts +32 -5
  141. package/dist/types/lib/measurement/controller.d.ts +8 -7
  142. package/dist/types/lib/measurement/entities.d.ts +10 -0
  143. package/dist/types/lib/measurement/index.d.ts +3 -1
  144. package/dist/types/lib/measurement/interactions.d.ts +19 -5
  145. package/dist/types/lib/measurement/mapper.d.ts +1 -1
  146. package/dist/types/lib/measurement/model.d.ts +18 -153
  147. package/dist/types/lib/measurement/outcomes.d.ts +8 -0
  148. package/dist/types/lib/measurement/overlays.d.ts +38 -0
  149. package/dist/types/lib/measurement/results.d.ts +90 -0
  150. package/dist/types/lib/types/entities.d.ts +5 -1
  151. package/dist/types/lib/types/featureMap.d.ts +2 -2
  152. package/dist/types/lib/types/measurementUnits.d.ts +1 -1
  153. package/dist/types/lib/types/viewport.d.ts +9 -1
  154. package/dist/types/testing/eventually.d.ts +15 -0
  155. package/dist/types/testing/fixtures.d.ts +2 -2
  156. package/dist/types/testing/index.d.ts +1 -0
  157. package/dist/viewer/index.esm.js +1 -1
  158. package/dist/viewer/p-081e6873.js +4 -0
  159. package/dist/viewer/{p-5d82c131.entry.js → p-099fe6ca.entry.js} +1 -1
  160. package/dist/viewer/{p-784914e4.js → p-0aba71fd.js} +1 -1
  161. package/dist/viewer/p-0aeab3fc.js +4 -0
  162. package/dist/viewer/p-0eb195dd.entry.js +4 -0
  163. package/dist/viewer/p-1a7df99a.entry.js +4 -0
  164. package/dist/viewer/{p-f70d8def.js → p-301660cf.js} +1 -1
  165. package/dist/viewer/{p-a0e49d10.entry.js → p-31658489.entry.js} +1 -1
  166. package/dist/viewer/{p-95f3a81c.entry.js → p-353cfc7a.entry.js} +1 -1
  167. package/dist/viewer/p-364ce21c.js +4 -0
  168. package/dist/viewer/{p-a5a0bf86.js → p-3f6ac74f.js} +1 -1
  169. package/dist/viewer/p-423410be.js +4 -0
  170. package/dist/viewer/{p-6f71f0f2.js → p-439220c6.js} +1 -1
  171. package/dist/viewer/{p-e84ed098.entry.js → p-46459921.entry.js} +1 -1
  172. package/dist/viewer/{p-c23a8b34.entry.js → p-4717c98e.entry.js} +1 -1
  173. package/dist/viewer/p-4985fad5.js +4 -0
  174. package/dist/viewer/{p-ba393340.entry.js → p-61b1097b.entry.js} +1 -1
  175. package/dist/viewer/{p-011eecd5.entry.js → p-6370098c.entry.js} +1 -1
  176. package/dist/viewer/p-67446e35.js +4 -0
  177. package/dist/viewer/p-7006fd4e.entry.js +4 -0
  178. package/dist/viewer/{p-a20e4ea1.entry.js → p-70ca1ea7.entry.js} +1 -1
  179. package/dist/viewer/p-76ec0245.js +4 -0
  180. package/dist/viewer/p-7cad9bf4.js +4 -0
  181. package/dist/viewer/p-7f25dcb5.entry.js +4 -0
  182. package/dist/viewer/{p-ca6bbe53.entry.js → p-8decee06.entry.js} +1 -1
  183. package/dist/viewer/{p-b7ffa306.entry.js → p-915d95ad.entry.js} +1 -1
  184. package/dist/viewer/{p-4485ac6d.js → p-a0df0e0c.js} +1 -1
  185. package/dist/viewer/{p-cc9888be.entry.js → p-a455ae02.entry.js} +1 -1
  186. package/dist/viewer/{p-a6a8026f.js → p-acf22d3e.js} +1 -1
  187. package/dist/viewer/{p-653aca1b.entry.js → p-b2b48a42.entry.js} +1 -1
  188. package/dist/viewer/p-bc9b1e67.entry.js +4 -0
  189. package/dist/viewer/p-c458f191.entry.js +32 -0
  190. package/dist/viewer/p-cafa57a6.js +4 -0
  191. package/dist/viewer/p-d00e9203.js +4 -0
  192. package/dist/viewer/{p-3e96bd62.entry.js → p-d2bcf788.entry.js} +1 -1
  193. package/dist/viewer/p-d90f2f6d.entry.js +4 -0
  194. package/dist/viewer/p-da2f4a56.js +4 -0
  195. package/dist/viewer/{p-5a2e34e1.entry.js → p-e07377fa.entry.js} +1 -1
  196. package/dist/viewer/{p-40800e8d.entry.js → p-f755af5a.entry.js} +1 -1
  197. package/dist/viewer/p-f7cb7e59.js +4 -0
  198. package/dist/viewer/p-fad9693e.js +4 -0
  199. package/dist/viewer/p-fe11d694.js +4 -0
  200. package/dist/viewer/{p-b92a3ac2.entry.js → p-fec1a8d0.entry.js} +1 -1
  201. package/dist/viewer/viewer.css +1 -1
  202. package/dist/viewer/viewer.esm.js +1 -1
  203. package/package.json +11 -10
  204. package/dist/cjs/summary-7bbdb4c9.js +0 -45
  205. package/dist/collection/lib/measurement/summary.js +0 -38
  206. package/dist/esm/summary-0a3d0bf9.js +0 -43
  207. package/dist/types/lib/measurement/summary.d.ts +0 -11
  208. package/dist/viewer/p-03e482ff.js +0 -4
  209. package/dist/viewer/p-0c052bc8.entry.js +0 -4
  210. package/dist/viewer/p-148cd792.js +0 -4
  211. package/dist/viewer/p-26d99e2d.entry.js +0 -4
  212. package/dist/viewer/p-38eeacc5.js +0 -4
  213. package/dist/viewer/p-39d1720c.js +0 -4
  214. package/dist/viewer/p-5dc17b8b.js +0 -4
  215. package/dist/viewer/p-5fea3491.js +0 -4
  216. package/dist/viewer/p-6b700561.entry.js +0 -4
  217. package/dist/viewer/p-6cd7a6e0.js +0 -4
  218. package/dist/viewer/p-75337d0b.js +0 -4
  219. package/dist/viewer/p-b83cc8a9.js +0 -4
  220. package/dist/viewer/p-d2a9e047.js +0 -4
  221. package/dist/viewer/p-d40bd835.entry.js +0 -4
  222. package/dist/viewer/p-e10b1526.js +0 -4
  223. package/dist/viewer/p-ec8a1a68.entry.js +0 -4
  224. package/dist/viewer/p-f4a8c901.js +0 -4
  225. package/dist/viewer/p-f77dde26.entry.js +0 -4
@@ -1,6 +1,7 @@
1
- import { Component, h, Host, Prop, Watch } from '@stencil/core';
2
- import { MeasurementModel, summarizeResults, } from '../../lib/measurement';
1
+ import { Component, h, Host, Prop, State, Watch } from '@stencil/core';
2
+ import { MeasurementModel, } from '../../lib/measurement';
3
3
  import { AngleUnits, AreaUnits, DistanceUnits, } from '../../lib/types';
4
+ import { MinimumDistanceResultEntry, PlanarAngleResultEntry, PlanarDistanceResultEntry, SurfaceAreaResultEntry, } from './viewer-measurement-details-results';
4
5
  export class ViewerMeasurementDetails {
5
6
  constructor() {
6
7
  /**
@@ -21,122 +22,120 @@ export class ViewerMeasurementDetails {
21
22
  * The number of fraction digits to display.
22
23
  */
23
24
  this.fractionalDigits = 2;
24
- /**
25
- * The current `MeasurementResult` displayed.
26
- *
27
- * @readonly
28
- */
29
25
  this.results = [];
26
+ this.isApproximate = false;
30
27
  this.distanceMeasurementUnits = new DistanceUnits(this.distanceUnits);
31
28
  this.angleMeasurementUnits = new AngleUnits(this.angleUnits);
32
29
  this.areaMeasurementUnits = new AreaUnits(this.distanceUnits);
33
- this.handleResultsChange = (results) => {
34
- this.results = results;
35
- this.createSummary();
30
+ this.handleShowOverlay = (overlay) => {
31
+ this.overlay = overlay;
36
32
  };
37
- this.formatDistance = (distance) => {
38
- const realDistance = Math.abs(this.distanceMeasurementUnits.convertWorldValueToReal(distance));
39
- if (this.distanceFormatter != null) {
40
- return this.distanceFormatter(realDistance);
41
- }
42
- else {
43
- const abbreviated = this.distanceMeasurementUnits.unit.abbreviatedName;
44
- return realDistance == null
45
- ? '---'
46
- : `${realDistance.toFixed(this.fractionalDigits)} ${abbreviated}`;
47
- }
48
- };
49
- this.formatAngle = (angleInRadians) => {
50
- if (this.angleFormatter != null) {
51
- return this.angleFormatter(angleInRadians);
52
- }
53
- else {
54
- const value = this.angleMeasurementUnits
55
- .convertTo(angleInRadians)
56
- .toFixed(this.fractionalDigits);
57
- return `${value} ${this.angleMeasurementUnits.unit.abbreviatedName}`;
58
- }
59
- };
60
- this.formatArea = (area) => {
61
- const realArea = this.areaMeasurementUnits.convertWorldValueToReal(area);
62
- if (this.areaFormatter != null) {
63
- return this.areaFormatter(area);
64
- }
65
- else {
66
- const abbreviated = this.areaMeasurementUnits.unit.abbreviatedName;
67
- return realArea == null
68
- ? '---'
69
- : `${realArea.toFixed(this.fractionalDigits)} ${abbreviated}`;
70
- }
71
- };
72
- this.createSummary = () => {
33
+ this.handleHideOverlay = () => {
73
34
  var _a;
74
- const baseSummary = summarizeResults(this.results);
75
- const hidden = (_a = this.hiddenDetails) !== null && _a !== void 0 ? _a : [];
76
- this.summary = baseSummary;
77
- this.visibleSummary = Object.keys(baseSummary)
78
- .filter((k) => !hidden.includes(k))
79
- .reduce((reducedSummary, key) => (Object.assign(Object.assign({}, reducedSummary), { [key]: baseSummary[key] })), {});
35
+ (_a = this.overlay) === null || _a === void 0 ? void 0 : _a.dispose();
36
+ };
37
+ this.handleOutcomeChange = () => {
38
+ this.updateStateFromModel();
80
39
  };
81
40
  }
41
+ /**
42
+ * @internal
43
+ */
82
44
  connectedCallback() {
83
- this.resultsChangeListener = this.measurementModel.onResultsChanged(this.handleResultsChange);
84
- }
85
- componentWillLoad() {
86
- this.parseHiddenDetails();
87
- }
88
- componentWillUpdate() {
89
- this.parseHiddenDetails();
45
+ this.onOutcomeChangedHandler = this.measurementModel.onOutcomeChanged(this.handleOutcomeChange);
46
+ this.updateStateFromModel();
90
47
  }
48
+ /**
49
+ * @internal
50
+ */
91
51
  disconnectedCallback() {
92
52
  var _a;
93
- (_a = this.resultsChangeListener) === null || _a === void 0 ? void 0 : _a.dispose();
53
+ (_a = this.onOutcomeChangedHandler) === null || _a === void 0 ? void 0 : _a.dispose();
94
54
  }
55
+ /**
56
+ * @internal
57
+ */
95
58
  handleDistanceUnitsChanged() {
96
59
  this.distanceMeasurementUnits = new DistanceUnits(this.distanceUnits);
97
60
  this.areaMeasurementUnits = new AreaUnits(this.distanceUnits);
98
61
  }
62
+ /**
63
+ * @internal
64
+ */
99
65
  handleAngleUnitsChanged() {
100
66
  this.angleMeasurementUnits = new AngleUnits(this.angleUnits);
101
67
  }
68
+ /**
69
+ * @internal
70
+ */
102
71
  handleMeasurementModelChanged() {
103
72
  var _a;
104
- (_a = this.resultsChangeListener) === null || _a === void 0 ? void 0 : _a.dispose();
105
- this.resultsChangeListener = this.measurementModel.onResultsChanged(this.handleResultsChange);
73
+ (_a = this.onOutcomeChangedHandler) === null || _a === void 0 ? void 0 : _a.dispose();
74
+ this.onOutcomeChangedHandler = this.measurementModel.onOutcomeChanged(this.handleOutcomeChange);
75
+ this.updateStateFromModel();
106
76
  }
107
- handleHiddenDetailsChanged() {
108
- this.createSummary();
77
+ /**
78
+ * @internal
79
+ */
80
+ handleResultTypesChanged() {
81
+ this.updateStateFromModel();
109
82
  }
83
+ /**
84
+ * @internal
85
+ */
110
86
  render() {
111
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
112
- return this.visibleSummary != null ? (h(Host, null,
113
- ((_a = this.visibleSummary) === null || _a === void 0 ? void 0 : _a.angle) != null && (h("div", { class: "measurement-details-entry" },
114
- h("div", { class: "measurement-details-entry-label" }, "Angle:"),
115
- this.formatAngle(this.visibleSummary.angle))),
116
- ((_b = this.visibleSummary) === null || _b === void 0 ? void 0 : _b.parallelDistance) != null && (h("div", { class: "measurement-details-entry" },
117
- h("div", { class: "measurement-details-entry-label" }, "Parallel Dist:"),
118
- this.formatDistance(this.visibleSummary.parallelDistance))),
119
- ((_c = this.visibleSummary) === null || _c === void 0 ? void 0 : _c.minDistance) != null && (h("div", { class: "measurement-details-entry" },
120
- h("div", { class: "measurement-details-entry-label" }, "Min Dist:"),
121
- this.formatDistance(this.visibleSummary.minDistance))),
122
- ((_d = this.visibleSummary) === null || _d === void 0 ? void 0 : _d.area) != null && (h("div", { class: "measurement-details-entry" },
123
- h("div", { class: "measurement-details-entry-label" }, "Area:"),
124
- h("div", { innerHTML: this.formatArea(this.visibleSummary.area) }))),
125
- ((_f = (_e = this.visibleSummary) === null || _e === void 0 ? void 0 : _e.distanceVector) === null || _f === void 0 ? void 0 : _f.x) != null && (h("div", { class: "measurement-details-entry" },
126
- h("div", { class: "measurement-details-entry-label x-label" }, "X:"),
127
- this.formatDistance((_g = this.visibleSummary.distanceVector) === null || _g === void 0 ? void 0 : _g.x))),
128
- ((_j = (_h = this.visibleSummary) === null || _h === void 0 ? void 0 : _h.distanceVector) === null || _j === void 0 ? void 0 : _j.y) != null && (h("div", { class: "measurement-details-entry" },
129
- h("div", { class: "measurement-details-entry-label y-label" }, "Y:"),
130
- this.formatDistance((_k = this.visibleSummary.distanceVector) === null || _k === void 0 ? void 0 : _k.y))),
131
- ((_m = (_l = this.visibleSummary) === null || _l === void 0 ? void 0 : _l.distanceVector) === null || _m === void 0 ? void 0 : _m.z) != null && (h("div", { class: "measurement-details-entry" },
132
- h("div", { class: "measurement-details-entry-label z-label" }, "Z:"),
133
- this.formatDistance((_o = this.visibleSummary.distanceVector) === null || _o === void 0 ? void 0 : _o.z))))) : (h(Host, null));
87
+ return (h(Host, null,
88
+ this.renderResult('planar-angle', (result) => (h(PlanarAngleResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeAngleFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay }))),
89
+ this.renderResult('planar-distance', (result) => (h(PlanarDistanceResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeDistanceFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay }))),
90
+ this.renderResult('surface-area', (result) => (h(SurfaceAreaResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeAreaFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay }))),
91
+ this.renderResult('minimum-distance', (result) => (h(MinimumDistanceResultEntry, { result: result, overlays: this.measurementOverlays, formatter: this.makeDistanceFormatter(), onShowOverlay: this.handleShowOverlay, onHideOverlay: this.handleHideOverlay })))));
134
92
  }
135
- parseHiddenDetails() {
136
- if (this.hiddenDetailsJson != null) {
137
- this.hiddenDetails = JSON.parse(this.hiddenDetailsJson);
93
+ updateStateFromModel() {
94
+ const isFilteredResultType = (result) => {
95
+ var _a, _b;
96
+ return (_b = (_a = this.resultTypes) === null || _a === void 0 ? void 0 : _a.includes(result.type)) !== null && _b !== void 0 ? _b : true;
97
+ };
98
+ const outcome = this.measurementModel.getOutcome();
99
+ if (outcome != null) {
100
+ this.results = outcome.results.filter(isFilteredResultType);
101
+ this.isApproximate = outcome.isApproximate;
102
+ }
103
+ else {
104
+ this.results = [];
105
+ this.isApproximate = false;
138
106
  }
139
107
  }
108
+ renderResult(type, render) {
109
+ const result = this.getResultForType(type);
110
+ return result != null ? render(result) : undefined;
111
+ }
112
+ getResultForType(type) {
113
+ return this.results.find((result) => result.type === type);
114
+ }
115
+ makeDistanceFormatter() {
116
+ return this.makeFormatter((value) => this.distanceMeasurementUnits.convertWorldValueToReal(value), this.distanceMeasurementUnits.unit, this.distanceFormatter);
117
+ }
118
+ makeAngleFormatter() {
119
+ return this.makeFormatter((value) => this.angleMeasurementUnits.convertTo(value), this.angleMeasurementUnits.unit, this.angleFormatter);
120
+ }
121
+ makeAreaFormatter() {
122
+ return this.makeFormatter((value) => this.areaMeasurementUnits.convertWorldValueToReal(value), this.areaMeasurementUnits.unit, this.areaFormatter);
123
+ }
124
+ makeFormatter(convert, units, customFormatter) {
125
+ return (value) => {
126
+ const v = convert(value);
127
+ if (customFormatter != null) {
128
+ return customFormatter(v);
129
+ }
130
+ else {
131
+ return this.formatValue(v, units);
132
+ }
133
+ };
134
+ }
135
+ formatValue(value, unit) {
136
+ const val = value.toFixed(this.fractionalDigits);
137
+ return `${this.isApproximate ? '~' + val : val} ${unit.abbreviatedName}`;
138
+ }
140
139
  static get is() { return "vertex-viewer-measurement-details"; }
141
140
  static get encapsulation() { return "shadow"; }
142
141
  static get originalStyleUrls() { return {
@@ -167,6 +166,26 @@ export class ViewerMeasurementDetails {
167
166
  },
168
167
  "defaultValue": "new MeasurementModel()"
169
168
  },
169
+ "measurementOverlays": {
170
+ "type": "unknown",
171
+ "mutable": false,
172
+ "complexType": {
173
+ "original": "MeasurementOverlayManager",
174
+ "resolved": "MeasurementOverlayManager | undefined",
175
+ "references": {
176
+ "MeasurementOverlayManager": {
177
+ "location": "import",
178
+ "path": "../../lib/measurement"
179
+ }
180
+ }
181
+ },
182
+ "required": false,
183
+ "optional": true,
184
+ "docs": {
185
+ "tags": [],
186
+ "text": "The manager that the component will use to present measurement overlays."
187
+ }
188
+ },
170
189
  "distanceUnits": {
171
190
  "type": "string",
172
191
  "mutable": false,
@@ -291,52 +310,12 @@ export class ViewerMeasurementDetails {
291
310
  "text": "An optional formatter that can be used to format the display of an area.\nThe formatting function is passed a calculated area and is\nexpected to return a string."
292
311
  }
293
312
  },
294
- "hiddenDetails": {
313
+ "resultTypes": {
295
314
  "type": "unknown",
296
- "mutable": true,
297
- "complexType": {
298
- "original": "Array<keyof MeasurementDetailsSummary>",
299
- "resolved": "(keyof MeasurementDetailsSummary)[] | undefined",
300
- "references": {
301
- "Array": {
302
- "location": "global"
303
- },
304
- "MeasurementDetailsSummary": {
305
- "location": "import",
306
- "path": "../../lib/measurement"
307
- }
308
- }
309
- },
310
- "required": false,
311
- "optional": true,
312
- "docs": {
313
- "tags": [],
314
- "text": "An optional set of details to hide. This can be used to display\nreduced sets of details for more a more focused representation.\nCan be provided as an array of keys from the `MeasurementDetailsSummary`\ntype, or as a JSON array with the format '[\"angle\", \"minDistance\"]'."
315
- }
316
- },
317
- "hiddenDetailsJson": {
318
- "type": "string",
319
315
  "mutable": false,
320
316
  "complexType": {
321
- "original": "string",
322
- "resolved": "string | undefined",
323
- "references": {}
324
- },
325
- "required": false,
326
- "optional": true,
327
- "docs": {
328
- "tags": [],
329
- "text": "An optional set of details to hide. This can be used to display\nreduced sets of details for more a more focused representation.\nCan be provided as an array of keys from the `MeasurementDetailsSummary`\ntype, or as a JSON array with the format '[\"angle\", \"minDistance\"]'."
330
- },
331
- "attribute": "hidden-details",
332
- "reflect": false
333
- },
334
- "results": {
335
- "type": "unknown",
336
- "mutable": true,
337
- "complexType": {
338
- "original": "MeasurementResult[]",
339
- "resolved": "MeasurementResult[]",
317
+ "original": "MeasurementResult['type'][]",
318
+ "resolved": "(\"minimum-distance\" | \"planar-angle\" | \"planar-distance\" | \"surface-area\")[] | undefined",
340
319
  "references": {
341
320
  "MeasurementResult": {
342
321
  "location": "import",
@@ -345,63 +324,21 @@ export class ViewerMeasurementDetails {
345
324
  }
346
325
  },
347
326
  "required": false,
348
- "optional": false,
349
- "docs": {
350
- "tags": [{
351
- "name": "readonly",
352
- "text": undefined
353
- }],
354
- "text": "The current `MeasurementResult` displayed."
355
- },
356
- "defaultValue": "[]"
357
- },
358
- "summary": {
359
- "type": "unknown",
360
- "mutable": true,
361
- "complexType": {
362
- "original": "MeasurementDetailsSummary",
363
- "resolved": "MeasurementDetailsSummary | undefined",
364
- "references": {
365
- "MeasurementDetailsSummary": {
366
- "location": "import",
367
- "path": "../../lib/measurement"
368
- }
369
- }
370
- },
371
- "required": false,
372
- "optional": true,
373
- "docs": {
374
- "tags": [{
375
- "name": "readonly",
376
- "text": undefined
377
- }],
378
- "text": "A summary representing all available measurements based on\nthe current `MeasurementResult` set."
379
- }
380
- },
381
- "visibleSummary": {
382
- "type": "unknown",
383
- "mutable": true,
384
- "complexType": {
385
- "original": "MeasurementDetailsSummary",
386
- "resolved": "MeasurementDetailsSummary | undefined",
387
- "references": {
388
- "MeasurementDetailsSummary": {
389
- "location": "import",
390
- "path": "../../lib/measurement"
391
- }
392
- }
393
- },
394
- "required": false,
395
327
  "optional": true,
396
328
  "docs": {
397
- "tags": [{
398
- "name": "readonly",
399
- "text": undefined
400
- }],
401
- "text": "The visible measurements based on the current `summary`\nand `hiddenDetails`."
329
+ "tags": [],
330
+ "text": "A set of result types to display. If `undefined`, then all results will be\ndisplayed."
402
331
  }
403
332
  }
404
333
  }; }
334
+ static get states() { return {
335
+ "results": {},
336
+ "isApproximate": {},
337
+ "overlay": {},
338
+ "distanceMeasurementUnits": {},
339
+ "angleMeasurementUnits": {},
340
+ "areaMeasurementUnits": {}
341
+ }; }
405
342
  static get watchers() { return [{
406
343
  "propName": "distanceUnits",
407
344
  "methodName": "handleDistanceUnitsChanged"
@@ -412,8 +349,8 @@ export class ViewerMeasurementDetails {
412
349
  "propName": "measurementModel",
413
350
  "methodName": "handleMeasurementModelChanged"
414
351
  }, {
415
- "propName": "hiddenDetails",
416
- "methodName": "handleHiddenDetailsChanged"
352
+ "propName": "resultTypes",
353
+ "methodName": "handleResultTypesChanged"
417
354
  }]; }
418
355
  }
419
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LWRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItbWVhc3VyZW1lbnQtZGV0YWlscy92aWV3ZXItbWVhc3VyZW1lbnQtZGV0YWlscy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJaEUsT0FBTyxFQUVMLGdCQUFnQixFQUVoQixnQkFBZ0IsR0FDakIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsVUFBVSxFQUVWLFNBQVMsRUFDVCxhQUFhLEdBRWQsTUFBTSxpQkFBaUIsQ0FBQztBQU96QixNQUFNLE9BQU8sd0JBQXdCO0VBTHJDO0lBTUU7Ozs7T0FJRztJQUVJLHFCQUFnQixHQUFxQixJQUFJLGdCQUFnQixFQUFFLENBQUM7SUFFbkU7O09BRUc7SUFFSSxrQkFBYSxHQUFxQixhQUFhLENBQUM7SUFFdkQ7O09BRUc7SUFFSSxlQUFVLEdBQWtCLFNBQVMsQ0FBQztJQUU3Qzs7T0FFRztJQUVJLHFCQUFnQixHQUFHLENBQUMsQ0FBQztJQTRDNUI7Ozs7T0FJRztJQUVJLFlBQU8sR0FBd0IsRUFBRSxDQUFDO0lBd0JqQyw2QkFBd0IsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakUsMEJBQXFCLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELHlCQUFvQixHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQXNHekQsd0JBQW1CLEdBQUcsQ0FBQyxPQUE0QixFQUFRLEVBQUU7TUFDbkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7TUFDdkIsSUFBSSxDQUFDLGFBQWEs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
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLW1lYXN1cmVtZW50LWRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3ZXItbWVhc3VyZW1lbnQtZGV0YWlscy92aWV3ZXItbWVhc3VyZW1lbnQtZGV0YWlscy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZFLE9BQU8sRUFDTCxnQkFBZ0IsR0FJakIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsVUFBVSxFQUVWLFNBQVMsRUFDVCxhQUFhLEdBR2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsc0JBQXNCLEdBQ3ZCLE1BQU0sc0NBQXNDLENBQUM7QUFPOUMsTUFBTSxPQUFPLHdCQUF3QjtFQUxyQztJQU1FOzs7O09BSUc7SUFFSSxxQkFBZ0IsR0FBcUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBUW5FOztPQUVHO0lBRUksa0JBQWEsR0FBcUIsYUFBYSxDQUFDO0lBRXZEOztPQUVHO0lBRUksZUFBVSxHQUFrQixTQUFTLENBQUM7SUFFN0M7O09BRUc7SUFFSSxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFrQ3BCLFlBQU8sR0FBd0IsRUFBRSxDQUFDO0lBR2xDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBTXRCLDZCQUF3QixHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUdqRSwwQkFBcUIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFHeEQseUJBQW9CLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBNEd6RCxzQkFBaUIsR0FBRyxDQUMxQixPQUF1QyxFQUNqQyxFQUFFO01BQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQyxDQUFDO0lBRU0sc0JBQWlCLEdBQUcsR0FBUyxFQUFFOztNQUNyQyxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQztJQUVNLHdCQUFtQixHQUFHLEdBQVMsRUFBRTtNQUN2QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDLENBQUM7R0FnRkg7RUFwTUM7O0tBRUc7RUFDTyxpQkFBaUI7SUFDekIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FDbkUsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDO0lBQ0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7RUFDOUIsQ0FBQztFQUVEOztLQUVHO0VBQ08sb0JBQW9COztJQUM1QixNQUFBLElBQUksQ0FBQyx1QkFBdUIsMENBQUUsT0FBTyxFQUFFLENBQUM7RUFDMUMsQ0FBQztFQUVEOztLQUVHO0VBRU8sMEJBQTBCO0lBQ2xDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztFQUNoRSxDQUFDO0VBRUQ7O0tBRUc7RUFFTyx1QkFBdUI7SUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztFQUMvRCxDQUFDO0VBRUQ7O0tBRUc7RUFFTyw2QkFBNkI7O0lBQ3JDLE1BQUEsSUFBSSxDQUFDLHVCQUF1QiwwQ0FBRSxPQUFPLEVBQUUsQ0FBQztJQUN4QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUNuRSxJQUFJLENBQUMsbUJBQW1CLENBQ3pCLENBQUM7SUFFRixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztFQUM5QixDQUFDO0VBRUQ7O0tBRUc7RUFFTyx3QkFBd0I7SUFDaEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7RUFDOUIsQ0FBQztFQUVEOztLQUVHO0VBQ08sTUFBTTtJQUNkLE9BQU8sQ0FDTCxFQUFDLElBQUk7TUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FDN0MsRUFBQyxzQkFBc0IsSUFDckIsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQ3BDLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEdBQ3JDLENBQ0gsQ0FBQztNQUVELElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQ2hELEVBQUMseUJBQXlCLElBQ3hCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUN2QyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixHQUNyQyxDQUNILENBQUM7TUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FDN0MsRUFBQyxzQkFBc0IsSUFDckIsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQ25DLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEdBQ3JDLENBQ0gsQ0FBQztNQUVELElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQ2pELEVBQUMsMEJBQTBCLElBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUN2QyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixHQUNyQyxDQUNILENBQUMsQ0FDRyxDQUNSLENBQUM7RUFDSixDQUFDO0VBZ0JPLG9CQUFvQjtJQUMxQixNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBeUIsRUFBVyxFQUFFOztNQUNsRSxPQUFPLE1BQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQ0FBSSxJQUFJLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25ELElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtNQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7TUFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0tBQzVDO1NBQU07TUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztNQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztLQUM1QjtFQUNILENBQUM7RUFFTyxZQUFZLENBQ2xCLElBQU8sRUFDUCxNQUV3QztJQUV4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsT0FBTyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztFQUNyRCxDQUFDO0VBRU8sZ0JBQWdCLENBQ3RCLElBQU87SUFFUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FHeEQsQ0FBQztFQUNKLENBQUM7RUFFTyxxQkFBcUI7SUFDM0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUN2QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUN2RSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUM7RUFDSixDQUFDO0VBRU8sa0JBQWtCO0lBQ3hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQ3RELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQy9CLElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQUM7RUFDSixDQUFDO0VBRU8saUJBQWlCO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFDbkUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztFQUNKLENBQUM7RUFFTyxhQUFhLENBQ25CLE9BQWtDLEVBQ2xDLEtBQVcsRUFDWCxlQUE4QztJQUU5QyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7TUFDZixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7TUFFekIsSUFBSSxlQUFlLElBQUksSUFBSSxFQUFFO1FBQzNCLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQzNCO1dBQU07UUFDTCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO09BQ25DO0lBQ0gsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVPLFdBQVcsQ0FBQyxLQUFhLEVBQUUsSUFBVTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0VBQzNFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FDRiJ9
@@ -311,20 +311,9 @@ async function getHit(raycaster, pt) {
311
311
  return undefined;
312
312
  }
313
313
  function validMeasurement(start, end) {
314
- return {
315
- type: 'point-to-point',
316
- start,
317
- end,
318
- distance: Vector3.distance(start, end),
319
- valid: true,
320
- };
314
+ return { start, end, distance: Vector3.distance(start, end), valid: true };
321
315
  }
322
316
  function invalidMeasurement(start, end) {
323
- return {
324
- type: 'point-to-point',
325
- start,
326
- end,
327
- valid: false,
328
- };
317
+ return { start, end, valid: false };
329
318
  }
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlL2ludGVyYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFjLGVBQWUsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFzQm5EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlDQUFpQztFQUM1QyxZQUFvQyxLQUFtQztJQUFuQyxVQUFLLEdBQUwsS0FBSyxDQUE4QjtFQUFHLENBQUM7RUFFM0U7Ozs7Ozs7S0FPRztFQUNJLGNBQWMsQ0FDbkIsRUFBZSxFQUNmLElBQTZCO0lBRTdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxPQUFPLEtBQUssSUFBSSxJQUFJO01BQ2xCLENBQUMsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztNQUN0RCxDQUFDLENBQUMsU0FBUyxDQUFDO0VBQ2hCLENBQUM7RUFFRDs7Ozs7S0FLRztFQUNJLGVBQWUsQ0FBQyxNQUFjO0lBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFFaEQsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO01BQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztLQUNuRTtJQUVELE9BQU8sTUFBTSxLQUFLLE9BQU87TUFDdkIsQ0FBQyxDQUFDLElBQUksMEJBQTBC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
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLW1lYXN1cmVtZW50LWRpc3RhbmNlL2ludGVyYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFjLGVBQWUsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFnRG5EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlDQUFpQztFQUM1QyxZQUFvQyxLQUFtQztJQUFuQyxVQUFLLEdBQUwsS0FBSyxDQUE4QjtFQUFHLENBQUM7RUFFM0U7Ozs7Ozs7S0FPRztFQUNJLGNBQWMsQ0FDbkIsRUFBZSxFQUNmLElBQTZCO0lBRTdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxPQUFPLEtBQUssSUFBSSxJQUFJO01BQ2xCLENBQUMsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztNQUN0RCxDQUFDLENBQUMsU0FBUyxDQUFDO0VBQ2hCLENBQUM7RUFFRDs7Ozs7S0FLRztFQUNJLGVBQWUsQ0FBQyxNQUFjO0lBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFFaEQsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO01BQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztLQUNuRTtJQUVELE9BQU8sTUFBTSxLQUFLLE9BQU87TUFDdkIsQ0FBQyxDQUFDLElBQUksMEJBQTBC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