@vertexvis/viewer 0.13.2-canary.9 → 0.14.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 (323) hide show
  1. package/dist/cjs/{_commonjsHelpers-537d719a.js → _commonjsHelpers-dcc4cf71.js} +21 -0
  2. package/dist/cjs/{app-globals-3671e828.js → app-globals-2035678d.js} +1 -1
  3. package/dist/cjs/{browser.esm-075810bf.js → browser.esm-0bcdc581.js} +1 -1
  4. package/dist/cjs/{bundle.esm-618a5fe9.js → bundle.esm-22b6f2d6.js} +35 -1
  5. package/dist/cjs/{config-fb124bac.js → config-c63caa4f.js} +3 -2
  6. package/dist/cjs/{cursors-d71f6a74.js → cursors-f5d3c9a6.js} +13 -1
  7. package/dist/cjs/{dom-57ef84e9.js → dom-8d90bfaf.js} +1 -1
  8. package/dist/cjs/dom-d1bbd67c.js +10 -0
  9. package/dist/cjs/elementRectObserver-9b28f182.js +25 -0
  10. package/dist/cjs/entities-9eb7e608.js +41 -0
  11. package/dist/cjs/{entities-90f1347a.js → entities-e71231d8.js} +4 -4
  12. package/dist/cjs/{grpc-web-client.umd-60a79aae.js → grpc-web-client.umd-2af20c1b.js} +1 -1
  13. package/dist/cjs/{index-e100709a.js → index-4138aa2c.js} +1 -0
  14. package/dist/cjs/{index-3bc6bac0.js → index-b9d13137.js} +1 -1
  15. package/dist/cjs/index.cjs.js +25 -22
  16. package/dist/cjs/loader.cjs.js +4 -4
  17. package/dist/cjs/{mapper-80ee2957.js → mapper-08bbab48.js} +4 -4
  18. package/dist/cjs/{markup-7f7de5f2.js → markup-f7e61d16.js} +2 -2
  19. package/dist/cjs/{measurement-f1ae9248.js → measurement-3367e9b7.js} +2 -2
  20. package/dist/cjs/{model-55abd9ab.js → model-5ca87867.js} +1 -1
  21. package/dist/cjs/model-a9cfd037.js +246 -0
  22. package/dist/cjs/{overlays-68e8eff2.js → overlays-b0ba69fd.js} +2 -2
  23. package/dist/cjs/{png-decoder-076131d8.js → png-decoder-ef097f37.js} +2 -2
  24. package/dist/cjs/{results-e9496869.js → results-178e89a3.js} +1 -1
  25. package/dist/cjs/{scene-92728420.js → scene-b6b78909.js} +49 -12
  26. package/dist/cjs/{stencil-a664cd10.js → stencil-ef19638e.js} +5 -1
  27. package/dist/cjs/{streamAttributes-81eb52f2.js → streamAttributes-c343bdc8.js} +1993 -78
  28. package/dist/cjs/utils-78928e4e.js +162 -0
  29. package/dist/cjs/{utils-6397efca.js → utils-b157b0af.js} +1 -1
  30. package/dist/cjs/{utils-463cd52e.js → utils-c74b8bf0.js} +1 -1
  31. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +16 -6
  32. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +16 -14
  33. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  34. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  35. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +3 -3
  36. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  37. package/dist/cjs/vertex-scene-tree.cjs.entry.js +154 -27
  38. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +3 -3
  39. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  40. package/dist/cjs/{vertex-viewer-dom-element_3.cjs.entry.js → vertex-viewer-dom-element_2.cjs.entry.js} +20 -178
  41. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +191 -0
  42. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +6 -3
  43. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  44. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +49 -196
  45. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +5 -5
  46. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +5 -5
  47. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +8 -7
  48. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +16 -15
  49. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +10 -9
  50. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +18 -35
  51. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +8 -7
  52. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +12 -11
  53. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +167 -0
  54. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +276 -0
  55. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +322 -0
  56. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +13272 -0
  57. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +8 -7
  58. package/dist/cjs/vertex-viewer.cjs.entry.js +119 -52
  59. package/dist/cjs/viewer.cjs.js +4 -4
  60. package/dist/cjs/{viewport-54b1389d.js → viewport-5ca619f7.js} +14 -4
  61. package/dist/collection/__mocks__/regl-shape.js +6 -0
  62. package/dist/collection/__mocks__/regl.js +3 -0
  63. package/dist/collection/collection-manifest.json +5 -0
  64. package/dist/collection/components/scene-tree/lib/controller.js +17 -5
  65. package/dist/collection/components/scene-tree/lib/errors.js +7 -1
  66. package/dist/collection/components/scene-tree/lib/viewer-ops.js +12 -1
  67. package/dist/collection/components/scene-tree/scene-tree.js +112 -22
  68. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +0 -7
  69. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +34 -12
  70. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +14 -2
  71. package/dist/collection/components/viewer/viewer.js +79 -14
  72. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +32 -4
  73. package/dist/collection/components/viewer-dom-group/utils.js +3 -2
  74. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +30 -2
  75. package/dist/collection/components/viewer-icon/viewer-icon.js +5 -2
  76. package/dist/collection/components/viewer-markup/utils.js +3 -2
  77. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +2 -2
  78. package/dist/collection/components/viewer-pin-group/pin-renderer.js +12 -0
  79. package/dist/collection/components/viewer-pin-group/utils.js +24 -0
  80. package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +83 -0
  81. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +276 -0
  82. package/dist/collection/components/viewer-pin-label/utils.js +4 -0
  83. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +154 -0
  84. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +410 -0
  85. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +36 -0
  86. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.js +61 -0
  87. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +9 -0
  88. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +277 -0
  89. package/dist/collection/components/viewer-transform-widget/__mocks__/widget.js +21 -0
  90. package/dist/collection/components/viewer-transform-widget/util.js +78 -0
  91. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +48 -0
  92. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +442 -0
  93. package/dist/collection/components/viewer-transform-widget/widget.js +259 -0
  94. package/dist/collection/lib/cursors.js +11 -1
  95. package/dist/collection/lib/interactions/baseInteractionHandler.js +9 -2
  96. package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js +4 -3
  97. package/dist/collection/lib/interactions/interactionApi.js +21 -1
  98. package/dist/collection/lib/interactions/interactionApiOrthographic.js +18 -1
  99. package/dist/collection/lib/interactions/mouseInteractionHandler.js +4 -4
  100. package/dist/collection/lib/interactions/mouseInteractions.js +24 -1
  101. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +1 -2
  102. package/dist/collection/lib/interactions/pointerInteractionHandler.js +3 -3
  103. package/dist/collection/lib/mappers/streamAttributes.js +4 -2
  104. package/dist/collection/lib/pins/controller.js +100 -0
  105. package/dist/collection/lib/pins/interactions.js +183 -0
  106. package/dist/collection/lib/pins/model.js +136 -0
  107. package/dist/collection/lib/rendering/canvas.js +6 -28
  108. package/dist/collection/lib/scenes/camera.js +34 -2
  109. package/dist/collection/lib/scenes/colorMaterial.js +8 -8
  110. package/dist/collection/lib/scenes/mapper.js +2 -1
  111. package/dist/collection/lib/scenes/queries.js +6 -4
  112. package/dist/collection/lib/transforms/axis-lines.js +31 -0
  113. package/dist/collection/lib/transforms/axis-rotation.js +34 -0
  114. package/dist/collection/lib/transforms/axis-translation.js +30 -0
  115. package/dist/collection/lib/transforms/controller.js +117 -0
  116. package/dist/collection/lib/transforms/drawable.js +47 -0
  117. package/dist/collection/lib/transforms/hits.js +51 -0
  118. package/dist/collection/lib/transforms/line.js +58 -0
  119. package/dist/collection/lib/transforms/mesh.js +35 -0
  120. package/dist/collection/lib/transforms/shape.js +2 -0
  121. package/dist/collection/lib/transforms/util.js +4 -0
  122. package/dist/collection/lib/types/depthBuffer.js +2 -2
  123. package/dist/collection/lib/types/frameCamera.js +4 -6
  124. package/dist/collection/lib/types/viewport.js +14 -4
  125. package/dist/custom-elements/index.d.ts +30 -0
  126. package/dist/custom-elements/index.js +16835 -335
  127. package/dist/esm/{_commonjsHelpers-9943807e.js → _commonjsHelpers-11ca3be1.js} +20 -1
  128. package/dist/esm/{app-globals-3a04a531.js → app-globals-40df99a0.js} +1 -1
  129. package/dist/esm/{browser.esm-e72d80ad.js → browser.esm-1ddb69c9.js} +1 -1
  130. package/dist/esm/{bundle.esm-8ceccb91.js → bundle.esm-ce2c7ad3.js} +36 -2
  131. package/dist/esm/{config-fb7cd8ff.js → config-7075833a.js} +3 -2
  132. package/dist/esm/{cursors-fc2deed7.js → cursors-98b7d89d.js} +12 -2
  133. package/dist/esm/{dom-2cd18856.js → dom-5b164305.js} +1 -1
  134. package/dist/esm/dom-be140992.js +8 -0
  135. package/dist/esm/elementRectObserver-39cf7b95.js +23 -0
  136. package/dist/esm/{entities-78557270.js → entities-46be90d5.js} +4 -4
  137. package/dist/esm/entities-ce81dd7f.js +41 -0
  138. package/dist/esm/{grpc-web-client.umd-5982b7b0.js → grpc-web-client.umd-5409853c.js} +1 -1
  139. package/dist/esm/{index-10c1495a.js → index-a9fb8318.js} +1 -1
  140. package/dist/esm/{index-455380d0.js → index-e841d91b.js} +1 -1
  141. package/dist/esm/index.js +15 -14
  142. package/dist/esm/index.mjs +15 -14
  143. package/dist/esm/loader.js +4 -4
  144. package/dist/esm/loader.mjs +4 -4
  145. package/dist/esm/{mapper-da36de17.js → mapper-bde6c607.js} +4 -4
  146. package/dist/esm/{markup-c313d99c.js → markup-8904f2fe.js} +2 -2
  147. package/dist/esm/{measurement-544b69d5.js → measurement-3f9b0ae0.js} +2 -2
  148. package/dist/esm/{model-2a34b443.js → model-e54b081f.js} +1 -1
  149. package/dist/esm/model-f679c493.js +241 -0
  150. package/dist/esm/{overlays-354e275c.js → overlays-ea2d45ec.js} +2 -2
  151. package/dist/esm/{png-decoder-07de80d1.js → png-decoder-d4b65417.js} +2 -2
  152. package/dist/esm/{results-4d0c3568.js → results-3b4df2cf.js} +1 -1
  153. package/dist/esm/{scene-2bfcce74.js → scene-22ebacfd.js} +49 -12
  154. package/dist/esm/{stencil-9bf7fb9e.js → stencil-8b20e5a8.js} +5 -2
  155. package/dist/esm/{streamAttributes-d0b384b3.js → streamAttributes-72a92676.js} +1982 -67
  156. package/dist/esm/{utils-3ea0acdd.js → utils-0b980078.js} +1 -1
  157. package/dist/esm/utils-c714e2f7.js +153 -0
  158. package/dist/esm/{utils-e0941c61.js → utils-f11bd6f7.js} +1 -1
  159. package/dist/esm/vertex-scene-tree-search_3.entry.js +16 -6
  160. package/dist/esm/vertex-scene-tree-table-cell.entry.js +16 -14
  161. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  162. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  163. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +3 -3
  164. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  165. package/dist/esm/vertex-scene-tree.entry.js +154 -27
  166. package/dist/esm/vertex-viewer-button_3.entry.js +3 -3
  167. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  168. package/dist/esm/{vertex-viewer-dom-element_3.entry.js → vertex-viewer-dom-element_2.entry.js} +21 -178
  169. package/dist/esm/vertex-viewer-dom-group.entry.js +187 -0
  170. package/dist/esm/vertex-viewer-icon.entry.js +6 -3
  171. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  172. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +8 -155
  173. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  174. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  175. package/dist/esm/vertex-viewer-measurement-details.entry.js +8 -7
  176. package/dist/esm/vertex-viewer-measurement-distance.entry.js +16 -15
  177. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +10 -9
  178. package/dist/esm/vertex-viewer-measurement-precise.entry.js +15 -32
  179. package/dist/esm/vertex-viewer-measurement-tool.entry.js +8 -7
  180. package/dist/esm/vertex-viewer-measurements.entry.js +12 -11
  181. package/dist/esm/vertex-viewer-pin-group.entry.js +163 -0
  182. package/dist/esm/vertex-viewer-pin-label_2.entry.js +271 -0
  183. package/dist/esm/vertex-viewer-pin-tool.entry.js +318 -0
  184. package/dist/esm/vertex-viewer-transform-widget.entry.js +13268 -0
  185. package/dist/esm/vertex-viewer-view-cube.entry.js +8 -7
  186. package/dist/esm/vertex-viewer.entry.js +118 -51
  187. package/dist/esm/viewer.js +4 -4
  188. package/dist/esm/{viewport-5cc7b128.js → viewport-e39e2eba.js} +14 -4
  189. package/dist/types/__mocks__/regl-shape.d.ts +5 -0
  190. package/dist/types/__mocks__/regl.d.ts +5 -0
  191. package/dist/types/components/scene-tree/lib/controller.d.ts +13 -1
  192. package/dist/types/components/scene-tree/lib/errors.d.ts +3 -1
  193. package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -0
  194. package/dist/types/components/scene-tree/scene-tree.d.ts +16 -4
  195. package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +6 -2
  196. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +2 -0
  197. package/dist/types/components/viewer/viewer.d.ts +13 -1
  198. package/dist/types/components/viewer-dom-element/viewer-dom-element.d.ts +10 -2
  199. package/dist/types/components/viewer-dom-group/viewer-dom-group.d.ts +9 -1
  200. package/dist/types/components/viewer-icon/viewer-icon.d.ts +1 -1
  201. package/dist/types/components/viewer-pin-group/pin-renderer.d.ts +8 -0
  202. package/dist/types/components/viewer-pin-group/utils.d.ts +2 -0
  203. package/dist/types/components/viewer-pin-group/viewer-pin-group.d.ts +49 -0
  204. package/dist/types/components/viewer-pin-label/utils.d.ts +1 -0
  205. package/dist/types/components/viewer-pin-label/viewer-pin-label.d.ts +77 -0
  206. package/dist/types/components/viewer-pin-label-line/viewer-pin-label-line.d.ts +7 -0
  207. package/dist/types/components/viewer-pin-tool/viewer-pin-tool.d.ts +68 -0
  208. package/dist/types/components/viewer-transform-widget/__mocks__/widget.d.ts +11 -0
  209. package/dist/types/components/viewer-transform-widget/util.d.ts +5 -0
  210. package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +81 -0
  211. package/dist/types/components/viewer-transform-widget/widget.d.ts +74 -0
  212. package/dist/types/components.d.ts +303 -12
  213. package/dist/types/interfaces.d.ts +1 -0
  214. package/dist/types/lib/cursors.d.ts +10 -0
  215. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +4 -3
  216. package/dist/types/lib/interactions/interactionApi.d.ts +10 -1
  217. package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +7 -0
  218. package/dist/types/lib/interactions/mouseInteractionHandler.d.ts +2 -2
  219. package/dist/types/lib/interactions/mouseInteractions.d.ts +6 -0
  220. package/dist/types/lib/pins/controller.d.ts +70 -0
  221. package/dist/types/lib/pins/interactions.d.ts +30 -0
  222. package/dist/types/lib/pins/model.d.ts +104 -0
  223. package/dist/types/lib/rendering/canvas.d.ts +1 -2
  224. package/dist/types/lib/scenes/camera.d.ts +10 -0
  225. package/dist/types/lib/scenes/colorMaterial.d.ts +1 -0
  226. package/dist/types/lib/scenes/queries.d.ts +4 -2
  227. package/dist/types/lib/transforms/axis-lines.d.ts +6 -0
  228. package/dist/types/lib/transforms/axis-rotation.d.ts +6 -0
  229. package/dist/types/lib/transforms/axis-translation.d.ts +6 -0
  230. package/dist/types/lib/transforms/controller.d.ts +17 -0
  231. package/dist/types/lib/transforms/drawable.d.ts +26 -0
  232. package/dist/types/lib/transforms/hits.d.ts +10 -0
  233. package/dist/types/lib/transforms/line.d.ts +31 -0
  234. package/dist/types/lib/transforms/mesh.d.ts +23 -0
  235. package/dist/types/lib/transforms/shape.d.ts +3 -0
  236. package/dist/types/lib/transforms/util.d.ts +2 -0
  237. package/dist/types/lib/types/frameCamera.d.ts +1 -0
  238. package/dist/types/lib/types/viewport.d.ts +8 -0
  239. package/dist/types/regl-shape.d.ts +26 -0
  240. package/dist/viewer/index.esm.js +1 -1
  241. package/dist/viewer/p-058632f4.js +4 -0
  242. package/dist/viewer/p-07aeee89.js +10 -0
  243. package/dist/viewer/{p-e75bba97.js → p-083f427e.js} +1 -1
  244. package/dist/viewer/{p-a455ae02.entry.js → p-08eda2b2.entry.js} +1 -1
  245. package/dist/viewer/{p-bcb66f97.js → p-096e60bd.js} +1 -1
  246. package/dist/viewer/p-0bc4b3f7.js +4 -0
  247. package/dist/viewer/p-148c5f1a.js +4 -0
  248. package/dist/viewer/p-1db9bd1a.entry.js +4 -0
  249. package/dist/viewer/{p-70ca1ea7.entry.js → p-1f251549.entry.js} +1 -1
  250. package/dist/viewer/p-29986489.js +4 -0
  251. package/dist/viewer/{p-cafa57a6.js → p-2e581b2a.js} +1 -1
  252. package/dist/viewer/{p-d2bcf788.entry.js → p-33daeb09.entry.js} +1 -1
  253. package/dist/viewer/p-39803f8f.js +4 -0
  254. package/dist/viewer/p-465a92d9.entry.js +4 -0
  255. package/dist/viewer/p-4a65ddb3.entry.js +4 -0
  256. package/dist/viewer/{p-099fe6ca.entry.js → p-4aaf02b4.entry.js} +1 -1
  257. package/dist/viewer/{p-31658489.entry.js → p-4c3a3738.entry.js} +1 -1
  258. package/dist/viewer/{p-e38458da.js → p-4d37d97c.js} +1 -1
  259. package/dist/viewer/p-4fdf8553.entry.js +4 -0
  260. package/dist/viewer/p-5679f46b.entry.js +4 -0
  261. package/dist/viewer/p-5809b400.js +4 -0
  262. package/dist/viewer/{p-fa9a0bed.js → p-58dacdce.js} +1 -1
  263. package/dist/viewer/p-61a042f0.entry.js +4 -0
  264. package/dist/viewer/{p-b8774c9c.js → p-6c377932.js} +1 -1
  265. package/dist/viewer/p-6d379d4a.js +4 -0
  266. package/dist/viewer/p-6d70b198.entry.js +4 -0
  267. package/dist/viewer/p-6e7e094a.entry.js +4 -0
  268. package/dist/viewer/{p-661f0612.js → p-70e5e8a8.js} +1 -1
  269. package/dist/viewer/p-74102b29.entry.js +32 -0
  270. package/dist/viewer/p-7a5a9a93.entry.js +4 -0
  271. package/dist/viewer/p-7c755e0e.entry.js +4 -0
  272. package/dist/viewer/{p-3a20a038.js → p-92fe4417.js} +1 -1
  273. package/dist/viewer/{p-7e0328aa.js → p-98e6a50e.js} +1 -1
  274. package/dist/viewer/{p-388a43f7.js → p-990f98c2.js} +1 -1
  275. package/dist/viewer/{p-487e054a.js → p-99352cf0.js} +1 -1
  276. package/dist/viewer/{p-1ca95f9a.entry.js → p-99799a71.entry.js} +1 -1
  277. package/dist/viewer/p-9acd1b44.js +4 -0
  278. package/dist/viewer/{p-69058178.js → p-9bcde9c8.js} +1 -1
  279. package/dist/viewer/{p-5b342e97.js → p-a2ef15e5.js} +1 -1
  280. package/dist/viewer/{p-61b1097b.entry.js → p-a32cc378.entry.js} +1 -1
  281. package/dist/viewer/p-a380f0c2.js +4 -0
  282. package/dist/viewer/{p-41028d3b.entry.js → p-af37b63e.entry.js} +1 -1
  283. package/dist/viewer/p-b6b727a6.entry.js +4 -0
  284. package/dist/viewer/p-c2e3312b.js +4 -0
  285. package/dist/viewer/{p-4717c98e.entry.js → p-c9f91798.entry.js} +1 -1
  286. package/dist/viewer/p-ca518dcb.entry.js +4 -0
  287. package/dist/viewer/p-d828fd18.entry.js +4 -0
  288. package/dist/viewer/p-d996b1d2.entry.js +4 -0
  289. package/dist/viewer/{p-3f0f83ad.js → p-db01460a.js} +1 -1
  290. package/dist/viewer/p-db716103.entry.js +4 -0
  291. package/dist/viewer/p-df8fbe56.js +4 -0
  292. package/dist/viewer/p-dfe5a97d.js +4 -0
  293. package/dist/viewer/p-e42cb163.js +4 -0
  294. package/dist/viewer/p-eb8e5db5.js +4 -0
  295. package/dist/viewer/{p-46459921.entry.js → p-ebb801c3.entry.js} +1 -1
  296. package/dist/viewer/p-ebd85d58.entry.js +4 -0
  297. package/dist/viewer/p-eefae62a.entry.js +4 -0
  298. package/dist/viewer/viewer.esm.js +1 -1
  299. package/package.json +12 -10
  300. package/readme.md +4 -4
  301. package/dist/viewer/p-0a189e62.entry.js +0 -4
  302. package/dist/viewer/p-112455b1.js +0 -4
  303. package/dist/viewer/p-3561d910.js +0 -4
  304. package/dist/viewer/p-49d36e94.entry.js +0 -4
  305. package/dist/viewer/p-73a5eacc.entry.js +0 -4
  306. package/dist/viewer/p-77be081a.js +0 -4
  307. package/dist/viewer/p-809d09d9.js +0 -4
  308. package/dist/viewer/p-858bd2c7.entry.js +0 -4
  309. package/dist/viewer/p-89b66838.entry.js +0 -32
  310. package/dist/viewer/p-90bb0a1f.entry.js +0 -4
  311. package/dist/viewer/p-a93a63a9.js +0 -4
  312. package/dist/viewer/p-b043b076.entry.js +0 -4
  313. package/dist/viewer/p-b0ac6b3c.entry.js +0 -4
  314. package/dist/viewer/p-bcde5521.entry.js +0 -4
  315. package/dist/viewer/p-d1584404.js +0 -4
  316. package/dist/viewer/p-d32b54cb.js +0 -4
  317. package/dist/viewer/p-d3a20af4.entry.js +0 -4
  318. package/dist/viewer/p-d9f99f4d.entry.js +0 -4
  319. package/dist/viewer/p-ebd55df7.entry.js +0 -4
  320. package/dist/viewer/p-f0411993.entry.js +0 -4
  321. package/dist/viewer/p-f482325b.js +0 -10
  322. package/dist/viewer/p-fad9693e.js +0 -4
  323. package/dist/viewer/p-ffdeb08c.js +0 -4
@@ -0,0 +1,136 @@
1
+ import { EventDispatcher } from '@vertexvis/utils';
2
+ export function isTextPin(pin) {
3
+ return pin != null && pin.label != null;
4
+ }
5
+ export function isDefaultPin(pin) {
6
+ return pin != null && pin.label == null;
7
+ }
8
+ export class PinModel {
9
+ constructor() {
10
+ this.entities = {};
11
+ this.entitiesChanged = new EventDispatcher();
12
+ this.selectionChanged = new EventDispatcher();
13
+ }
14
+ /**
15
+ * Registers an entity to be drawn in the canvas
16
+ *
17
+ * @param pin A pin entity to draw.
18
+ * @returns `true` if the entity has been added.
19
+ */
20
+ addPin(pin, surpressEvent = false) {
21
+ if (this.entities[pin.id] == null) {
22
+ this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
23
+ if (!surpressEvent) {
24
+ this.entitiesChanged.emit(this.getPins());
25
+ }
26
+ return true;
27
+ }
28
+ else {
29
+ return false;
30
+ }
31
+ }
32
+ /**
33
+ * Clears all registered entities from the model.
34
+ */
35
+ clearPins() {
36
+ this.getPins().forEach((e) => this.removePin(e));
37
+ }
38
+ /**
39
+ * Returns all the entities registered with the model.
40
+ */
41
+ getPins() {
42
+ return Object.keys(this.entities).map((key) => this.entities[key]);
43
+ }
44
+ /**
45
+ * Returns single entity by id if present in the model.
46
+ */
47
+ getPinById(id) {
48
+ return this.entities[id];
49
+ }
50
+ getSelectedPinId() {
51
+ return this.selectedPinId;
52
+ }
53
+ /**
54
+ * Unregisters an entity from the model.
55
+ *
56
+ * @param entity The entity to remove.
57
+ * @returns `true` if the entity was removed.
58
+ */
59
+ removePin(entity) {
60
+ if (this.entities[entity.id] != null) {
61
+ delete this.entities[entity.id];
62
+ this.entitiesChanged.emit(this.getPins());
63
+ return true;
64
+ }
65
+ else {
66
+ return false;
67
+ }
68
+ }
69
+ /**
70
+ * Sets the set of entities to be placed with the model.
71
+ *
72
+ * @param entities A set of entities to draw.
73
+ * @returns `true` if the entity has been added.
74
+ */
75
+ setPins(pins) {
76
+ this.clearPins();
77
+ pins.forEach((e) => this.addPin(e, true));
78
+ this.entitiesChanged.emit(this.getPins());
79
+ return true;
80
+ }
81
+ /**
82
+ * Sets the set of entities to be placed with the model.
83
+ *
84
+ * @param pin A pin to set
85
+ * @returns `true` if the entity has been set
86
+ */
87
+ setPin(pin) {
88
+ this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
89
+ this.entitiesChanged.emit(this.getPins());
90
+ return true;
91
+ }
92
+ /**
93
+ * Sets the set of entities to be placed with the model.
94
+ *
95
+ * @param pin A pin to set
96
+ * @returns `true` if the entity has been set
97
+ */
98
+ updatePin(pin) {
99
+ const pinById = this.getPinById(pin.id);
100
+ if (pinById != null) {
101
+ this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
102
+ this.entitiesChanged.emit(this.getPins());
103
+ return true;
104
+ }
105
+ return false;
106
+ }
107
+ /**
108
+ * Registers an event listener that will be invoked when the model's
109
+ * pin entities change.
110
+ *
111
+ * @param listener The listener to add.
112
+ * @returns A disposable that can be used to remove the listener.
113
+ */
114
+ onEntitiesChanged(listener) {
115
+ return this.entitiesChanged.on(listener);
116
+ }
117
+ /**
118
+ * Registers an event listener that will be invoked when the model's
119
+ * pin selection changes
120
+ *
121
+ * @param listener The listener to add.
122
+ * @returns A disposable that can be used to remove the listener.
123
+ */
124
+ onSelectionChange(listener) {
125
+ return this.selectionChanged.on(listener);
126
+ }
127
+ /**
128
+ * Sets the selected pin Id
129
+ * @param pinId
130
+ */
131
+ setSelectedPin(pinId) {
132
+ this.selectedPinId = pinId;
133
+ this.selectionChanged.emit(this.selectedPinId);
134
+ }
135
+ }
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BpbnMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLGVBQWUsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBa0N6RSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVM7RUFDakMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVM7RUFDcEMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sUUFBUTtFQUFyQjtJQUNVLGFBQVEsR0FBd0IsRUFBRSxDQUFDO0lBR25DLG9CQUFlLEdBQUcsSUFBSSxlQUFlLEVBQVMsQ0FBQztJQUMvQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBc0IsQ0FBQztFQWlKdkUsQ0FBQztFQS9JQzs7Ozs7S0FLRztFQUNJLE1BQU0sQ0FBQyxHQUFRLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUU7TUFDakMsSUFBSSxDQUFDLFFBQVEsbUNBQ1IsSUFBSSxDQUFDLFFBQVEsS0FDaEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUNkLENBQUM7TUFFRixJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO09BQzNDO01BQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtTQUFNO01BQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtFQUNILENBQUM7RUFFRDs7S0FFRztFQUNJLFNBQVM7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
@@ -1,4 +1,3 @@
1
- import { Dimensions } from '@vertexvis/geometry';
2
1
  import { loadImageBytes } from './imageLoaders';
3
2
  const REPORTING_INTERVAL_MS = 1000;
4
3
  function drawImage(image, data) {
@@ -69,36 +68,15 @@ export function measureCanvasRenderer(meter, renderer, logFrameRate, callback, i
69
68
  export function createCanvasRenderer() {
70
69
  let lastFrameNumber;
71
70
  return async (data) => {
72
- var _a;
73
- const frameNumber = data.frame.sequenceNumber;
74
- const image = await loadImageBytes(data.frame.image.imageBytes);
75
- if (lastFrameNumber == null || frameNumber > lastFrameNumber) {
76
- lastFrameNumber = frameNumber;
77
- (_a = data.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(data);
78
- drawImage(image, data);
79
- }
80
- image.dispose();
81
- return data.frame;
82
- };
83
- }
84
- export function createHiddenCanvasRenderer() {
85
- const hiddenCanvas = document.createElement('canvas');
86
- let lastFrameNumber;
87
- return async (data) => {
88
- var _a;
71
+ var _a, _b, _c;
89
72
  const frameNumber = data.frame.sequenceNumber;
90
73
  const frameIsNewer = lastFrameNumber == null || frameNumber > lastFrameNumber;
91
- const frameDimensionsMatch = data.dimensions == null ||
92
- Dimensions.isEqual(data.dimensions, data.frame.image.imageAttr.frameDimensions);
93
74
  const image = await loadImageBytes(data.frame.image.imageBytes);
94
- hiddenCanvas.width = data.canvasDimensions.width;
95
- hiddenCanvas.height = data.canvasDimensions.height;
96
- const ctx = hiddenCanvas.getContext('2d');
97
- if (ctx != null && frameIsNewer && frameDimensionsMatch) {
75
+ const predicatePassing = (_b = (_a = data.predicate) === null || _a === void 0 ? void 0 : _a.call(data)) !== null && _b !== void 0 ? _b : true;
76
+ if (frameIsNewer && predicatePassing) {
98
77
  lastFrameNumber = frameNumber;
99
- drawImage(image, Object.assign(Object.assign({}, data), { canvas: ctx }));
100
- (_a = data.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(data);
101
- data.canvas.drawImage(hiddenCanvas, 0, 0);
78
+ (_c = data.beforeDraw) === null || _c === void 0 ? void 0 : _c.call(data);
79
+ drawImage(image, data);
102
80
  }
103
81
  image.dispose();
104
82
  return data.frame;
@@ -121,4 +99,4 @@ export function debugStencilBuffer(stencilManager, drawStencil, renderer) {
121
99
  return frame;
122
100
  };
123
101
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZW5kZXJpbmcvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtqRCxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0QsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFlbkMsU0FBUyxTQUFTLENBQUMsS0FBZ0IsRUFBRSxJQUFlO0VBQ2xELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUUvRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDbkIsQ0FBQyxFQUNELENBQUMsRUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUM3QixDQUFDO0VBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNwQixLQUFrQixFQUNsQixRQUErQjtFQUUvQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztFQUV6QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQ3RCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztHQUNuQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQWtCLEVBQ2xCLFFBQXdCLEVBQ3hCLFlBQXFCLEVBQ3JCLFFBQStCLEVBQy9CLGFBQXFC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
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZW5kZXJpbmcvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBYSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczRCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQWVuQyxTQUFTLFNBQVMsQ0FBQyxLQUFnQixFQUFFLElBQWU7RUFDbEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUNuQixDQUFDLEVBQ0QsQ0FBQyxFQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQzdCLENBQUM7RUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLEtBQWtCLEVBQ2xCLFFBQStCO0VBRS9CLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0VBRXpDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDdEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQ25CO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsS0FBa0IsRUFDbEIsUUFBd0IsRUFDeEIsWUFBcUIsRUFDckIsUUFBK0IsRUFDL0IsYUFBcUIscUJBQXFCO0VBRTFDLDhEQUE4RDtFQUM5RCxJQUFJLEtBQVUsQ0FBQztF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
@@ -1,4 +1,4 @@
1
- import { BoundingBox, BoundingSphere, Vector3 } from '@vertexvis/geometry';
1
+ import { BoundingBox, BoundingSphere, Matrix4, Quaternion, Ray, Vector3, } from '@vertexvis/geometry';
2
2
  import { UUID } from '@vertexvis/utils';
3
3
  import { constrainViewVector } from '../rendering/vectors';
4
4
  import { DEFAULT_TIMEOUT_IN_MS } from '../stream/dispatcher';
@@ -159,6 +159,38 @@ export class Camera {
159
159
  rotateAroundAxis(angleInRadians, axis) {
160
160
  return this.rotateAroundAxisAtPoint(angleInRadians, this.data.lookAt, axis);
161
161
  }
162
+ /**
163
+ * Aligns the camera to the plane defined by the provided position and normal.
164
+ * This will place the camera at the provided position, set the up vector to
165
+ * the provided normal, and place the lookAt on the defined plane. The point
166
+ * chosen for the lookAt will be determined using the current view vector.
167
+ *
168
+ * @param position The position to place the camera at.
169
+ * @param normal The normal of the plane to align to.
170
+ */
171
+ alignTo(position, normal) {
172
+ const worldX = Vector3.normalize(Vector3.cross(this.up, Vector3.normalize(this.viewVector)));
173
+ const positiveWorldY = Vector3.normalize(Vector3.cross(Vector3.normalize(this.viewVector), worldX));
174
+ // Invert the world y axis if the provided normal is more than 90 degrees from it
175
+ // to compute a proper angle to rotate the view vector by
176
+ const worldY = Vector3.angleTo(normal, positiveWorldY) > Math.PI / 2
177
+ ? Vector3.negate(positiveWorldY)
178
+ : positiveWorldY;
179
+ const localX = Vector3.isEqual(worldY, normal)
180
+ ? worldX
181
+ : Vector3.normalize(Vector3.cross(worldY, normal));
182
+ const transformedViewVector = Vector3.transformMatrix(this.viewVector, Matrix4.makeRotation(Quaternion.fromAxisAngle(localX, Vector3.angleTo(normal, worldY))));
183
+ const lookAtRay = Ray.create({
184
+ origin: position,
185
+ direction: Vector3.normalize(transformedViewVector),
186
+ });
187
+ const lookAt = Ray.at(lookAtRay, Vector3.magnitude(this.viewVector));
188
+ return this.update({
189
+ position,
190
+ lookAt,
191
+ up: normal,
192
+ });
193
+ }
162
194
  /**
163
195
  * Updates the `position` and `up` vectors of the camera to the given standard
164
196
  * view.
@@ -378,4 +410,4 @@ export class OrthographicCamera extends Camera {
378
410
  return new OrthographicCamera(this.stream, this.aspect, this.orthographicData, this.boundingBox, this.decodeFrame, flyToOptions);
379
411
  }
380
412
  }
381
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2VuZXMvY2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsRUFFWCx1QkFBdUIsRUFDdkIsc0JBQXNCLEdBRXZCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztBQU10QyxNQUFNLE9BQU8scUJBQXFCO0VBQ2hDLFlBQTJCLFlBQWlDO0lBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtFQUFHLENBQUM7RUFFekQsS0FBSztJQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztFQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBYTtFQUdqQixVQUFVLENBQUMsRUFBVTtJQUMxQixPQUFPLElBQUkscUJBQXFCLENBQUM7TUFDL0IsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7T0FDVDtLQUNGLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFTSxjQUFjLENBQUMsRUFBVTtJQUM5QixPQUFPLElBQUkscUJBQXFCLENBQUM7TUFD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
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2VuZXMvY2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsY0FBYyxFQUNkLE9BQU8sRUFDUCxVQUFVLEVBQ1YsR0FBRyxFQUNILE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsRUFFWCx1QkFBdUIsRUFDdkIsc0JBQXNCLEdBRXZCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztBQU10QyxNQUFNLE9BQU8scUJBQXFCO0VBQ2hDLFlBQTJCLFlBQWlDO0lBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtFQUFHLENBQUM7RUFFekQsS0FBSztJQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztFQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBYTtFQUdqQixVQUFVLENBQUMsRUFBVTtJQUMxQixPQUFPLElBQUkscUJBQXFCLENBQUM7TUFDL0IsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7T0FDVDtLQUNGLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFTSxjQUFjLENBQUMsRUFBVTtJ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
@@ -1,7 +1,7 @@
1
1
  import { Color } from '@vertexvis/utils';
2
- const defaultColor = {
3
- opacity: 100,
4
- glossiness: 10,
2
+ export const defaultColor = {
3
+ opacity: 255,
4
+ glossiness: 4,
5
5
  diffuse: {
6
6
  r: 0,
7
7
  g: 0,
@@ -33,7 +33,7 @@ const defaultColor = {
33
33
  * @param opacity
34
34
  */
35
35
  export const create = (r, g, b, opacity) => {
36
- return Object.assign(Object.assign({}, defaultColor), { opacity: opacity || 100, glossiness: opacity || 10, diffuse: {
36
+ return Object.assign(Object.assign({}, defaultColor), { opacity: opacity !== null && opacity !== void 0 ? opacity : defaultColor.opacity, diffuse: {
37
37
  r,
38
38
  g,
39
39
  b,
@@ -47,14 +47,14 @@ export const create = (r, g, b, opacity) => {
47
47
  */
48
48
  export const fromHex = (hex, opacity) => {
49
49
  const color = Color.fromHexString(hex);
50
- return Object.assign(Object.assign({}, defaultColor), { opacity: opacity || 100, glossiness: opacity || 10, diffuse: color != null ? Object.assign({}, color) : Object.assign({}, defaultColor.diffuse) });
50
+ return Object.assign(Object.assign({}, defaultColor), { opacity: opacity !== null && opacity !== void 0 ? opacity : defaultColor.opacity, diffuse: color != null ? Object.assign({}, color) : Object.assign({}, defaultColor.diffuse) });
51
51
  };
52
52
  /**
53
53
  * The default material that is used for selected items.
54
54
  */
55
55
  export const defaultSelectionMaterial = {
56
- opacity: 100,
57
- glossiness: 4,
56
+ opacity: defaultColor.opacity,
57
+ glossiness: defaultColor.glossiness,
58
58
  diffuse: {
59
59
  r: 255,
60
60
  g: 255,
@@ -80,4 +80,4 @@ export const defaultSelectionMaterial = {
80
80
  a: 0,
81
81
  },
82
82
  };
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JNYXRlcmlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NlbmVzL2NvbG9yTWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBY3pDLE1BQU0sWUFBWSxHQUFrQjtFQUNsQyxPQUFPLEVBQUUsR0FBRztFQUNaLFVBQVUsRUFBRSxFQUFFO0VBQ2QsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtFQUNELE9BQU8sRUFBRTtJQUNQLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7RUFFRCxRQUFRLEVBQUU7SUFDUixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztHQUNMO0VBQ0QsUUFBUSxFQUFFO0lBQ1IsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtDQUNGLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQ3BCLENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUyxFQUNULE9BQWdCLEVBQ0QsRUFBRTtFQUNqQix1Q0FDSyxZQUFZLEtBQ2YsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQ3ZCLFVBQVUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUN6QixPQUFPLEVBQUU7TUFDUCxDQUFDO01BQ0QsQ0FBQztNQUNELENBQUM7TUFDRCxDQUFDLEVBQUUsQ0FBQztLQUNMLElBQ0Q7QUFDSixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQWdCLEVBQWlCLEVBQUU7RUFDdEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUV2Qyx1Q0FDSyxZQUFZLEtBQ2YsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQ3ZCLFVBQVUsRUFBRSxPQUFPLElBQUksRUFBRSxFQUN6QixPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLG1CQUFNLEtBQUssRUFBRyxDQUFDLG1CQUFNLFlBQVksQ0FBQyxPQUFPLENBQUUsSUFDbkU7QUFDSixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFrQjtFQUNyRCxPQUFPLEVBQUUsR0FBRztFQUNaLFVBQVUsRUFBRSxDQUFDO0VBQ2IsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtFQUNELE9BQU8sRUFBRTtJQUNQLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7RUFDRCxRQUFRLEVBQUU7SUFDUixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxHQUFHO0lBQ04sQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsQ0FBQztHQUNMO0VBQ0QsUUFBUSxFQUFFO0lBQ1IsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtDQUNGLENBQUMifQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JNYXRlcmlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NlbmVzL2NvbG9yTWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBY3pDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0I7RUFDekMsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsQ0FBQztFQUNiLE9BQU8sRUFBRTtJQUNQLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7RUFDRCxPQUFPLEVBQUU7SUFDUCxDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztHQUNMO0VBRUQsUUFBUSxFQUFFO0lBQ1IsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtFQUNELFFBQVEsRUFBRTtJQUNSLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7Q0FDRixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUNwQixDQUFTLEVBQ1QsQ0FBUyxFQUNULENBQVMsRUFDVCxPQUFnQixFQUNELEVBQUU7RUFDakIsdUNBQ0ssWUFBWSxLQUNmLE9BQU8sRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxZQUFZLENBQUMsT0FBTyxFQUN4QyxPQUFPLEVBQUU7TUFDUCxDQUFDO01BQ0QsQ0FBQztNQUNELENBQUM7TUFDRCxDQUFDLEVBQUUsQ0FBQztLQUNMLElBQ0Q7QUFDSixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQWdCLEVBQWlCLEVBQUU7RUFDdEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUV2Qyx1Q0FDSyxZQUFZLEtBQ2YsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLFlBQVksQ0FBQyxPQUFPLEVBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsbUJBQU0sS0FBSyxFQUFHLENBQUMsbUJBQU0sWUFBWSxDQUFDLE9BQU8sQ0FBRSxJQUNuRTtBQUNKLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQWtCO0VBQ3JELE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTztFQUM3QixVQUFVLEVBQUUsWUFBWSxDQUFDLFVBQVU7RUFDbkMsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtFQUNELE9BQU8sRUFBRTtJQUNQLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7RUFDRCxRQUFRLEVBQUU7SUFDUixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxHQUFHO0lBQ04sQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsQ0FBQztHQUNMO0VBQ0QsUUFBUSxFQUFFO0lBQ1IsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtDQUNGLENBQUMifQ==
@@ -40,6 +40,7 @@ export function buildSceneOperation(query, operations, context) {
40
40
  metadata: {
41
41
  valueFilter: query.filter,
42
42
  keys: query.keys,
43
+ exactMatch: query.exactMatch,
43
44
  },
44
45
  operationTypes,
45
46
  };
@@ -175,4 +176,4 @@ function buildOperationTypes(operations) {
175
176
  }
176
177
  });
177
178
  }
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2VuZXMvbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHeEQsT0FBTyxFQUFvQixXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFRekQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFzQixFQUN0QixVQUEyQixFQUMzQixPQUFtQztFQUVuQyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztFQUV2RCxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbEIsS0FBSyxLQUFLLENBQUM7SUFDWCxLQUFLLElBQUk7TUFDUCxPQUFPO1FBQ0wsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7VUFDWixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztXQUN6QyxDQUFDLENBQUM7U0FDSjtRQUNELGNBQWM7T0FDZixDQUFDO0lBQ0osS0FBSyxTQUFTLENBQUM7SUFDZixLQUFLLGFBQWE7TUFDaEIsT0FBTztRQUNMLElBQUksRUFBRTtVQUNKLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7U0FDM0M7UUFDRCxjQUFjO09BQ2YsQ0FBQztJQUNKLEtBQUssS0FBSztNQUNSLE9BQU87UUFDTCxHQUFHLEVBQUUsRUFBRTtRQUNQLGNBQWM7T0FDZixDQUFDO0lBQ0osS0FBSyxrQkFBa0I7TUFDckIsT0FBTztRQUNMLGNBQWMsRUFBRTtVQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUs7VUFDeEIsR0FB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
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2VuZXMvbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHeEQsT0FBTyxFQUFvQixXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFRekQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFzQixFQUN0QixVQUEyQixFQUMzQixPQUFtQztFQUVuQyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztFQUV2RCxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbEIsS0FBSyxLQUFLLENBQUM7SUFDWCxLQUFLLElBQUk7TUFDUCxPQUFPO1FBQ0wsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7VUFDWixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztXQUN6QyxDQUFDLENBQUM7U0FDSjtRQUNELGNBQWM7T0FDZixDQUFDO0lBQ0osS0FBSyxTQUFTLENBQUM7SUFDZixLQUFLLGFBQWE7TUFDaEIsT0FBTztRQUNMLElBQUksRUFBRTtVQUNKLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7U0FDM0M7UUFDRCxjQUFjO09BQ2YsQ0FBQztJQUNKLEtBQUssS0FBSztNQUNSLE9BQU87UUFDTCxHQUFHLEVBQUUsRUFBRTtRQUNQLGNBQWM7T0FDZixDQUFDO0lBQ0osS0FBSyxrQkFBa0I7TUFDckIsT0FBTztRQUNMLGNBQWMsRUFBRTtVQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUs7VUFDeEIsR0FB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
@@ -18,8 +18,8 @@ export class RootQuery {
18
18
  withSceneTreeRange(range) {
19
19
  return new SceneTreeRangeQuery(range);
20
20
  }
21
- withMetadata(filter, keys) {
22
- return new MetadataQuery(filter, keys);
21
+ withMetadata(filter, keys, exactMatch) {
22
+ return new MetadataQuery(filter, keys, exactMatch);
23
23
  }
24
24
  withSelected() {
25
25
  return new AllSelectedQuery();
@@ -45,15 +45,17 @@ export class SceneTreeRangeQuery {
45
45
  }
46
46
  }
47
47
  export class MetadataQuery {
48
- constructor(filter, keys) {
48
+ constructor(filter, keys, exactMatch) {
49
49
  this.filter = filter;
50
50
  this.keys = keys;
51
+ this.exactMatch = exactMatch;
51
52
  }
52
53
  build() {
53
54
  return {
54
55
  type: 'metadata',
55
56
  filter: this.filter,
56
57
  keys: this.keys,
58
+ exactMatch: this.exactMatch,
57
59
  };
58
60
  }
59
61
  }
@@ -155,4 +157,4 @@ export class SceneItemQueryExecutor {
155
157
  return new SceneItemOperationsBuilder(expression, this.defaultSelectionMaterial);
156
158
  }
157
159
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NlbmVzL3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBOEVyRCxNQUFNLE9BQU8sU0FBUztFQUNiLEdBQUc7SUFDUixPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7RUFDeEIsQ0FBQztFQUVNLFdBQVcsQ0FBQyxHQUFhO0lBQzlCLE9BQU8sSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0VBQ3ZDLENBQUM7RUFFTSxlQUFlLENBQUMsR0FBYTtJQUNsQyxPQUFPLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztFQUMzQyxDQUFDO0VBRU0sVUFBVSxDQUFDLEVBQVU7SUFDMUIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7RUFDekQsQ0FBQztFQUVNLGNBQWMsQ0FBQyxFQUFVO0lBQzlCLE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0VBQzdELENBQUM7RUFFTSxrQkFBa0IsQ0FBQyxLQUFxQjtJQUM3QyxPQUFPLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDeEMsQ0FBQztFQUVNLFlBQVksQ0FBQyxNQUFjLEVBQUUsSUFBYztJQUNoRCxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztFQUN6QyxDQUFDO0VBRU0sWUFBWTtJQUNqQixPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztFQUNoQyxDQUFDO0VBRU0sU0FBUyxDQUFDLEtBQWtCO0lBQ2pDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxD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
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NlbmVzL3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBK0VyRCxNQUFNLE9BQU8sU0FBUztFQUNiLEdBQUc7SUFDUixPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7RUFDeEIsQ0FBQztFQUVNLFdBQVcsQ0FBQyxHQUFhO0lBQzlCLE9BQU8sSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0VBQ3ZDLENBQUM7RUFFTSxlQUFlLENBQUMsR0FBYTtJQUNsQyxPQUFPLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztFQUMzQyxDQUFDO0VBRU0sVUFBVSxDQUFDLEVBQVU7SUFDMUIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7RUFDekQsQ0FBQztFQUVNLGNBQWMsQ0FBQyxFQUFVO0lBQzlCLE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0VBQzdELENBQUM7RUFFTSxrQkFBa0IsQ0FBQyxLQUFxQjtJQUM3QyxPQUFPLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDeEMsQ0FBQztFQUVNLFlBQVksQ0FDakIsTUFBYyxFQUNkLElBQWMsRUFDZCxVQUFtQjtJQUVuQixPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7RUFDckQsQ0FBQztFQUVNLFlBQVk7SUFDakIsT0FBTyxJQUFJLGdCQUFnQixFQUFFLENBQUM7RUFDaEMsQ0FBQztFQUVNLFNBQVMsQ0FBQyxLQUFrQjtJQUNqQyxPQUFP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
@@ -0,0 +1,31 @@
1
+ import { Ray, Vector3 } from '@vertexvis/geometry';
2
+ import { AxisLinePoints, RotationLinePoints } from './line';
3
+ export function axisPositions(widgetTransform, camera, arrowMesh) {
4
+ const position = Vector3.fromMatrixPosition(widgetTransform);
5
+ return new AxisLinePoints(arrowMesh.points.valid, position, arrowMesh.points.worldBase, Vector3.transformMatrix(position, camera.projectionViewMatrix), arrowMesh.points.base);
6
+ }
7
+ export function rotationAxisPositions(camera, rotationMesh, towardPoint, triangleSize = 3) {
8
+ if (rotationMesh != null && towardPoint != null) {
9
+ const baseDistance = Vector3.distance(rotationMesh.points.worldBase, towardPoint);
10
+ const tipDistance = Vector3.distance(rotationMesh.points.worldTip, towardPoint);
11
+ const origin = baseDistance < tipDistance
12
+ ? rotationMesh.points.worldBase
13
+ : rotationMesh.points.worldTip;
14
+ const middle = Vector3.scale(0.5, Vector3.add(origin, towardPoint));
15
+ const centerPointRay = Ray.create({
16
+ origin: middle,
17
+ direction: Vector3.normalize(Vector3.subtract(rotationMesh.points.worldRight, rotationMesh.points.worldLeft)),
18
+ });
19
+ const worldPoints = [0, 0.05, 0.1, 0.15].map((v) => computeQuadraticBezierCurvePoint(origin, Ray.at(centerPointRay, triangleSize * 2), towardPoint, v));
20
+ return new RotationLinePoints(rotationMesh.points.valid, worldPoints, worldPoints.map((p) => Vector3.transformMatrix(p, camera.projectionViewMatrix)));
21
+ }
22
+ return undefined;
23
+ }
24
+ function computeQuadraticBezierCurvePoint(start, control, end, distance) {
25
+ const distanceInverse = 1 - distance;
26
+ const startScalar = distanceInverse * distanceInverse;
27
+ const controlScalar = 2 * distanceInverse * distance;
28
+ const endScalar = distance * distance;
29
+ return Vector3.create(startScalar * start.x + controlScalar * control.x + endScalar * end.x, startScalar * start.y + controlScalar * control.y + endScalar * end.y, startScalar * start.z + controlScalar * control.z + endScalar * end.z);
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy1saW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9heGlzLWxpbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUc1RCxNQUFNLFVBQVUsYUFBYSxDQUMzQixlQUFnQyxFQUNoQyxNQUF1QixFQUN2QixTQUF1QjtFQUV2QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7RUFDN0QsT0FBTyxJQUFJLGNBQWMsQ0FDdkIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ3RCLFFBQVEsRUFDUixTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQzlELFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsTUFBdUIsRUFDdkIsWUFBMkIsRUFDM0IsV0FBNkIsRUFDN0IsWUFBWSxHQUFHLENBQUM7RUFFaEIsSUFBSSxZQUFZLElBQUksSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7SUFDL0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FDbkMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQzdCLFdBQVcsQ0FDWixDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FDbEMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQzVCLFdBQVcsQ0FDWixDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQ1YsWUFBWSxHQUFHLFdBQVc7TUFDeEIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUztNQUMvQixDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUVwRSxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO01BQ2hDLE1BQU0sRUFBRSxNQUFNO01BQ2QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQ2QsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQzlCLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUM5QixDQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNqRCxnQ0FBZ0MsQ0FDOUIsTUFBTSxFQUNOLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsRUFDeEMsV0FBVyxFQUNYLENBQUMsQ0FDRixDQUNGLENBQUM7SUFFRixPQUFPLElBQUksa0JBQWtCLENBQzNCLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUN6QixXQUFXLEVBQ1gsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUN4RCxDQUNGLENBQUM7R0FDSDtFQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLGdDQUFnQyxDQUN2QyxLQUFzQixFQUN0QixPQUF3QixFQUN4QixHQUFvQixFQUNwQixRQUFnQjtFQUVoQixNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO0VBQ3JDLE1BQU0sV0FBVyxHQUFHLGVBQWUsR0FBRyxlQUFlLENBQUM7RUFDdEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLGVBQWUsR0FBRyxRQUFRLENBQUM7RUFDckQsTUFBTSxTQUFTLEdBQUcsUUFBUSxHQUFHLFFBQVEsQ0FBQztFQUV0QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQ25CLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUNyRSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFDckUsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQ3RFLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,34 @@
1
+ import { Angle, Matrix4, Quaternion, Ray, Vector3 } from '@vertexvis/geometry';
2
+ import { TriangleMeshPoints } from './mesh';
3
+ export function xAxisRotationPositions(widgetTransform, camera, triangleSize = 3) {
4
+ return computeRotationNdcValues(widgetTransform, camera, Vector3.back(), Vector3.up(), triangleSize);
5
+ }
6
+ export function yAxisRotationPositions(widgetTransform, camera, triangleSize = 3) {
7
+ return computeRotationNdcValues(widgetTransform, camera, Vector3.right(), Vector3.back(), triangleSize);
8
+ }
9
+ export function zAxisRotationPositions(widgetTransform, camera, triangleSize = 3) {
10
+ return computeRotationNdcValues(widgetTransform, camera, Vector3.right(), Vector3.up(), triangleSize);
11
+ }
12
+ function computeRotationNdcValues(widgetTransform, camera, xDirection, yDirection, triangleSize) {
13
+ const transformedDirection = Vector3.transformMatrix(Vector3.add(xDirection, yDirection), Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
14
+ const transformedX = Vector3.transformMatrix(xDirection, Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
15
+ const transformedY = Vector3.transformMatrix(yDirection, Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
16
+ const basePosition = Vector3.fromMatrixPosition(widgetTransform);
17
+ const position = Vector3.add(basePosition, Vector3.scale(triangleSize * 10, transformedDirection));
18
+ const xRay = Ray.create({
19
+ origin: position,
20
+ direction: transformedX,
21
+ });
22
+ const yRay = Ray.create({
23
+ origin: position,
24
+ direction: transformedY,
25
+ });
26
+ const rotationAxis = Vector3.cross(transformedX, transformedY);
27
+ const base = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(yRay, -triangleSize), rotationAxis, position);
28
+ const right = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(xRay, triangleSize), rotationAxis, position);
29
+ const up = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(yRay, triangleSize), rotationAxis, position);
30
+ const left = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(xRay, -triangleSize), rotationAxis, position);
31
+ return new TriangleMeshPoints(Vector3.dot(transformedX, camera.direction) !== -1 &&
32
+ Vector3.dot(transformedY, camera.direction) !== -1, base, left, right, up, Vector3.transformMatrix(base, camera.projectionViewMatrix), Vector3.transformMatrix(left, camera.projectionViewMatrix), Vector3.transformMatrix(right, camera.projectionViewMatrix), Vector3.transformMatrix(up, camera.projectionViewMatrix));
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy1yb3RhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9heGlzLXJvdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTVDLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyx3QkFBd0IsQ0FDN0IsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQ2QsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUNaLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyx3QkFBd0IsQ0FDN0IsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQ2YsT0FBTyxDQUFDLElBQUksRUFBRSxFQUNkLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyx3QkFBd0IsQ0FDN0IsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQ2YsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUNaLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQy9CLGVBQWdDLEVBQ2hDLE1BQXVCLEVBQ3ZCLFVBQTJCLEVBQzNCLFVBQTJCLEVBQzNCLFlBQW9CO0VB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
@@ -0,0 +1,30 @@
1
+ import { Matrix4, Quaternion, Ray, Vector3 } from '@vertexvis/geometry';
2
+ import { TriangleMeshPoints } from './mesh';
3
+ export function xAxisArrowPositions(widgetTransform, camera, triangleSize = 3) {
4
+ return computeArrowNdcValues(widgetTransform, camera, Vector3.right(), triangleSize);
5
+ }
6
+ export function yAxisArrowPositions(widgetTransform, camera, triangleSize = 3) {
7
+ return computeArrowNdcValues(widgetTransform, camera, Vector3.up(), triangleSize);
8
+ }
9
+ export function zAxisArrowPositions(widgetTransform, camera, triangleSize = 3) {
10
+ return computeArrowNdcValues(widgetTransform, camera, Vector3.back(), triangleSize);
11
+ }
12
+ function computeArrowNdcValues(widgetTransform, camera, direction, triangleSize) {
13
+ const transformedDirection = Vector3.transformMatrix(direction, Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
14
+ const basePosition = Vector3.fromMatrixPosition(widgetTransform);
15
+ const position = Vector3.add(basePosition, Vector3.scale(triangleSize * 9, transformedDirection));
16
+ const worldX = Vector3.normalize(Vector3.cross(transformedDirection, Vector3.normalize(camera.viewVector)));
17
+ const xRay = Ray.create({
18
+ origin: position,
19
+ direction: worldX,
20
+ });
21
+ const yRay = Ray.create({
22
+ origin: position,
23
+ direction: transformedDirection,
24
+ });
25
+ const left = Ray.at(xRay, -(triangleSize * 1.25));
26
+ const right = Ray.at(xRay, triangleSize * 1.25);
27
+ const up = Ray.at(yRay, triangleSize * 3);
28
+ return new TriangleMeshPoints(!isNaN(worldX.x), position, left, right, up, Vector3.transformMatrix(position, camera.projectionViewMatrix), Vector3.transformMatrix(left, camera.projectionViewMatrix), Vector3.transformMatrix(right, camera.projectionViewMatrix), Vector3.transformMatrix(up, camera.projectionViewMatrix));
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy10cmFuc2xhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9heGlzLXRyYW5zbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUMsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxlQUFnQyxFQUNoQyxNQUF1QixFQUN2QixZQUFZLEdBQUcsQ0FBQztFQUVoQixPQUFPLHFCQUFxQixDQUMxQixlQUFlLEVBQ2YsTUFBTSxFQUNOLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFDZixZQUFZLENBQ2IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLGVBQWdDLEVBQ2hDLE1BQXVCLEVBQ3ZCLFlBQVksR0FBRyxDQUFDO0VBRWhCLE9BQU8scUJBQXFCLENBQzFCLGVBQWUsRUFDZixNQUFNLEVBQ04sT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUNaLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyxxQkFBcUIsQ0FDMUIsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQ2QsWUFBWSxDQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsU0FBMEIsRUFDMUIsWUFBb0I7RUFFcEIsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUNsRCxTQUFTLEVBQ1QsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FDckUsQ0FBQztFQUVGLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztFQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUMxQixZQUFZLEVBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQ3RELENBQUM7RUFFRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzFFLENBQUM7RUFDRixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxNQUFNO0dBQ2xCLENBQUMsQ0FBQztFQUNILE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDdEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLG9CQUFvQjtHQUNoQyxDQUFDLENBQUM7RUFFSCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDbEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO0VBQ2hELE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztFQUUxQyxPQUFPLElBQUksa0JBQWtCLENBQzNCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFDaEIsUUFBUSxFQUNSLElBQUksRUFDSixLQUFLLEVBQ0wsRUFBRSxFQUNGLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUM5RCxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsb0JBQW9CLENBQUMsRUFDMUQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQzNELE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUN6RCxDQUFDO0FBQ0osQ0FBQyJ9