@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
@@ -3,6 +3,7 @@ import { decodePng } from '../../workers/png-decoder-pool';
3
3
  import * as ClippingPlanes from './clippingPlanes';
4
4
  import { DepthBuffer } from './depthBuffer';
5
5
  import { FeatureMap } from './featureMap';
6
+ import * as FrameCamera from './frameCamera';
6
7
  export class Frame {
7
8
  constructor(correlationIds, sequenceNumber, dimensions, image, scene, depthBufferBytes, featureMapBytes) {
8
9
  this.correlationIds = correlationIds;
@@ -55,19 +56,14 @@ export class FrameScene {
55
56
  this.hasChanged = hasChanged;
56
57
  }
57
58
  }
58
- export class FramePerspectiveCamera {
59
- constructor(position, lookAt, up, near, far, aspectRatio, fovY) {
59
+ export class FrameCameraBase {
60
+ constructor(position, lookAt, up, near, far, aspectRatio) {
60
61
  this.position = position;
61
62
  this.lookAt = lookAt;
62
63
  this.up = up;
63
64
  this.near = near;
64
65
  this.far = far;
65
66
  this.aspectRatio = aspectRatio;
66
- this.fovY = fovY;
67
- }
68
- static fromBoundingBox(camera, boundingBox, aspectRatio) {
69
- const { near, far } = ClippingPlanes.fromBoundingBoxAndLookAtCamera(boundingBox, camera);
70
- return new FramePerspectiveCamera(camera.position, camera.lookAt, camera.up, near, far, aspectRatio, 45);
71
67
  }
72
68
  get direction() {
73
69
  return Vector3.normalize(this.viewVector);
@@ -90,22 +86,14 @@ export class FramePerspectiveCamera {
90
86
  get projectionViewMatrix() {
91
87
  return this.computeCameraMatrices().projectionViewMatrix;
92
88
  }
93
- computeCameraMatrices() {
94
- if (this.cameraMatrices == null) {
95
- const viewMatrix = Matrix4.makeLookAtView(this.position, this.lookAt, this.up);
96
- const worldMatrix = Matrix4.invert(viewMatrix);
97
- const projectionMatrix = Matrix4.makePerspective(this.near, this.far, this.fovY, this.aspectRatio);
98
- const projectionMatrixInverse = Matrix4.invert(projectionMatrix);
99
- const projectionViewMatrix = Matrix4.multiply(projectionMatrix, viewMatrix);
100
- this.cameraMatrices = {
101
- viewMatrix,
102
- worldMatrix,
103
- projectionMatrix,
104
- projectionMatrixInverse,
105
- projectionViewMatrix,
106
- };
89
+ static fromBoundingBox(camera, boundingBox, aspectRatio) {
90
+ const { near, far } = ClippingPlanes.fromBoundingBoxAndLookAtCamera(boundingBox, camera);
91
+ if (FrameCamera.isOrthographicFrameCamera(camera)) {
92
+ return new FrameOrthographicCamera(camera.viewVector, camera.lookAt, camera.up, near, far, aspectRatio, camera.fovHeight);
93
+ }
94
+ else {
95
+ return new FramePerspectiveCamera(camera.position, camera.lookAt, camera.up, near, far, aspectRatio, 45);
107
96
  }
108
- return this.cameraMatrices;
109
97
  }
110
98
  /**
111
99
  * Checks if the given point, in world space, is behind the near plane
@@ -136,5 +124,82 @@ export class FramePerspectiveCamera {
136
124
  const pt = Plane.intersectLine(nearP, vl);
137
125
  return pt != null ? Vector3.add(pt, position) : undefined;
138
126
  }
127
+ computeCameraMatrices() {
128
+ if (this.cameraMatrices == null) {
129
+ return {
130
+ viewMatrix: Matrix4.makeIdentity(),
131
+ worldMatrix: Matrix4.makeIdentity(),
132
+ projectionMatrix: Matrix4.makeIdentity(),
133
+ projectionMatrixInverse: Matrix4.makeIdentity(),
134
+ projectionViewMatrix: Matrix4.makeIdentity(),
135
+ };
136
+ }
137
+ return this.cameraMatrices;
138
+ }
139
+ updateCameraMatrices(cameraMatrices) {
140
+ this.cameraMatrices = cameraMatrices;
141
+ return this.cameraMatrices;
142
+ }
143
+ }
144
+ export class FramePerspectiveCamera extends FrameCameraBase {
145
+ constructor(position, lookAt, up, near, far, aspectRatio, fovY) {
146
+ super(position, lookAt, up, near, far, aspectRatio);
147
+ this.position = position;
148
+ this.lookAt = lookAt;
149
+ this.up = up;
150
+ this.near = near;
151
+ this.far = far;
152
+ this.aspectRatio = aspectRatio;
153
+ this.fovY = fovY;
154
+ }
155
+ computeCameraMatrices() {
156
+ if (this.cameraMatrices == null) {
157
+ const viewMatrix = Matrix4.makeLookAtView(this.position, this.lookAt, this.up);
158
+ const worldMatrix = Matrix4.invert(viewMatrix);
159
+ const projectionMatrix = Matrix4.makePerspective(this.near, this.far, this.fovY, this.aspectRatio);
160
+ const projectionMatrixInverse = Matrix4.invert(projectionMatrix);
161
+ const projectionViewMatrix = Matrix4.multiply(projectionMatrix, viewMatrix);
162
+ return super.updateCameraMatrices({
163
+ viewMatrix,
164
+ worldMatrix,
165
+ projectionMatrix,
166
+ projectionMatrixInverse,
167
+ projectionViewMatrix,
168
+ });
169
+ }
170
+ return this.cameraMatrices;
171
+ }
172
+ }
173
+ export class FrameOrthographicCamera extends FrameCameraBase {
174
+ constructor(viewVector, lookAt, up, near, far, aspectRatio, fovHeight) {
175
+ super(Vector3.add(lookAt, Vector3.negate(viewVector)), lookAt, up, near, far, aspectRatio);
176
+ this.lookAt = lookAt;
177
+ this.up = up;
178
+ this.near = near;
179
+ this.far = far;
180
+ this.aspectRatio = aspectRatio;
181
+ this.fovHeight = fovHeight;
182
+ this.top = fovHeight * 0.5;
183
+ this.bottom = -this.top;
184
+ this.right = this.top * aspectRatio;
185
+ this.left = -this.right;
186
+ }
187
+ computeCameraMatrices() {
188
+ if (this.cameraMatrices == null) {
189
+ const viewMatrix = Matrix4.makeLookAtView(this.position, this.lookAt, this.up);
190
+ const worldMatrix = Matrix4.invert(viewMatrix);
191
+ const projectionMatrix = Matrix4.makeOrthographic(this.left, this.right, this.bottom, this.top, this.near, this.far);
192
+ const projectionMatrixInverse = Matrix4.invert(projectionMatrix);
193
+ const projectionViewMatrix = Matrix4.multiply(projectionMatrix, viewMatrix);
194
+ return super.updateCameraMatrices({
195
+ viewMatrix,
196
+ worldMatrix,
197
+ projectionMatrix,
198
+ projectionMatrixInverse,
199
+ projectionViewMatrix,
200
+ });
201
+ }
202
+ return this.cameraMatrices;
203
+ }
139
204
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzL2ZyYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxLQUFLLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFFTCxPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxLQUFLLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJMUMsTUFBTSxPQUFPLEtBQUs7RUFJaEIsWUFDa0IsY0FBd0IsRUFDeEIsY0FBc0IsRUFDdEIsVUFBaUMsRUFDakMsS0FBaUIsRUFDakIsS0FBaUIsRUFDaEIsZ0JBQXdDLEVBQ3hDLGVBQXVDO0lBTnhDLG1CQUFjLEdBQWQsY0FBYyxDQUFVO0lBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO0lBQ3RCLGVBQVUsR0FBVixVQUFVLENBQXVCO0lBQ2pDLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO0lBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtFQUN2RCxDQUFDO0VBRUcsS0FBSyxDQUFDLFdBQVc7SUFDdEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxFQUFFO01BQ2xDLElBQUksQ0FBQyxpQkFBaUI7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUk7VUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztVQUMvRCxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FB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
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzL2ZyYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxLQUFLLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFFTCxPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxLQUFLLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFHN0MsTUFBTSxPQUFPLEtBQUs7RUFJaEIsWUFDa0IsY0FBd0IsRUFDeEIsY0FBc0IsRUFDdEIsVUFBaUMsRUFDakMsS0FBaUIsRUFDakIsS0FBaUIsRUFDaEIsZ0JBQXdDLEVBQ3hDLGVBQXVDO0lBTnhDLG1CQUFjLEdBQWQsY0FBYyxDQUFVO0lBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO0lBQ3RCLGVBQVUsR0FBVixVQUFVLENBQXVCO0lBQ2pDLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO0lBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtFQUN2RCxDQUFDO0VBRUcsS0FBSyxDQUFDLFdBQVc7SUFDdEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxFQUFFO01BQ2xDLElBQUksQ0FBQyxpQkFBaUI7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUk7VUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FB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
@@ -1,9 +1,84 @@
1
- import { Vector3 } from '@vertexvis/geometry';
2
- export function create(data = {}) {
1
+ import { Angle, Vector3 } from '@vertexvis/geometry';
2
+ export function isPerspectiveFrameCamera(camera) {
3
+ return camera.position != null;
4
+ }
5
+ export function isOrthographicFrameCamera(camera) {
6
+ const asOrtho = camera;
7
+ return asOrtho.viewVector != null && asOrtho.fovHeight != null;
8
+ }
9
+ export function withPositionAndViewVector(camera) {
10
+ if (isOrthographicFrameCamera(camera)) {
11
+ return Object.assign(Object.assign({}, camera), { position: Vector3.add(camera.lookAt, Vector3.negate(camera.viewVector)) });
12
+ }
13
+ else {
14
+ return Object.assign(Object.assign({}, camera), { viewVector: Vector3.subtract(camera.lookAt, camera.position) });
15
+ }
16
+ }
17
+ export function createPerspective(data = {}) {
18
+ var _a, _b, _c, _d;
3
19
  return {
4
- position: data.position || Vector3.origin(),
5
- lookAt: data.lookAt || Vector3.origin(),
6
- up: data.up || Vector3.up(),
20
+ position: (_a = data.position) !== null && _a !== void 0 ? _a : Vector3.forward(),
21
+ lookAt: (_b = data.lookAt) !== null && _b !== void 0 ? _b : Vector3.origin(),
22
+ up: (_c = data.up) !== null && _c !== void 0 ? _c : Vector3.up(),
23
+ fovY: (_d = data.fovY) !== null && _d !== void 0 ? _d : 45,
7
24
  };
8
25
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVDYW1lcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzL2ZyYW1lQ2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVE5QyxNQUFNLFVBQVUsTUFBTSxDQUFDLE9BQTZCLEVBQUU7RUFDcEQsT0FBTztJQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7SUFDM0MsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtJQUN2QyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFO0dBQzVCLENBQUM7QUFDSixDQUFDIn0=
26
+ export function createOrthographic(data = {}) {
27
+ var _a, _b, _c, _d;
28
+ return {
29
+ viewVector: (_a = data.viewVector) !== null && _a !== void 0 ? _a : Vector3.back(),
30
+ lookAt: (_b = data.lookAt) !== null && _b !== void 0 ? _b : Vector3.origin(),
31
+ up: (_c = data.up) !== null && _c !== void 0 ? _c : Vector3.up(),
32
+ fovHeight: (_d = data.fovHeight) !== null && _d !== void 0 ? _d : 1.0,
33
+ };
34
+ }
35
+ export function toOrthographic(data) {
36
+ const viewVector = Vector3.subtract(data.lookAt, data.position);
37
+ return {
38
+ viewVector,
39
+ up: data.up,
40
+ lookAt: data.lookAt,
41
+ fovHeight: 2 *
42
+ Vector3.magnitude(viewVector) *
43
+ Math.tan(Angle.toRadians(data.fovY / 2.0)),
44
+ };
45
+ }
46
+ export function toPerspective(data, fovY = 45) {
47
+ const expectedMagnitude = data.fovHeight / (2 * Math.tan(Angle.toRadians(fovY / 2)));
48
+ const receivedMagnitude = Vector3.magnitude(data.viewVector);
49
+ const magnitudeScale = expectedMagnitude / receivedMagnitude;
50
+ return {
51
+ position: Vector3.add(data.lookAt, Vector3.negate(Vector3.scale(magnitudeScale, data.viewVector))),
52
+ up: data.up,
53
+ lookAt: data.lookAt,
54
+ fovY,
55
+ };
56
+ }
57
+ export function toProtobuf(camera) {
58
+ if (isOrthographicFrameCamera(camera)) {
59
+ return {
60
+ orthographic: {
61
+ viewVector: Object.assign({}, camera.viewVector),
62
+ lookAt: Object.assign({}, camera.lookAt),
63
+ up: Object.assign({}, camera.up),
64
+ fovHeight: camera.fovHeight,
65
+ },
66
+ };
67
+ }
68
+ else if (isPerspectiveFrameCamera(camera)) {
69
+ return {
70
+ perspective: {
71
+ position: Object.assign({}, camera.position),
72
+ lookAt: Object.assign({}, camera.lookAt),
73
+ up: Object.assign({}, camera.up),
74
+ },
75
+ position: Object.assign({}, camera.position),
76
+ lookAt: Object.assign({}, camera.lookAt),
77
+ up: Object.assign({}, camera.up),
78
+ };
79
+ }
80
+ else {
81
+ return Object.assign({}, camera);
82
+ }
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVDYW1lcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzL2ZyYW1lQ2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFrQnJELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsTUFBNEI7RUFFNUIsT0FBUSxNQUFpQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsTUFBNEI7RUFFNUIsTUFBTSxPQUFPLEdBQUcsTUFBaUMsQ0FBQztFQUNsRCxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBbUI7RUFJM0QsSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtJQUNyQyx1Q0FDSyxNQUFNLEtBQ1QsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUN2RTtHQUNIO09BQU07SUFDTCx1Q0FDSyxNQUFNLEtBQ1QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQzVEO0dBQ0g7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixPQUF3QyxFQUFFOztFQUUxQyxPQUFPO0lBQ0wsUUFBUSxFQUFFLE1BQUEsSUFBSSxDQUFDLFFBQVEsbUNBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtJQUM1QyxNQUFNLEVBQUUsTUFBQSxJQUFJLENBQUMsTUFBTSxtQ0FBSSxPQUFPLENBQUMsTUFB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
@@ -136,4 +136,4 @@ export class Viewport {
136
136
  return Dimensions.create(this.width, this.height);
137
137
  }
138
138
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzL3ZpZXdwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBRVYsS0FBSyxFQUNMLEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFNN0I7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7RUFNbkI7RUFDRTs7S0FFRztFQUNhLEtBQWE7RUFFN0I7O0tBRUc7RUFDYSxNQUFjO0lBTGQsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUtiLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztFQUNuRCxDQUFDO0VBRUQ7Ozs7S0FJRztFQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBaUM7SUFDNUQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUMzRCxDQUFDO0VBRUQ7Ozs7OztLQU1HO0VBQ0kseUJBQXlCLENBQUMsR0FBb0I7SUFDbkQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUNqQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNyQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3ZDLENBQUM7RUFDSixDQUFDO0VBRUQ7Ozs7OztLQU1HO0VBQ0ksd0JBQXdCLENBQzdCLE9BQXdCLEVBQ3hCLG9CQUFxQztJQUVyQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8s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
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzL3ZpZXdwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBRVYsS0FBSyxFQUNMLEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFLN0I7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7RUFNbkI7RUFDRTs7S0FFRztFQUNhLEtBQWE7RUFFN0I7O0tBRUc7RUFDYSxNQUFjO0lBTGQsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUtiLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztFQUNuRCxDQUFDO0VBRUQ7Ozs7S0FJRztFQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBaUM7SUFDNUQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUMzRCxDQUFDO0VBRUQ7Ozs7OztLQU1HO0VBQ0kseUJBQXlCLENBQUMsR0FBb0I7SUFDbkQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUNqQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNyQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3ZDLENBQUM7RUFDSixDQUFDO0VBRUQ7Ozs7OztLQU1HO0VBQ0ksd0JBQXdCLENBQzdCLE9BQXdCLEVBQ3hCLG9CQUFxQztJQUVyQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8s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
@@ -4,14 +4,9 @@ import { encode } from 'fast-png';
4
4
  import { PointToPointHitTester } from '../components/viewer-measurement-distance/hitTest';
5
5
  import { fromPbFrame } from '../lib/mappers';
6
6
  import { DepthBuffer, FeatureMap, Orientation, STENCIL_BUFFER_FEATURE_VALUE, StencilBuffer, Viewport, } from '../lib/types';
7
- export const drawFramePayload = {
7
+ const baseDrawFramePayload = {
8
8
  sequenceNumber: 1,
9
9
  sceneAttributes: {
10
- camera: {
11
- position: { x: 0, y: 0, z: 100 },
12
- lookAt: { x: 0, y: 0, z: 0 },
13
- up: { x: 0, y: 1, z: 0 },
14
- },
15
10
  visibleBoundingBox: {
16
11
  xmin: -100,
17
12
  ymin: -100,
@@ -34,8 +29,26 @@ export const drawFramePayload = {
34
29
  image: makeImagePng(100, 50),
35
30
  depthBuffer: { value: makeDepthImagePng(100, 50) },
36
31
  };
37
- export function makeFrame() {
38
- return Mapper.ifInvalidThrow(fromPbFrame(Orientation.DEFAULT))(drawFramePayload);
32
+ export const drawFramePayloadPerspective = Object.assign(Object.assign({}, baseDrawFramePayload), { sceneAttributes: Object.assign(Object.assign({}, baseDrawFramePayload.sceneAttributes), { camera: {
33
+ perspective: {
34
+ position: { x: 0, y: 0, z: 100 },
35
+ lookAt: { x: 0, y: 0, z: 0 },
36
+ up: { x: 0, y: 1, z: 0 },
37
+ },
38
+ } }) });
39
+ export const drawFramePayloadOrthographic = Object.assign(Object.assign({}, baseDrawFramePayload), { sceneAttributes: Object.assign(Object.assign({}, baseDrawFramePayload.sceneAttributes), { camera: {
40
+ orthographic: {
41
+ viewVector: { x: 0, y: 0, z: -100 },
42
+ lookAt: { x: 0, y: 0, z: 0 },
43
+ up: { x: 0, y: 1, z: 0 },
44
+ fovHeight: 100,
45
+ },
46
+ } }) });
47
+ export function makePerspectiveFrame() {
48
+ return Mapper.ifInvalidThrow(fromPbFrame(Orientation.DEFAULT))(drawFramePayloadPerspective);
49
+ }
50
+ export function makeOrthographicFrame() {
51
+ return Mapper.ifInvalidThrow(fromPbFrame(Orientation.DEFAULT))(drawFramePayloadOrthographic);
39
52
  }
40
53
  export function makeImagePng(width, height) {
41
54
  const data = new Uint8ClampedArray(width * height * 4);
@@ -59,7 +72,7 @@ export function makeDepthImageBytes(width, height, value = 2 ** 16 - 1) {
59
72
  return data.fill(value);
60
73
  }
61
74
  export function makeDepthBuffer(width, height, value = 2 ** 16 - 1) {
62
- return DepthBuffer.fromPng({ data: makeDepthImageBytes(width, height, value) }, makeFrame().scene.camera, makeImageAttributes(width, height));
75
+ return DepthBuffer.fromPng({ data: makeDepthImageBytes(width, height, value) }, makePerspectiveFrame().scene.camera, makeImageAttributes(width, height));
63
76
  }
64
77
  export function makeStencilImageBytes(width, height, fill) {
65
78
  const data = new Uint8Array(width * height * 3);
@@ -117,4 +130,4 @@ export function makeHitProvider({ hitTester, raycaster, }) {
117
130
  raycaster: async () => raycaster !== null && raycaster !== void 0 ? raycaster : defaultRaycaster,
118
131
  };
119
132
  }
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRSxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUNMLFdBQVcsRUFDWCxVQUFVLEVBR1YsV0FBVyxFQUNYLDRCQUE0QixFQUM1QixhQUFhLEVBQ2IsUUFBUSxHQUNULE1BQU0sY0FBYyxDQUFDO0FBRXRCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFxQjtFQUNoRCxjQUFjLEVBQUUsQ0FBQztFQUNqQixlQUFlLEVBQUU7SUFDZixNQUFNLEVBQUU7TUFDTixRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRTtNQUNoQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtNQUM1QixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtLQUN6QjtJQUNELGtCQUFrQixFQUFFO01BQ2xCLElBQUksRUFBRSxDQUFDLEdBQUc7TUFDVixJQUFJLEVBQUUsQ0FBQyxHQUFHO01BQ1YsSUFBSSxFQUFFLENBQUMsR0FBRztNQUNWLElBQUksRUFBRSxHQUFHO01BQ1QsSUFBSSxFQUFFLEdBQUc7TUFDVCxJQUFJLEVBQUUsR0FBRztLQUNWO0lBQ0QsZUFBZSxFQUFFO01BQ2YsYUFBYSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUM3RDtJQUNELFVBQVUsRUFBRSxLQUFLO0dBQ2xCO0VBQ0QsZUFBZSxFQUFFO0lBQ2YsZUFBZSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO0lBQzNDLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7SUFDakQsV0FBVyxFQUFFLENBQUM7R0FDZjtFQUNELG1CQUFtQixFQUFFLENBQUMsS0FBSyxDQUFDO0VBQzVCLEtBQUssRUFBRSxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztFQUM1QixXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFO0NBQ25ELENBQUM7QUFFRixNQUFNLFVBQVUsU0FBUztFQUN2QixPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUM1RCxnQkFBZ0IsQ0FDakIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWEsRUFBRSxNQUFjO0VBQ3hELE1BQU0sSUFBSSxHQUFHLElBQUksaUJBQWlCLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztFQUN2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7TUFDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUNoQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztNQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztNQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztNQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNuQjtHQUNGO0VBQ0QsT0FBTyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLEtBQWEsRUFDYixNQUFjLEVBQ2QsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztFQUVuQixNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0VBQ3hELE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsS0FBYSxFQUNiLE1BQWMsRUFDZCxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO0VBRW5CLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztFQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQzdCLEtBQWEsRUFDYixNQUFjLEVBQ2QsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztFQUVuQixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQ3hCLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFDbkQsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFDeEIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUNuQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsS0FBYSxFQUNiLE1BQWMsRUFDZCxJQUFvQztFQUVwQyxNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0VBQ2hELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3ZDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0dBQ3BDO0VBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFhLEVBQ2IsTUFBYyxFQUNkLElBQW9DLEVBQ3BDLFdBQXlCO0VBRXpCLE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7RUFDeEQsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUMxQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQ3JCLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFDbEMsSUFBSSxFQUNKLFdBQVcsYUFBWCxXQUFXLGNBQVgsV0FBVyxHQUFJLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQzlDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsS0FBYSxFQUNiLE1BQWMsRUFDZCxJQUF5QztFQUV6QyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQ3ZCO0lBQ0UsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO0lBQzlDLEtBQUs7SUFDTCxNQUFNO0lBQ04sUUFBUSxFQUFFLENBQUM7R0FDWixFQUNELG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FDbkMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEtBQWEsRUFDYixNQUFjLEVBQ2QsSUFBeUM7RUFFekMsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztFQUNoRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7R0FDNUI7RUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEtBQWEsRUFDYixNQUFjO0VBRWQsT0FBTztJQUNMLGVBQWUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDakQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2hELFVBQVUsRUFBRSxDQUFDO0dBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQzVCLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxNQUtOLEVBQUU7RUFDSixPQUFPLElBQUkscUJBQXFCLENBQzlCLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUNYLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUMsRUFDakUsV0FBVyxhQUFYLFdBQVcsY0FBWCxXQUFXLEdBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDeEMsUUFBUSxhQUFSLFFBQVEsY0FBUixRQUFRLEdBQUksSUFBSSxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUNuQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0VBQzNCLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUM5QixTQUFTLEVBQ1QsU0FBUyxHQUlWO0VBQ0MsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLEVBQUUsQ0FBQztFQUN6QyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsRUFBRSxDQUFDO0VBRXpDLE9BQU87SUFDTCxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksZ0JBQWdCO0lBQzlDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxHQUFJLGdCQUFnQjtHQUNyRCxDQUFDO0FBQ0osQ0FBQyJ9
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRSxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUNMLFdBQVcsRUFDWCxVQUFVLEVBR1YsV0FBVyxFQUNYLDRCQUE0QixFQUM1QixhQUFhLEVBQ2IsUUFBUSxHQUNULE1BQU0sY0FBYyxDQUFDO0FBRXRCLE1BQU0sb0JBQW9CLEdBQThCO0VBQ3RELGNBQWMsRUFBRSxDQUFDO0VBQ2pCLGVBQWUsRUFBRTtJQUNmLGtCQUFrQixFQUFFO01BQ2xCLElBQUksRUFBRSxDQUFDLEdBQUc7TUFDVixJQUFJLEVBQUUsQ0FBQyxHQUFHO01BQ1YsSUFBSSxFQUFFLENBQUMsR0FBRztNQUNWLElBQUksRUFBRSxHQUFHO01BQ1QsSUFBSSxFQUFFLEdBQUc7TUFDVCxJQUFJLEVBQUUsR0FBRztLQUNWO0lBQ0QsZUFBZSxFQUFFO01BQ2YsYUFBYSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUM3RDtJQUNELFVBQVUsRUFBRSxLQUFLO0dBQ2xCO0VBQ0QsZUFBZSxFQUFFO0lBQ2YsZUFBZSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFN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
@@ -27,12 +27,14 @@ export async function loadViewerStreamKey(urn, { viewer, stream, ws }, { token =
27
27
  // Emit frame drawn on next event loop
28
28
  await connecting;
29
29
  await Async.delay(10);
30
- ws.receiveMessage(encode(StreamFixtures.Requests.drawFrame({ payload: Fixtures.drawFramePayload })));
30
+ ws.receiveMessage(encode(StreamFixtures.Requests.drawFrame({
31
+ payload: Fixtures.drawFramePayloadPerspective,
32
+ })));
31
33
  await loaded;
32
34
  }
33
35
  export function receiveFrame(ws, transformPayload) {
34
36
  ws.receiveMessage(encode(StreamFixtures.Requests.drawFrame({
35
- payload: transformPayload === null || transformPayload === void 0 ? void 0 : transformPayload(Fixtures.drawFramePayload),
37
+ payload: transformPayload === null || transformPayload === void 0 ? void 0 : transformPayload(Fixtures.drawFramePayloadPerspective),
36
38
  })));
37
39
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Rpbmcvdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxNQUFNLEVBQ04sUUFBUSxJQUFJLGNBQWMsRUFDMUIsbUJBQW1CLEdBQ3BCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBWWxDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyw4QkFBOEIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsOEJBQThCLENBQUM7QUFFbkQsTUFBTSxVQUFVLGdCQUFnQjtFQUk5QixNQUFNLEVBQUUsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7RUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7RUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsR0FBVyxFQUNYLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQTBCLEVBQzlDLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBaUMsRUFBRTtFQUUzRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxpQkFBaUIsQ0FDakQsY0FBYyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDbkMsTUFBTSxFQUFFO01BQ04sS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLO09BQ3hDO0tBQ0Y7R0FDRixDQUFDLENBQUMsUUFBUSxDQUNaLENBQUM7RUFDRixJQUFJO0tBQ0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7S0FDekIsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztFQUVuRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDN0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUMvQixDQUFDO0VBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUVoQyxzQ0FBc0M7RUFDdEMsTUFBTSxVQUFVLENBQUM7RUFDakIsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ3RCLEVBQUUsQ0FBQyxjQUFjLENBQ2YsTUFBTSxDQUNKLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQzFFLENBQ0YsQ0FBQztFQUNGLE1BQU0sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQzFCLEVBQXVCLEVBQ3ZCLGdCQUVnRDtFQUVoRCxFQUFFLENBQUMsY0FBYyxDQUNmLE1BQU0sQ0FDSixjQUFjLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUNoQyxPQUFPLEVBQUUsZ0JBQWdCLGFBQWhCLGdCQUFnQix1QkFBaEIsZ0JBQWdCLENBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO0dBQ3ZELENBQUMsQ0FDSCxDQUNGLENBQUM7QUFDSixDQUFDIn0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Rpbmcvdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxNQUFNLEVBQ04sUUFBUSxJQUFJLGNBQWMsRUFDMUIsbUJBQW1CLEdBQ3BCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBWWxDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyw4QkFBOEIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsOEJBQThCLENBQUM7QUFFbkQsTUFBTSxVQUFVLGdCQUFnQjtFQUk5QixNQUFNLEVBQUUsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7RUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7RUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsR0FBVyxFQUNYLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQTBCLEVBQzlDLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBaUMsRUFBRTtFQUUzRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxpQkFBaUIsQ0FDakQsY0FBYyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDbkMsTUFBTSxFQUFFO01BQ04sS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLO09BQ3hDO0tBQ0Y7R0FDRixDQUFDLENBQUMsUUFBUSxDQUNaLENBQUM7RUFDRixJQUFJO0tBQ0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7S0FDekIsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztFQUVuRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDN0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUMvQixDQUFDO0VBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUVoQyxzQ0FBc0M7RUFDdEMsTUFBTSxVQUFVLENBQUM7RUFDakIsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ3RCLEVBQUUsQ0FBQyxjQUFjLENBQ2YsTUFBTSxDQUNKLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxRQUFRLENBQUMsMkJBQTJCO0dBQzlDLENBQUMsQ0FDSCxDQUNGLENBQUM7RUFDRixNQUFNLE1BQU0sQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixFQUF1QixFQUN2QixnQkFFZ0Q7RUFFaEQsRUFBRSxDQUFDLGNBQWMsQ0FDZixNQUFNLENBQ0osY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDaEMsT0FBTyxFQUFFLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFHLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQztHQUNsRSxDQUFDLENBQ0gsQ0FDRixDQUFDO0FBQ0osQ0FBQyJ9