@vertexvis/viewer 0.13.1 → 0.13.2-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/cjs/{browser.esm-31b03292.js → browser.esm-c51162f8.js} +1 -1
  2. package/dist/cjs/{bundle.esm-dc0a8361.js → bundle.esm-1b8b1f36.js} +34 -0
  3. package/dist/cjs/{config-90ee43d5.js → config-91efd353.js} +2 -2
  4. package/dist/cjs/{cursors-ad2fd395.js → cursors-14827f58.js} +1 -1
  5. package/dist/cjs/{dom-dd265f48.js → dom-c697cf99.js} +1 -1
  6. package/dist/cjs/{entities-aa59890e.js → entities-0829b4a4.js} +3 -3
  7. package/dist/cjs/index.cjs.js +13 -12
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/{mapper-f6e6cafe.js → mapper-67af470b.js} +2 -2
  10. package/dist/cjs/{markup-fb1553b1.js → markup-835f2e83.js} +2 -2
  11. package/dist/cjs/{measurement-aba1e0e8.js → measurement-8e0ce89a.js} +2 -2
  12. package/dist/cjs/{model-4ec0c36e.js → model-78241d4f.js} +1 -1
  13. package/dist/cjs/{overlays-40c6cbc7.js → overlays-06786e52.js} +2 -2
  14. package/dist/cjs/{png-decoder-27d25eed.js → png-decoder-01b76242.js} +1 -1
  15. package/dist/cjs/{results-bc325974.js → results-7a694238.js} +1 -1
  16. package/dist/cjs/{scene-d420fd26.js → scene-23535fc0.js} +176 -85
  17. package/dist/cjs/{streamAttributes-d6236448.js → streamAttributes-f13c1a96.js} +1431 -41
  18. package/dist/cjs/{utils-f80be307.js → utils-4a02e54b.js} +1 -1
  19. package/dist/cjs/{utils-545b1865.js → utils-5cc32a26.js} +1 -1
  20. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +1 -1
  21. package/dist/cjs/vertex-scene-tree.cjs.entry.js +4 -4
  22. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
  23. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +3 -3
  24. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +4 -4
  25. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +4 -4
  26. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +3 -3
  27. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +11 -11
  28. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +6 -6
  29. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +10 -10
  30. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +5 -5
  31. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +8 -8
  32. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +3 -3
  33. package/dist/cjs/vertex-viewer.cjs.entry.js +198 -79
  34. package/dist/cjs/viewer.cjs.js +1 -1
  35. package/dist/cjs/{viewport-8c39089f.js → viewport-052809c7.js} +1 -1
  36. package/dist/collection/components/viewer/viewer.js +68 -4
  37. package/dist/collection/components/viewer-dom-renderer/renderer2d.js +1 -1
  38. package/dist/collection/components/viewer-dom-renderer/renderer3d.js +1 -1
  39. package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +3 -3
  40. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +3 -3
  41. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +3 -3
  42. package/dist/collection/index.js +2 -2
  43. package/dist/collection/lib/errors.js +8 -1
  44. package/dist/collection/lib/interactions/index.js +3 -1
  45. package/dist/collection/lib/interactions/interactionApi.js +4 -25
  46. package/dist/collection/lib/interactions/interactionApiOrthographic.js +50 -0
  47. package/dist/collection/lib/interactions/interactionApiPerspective.js +50 -0
  48. package/dist/collection/lib/mappers/frameStreaming.js +27 -5
  49. package/dist/collection/lib/rendering/matrices.js +13 -4
  50. package/dist/collection/lib/scenes/__mocks__/mocks.js +2 -2
  51. package/dist/collection/lib/scenes/camera.js +149 -77
  52. package/dist/collection/lib/scenes/mapper.js +3 -2
  53. package/dist/collection/lib/scenes/scene.js +23 -9
  54. package/dist/collection/lib/types/clippingPlanes.js +54 -17
  55. package/dist/collection/lib/types/depthBuffer.js +1 -1
  56. package/dist/collection/lib/types/frame.js +88 -23
  57. package/dist/collection/lib/types/frameCamera.js +81 -6
  58. package/dist/collection/lib/types/viewport.js +1 -1
  59. package/dist/collection/testing/fixtures.js +23 -10
  60. package/dist/collection/testing/viewer.js +5 -3
  61. package/dist/custom-elements/index.js +1821 -194
  62. package/dist/esm/{browser.esm-59e914f6.js → browser.esm-48f051a3.js} +1 -1
  63. package/dist/esm/{bundle.esm-d899b2d5.js → bundle.esm-df3a8a42.js} +35 -1
  64. package/dist/esm/{config-604c644e.js → config-3a5d3ea3.js} +2 -2
  65. package/dist/esm/{cursors-a7ec4adb.js → cursors-45f23dfe.js} +1 -1
  66. package/dist/esm/{dom-780d25be.js → dom-18d9ac79.js} +1 -1
  67. package/dist/esm/{entities-759d97cd.js → entities-60dfd79d.js} +3 -3
  68. package/dist/esm/index.js +12 -12
  69. package/dist/esm/index.mjs +12 -12
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/loader.mjs +1 -1
  72. package/dist/esm/{mapper-4b815e31.js → mapper-adf23dc4.js} +2 -2
  73. package/dist/esm/{markup-1d177b4a.js → markup-accb6b5c.js} +2 -2
  74. package/dist/esm/{measurement-12cdbf5c.js → measurement-6cd457a6.js} +2 -2
  75. package/dist/esm/{model-e5a4f00f.js → model-4982c15d.js} +1 -1
  76. package/dist/esm/{overlays-1919b192.js → overlays-1783a61a.js} +2 -2
  77. package/dist/esm/{png-decoder-3f1fa486.js → png-decoder-f35def4c.js} +1 -1
  78. package/dist/esm/{results-994bdb50.js → results-93d45acc.js} +1 -1
  79. package/dist/esm/{scene-2c2460d5.js → scene-2d8bdccc.js} +176 -85
  80. package/dist/esm/{streamAttributes-d623bb60.js → streamAttributes-87a3605c.js} +1426 -43
  81. package/dist/esm/{utils-5e57bf24.js → utils-9f4b25ec.js} +1 -1
  82. package/dist/esm/{utils-83a19677.js → utils-ed2346c0.js} +1 -1
  83. package/dist/esm/vertex-scene-tree-search_3.entry.js +1 -1
  84. package/dist/esm/vertex-scene-tree.entry.js +4 -4
  85. package/dist/esm/vertex-viewer-dom-element_3.entry.js +4 -4
  86. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +3 -3
  87. package/dist/esm/vertex-viewer-markup-tool.entry.js +4 -4
  88. package/dist/esm/vertex-viewer-markup.entry.js +4 -4
  89. package/dist/esm/vertex-viewer-measurement-details.entry.js +3 -3
  90. package/dist/esm/vertex-viewer-measurement-distance.entry.js +11 -11
  91. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +6 -6
  92. package/dist/esm/vertex-viewer-measurement-precise.entry.js +10 -10
  93. package/dist/esm/vertex-viewer-measurement-tool.entry.js +5 -5
  94. package/dist/esm/vertex-viewer-measurements.entry.js +8 -8
  95. package/dist/esm/vertex-viewer-view-cube.entry.js +3 -3
  96. package/dist/esm/vertex-viewer.entry.js +198 -79
  97. package/dist/esm/viewer.js +1 -1
  98. package/dist/esm/{viewport-01c886ea.js → viewport-6d4c0af0.js} +1 -1
  99. package/dist/types/components/viewer/viewer.d.ts +8 -0
  100. package/dist/types/components/viewer-dom-renderer/renderer2d.d.ts +2 -2
  101. package/dist/types/components/viewer-dom-renderer/renderer3d.d.ts +3 -3
  102. package/dist/types/components/viewer-dom-renderer/viewer-dom-renderer.d.ts +2 -2
  103. package/dist/types/components/viewer-measurement-distance/utils.d.ts +2 -2
  104. package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +2 -2
  105. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays-components.d.ts +2 -2
  106. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays.d.ts +2 -2
  107. package/dist/types/components.d.ts +15 -7
  108. package/dist/types/index.d.ts +1 -1
  109. package/dist/types/lib/errors.d.ts +3 -0
  110. package/dist/types/lib/interactions/index.d.ts +2 -0
  111. package/dist/types/lib/interactions/interactionApi.d.ts +20 -21
  112. package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +21 -0
  113. package/dist/types/lib/interactions/interactionApiPerspective.d.ts +21 -0
  114. package/dist/types/lib/mappers/frameStreaming.d.ts +2 -0
  115. package/dist/types/lib/scenes/__mocks__/mocks.d.ts +2 -2
  116. package/dist/types/lib/scenes/camera.d.ts +100 -37
  117. package/dist/types/lib/scenes/scene.d.ts +1 -1
  118. package/dist/types/lib/types/clippingPlanes.d.ts +3 -1
  119. package/dist/types/lib/types/depthBuffer.d.ts +4 -4
  120. package/dist/types/lib/types/frame.d.ts +54 -11
  121. package/dist/types/lib/types/frameCamera.d.ts +21 -2
  122. package/dist/types/lib/types/viewport.d.ts +2 -3
  123. package/dist/types/testing/fixtures.d.ts +4 -2
  124. package/dist/viewer/index.esm.js +1 -1
  125. package/dist/viewer/{p-3f6ac74f.js → p-014561cd.js} +1 -1
  126. package/dist/viewer/p-121f2b40.js +18 -0
  127. package/dist/viewer/p-18ec4fed.js +4 -0
  128. package/dist/viewer/{p-e2297df2.entry.js → p-1acd0e56.entry.js} +1 -1
  129. package/dist/viewer/{p-da2f4a56.js → p-25dfee48.js} +1 -1
  130. package/dist/viewer/p-2e75198d.js +4 -0
  131. package/dist/viewer/p-38c06c25.js +4 -0
  132. package/dist/viewer/{p-67446e35.js → p-463151e0.js} +1 -1
  133. package/dist/viewer/{p-301660cf.js → p-546ae240.js} +1 -1
  134. package/dist/viewer/{p-d00e9203.js → p-6120a219.js} +1 -1
  135. package/dist/viewer/p-61db972b.js +4 -0
  136. package/dist/viewer/{p-a0df0e0c.js → p-6d9d3553.js} +1 -1
  137. package/dist/viewer/{p-f8d01b8a.entry.js → p-7c5bee8e.entry.js} +1 -1
  138. package/dist/viewer/{p-8decee06.entry.js → p-8de749a5.entry.js} +1 -1
  139. package/dist/viewer/{p-081e6873.js → p-8df35eee.js} +1 -1
  140. package/dist/viewer/{p-671c113c.entry.js → p-923b616f.entry.js} +1 -1
  141. package/dist/viewer/p-9b1ecc71.js +4 -0
  142. package/dist/viewer/{p-3810c24d.js → p-9fd5fc8e.js} +1 -1
  143. package/dist/viewer/p-b2d4c0cf.entry.js +4 -0
  144. package/dist/viewer/{p-364ce21c.js → p-b8bc15ec.js} +1 -1
  145. package/dist/viewer/{p-439220c6.js → p-b8f027eb.js} +1 -1
  146. package/dist/viewer/p-bc7f0ad6.entry.js +4 -0
  147. package/dist/viewer/{p-2cefb1b0.js → p-ce0fe8be.js} +1 -1
  148. package/dist/viewer/p-d939ecd3.entry.js +4 -0
  149. package/dist/viewer/{p-25eaab00.entry.js → p-de7eecce.entry.js} +1 -1
  150. package/dist/viewer/{p-4985fad5.js → p-e3fff448.js} +1 -1
  151. package/dist/viewer/{p-6e80f8b0.entry.js → p-e4934f47.entry.js} +1 -1
  152. package/dist/viewer/{p-df292b56.entry.js → p-e8f6cba6.entry.js} +1 -1
  153. package/dist/viewer/{p-353cfc7a.entry.js → p-ee86bed2.entry.js} +1 -1
  154. package/dist/viewer/{p-c62cb926.entry.js → p-f359a9ac.entry.js} +1 -1
  155. package/dist/viewer/{p-e07377fa.entry.js → p-fa7f2d0c.entry.js} +1 -1
  156. package/dist/viewer/{p-915d95ad.entry.js → p-ffde162f.entry.js} +1 -1
  157. package/dist/viewer/viewer.esm.js +1 -1
  158. package/package.json +8 -8
  159. package/dist/viewer/p-085e908a.js +0 -4
  160. package/dist/viewer/p-0aba71fd.js +0 -18
  161. package/dist/viewer/p-423410be.js +0 -4
  162. package/dist/viewer/p-432267bc.entry.js +0 -4
  163. package/dist/viewer/p-7cad9bf4.js +0 -4
  164. package/dist/viewer/p-d90f2f6d.entry.js +0 -4
  165. package/dist/viewer/p-f755af5a.entry.js +0 -4
  166. package/dist/viewer/p-f7cb7e59.js +0 -4
  167. package/dist/viewer/p-fe11d694.js +0 -4
@@ -207,27 +207,6 @@ export class InteractionApi {
207
207
  return camera;
208
208
  });
209
209
  }
210
- /**
211
- * Performs a pan operation of the scene's camera, and requests a new image
212
- * for the updated scene.
213
- *
214
- * @param delta A position delta `{x, y}` in the 2D coordinate space of the
215
- * viewer.
216
- */
217
- async panCameraByDelta(delta) {
218
- return this.transformCamera(({ camera, viewport }) => {
219
- const vv = camera.viewVector();
220
- const u = Vector3.normalize(camera.up);
221
- const v = Vector3.normalize(vv);
222
- const d = Vector3.magnitude(vv) * Math.tan(camera.fovY);
223
- const epsilonX = (delta.x * d) / viewport.width;
224
- const epsilonY = (delta.y / viewport.width) * d;
225
- const xvec = Vector3.cross(u, v);
226
- const yvec = Vector3.cross(v, xvec);
227
- const offset = Vector3.add(Vector3.scale(epsilonX, xvec), Vector3.scale(epsilonY, yvec));
228
- return camera.moveBy(offset);
229
- });
230
- }
231
210
  /**
232
211
  * Performs a view all operation for the scene's bounding box, and requests a
233
212
  * new image for the updated scene.
@@ -286,8 +265,8 @@ export class InteractionApi {
286
265
  return updated.update({
287
266
  // Scale the lookAt point to the same length as the distance to the
288
267
  // center of the bounding box to maintain zoom and pan behavior.
289
- lookAt: Vector3.add(Vector3.scale(camera.distanceToBoundingBoxCenter() /
290
- Vector3.magnitude(updated.viewVector()), updated.viewVector()), updated.position),
268
+ lookAt: Vector3.add(Vector3.scale(Math.abs(camera.signedDistanceToBoundingBoxCenter()) /
269
+ Vector3.magnitude(updated.viewVector), updated.viewVector), updated.position),
291
270
  });
292
271
  });
293
272
  }
@@ -300,7 +279,7 @@ export class InteractionApi {
300
279
  */
301
280
  async zoomCamera(delta) {
302
281
  return this.transformCamera(({ camera, viewport }) => {
303
- const vv = camera.viewVector();
282
+ const vv = camera.viewVector;
304
283
  const v = Vector3.normalize(vv);
305
284
  const distance = Vector3.magnitude(vv);
306
285
  const epsilon = (3 * distance * delta) / viewport.height;
@@ -420,4 +399,4 @@ export class InteractionApi {
420
399
  : fallbackPoint;
421
400
  }
422
401
  }
423
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25BcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2ludGVyYWN0aW9ucy9pbnRlcmFjdGlvbkFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLFdBQVcsRUFDWCxLQUFLLEVBQ0wsS0FBSyxFQUNMLEdBQUcsRUFDSCxPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEVBRUwsVUFBVSxHQUlYLE1BQU0sVUFBVSxDQUFDO0FBMkJsQjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBYztFQVF6QixZQUNVLE1BQWlCLEVBQ2pCLE9BQXNCLEVBQ3RCLFNBQW9DLEVBQ3BDLFFBQXVCLEVBQ3ZCLFFBQXlDLEVBQ3pDLFdBQTJCLEVBQzNCLFVBQXlDLEVBQ3pDLGdCQUErQyxFQUMvQyxnQkFBK0MsRUFDL0MseUJBQTZDLEVBQzdDLDBCQUE4QztJQVY5QyxXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBMkI7SUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBZTtJQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFpQztJQUN6QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7SUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUErQjtJQUMvQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQStCO0lBQy9DLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBb0I7SUFDN0MsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFvQjtJQUV0RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQ25ELENBQUM7RUFFRDs7Ozs7Ozs7S0FRRztFQUNJLFNBQVMsQ0FBQyxNQUFjLEVBQUUsUUFBaUI7SUFDaEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7RUFDNUMsQ0FBQztFQUVEOzs7OztLQUtHO0VBQ0ksS0FBSyxDQUFDLHlCQUF5QixDQUNwQyxLQUFrQjtJQUVsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTlCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7S0FDaEU7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxPQUFPLFdBQVcsSUFBSSxJQUFJO01BQ3hCLENBQUMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUM7TUFDOUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztFQUNoQixDQUFDO0VBRUQ7Ozs7O0tBS0c7RUFDSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBa0I7O0lBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsUUFBUSxFQUFFLDBDQUFFLFVBQVUsRUFBRSxDQUFBLENBQUM7SUFFdkQsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO01BQ3RCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7TUFDbEUsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzFDO1NBQU07TUFDTCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQUM7S0FDL0I7RUFDSCxDQUFDO0VBRUQ7Ozs7OztLQU1HO0VBQ0ksZUFBZSxDQUFDLEtBQWtCO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sUUFBUSxDQUFDLG1CQUFtQixDQUNqQyxLQUFLLEVBQ0wsS0FBSyxDQUFDLEtBQUssRUFDWCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQztLQUNIOztNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztFQUNuRSxDQUFDO0VBRUQ7Ozs7Ozs7S0FPRztFQUNJLEtBQUssQ0FBQyxHQUFHLENBQ2QsUUFBcUIsRUFDckIsYUFBb0MsRUFBRSxFQUN0QyxPQUFPLEdBQUcsQ0FBQztJQUVYLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztFQUN6RSxDQUFDO0VBRU0sS0FBSyxDQUFDLFNBQVMsQ0FDcEIsUUFBcUIsRUFDckIsYUFBb0MsRUFBRSxFQUN0QyxPQUFPLEdBQUcsQ0FBQztJQUVYLElBQUksQ0FBQyxZQUFZLENBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFDMUIsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLENBQ1IsQ0FBQztFQUNKLENBQUM7RUFFTSxLQUFLLENBQUMsU0FBUyxDQUNwQixRQUFxQixFQUNyQixhQUFvQyxFQUFFLEVBQ3RDLE9BQU8sR0FBRyxDQUFDO0lBRVgsSUFBSSxDQUFDLFlBQVksQ0FDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUMxQixRQUFRLEVBQ1IsVUFBVSxFQUNWLE9BQU8sQ0FDUixDQUFDO0VBQ0osQ0FBQztFQUVEOzs7O0tBSUc7RUFDSSxLQUFLLENBQUMsZ0JBQWdCO0lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7TUFDekIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDO01BQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO01BQzlDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0tBQ3RDO0VBQ0gsQ0FBQztFQUVEOzs7Ozs7S0FNRztFQUNJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBa0I7O0lBQzdDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO01BQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztNQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7TUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO01BQzlCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsV0FBVyxFQUFFLENBQUEsQ0FBQztNQUUvQyxJQUFJLENBQUMsYUFBYTtRQUNoQixJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJO1VBQzdELENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDQSxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDMUIsUUFBUTtZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ2hDLEtBQUs7WUFDTCxXQUFXO1dBQ1osQ0FBQztVQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7TUFFaEIsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsTUFBTSxFQUFFLENBQUEsQ0FBQztLQUNwQztFQUNILENBQUM7RUFXTSxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBVztJQUNyQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO01BQ25ELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQ2pELENBQUM7TUFFRixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUNwRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQ3REO1dBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUM1QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQ2pELENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQ3REO01BQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRUQ7Ozs7Ozs7OztLQVNHO0VBQ0ksS0FBSyxDQUFDLHNCQUFzQixDQUFDLFFBQXFCO0lBQ3ZELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRTtNQUN2RSx5Q0FBeUM7TUFDekMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtRQUN4QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUUzQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQ3RDLFFBQVEsRUFDUixLQUFLLENBQUMsS0FBSyxFQUNYLGNBQWMsQ0FDZixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLDBCQUEwQixDQUNwRCxTQUFTLEVBQ1QsTUFBTSxDQUFDLE1BQU0sQ0FDZCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO1VBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysa0VBQWtFLENBQ25FLENBQUM7VUFDRixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBRUQsc0VBQXNFO1FBQ3RFLHNFQUFzRTtRQUN0RSxrRUFBa0U7UUFDbEUsTUFBTSxLQUFLLEdBQ1QsV0FBVyxJQUFJLElBQUk7VUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUM7VUFDckQsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNmLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUM7T0FDcEQ7TUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1FBQ3hCLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFekQsc0VBQXNFO1FBQ3RFLHdDQUF3QztRQUN4QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQ3RDLFFBQVEsRUFDUixLQUFLLENBQUMsS0FBSyxFQUNYLGNBQWMsQ0FDZixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFakQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1VBQ2xCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1VBQzlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEQ7T0FDRjtNQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQztFQUVEOzs7Ozs7S0FNRztFQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFrQjtJQUM5QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO01BQ25ELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztNQUUvQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUN2QyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BRWhDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7TUFDeEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7TUFDaEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7TUFFaEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7TUFDakMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7TUFFcEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUM5QixDQUFDO01BRUYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQztFQUVEOzs7S0FHRztFQUNJLEtBQUssQ0FBQyxPQUFPO0lBQ2xCLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0VBQ3BELENBQUM7RUFFRDs7Ozs7O0tBTUc7RUFDSSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQWtCO0lBQzFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7TUFDbkQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7TUFDOUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FDakQsQ0FBQztNQUVGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO01BQy9DLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO01BRTdDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMxQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7T0FDM0MsQ0FBQyxDQUFDO01BRUgsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7TUFFekQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztNQUM1RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO01BQzdELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztNQUV0RCxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRU0sS0FBSyxDQUFDLG1CQUFtQixDQUM5QixLQUFrQixFQUNsQixLQUFrQjtJQUVsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQ3pCLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFO01BQ2pELElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRTtRQUNuQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxrQkFBa0I7VUFDckIsV0FBVyxJQUFJLElBQUk7WUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7WUFDckQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7T0FDckI7TUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUM5QyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUNqRCxDQUFDO01BRUYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7TUFDM0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7TUFFekMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNyQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztPQUMzQyxDQUFDLENBQUM7TUFFSCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztNQUVyRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO01BQzVELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7TUFDN0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FB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
402
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25BcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2ludGVyYWN0aW9ucy9pbnRlcmFjdGlvbkFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLFdBQVcsRUFDWCxLQUFLLEVBQ0wsS0FBSyxFQUNMLEdBQUcsRUFDSCxPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEVBRUwsVUFBVSxHQUlYLE1BQU0sVUFBVSxDQUFDO0FBOEJsQjs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLGNBQWM7RUFRbEMsWUFDWSxNQUFpQixFQUNuQixPQUFzQixFQUNwQixTQUFvQyxFQUNwQyxRQUF1QixFQUN2QixRQUF5QyxFQUN6QyxXQUEyQixFQUM3QixVQUF5QyxFQUN6QyxnQkFBK0MsRUFDL0MsZ0JBQStDLEVBQy9DLHlCQUE2QyxFQUM3QywwQkFBOEM7SUFWNUMsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFlO0lBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQTJCO0lBQ3BDLGFBQVEsR0FBUixRQUFRLENBQWU7SUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBaUM7SUFDekMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQzdCLGVBQVUsR0FBVixVQUFVLENBQStCO0lBQ3pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBK0I7SUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUErQjtJQUMvQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQW9CO0lBQzdDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBb0I7SUFFdEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FB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T0FBTyxDQUFDLFNBQVMsQ0FDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FDakQsQ0FBQztNQUVGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO01BQzNDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO01BRXpDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMxQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7T0FDM0MsQ0FBQyxDQUFDO01BRUgsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7TUFFckQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztNQUM1RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO01BQzdELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFR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
@@ -0,0 +1,50 @@
1
+ import { Vector3 } from '@vertexvis/geometry';
2
+ import { InteractionApi, } from './interactionApi';
3
+ export class InteractionApiOrthographic extends InteractionApi {
4
+ constructor(stream, cursors, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter) {
5
+ super(stream, cursors, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter);
6
+ }
7
+ /**
8
+ * Performs a pan operation of the scene's camera, and requests a new image
9
+ * for the updated scene.
10
+ *
11
+ * @param delta A position delta `{x, y}` in the 2D coordinate space of the
12
+ * viewer.
13
+ */
14
+ async panCameraByDelta(delta) {
15
+ return this.transformCamera(({ camera, viewport }) => {
16
+ const viewVector = camera.viewVector;
17
+ const normalizedUpVector = Vector3.normalize(camera.up);
18
+ const normalizedViewVector = Vector3.normalize(viewVector);
19
+ const d = Vector3.magnitude(viewVector) * Math.tan(camera.fovHeight);
20
+ const epsilonX = (delta.x * d) / viewport.width;
21
+ const epsilonY = (delta.y / viewport.width) * d;
22
+ const xvec = Vector3.cross(normalizedUpVector, normalizedViewVector);
23
+ const yvec = Vector3.cross(normalizedViewVector, xvec);
24
+ const offset = Vector3.add(Vector3.scale(epsilonX, xvec), Vector3.scale(epsilonY, yvec));
25
+ return camera.moveBy(offset);
26
+ });
27
+ }
28
+ async transformCamera(t) {
29
+ var _a;
30
+ if (this.isInteracting()) {
31
+ const scene = this.getScene();
32
+ const viewport = this.getViewport();
33
+ const frame = this.getFrame();
34
+ const depthBuffer = await (frame === null || frame === void 0 ? void 0 : frame.depthBuffer());
35
+ this.currentCamera =
36
+ this.currentCamera != null && viewport != null && frame != null
37
+ ? t({
38
+ camera: this.currentCamera,
39
+ viewport,
40
+ scale: scene.scale(),
41
+ boundingBox: scene.boundingBox(),
42
+ frame,
43
+ depthBuffer,
44
+ })
45
+ : undefined;
46
+ await ((_a = this.currentCamera) === null || _a === void 0 ? void 0 : _a.render());
47
+ }
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25BcGlPcnRob2dyYXBoaWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2ludGVyYWN0aW9ucy9pbnRlcmFjdGlvbkFwaU9ydGhvZ3JhcGhpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPckQsT0FBTyxFQUVMLGNBQWMsR0FHZixNQUFNLGtCQUFrQixDQUFDO0FBRzFCLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxjQUFjO0VBQzVELFlBQ0UsTUFBaUIsRUFDakIsT0FBc0IsRUFDdEIsU0FBb0MsRUFDcEMsUUFBdUIsRUFDdkIsUUFBeUMsRUFDekMsV0FBMkIsRUFDM0IsVUFBeUMsRUFDekMsZ0JBQStDLEVBQy9DLGdCQUErQyxFQUMvQyx5QkFBNkMsRUFDN0MsMEJBQThDO0lBRTlDLEtBQUssQ0FDSCxNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFdBQVcsRUFDWCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQix5QkFBeUIsRUFDekIsMEJBQTBCLENBQzNCLENBQUM7RUFDSixDQUFDO0VBRUQ7Ozs7OztLQU1HO0VBQ0ksS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQWtCO0lBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7TUFDbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztNQUNyQyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BQ3hELE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztNQUUzRCxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO01BQ3JFLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO01BQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BRWhELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztNQUNyRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO01BQ3ZELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FDOUIsQ0FBQztNQUVGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFTSxLQUFLLENBQUMsZUFBZSxDQUMxQixDQUFzQzs7SUFFdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7TUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO01BQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztNQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7TUFDOUIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxXQUFXLEVBQUUsQ0FBQSxDQUFDO01BRS9DLElBQUksQ0FBQyxhQUFhO1FBQ2hCLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUk7VUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNBLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBbUM7WUFDaEQsUUFBUTtZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ2hDLEtBQUs7WUFDTCxXQUFXO1dBQ1osQ0FBQztVQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7TUFFaEIsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsTUFBTSxFQUFFLENBQUEsQ0FBQztLQUNwQztFQUNILENBQUM7Q0FDRiJ9
@@ -0,0 +1,50 @@
1
+ import { Vector3 } from '@vertexvis/geometry';
2
+ import { InteractionApi, } from './interactionApi';
3
+ export class InteractionApiPerspective extends InteractionApi {
4
+ constructor(stream, cursors, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter) {
5
+ super(stream, cursors, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter);
6
+ }
7
+ /**
8
+ * Performs a pan operation of the scene's camera, and requests a new image
9
+ * for the updated scene.
10
+ *
11
+ * @param delta A position delta `{x, y}` in the 2D coordinate space of the
12
+ * viewer.
13
+ */
14
+ async panCameraByDelta(delta) {
15
+ return this.transformCamera(({ camera, viewport }) => {
16
+ const vv = camera.viewVector;
17
+ const u = Vector3.normalize(camera.up);
18
+ const v = Vector3.normalize(vv);
19
+ const d = Vector3.magnitude(vv) * Math.tan(camera.fovY);
20
+ const epsilonX = (delta.x * d) / viewport.width;
21
+ const epsilonY = (delta.y / viewport.width) * d;
22
+ const xvec = Vector3.cross(u, v);
23
+ const yvec = Vector3.cross(v, xvec);
24
+ const offset = Vector3.add(Vector3.scale(epsilonX, xvec), Vector3.scale(epsilonY, yvec));
25
+ return camera.moveBy(offset);
26
+ });
27
+ }
28
+ async transformCamera(t) {
29
+ var _a;
30
+ if (this.isInteracting()) {
31
+ const scene = this.getScene();
32
+ const viewport = this.getViewport();
33
+ const frame = this.getFrame();
34
+ const depthBuffer = await (frame === null || frame === void 0 ? void 0 : frame.depthBuffer());
35
+ this.currentCamera =
36
+ this.currentCamera != null && viewport != null && frame != null
37
+ ? t({
38
+ camera: this.currentCamera,
39
+ viewport,
40
+ scale: scene.scale(),
41
+ boundingBox: scene.boundingBox(),
42
+ frame,
43
+ depthBuffer,
44
+ })
45
+ : undefined;
46
+ await ((_a = this.currentCamera) === null || _a === void 0 ? void 0 : _a.render());
47
+ }
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25BcGlQZXJzcGVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaW50ZXJhY3Rpb25zL2ludGVyYWN0aW9uQXBpUGVyc3BlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFTLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBT3JELE9BQU8sRUFFTCxjQUFjLEdBR2YsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztFQUMzRCxZQUNFLE1BQWlCLEVBQ2pCLE9BQXNCLEVBQ3RCLFNBQW9DLEVBQ3BDLFFBQXVCLEVBQ3ZCLFFBQXlDLEVBQ3pDLFdBQTJCLEVBQzNCLFVBQXlDLEVBQ3pDLGdCQUErQyxFQUMvQyxnQkFBK0MsRUFDL0MseUJBQTZDLEVBQzdDLDBCQUE4QztJQUU5QyxLQUFLLENBQ0gsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLDBCQUEwQixDQUMzQixDQUFDO0VBQ0osQ0FBQztFQUVEOzs7Ozs7S0FNRztFQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFrQjtJQUM5QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO01BQ25ELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7TUFFN0IsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7TUFDdkMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUVoQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO01BQ3hELE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO01BQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BRWhELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO01BQ2pDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO01BRXBDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FDOUIsQ0FBQztNQUVGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFTSxLQUFLLENBQUMsZUFBZSxDQUMxQixDQUFxQzs7SUFFckMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7TUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO01BQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztNQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7TUFDOUIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxXQUFXLEVBQUUsQ0FBQSxDQUFDO01BRS9DLElBQUksQ0FBQyxhQUFhO1FBQ2hCLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUk7VUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNBLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBa0M7WUFDL0MsUUFBUTtZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ2hDLEtBQUs7WUFDTCxXQUFXO1dBQ1osQ0FBQztVQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7TUFFaEIsTUFBTSxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsTUFBTSxFQUFFLENBQUEsQ0FBQztLQUNwQztFQUNILENBQUM7Q0FDRiJ9
@@ -1,13 +1,35 @@
1
- import { Dimensions } from '@vertexvis/geometry';
1
+ import { Dimensions, Vector3 } from '@vertexvis/geometry';
2
2
  import { protoToDate } from '@vertexvis/stream-api';
3
3
  import { Mapper as M } from '@vertexvis/utils';
4
4
  import { Token } from '../token';
5
- import { CrossSectioning, Frame, FrameImage, FramePerspectiveCamera, FrameScene, Orientation, } from '../types';
5
+ import { CrossSectioning, Frame, FrameCameraBase, FrameImage, FrameScene, Orientation, } from '../types';
6
6
  import { fromPbUuid } from './core';
7
7
  import { fromPbBoundingBox3f, fromPbDim, fromPbRect, fromPbVector3f, } from './geometry';
8
8
  import { fromPbRGBi } from './material';
9
9
  import { fromPbBytesValue } from './scalar';
10
- export const fromPbCamera = M.defineMapper(M.read(M.mapProp('position', M.compose(M.required('position'), fromPbVector3f)), M.mapProp('lookAt', M.compose(M.required('lookAt'), fromPbVector3f)), M.mapProp('up', M.compose(M.required('up'), fromPbVector3f))), ([position, lookAt, up]) => ({ position, lookAt, up }));
10
+ export const fromPbPerspectiveCamera = M.defineMapper(M.read(M.mapProp('position', M.compose(M.required('position'), fromPbVector3f)), M.mapProp('lookAt', M.compose(M.required('lookAt'), fromPbVector3f)), M.mapProp('up', M.compose(M.required('up'), fromPbVector3f))), ([position, lookAt, up]) => ({
11
+ position,
12
+ lookAt,
13
+ up,
14
+ // TODO: map fovY property when available
15
+ fovY: 45,
16
+ }));
17
+ export const fromPbOrthographicCamera = M.defineMapper(M.read(M.mapProp('viewVector', M.compose(M.required('viewVector'), fromPbVector3f)), M.mapProp('lookAt', M.compose(M.required('lookAt'), fromPbVector3f)), M.mapProp('up', M.compose(M.required('up'), fromPbVector3f)), M.mapProp('fovHeight', M.required('fovHeight'))), ([viewVector, lookAt, up, fovHeight]) => ({
18
+ viewVector,
19
+ lookAt,
20
+ up,
21
+ fovHeight,
22
+ }));
23
+ export const fromPbCamera = M.defineMapper(M.read(M.mapProp('position', M.ifDefined(fromPbVector3f)), M.mapProp('lookAt', M.ifDefined(fromPbVector3f)), M.mapProp('up', M.ifDefined(fromPbVector3f)), M.mapProp('perspective', M.ifDefined(fromPbPerspectiveCamera)), M.mapProp('orthographic', M.ifDefined(fromPbOrthographicCamera))), ([position, lookAt, up, perspective, orthographic]) => {
24
+ var _a;
25
+ return (_a = perspective !== null && perspective !== void 0 ? perspective : orthographic) !== null && _a !== void 0 ? _a : {
26
+ position: position !== null && position !== void 0 ? position : Vector3.back(),
27
+ lookAt: lookAt !== null && lookAt !== void 0 ? lookAt : Vector3.origin(),
28
+ up: up !== null && up !== void 0 ? up : Vector3.up(),
29
+ // TODO: map fovY property when available
30
+ fovY: 45,
31
+ };
32
+ });
11
33
  export const fromPbSectionPlane = M.defineMapper(M.read(M.mapProp('normal', M.compose(M.required('normal'), fromPbVector3f)), M.requiredProp('offset')), ([normal, offset]) => ({ normal, offset }));
12
34
  const fromPbImageAttributes = M.defineMapper(M.read(M.mapProp('frameDimensions', M.compose(M.required('frameDimensions'), fromPbDim)), M.mapProp('imageRect', M.compose(M.required('imageRect'), fromPbRect)), M.mapProp('scaleFactor', M.required('scaleFactor'))), ([frameDimensions, imageRect, imageScale]) => ({
13
35
  frameDimensions,
@@ -27,7 +49,7 @@ const fromPbSceneAttributes = M.defineMapper(M.read(M.mapProp('camera', M.compos
27
49
  hasChanged,
28
50
  }));
29
51
  const fromPbFrameSceneAttributes = M.defineMapper(M.read(M.mapProp('sceneAttributes', M.compose(M.required('sceneAttributes'), fromPbSceneAttributes))), ([sceneAttr]) => sceneAttr);
30
- const fromPbFrameCamera = M.defineMapper(M.read(fromPbFrameSceneAttributes, fromPbFrameImageAttributes), ([sceneAttr, imageAttr]) => FramePerspectiveCamera.fromBoundingBox(sceneAttr.camera, sceneAttr.boundingBox, Dimensions.aspectRatio(imageAttr.frameDimensions)));
52
+ const fromPbFrameCamera = M.defineMapper(M.read(fromPbFrameSceneAttributes, fromPbFrameImageAttributes), ([sceneAttr, imageAttr]) => FrameCameraBase.fromBoundingBox(sceneAttr.camera, sceneAttr.boundingBox, Dimensions.aspectRatio(imageAttr.frameDimensions)));
31
53
  function fromPbFrameScene(worldOrientation) {
32
54
  return M.defineMapper(M.read(fromPbFrameSceneAttributes, fromPbFrameCamera), ([sceneAttr, camera]) => new FrameScene(camera, sceneAttr.boundingBox, sceneAttr.crossSectioning, worldOrientation, sceneAttr.hasChanged));
33
55
  }
@@ -64,4 +86,4 @@ export const fromPbRefreshTokenResponse = M.defineMapper(M.compose(M.requiredPro
64
86
  export const fromPbRefreshTokenResponseOrThrow = M.ifInvalidThrow(fromPbRefreshTokenResponse);
65
87
  export const fromPbSyncTimeResponse = M.defineMapper(M.compose(M.requiredProp('syncTime'), M.requiredProp('replyTime'), M.read(M.requiredProp('seconds'), M.requiredProp('nanos'))), ([seconds, nanos]) => protoToDate({ seconds, nanos }));
66
88
  export const fromPbSyncTimeResponseOrThrow = M.ifInvalidThrow(fromPbSyncTimeResponse);
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVTdHJlYW1pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL21hcHBlcnMvZnJhbWVTdHJlYW1pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUNMLGVBQWUsRUFDZixLQUFLLEVBRUwsVUFBVSxFQUNWLHNCQUFzQixFQUN0QixVQUFVLEVBRVYsV0FBVyxHQUNaLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixTQUFTLEVBQ1QsVUFBVSxFQUNWLGNBQWMsR0FDZixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBR3JCLENBQUMsQ0FBQyxZQUFZLENBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEVBQ3hFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUNwRSxDQUFDLENB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
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVTdHJlYW1pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL21hcHBlcnMvZnJhbWVTdHJlYW1pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsS0FBSyxFQUVMLGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUVWLFdBQVcsR0FDWixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBR2hDLENBQUMsQ0FBQyxZQUFZLENBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEVBQ3hFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUNw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
@@ -2,7 +2,8 @@
2
2
  * @see https://openframeworks.cc/documentation/math/ofMatrix4x4/
3
3
  * @see https://github.com/openframeworks/openFrameworks/blob/356612673304e2f8b0584bc4080b58ee36db62f7/libs/openFrameworks/math/ofMatrix4x4.cpp
4
4
  */
5
- import { Angle, Vector3 } from '@vertexvis/geometry';
5
+ import { Angle, Matrix4, Vector3 } from '@vertexvis/geometry';
6
+ import { isOrthographicFrameCamera } from '../types/frameCamera';
6
7
  /**
7
8
  * Matrix becomes a perspective projection matrix.
8
9
  *
@@ -80,7 +81,10 @@ export function makePerspectiveMatrix(near, far, fovY, aspect) {
80
81
  * @returns A matrix.
81
82
  */
82
83
  export function makeLookAtViewMatrix(camera) {
83
- const { position, lookAt, up } = camera;
84
+ const { lookAt, up } = camera;
85
+ const position = isOrthographicFrameCamera(camera)
86
+ ? Vector3.add(camera.lookAt, Vector3.negate(camera.viewVector))
87
+ : camera.position;
84
88
  const z = Vector3.normalize(Vector3.subtract(position, lookAt));
85
89
  const x = Vector3.normalize(Vector3.cross(up, z));
86
90
  const y = Vector3.cross(z, x);
@@ -92,6 +96,7 @@ export function makeLookAtViewMatrix(camera) {
92
96
  0, 0, 0, 1,
93
97
  ];
94
98
  /* eslint-enable prettier/prettier */
99
+ return Matrix4.makeIdentity();
95
100
  }
96
101
  /**
97
102
  * Matrix becomes a combination of translation and rotation.
@@ -105,7 +110,10 @@ export function makeLookAtViewMatrix(camera) {
105
110
  * @returns A matrix.
106
111
  */
107
112
  export function makeLookAtMatrix(camera) {
108
- const { position, lookAt, up } = camera;
113
+ const { lookAt, up } = camera;
114
+ const position = isOrthographicFrameCamera(camera)
115
+ ? Vector3.add(camera.lookAt, Vector3.negate(camera.viewVector))
116
+ : camera.position;
109
117
  const z = Vector3.normalize(Vector3.subtract(position, lookAt));
110
118
  const x = Vector3.normalize(Vector3.cross(up, z));
111
119
  const y = Vector3.cross(z, x);
@@ -117,5 +125,6 @@ export function makeLookAtMatrix(camera) {
117
125
  0, 0, 0, 1
118
126
  ];
119
127
  /* eslint-enable prettier/prettier */
128
+ return Matrix4.makeIdentity();
120
129
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlbmRlcmluZy9tYXRyaWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFXLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTlEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBWSxFQUNaLEtBQWEsRUFDYixHQUFXLEVBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixHQUFXO0VBRVgsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7RUFDMUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7RUFDMUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztFQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztFQUUzQyxzQ0FBc0M7RUFDdEMsT0FBTztJQUNMLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNwQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNWLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztHQUNaLENBQUM7RUFDRixxQ0FBcUM7QUFDdkMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsSUFBWSxFQUNaLEdBQVcsRUFDWCxJQUFZLEVBQ1osTUFBYztFQUVkLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7RUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQztFQUUzQixNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztFQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUM7RUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDO0VBQ2pCLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDO0VBRXJCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE1BQStCO0VBRS9CLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQztFQUV4QyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFDaEUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ2xELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBRTlCLHNDQUFzQztFQUN0QyxPQUFPO0lBQ0wsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDeEMsQ0FBQyxFQUFJLENBQUMsRUFBSSxDQUFDLEVBQUksQ0FBQztHQUNqQixDQUFDO0VBQ0YscUNBQXFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixNQUErQjtFQUUvQixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUM7RUFFeEMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0VBQ2hFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNsRCxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUU5QixzQ0FBc0M7RUFDdEMsT0FBTztJQUNMLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsRUFBSSxDQUFDLEVBQUksQ0FBQyxFQUFJLENBQUM7R0FDakIsQ0FBQztFQUNGLHFDQUFxQztBQUN2QyxDQUFDIn0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlbmRlcmluZy9tYXRyaWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUc5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQVksRUFDWixLQUFhLEVBQ2IsR0FBVyxFQUNYLE1BQWMsRUFDZCxJQUFZLEVBQ1osR0FBVztFQUVYLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO0VBQzFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0VBQzFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7RUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7RUFFM0Msc0NBQXNDO0VBQ3RDLE9BQU87SUFDTCxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxD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
@@ -1,6 +1,6 @@
1
1
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
2
  const SceneMocks = jest.createMockFromModule('../../scenes');
3
- export const cameraMock = new SceneMocks.Camera();
3
+ export const cameraMock = new SceneMocks.PerspectiveCamera();
4
4
  cameraMock.fitToBoundingBox.mockReturnValue(cameraMock);
5
5
  cameraMock.flyTo.mockReturnValue(cameraMock);
6
6
  cameraMock.moveBy.mockReturnValue(cameraMock);
@@ -10,4 +10,4 @@ cameraMock.update.mockReturnValue(cameraMock);
10
10
  cameraMock.viewAll.mockReturnValue(cameraMock);
11
11
  export const sceneMock = new SceneMocks.Scene();
12
12
  sceneMock.camera.mockReturnValue(cameraMock);
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NjZW5lcy9fX21vY2tzX18vbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsOERBQThEO0FBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQVEsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFZLENBQUM7QUFFM0QsVUFBVSxDQUFDLGdCQUE4QixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN0RSxVQUFVLENBQUMsS0FBbUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDM0QsVUFBVSxDQUFDLE1BQW9CLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzVELFVBQVUsQ0FBQyxnQkFBOEIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEUsVUFBVSxDQUFDLFlBQTBCLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2xFLFVBQVUsQ0FBQyxNQUFvQixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM1RCxVQUFVLENBQUMsT0FBcUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssRUFBVyxDQUFDO0FBRXhELFNBQVMsQ0FBQyxNQUFvQixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyJ9
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NjZW5lcy9fX21vY2tzX18vbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsOERBQThEO0FBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQVEsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQ3JCLElBQUksVUFBVSxDQUFDLGlCQUFpQixFQUF1QixDQUFDO0FBRXpELFVBQVUsQ0FBQyxnQkFBOEIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEUsVUFBVSxDQUFDLEtBQW1CLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzNELFVBQVUsQ0FBQyxNQUFvQixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM1RCxVQUFVLENBQUMsZ0JBQThCLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RFLFVBQVUsQ0FBQyxZQUEwQixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsRSxVQUFVLENBQUMsTUFBb0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDNUQsVUFBVSxDQUFDLE9BQXFCLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQVcsQ0FBQztBQUV4RCxTQUFTLENBQUMsTUFBb0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMifQ==