@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,10 +1,10 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { m as mapper, E as EventDispatcher } from './browser.esm-e6827921.js';
5
- import { e as fromPbPlane, g as fromPbVector3f, v as vertexvis } from './streamAttributes-7aa486b2.js';
6
4
  import { c as createCommonjsModule } from './_commonjsHelpers-9943807e.js';
7
5
  import { a as googleProtobuf, w as wrappers_pb } from './grpc-web-client.umd-5982b7b0.js';
6
+ import { m as mapper } from './browser.esm-59e914f6.js';
7
+ import { g as fromPbPlane, e as fromPbVector3f } from './streamAttributes-d623bb60.js';
8
8
 
9
9
  var uuid_pb = createCommonjsModule(function (module, exports) {
10
10
  /**
@@ -8587,7 +8587,8 @@ proto.vertexvis.protobuf.core.MeasurementOutcome.prototype.toObject = function(o
8587
8587
  proto.vertexvis.protobuf.core.MeasurementOutcome.toObject = function(includeInstance, msg) {
8588
8588
  var obj = {
8589
8589
  resultsList: googleProtobuf.Message.toObjectList(msg.getResultsList(),
8590
- proto.vertexvis.protobuf.core.MeasurementResult.toObject, includeInstance)
8590
+ proto.vertexvis.protobuf.core.MeasurementResult.toObject, includeInstance),
8591
+ isApproximate: googleProtobuf.Message.getFieldWithDefault(msg, 2, false)
8591
8592
  };
8592
8593
 
8593
8594
  if (includeInstance) {
@@ -8629,6 +8630,10 @@ proto.vertexvis.protobuf.core.MeasurementOutcome.deserializeBinaryFromReader = f
8629
8630
  reader.readMessage(value,proto.vertexvis.protobuf.core.MeasurementResult.deserializeBinaryFromReader);
8630
8631
  msg.addResults(value);
8631
8632
  break;
8633
+ case 2:
8634
+ var value = /** @type {boolean} */ (reader.readBool());
8635
+ msg.setIsApproximate(value);
8636
+ break;
8632
8637
  default:
8633
8638
  reader.skipField();
8634
8639
  break;
@@ -8666,6 +8671,13 @@ proto.vertexvis.protobuf.core.MeasurementOutcome.serializeBinaryToWriter = funct
8666
8671
  proto.vertexvis.protobuf.core.MeasurementResult.serializeBinaryToWriter
8667
8672
  );
8668
8673
  }
8674
+ f = message.getIsApproximate();
8675
+ if (f) {
8676
+ writer.writeBool(
8677
+ 2,
8678
+ f
8679
+ );
8680
+ }
8669
8681
  };
8670
8682
 
8671
8683
 
@@ -8700,6 +8712,23 @@ proto.vertexvis.protobuf.core.MeasurementOutcome.prototype.clearResultsList = fu
8700
8712
  };
8701
8713
 
8702
8714
 
8715
+ /**
8716
+ * optional bool is_approximate = 2;
8717
+ * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
8718
+ * You should avoid comparisons like {@code val === true/false} in those cases.
8719
+ * @return {boolean}
8720
+ */
8721
+ proto.vertexvis.protobuf.core.MeasurementOutcome.prototype.getIsApproximate = function() {
8722
+ return /** @type {boolean} */ (googleProtobuf.Message.getFieldWithDefault(this, 2, false));
8723
+ };
8724
+
8725
+
8726
+ /** @param {boolean} value */
8727
+ proto.vertexvis.protobuf.core.MeasurementOutcome.prototype.setIsApproximate = function(value) {
8728
+ googleProtobuf.Message.setProto3BooleanField(this, 2, value);
8729
+ };
8730
+
8731
+
8703
8732
  goog.object.extend(exports, proto.vertexvis.protobuf.core);
8704
8733
  });
8705
8734
 
@@ -9760,11 +9789,11 @@ const mapPlanarAngle = mapper.defineMapper(mapper.read(mapper.getProp('angleInRa
9760
9789
  plane1,
9761
9790
  plane2,
9762
9791
  }));
9763
- const mapMinimumDistance = mapper.defineMapper(mapper.read(mapper.getProp('distance'), mapper.mapRequiredProp('closestPoint1', fromPbVector3f), mapper.mapRequiredProp('closestPoint2', fromPbVector3f)), ([distance, closestPoint1, closestPoint2]) => ({
9792
+ const mapMinimumDistance = mapper.defineMapper(mapper.read(mapper.getProp('distance'), mapper.mapRequiredProp('closestPoint1', fromPbVector3f), mapper.mapRequiredProp('closestPoint2', fromPbVector3f)), ([distance, point1, point2]) => ({
9764
9793
  type: 'minimum-distance',
9765
9794
  distance,
9766
- closestPoint1,
9767
- closestPoint2,
9795
+ point1,
9796
+ point2,
9768
9797
  }));
9769
9798
  const mapSurfaceArea = mapper.defineMapper(mapper.read(mapper.getProp('area')), ([area]) => ({
9770
9799
  type: 'surface-area',
@@ -9775,189 +9804,7 @@ const mapPlanarAngleFromResult = mapper.mapProp('planarAngle', mapper.ifDefined(
9775
9804
  const mapMinimumDistanceFromResult = mapper.mapProp('minimumDistance', mapper.ifDefined(mapMinimumDistance));
9776
9805
  const mapSurfaceAreaFromResult = mapper.mapProp('totalSurfaceArea', mapper.ifDefined(mapSurfaceArea));
9777
9806
  const mapMeasurementResult = mapper.compose(mapper.pickFirst(mapPlanarDistanceFromResult, mapPlanarAngleFromResult, mapMinimumDistanceFromResult, mapSurfaceAreaFromResult), mapper.required('Result field'));
9778
- const mapMeasureResponse = mapper.defineMapper(mapper.read(mapper.mapRequiredProp('outcome', mapper.mapRequiredProp('resultsList', mapper.mapArray(mapMeasurementResult)))), ([results]) => ({ results }));
9807
+ const mapMeasureResponse = mapper.defineMapper(mapper.read(mapper.mapRequiredProp('outcome', mapper.mapRequiredProp('resultsList', mapper.mapArray(mapMeasurementResult))), mapper.mapRequiredProp('outcome', mapper.getProp('isApproximate'))), ([results, isApproximate]) => ({ results, isApproximate }));
9779
9808
  const mapMeasureResponseOrThrow = mapper.ifInvalidThrow(mapMeasureResponse);
9780
9809
 
9781
- class MeasurementEntity {
9782
- constructor(point, modelEntity) {
9783
- this.point = point;
9784
- this.modelEntity = modelEntity;
9785
- }
9786
- static fromHit(hit) {
9787
- if (hit.hitPoint != null && hit.modelEntity != null) {
9788
- const hitPoint = mapper.ifInvalidThrow(fromPbVector3f)(hit.hitPoint);
9789
- const modelEntity = vertexvis.protobuf.core.ModelEntity.encode(hit.modelEntity).finish();
9790
- return new MeasurementEntity(hitPoint, modelEntity);
9791
- }
9792
- else {
9793
- throw new Error('Cannot create MeasurementEntity from Hit. Hit is missing hit point and model entity');
9794
- }
9795
- }
9796
- toProto() {
9797
- const entity = new scene_view_api_pb.MeasureEntity();
9798
- const point = new geometry_pb.Vector3f();
9799
- point.setX(this.point.x);
9800
- point.setY(this.point.y);
9801
- point.setZ(this.point.z);
9802
- entity.setPoint(point);
9803
- const modelEntity = model_entity_pb.ModelEntity.deserializeBinary(this.modelEntity);
9804
- entity.setModelEntity(modelEntity);
9805
- return entity;
9806
- }
9807
- }
9808
- /**
9809
- * A model representing the state of measurement.
9810
- *
9811
- * Measurement contains a set of `MeasureEntity`s that represent what's being
9812
- * measured, and a set of `MeasurementResult`s representing the results of the
9813
- * measurement.
9814
- *
9815
- * Views can register event listeners to the model to be notified when new
9816
- * measurements have been added.
9817
- */
9818
- class MeasurementModel {
9819
- constructor() {
9820
- this.entities = new Set();
9821
- this.results = new Set();
9822
- this.resultsChanged = new EventDispatcher();
9823
- this.entitiesChanged = new EventDispatcher();
9824
- }
9825
- /**
9826
- * Registers an entity to be measured with the model.
9827
- *
9828
- * @param entity An entity to measure.
9829
- * @returns `true` if the entity has been added.
9830
- */
9831
- addEntity(entity) {
9832
- if (!this.entities.has(entity)) {
9833
- this.entities.add(entity);
9834
- this.entitiesChanged.emit(this.getEntities());
9835
- return true;
9836
- }
9837
- else {
9838
- return false;
9839
- }
9840
- }
9841
- /**
9842
- * Adds a measurement result to the model.
9843
- *
9844
- * Emits a _result changed_ event.
9845
- *
9846
- * @param result A result to add.
9847
- * @returns `true` if the result has been added.
9848
- */
9849
- addResult(result) {
9850
- if (!this.results.has(result)) {
9851
- this.results.add(result);
9852
- this.resultsChanged.emit(this.getResults());
9853
- return true;
9854
- }
9855
- else {
9856
- return false;
9857
- }
9858
- }
9859
- /**
9860
- * Clears all registered entities from the model.
9861
- */
9862
- clearEntities() {
9863
- this.entities.forEach((e) => this.removeEntity(e));
9864
- }
9865
- /**
9866
- * Clears all the measurement results from the model.
9867
- *
9868
- * Emits a _result changed_ event.
9869
- */
9870
- clearResults() {
9871
- this.results.forEach((r) => this.removeResult(r));
9872
- }
9873
- /**
9874
- * Replaces all the results in the model with the results from an outcome.
9875
- *
9876
- * Emits a _result changed_ event.
9877
- *
9878
- * @param outcome The outcome that contains the new results.
9879
- */
9880
- replaceResultsWithOutcome(outcome) {
9881
- this.clearResults();
9882
- outcome.results.forEach((r) => this.addResult(r));
9883
- }
9884
- /**
9885
- * Returns all the entities registered with the model.
9886
- */
9887
- getEntities() {
9888
- return Array.from(this.entities);
9889
- }
9890
- /**
9891
- * Returns all the measurement results of the model.
9892
- */
9893
- getResults() {
9894
- return Array.from(this.results);
9895
- }
9896
- /**
9897
- * Unregisters an entity from the model.
9898
- *
9899
- * @param entity The entity to remove.
9900
- * @returns `true` if the entity was removed.
9901
- */
9902
- removeEntity(entity) {
9903
- if (this.entities.has(entity)) {
9904
- this.entities.delete(entity);
9905
- this.entitiesChanged.emit(this.getEntities());
9906
- return true;
9907
- }
9908
- else {
9909
- return false;
9910
- }
9911
- }
9912
- /**
9913
- * Removes a measurement result from the model.
9914
- *
9915
- * Emits a _result changed_ event.
9916
- *
9917
- * @param result The result to remove.
9918
- */
9919
- removeResult(result) {
9920
- if (this.results.has(result)) {
9921
- this.results.delete(result);
9922
- this.resultsChanged.emit(this.getResults());
9923
- return true;
9924
- }
9925
- else {
9926
- return false;
9927
- }
9928
- }
9929
- /**
9930
- * Sets the set of entities to be measured with the model.
9931
- *
9932
- * @param entities A set of entities to measure.
9933
- * @returns `true` if the entity has been added.
9934
- */
9935
- setEntities(entities) {
9936
- this.entities.clear();
9937
- entities.forEach((e) => this.entities.add(e));
9938
- this.entitiesChanged.emit(this.getEntities());
9939
- return true;
9940
- }
9941
- /**
9942
- * Registers an event listener that will be invoked when the model's
9943
- * measurement results change.
9944
- *
9945
- * @param listener The listener to add.
9946
- * @returns A disposable that can be used to remove the listener.
9947
- */
9948
- onResultsChanged(listener) {
9949
- return this.resultsChanged.on(listener);
9950
- }
9951
- /**
9952
- * Registers an event listener that will be invoked when the model's
9953
- * measurement entities change.
9954
- *
9955
- * @param listener The listener to add.
9956
- * @returns A disposable that can be used to remove the listener.
9957
- */
9958
- onEntitiesChanged(listener) {
9959
- return this.entitiesChanged.on(listener);
9960
- }
9961
- }
9962
-
9963
- export { MeasurementEntity as M, MeasurementModel as a, model_entity_pb as b, mapMeasureResponseOrThrow as m, scene_view_api_pb as s };
9810
+ export { model_entity_pb as a, geometry_pb as g, mapMeasureResponseOrThrow as m, scene_view_api_pb as s };
@@ -1,8 +1,8 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { p as point, i as rectangle } from './bundle.esm-8f14ac60.js';
5
- import { b as uuid } from './browser.esm-e6827921.js';
4
+ import { p as point, g as rectangle } from './bundle.esm-d899b2d5.js';
5
+ import { b as uuid } from './browser.esm-59e914f6.js';
6
6
 
7
7
  class ArrowMarkup {
8
8
  constructor(init) {
@@ -1,8 +1,8 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { v as vector3 } from './bundle.esm-8f14ac60.js';
5
- import { b as uuid } from './browser.esm-e6827921.js';
4
+ import { v as vector3 } from './bundle.esm-d899b2d5.js';
5
+ import { b as uuid } from './browser.esm-59e914f6.js';
6
6
 
7
7
  class DistanceMeasurement {
8
8
  constructor(init) {
@@ -0,0 +1,132 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import { E as EventDispatcher, o as objects } from './browser.esm-59e914f6.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 };
@@ -0,0 +1,74 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import { v as vector3 } from './bundle.esm-d899b2d5.js';
5
+ import { E as EventDispatcher, b as uuid } from './browser.esm-59e914f6.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 ze = vector3.add(start, vector3.create(0, 0, -v.z));
34
+ const z = { start, end: ze };
35
+ const ye = vector3.add(ze, vector3.create(0, -v.y, 0));
36
+ const y = { start: ze, end: ye };
37
+ const xe = vector3.add(ye, vector3.create(-v.x, 0, 0));
38
+ const x = { start: ye, 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 };
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { a as __awaiter$2, c as __generator, f as __spreadArray } from './bundle.esm-8f14ac60.js';
4
+ import { a as __awaiter$2, c as __generator, f as __spreadArray } from './bundle.esm-d899b2d5.js';
5
5
  import { c as createCommonjsModule } from './_commonjsHelpers-9943807e.js';
6
6
 
7
7
  const DefaultErrorSerializer = {
@@ -0,0 +1,22 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import { v as vector3 } from './bundle.esm-d899b2d5.js';
5
+
6
+ /**
7
+ * Constructs a new measurement result from the given points.
8
+ *
9
+ * @param point1 A starting point.
10
+ * @param point2 An ending point.
11
+ * @returns A new measurement result.
12
+ */
13
+ function makeMinimumDistanceResult(point1, point2) {
14
+ return {
15
+ type: 'minimum-distance',
16
+ point1,
17
+ point2,
18
+ distance: vector3.distance(point1, point2),
19
+ };
20
+ }
21
+
22
+ export { makeMinimumDistanceResult as m };
@@ -1,9 +1,9 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { c as color, u as uri, a as async, b as uuid } from './browser.esm-e6827921.js';
5
- import { v as vector3, b as boundingBox, p as point, d as dimensions } from './bundle.esm-8f14ac60.js';
6
- import { v as vertexvis, t as toProtoDuration, c as FramePerspectiveCamera, f as fromBoundingBoxAndLookAtCamera } from './streamAttributes-7aa486b2.js';
4
+ import { c as color, u as uri, a as async, b as uuid } from './browser.esm-59e914f6.js';
5
+ import { v as vector3, b as boundingBox, p as point, d as dimensions } from './bundle.esm-d899b2d5.js';
6
+ import { v as vertexvis, t as toProtoDuration, c as FramePerspectiveCamera, f as fromBoundingBoxAndLookAtCamera } from './streamAttributes-d623bb60.js';
7
7
 
8
8
  const defaultColor = {
9
9
  opacity: 100,
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { a as readTask } from './index-f0053642.js';
4
+ import { a as readTask } from './index-10c1495a.js';
5
5
 
6
6
  // eslint-disable-next-line no-restricted-imports
7
7
  function readDOM(task) {