@vertexvis/viewer 0.13.1 → 0.13.2-canary.10

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 (177) hide show
  1. package/dist/cjs/{browser.esm-31b03292.js → browser.esm-075810bf.js} +1 -1
  2. package/dist/cjs/{bundle.esm-dc0a8361.js → bundle.esm-618a5fe9.js} +80 -28
  3. package/dist/cjs/{config-90ee43d5.js → config-fb124bac.js} +2 -2
  4. package/dist/cjs/{cursors-ad2fd395.js → cursors-d71f6a74.js} +1 -1
  5. package/dist/cjs/{dom-dd265f48.js → dom-57ef84e9.js} +1 -1
  6. package/dist/cjs/{entities-aa59890e.js → entities-90f1347a.js} +3 -3
  7. package/dist/cjs/index.cjs.js +14 -12
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/{mapper-f6e6cafe.js → mapper-80ee2957.js} +2 -2
  10. package/dist/cjs/{markup-fb1553b1.js → markup-7f7de5f2.js} +2 -2
  11. package/dist/cjs/{measurement-aba1e0e8.js → measurement-f1ae9248.js} +2 -2
  12. package/dist/cjs/{model-4ec0c36e.js → model-55abd9ab.js} +1 -1
  13. package/dist/cjs/{overlays-40c6cbc7.js → overlays-68e8eff2.js} +2 -2
  14. package/dist/cjs/{png-decoder-27d25eed.js → png-decoder-076131d8.js} +1 -1
  15. package/dist/cjs/{results-bc325974.js → results-e9496869.js} +1 -1
  16. package/dist/cjs/{scene-d420fd26.js → scene-92728420.js} +188 -90
  17. package/dist/cjs/{streamAttributes-d6236448.js → streamAttributes-81eb52f2.js} +1508 -43
  18. package/dist/cjs/{utils-545b1865.js → utils-463cd52e.js} +1 -1
  19. package/dist/cjs/{utils-f80be307.js → utils-6397efca.js} +1 -1
  20. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +1 -1
  21. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  22. package/dist/cjs/vertex-scene-tree.cjs.entry.js +4 -4
  23. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +8 -7
  24. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +3 -3
  25. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +4 -4
  26. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +4 -4
  27. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +3 -3
  28. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +20 -15
  29. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +6 -6
  30. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +10 -10
  31. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +5 -5
  32. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +8 -8
  33. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +3 -3
  34. package/dist/cjs/vertex-viewer.cjs.entry.js +287 -80
  35. package/dist/cjs/viewer.cjs.js +1 -1
  36. package/dist/cjs/{viewport-8c39089f.js → viewport-54b1389d.js} +34 -2
  37. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +1 -1
  38. package/dist/collection/components/viewer/viewer.js +68 -4
  39. package/dist/collection/components/viewer-dom-renderer/renderer2d.js +1 -1
  40. package/dist/collection/components/viewer-dom-renderer/renderer3d.js +4 -2
  41. package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +5 -6
  42. package/dist/collection/components/viewer-measurement-distance/hitTest.js +9 -4
  43. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +5 -5
  44. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +3 -3
  45. package/dist/collection/index.js +2 -2
  46. package/dist/collection/lib/errors.js +8 -1
  47. package/dist/collection/lib/interactions/index.js +3 -1
  48. package/dist/collection/lib/interactions/interactionApi.js +4 -25
  49. package/dist/collection/lib/interactions/interactionApiOrthographic.js +136 -0
  50. package/dist/collection/lib/interactions/interactionApiPerspective.js +51 -0
  51. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +3 -2
  52. package/dist/collection/lib/mappers/frameStreaming.js +27 -5
  53. package/dist/collection/lib/rendering/matrices.js +13 -4
  54. package/dist/collection/lib/rendering/vectors.js +7 -0
  55. package/dist/collection/lib/scenes/__mocks__/mocks.js +2 -2
  56. package/dist/collection/lib/scenes/camera.js +163 -83
  57. package/dist/collection/lib/scenes/mapper.js +3 -2
  58. package/dist/collection/lib/scenes/scene.js +22 -9
  59. package/dist/collection/lib/types/clippingPlanes.js +48 -20
  60. package/dist/collection/lib/types/depthBuffer.js +32 -3
  61. package/dist/collection/lib/types/frame.js +133 -24
  62. package/dist/collection/lib/types/frameCamera.js +87 -6
  63. package/dist/collection/lib/types/viewport.js +34 -2
  64. package/dist/collection/testing/fixtures.js +28 -15
  65. package/dist/collection/testing/viewer.js +5 -3
  66. package/dist/custom-elements/index.js +2135 -283
  67. package/dist/esm/{browser.esm-59e914f6.js → browser.esm-e72d80ad.js} +1 -1
  68. package/dist/esm/{bundle.esm-d899b2d5.js → bundle.esm-8ceccb91.js} +80 -29
  69. package/dist/esm/{config-604c644e.js → config-fb7cd8ff.js} +2 -2
  70. package/dist/esm/{cursors-a7ec4adb.js → cursors-fc2deed7.js} +1 -1
  71. package/dist/esm/{dom-780d25be.js → dom-2cd18856.js} +1 -1
  72. package/dist/esm/{entities-759d97cd.js → entities-78557270.js} +3 -3
  73. package/dist/esm/index.js +12 -12
  74. package/dist/esm/index.mjs +12 -12
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/esm/loader.mjs +1 -1
  77. package/dist/esm/{mapper-4b815e31.js → mapper-da36de17.js} +2 -2
  78. package/dist/esm/{markup-1d177b4a.js → markup-c313d99c.js} +2 -2
  79. package/dist/esm/{measurement-12cdbf5c.js → measurement-544b69d5.js} +2 -2
  80. package/dist/esm/{model-e5a4f00f.js → model-2a34b443.js} +1 -1
  81. package/dist/esm/{overlays-1919b192.js → overlays-354e275c.js} +2 -2
  82. package/dist/esm/{png-decoder-3f1fa486.js → png-decoder-07de80d1.js} +1 -1
  83. package/dist/esm/{results-994bdb50.js → results-4d0c3568.js} +1 -1
  84. package/dist/esm/{scene-2c2460d5.js → scene-2bfcce74.js} +188 -90
  85. package/dist/esm/{streamAttributes-d623bb60.js → streamAttributes-d0b384b3.js} +1502 -44
  86. package/dist/esm/{utils-83a19677.js → utils-3ea0acdd.js} +1 -1
  87. package/dist/esm/{utils-5e57bf24.js → utils-e0941c61.js} +1 -1
  88. package/dist/esm/vertex-scene-tree-search_3.entry.js +1 -1
  89. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  90. package/dist/esm/vertex-scene-tree.entry.js +4 -4
  91. package/dist/esm/vertex-viewer-dom-element_3.entry.js +8 -7
  92. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +3 -3
  93. package/dist/esm/vertex-viewer-markup-tool.entry.js +4 -4
  94. package/dist/esm/vertex-viewer-markup.entry.js +4 -4
  95. package/dist/esm/vertex-viewer-measurement-details.entry.js +3 -3
  96. package/dist/esm/vertex-viewer-measurement-distance.entry.js +20 -15
  97. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +6 -6
  98. package/dist/esm/vertex-viewer-measurement-precise.entry.js +10 -10
  99. package/dist/esm/vertex-viewer-measurement-tool.entry.js +5 -5
  100. package/dist/esm/vertex-viewer-measurements.entry.js +8 -8
  101. package/dist/esm/vertex-viewer-view-cube.entry.js +3 -3
  102. package/dist/esm/vertex-viewer.entry.js +287 -80
  103. package/dist/esm/viewer.js +1 -1
  104. package/dist/esm/{viewport-01c886ea.js → viewport-5cc7b128.js} +34 -2
  105. package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +1 -1
  106. package/dist/types/components/viewer/viewer.d.ts +8 -0
  107. package/dist/types/components/viewer-dom-renderer/renderer2d.d.ts +2 -2
  108. package/dist/types/components/viewer-dom-renderer/renderer3d.d.ts +3 -3
  109. package/dist/types/components/viewer-dom-renderer/viewer-dom-renderer.d.ts +2 -2
  110. package/dist/types/components/viewer-measurement-distance/hitTest.d.ts +3 -2
  111. package/dist/types/components/viewer-measurement-distance/utils.d.ts +2 -2
  112. package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +2 -2
  113. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays-components.d.ts +2 -2
  114. package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays.d.ts +2 -2
  115. package/dist/types/components.d.ts +15 -7
  116. package/dist/types/index.d.ts +1 -1
  117. package/dist/types/lib/errors.d.ts +3 -0
  118. package/dist/types/lib/interactions/index.d.ts +2 -0
  119. package/dist/types/lib/interactions/interactionApi.d.ts +34 -26
  120. package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +35 -0
  121. package/dist/types/lib/interactions/interactionApiPerspective.d.ts +21 -0
  122. package/dist/types/lib/mappers/frameStreaming.d.ts +2 -0
  123. package/dist/types/lib/rendering/vectors.d.ts +2 -0
  124. package/dist/types/lib/scenes/__mocks__/mocks.d.ts +2 -2
  125. package/dist/types/lib/scenes/camera.d.ts +101 -38
  126. package/dist/types/lib/scenes/scene.d.ts +1 -1
  127. package/dist/types/lib/types/clippingPlanes.d.ts +3 -1
  128. package/dist/types/lib/types/depthBuffer.d.ts +28 -6
  129. package/dist/types/lib/types/frame.d.ts +80 -11
  130. package/dist/types/lib/types/frameCamera.d.ts +22 -3
  131. package/dist/types/lib/types/viewport.d.ts +24 -4
  132. package/dist/types/testing/fixtures.d.ts +8 -5
  133. package/dist/viewer/index.esm.js +1 -1
  134. package/dist/viewer/{p-f8d01b8a.entry.js → p-0a189e62.entry.js} +1 -1
  135. package/dist/viewer/{p-e07377fa.entry.js → p-1ca95f9a.entry.js} +1 -1
  136. package/dist/viewer/{p-d00e9203.js → p-3561d910.js} +1 -1
  137. package/dist/viewer/p-388a43f7.js +4 -0
  138. package/dist/viewer/{p-3810c24d.js → p-3f0f83ad.js} +1 -1
  139. package/dist/viewer/{p-8decee06.entry.js → p-41028d3b.entry.js} +1 -1
  140. package/dist/viewer/{p-439220c6.js → p-487e054a.js} +1 -1
  141. package/dist/viewer/p-49d36e94.entry.js +4 -0
  142. package/dist/viewer/{p-da2f4a56.js → p-5b342e97.js} +1 -1
  143. package/dist/viewer/p-661f0612.js +18 -0
  144. package/dist/viewer/{p-364ce21c.js → p-69058178.js} +1 -1
  145. package/dist/viewer/{p-353cfc7a.entry.js → p-73a5eacc.entry.js} +1 -1
  146. package/dist/viewer/p-77be081a.js +4 -0
  147. package/dist/viewer/{p-a0df0e0c.js → p-809d09d9.js} +1 -1
  148. package/dist/viewer/{p-d90f2f6d.entry.js → p-858bd2c7.entry.js} +1 -1
  149. package/dist/viewer/{p-25eaab00.entry.js → p-89b66838.entry.js} +1 -1
  150. package/dist/viewer/p-a93a63a9.js +4 -0
  151. package/dist/viewer/{p-df292b56.entry.js → p-b043b076.entry.js} +1 -1
  152. package/dist/viewer/{p-915d95ad.entry.js → p-b0ac6b3c.entry.js} +1 -1
  153. package/dist/viewer/{p-fec1a8d0.entry.js → p-b7624ff2.entry.js} +1 -1
  154. package/dist/viewer/{p-f7cb7e59.js → p-b8774c9c.js} +1 -1
  155. package/dist/viewer/{p-67446e35.js → p-bcb66f97.js} +1 -1
  156. package/dist/viewer/p-bcde5521.entry.js +4 -0
  157. package/dist/viewer/{p-7cad9bf4.js → p-d1584404.js} +1 -1
  158. package/dist/viewer/p-d32b54cb.js +4 -0
  159. package/dist/viewer/{p-f755af5a.entry.js → p-d3a20af4.entry.js} +1 -1
  160. package/dist/viewer/{p-c62cb926.entry.js → p-d9f99f4d.entry.js} +1 -1
  161. package/dist/viewer/p-e38458da.js +4 -0
  162. package/dist/viewer/{p-301660cf.js → p-e75bba97.js} +2 -2
  163. package/dist/viewer/{p-6e80f8b0.entry.js → p-ebd55df7.entry.js} +1 -1
  164. package/dist/viewer/{p-671c113c.entry.js → p-f0411993.entry.js} +1 -1
  165. package/dist/viewer/{p-2cefb1b0.js → p-fa9a0bed.js} +1 -1
  166. package/dist/viewer/p-ffdeb08c.js +4 -0
  167. package/dist/viewer/viewer.esm.js +1 -1
  168. package/package.json +8 -8
  169. package/dist/viewer/p-081e6873.js +0 -4
  170. package/dist/viewer/p-085e908a.js +0 -4
  171. package/dist/viewer/p-0aba71fd.js +0 -18
  172. package/dist/viewer/p-3f6ac74f.js +0 -4
  173. package/dist/viewer/p-423410be.js +0 -4
  174. package/dist/viewer/p-432267bc.entry.js +0 -4
  175. package/dist/viewer/p-4985fad5.js +0 -4
  176. package/dist/viewer/p-e2297df2.entry.js +0 -4
  177. package/dist/viewer/p-fe11d694.js +0 -4
@@ -1,6 +1,6 @@
1
1
  import { h } from '../../stencil-public-runtime';
2
2
  import { DepthBuffer } from '../../lib/types';
3
- import { FramePerspectiveCamera } from '../../lib/types/frame';
3
+ import { FrameCameraBase } from '../../lib/types/frame';
4
4
  export declare type ViewerDomRendererDrawMode = '2d' | '3d';
5
5
  /**
6
6
  * The `ViewerDomRenderer` is responsible for managing a
@@ -27,7 +27,7 @@ export declare class ViewerDomRenderer {
27
27
  * This property will automatically be set when supplying a viewer to the
28
28
  * component, or when added as a child to `<vertex-viewer>`.
29
29
  */
30
- camera?: FramePerspectiveCamera;
30
+ camera?: FrameCameraBase;
31
31
  /**
32
32
  * The current depth buffer of the frame.
33
33
  *
@@ -1,10 +1,11 @@
1
1
  import { Point, Vector3 } from '@vertexvis/geometry';
2
- import { DepthBuffer, StencilBuffer, Viewport } from '../../lib/types';
2
+ import { DepthBuffer, FrameCameraBase, StencilBuffer, Viewport } from '../../lib/types';
3
3
  export declare class PointToPointHitTester {
4
4
  private stencil;
5
5
  private depthBuffer;
6
6
  private viewport;
7
- constructor(stencil: StencilBuffer | undefined, depthBuffer: DepthBuffer, viewport: Viewport);
7
+ private camera?;
8
+ constructor(stencil: StencilBuffer | undefined, depthBuffer: DepthBuffer, viewport: Viewport, camera?: FrameCameraBase | undefined);
8
9
  hitTest(pt: Point.Point): boolean;
9
10
  snapToNearestPixel(pt: Point.Point, radius: number): Point.Point;
10
11
  transformPointToWorld(pt: Point.Point, { ignoreHitTest }?: {
@@ -1,5 +1,5 @@
1
1
  import { Line3, Point } from '@vertexvis/geometry';
2
- import { FramePerspectiveCamera, Viewport } from '../../lib/types';
2
+ import { FrameCameraBase, Viewport } from '../../lib/types';
3
3
  export declare type Anchor = 'start' | 'end';
4
4
  export interface MeasurementElementPositions {
5
5
  startPt?: Point.Point;
@@ -11,7 +11,7 @@ export interface MeasurementElementPositions {
11
11
  }
12
12
  export interface RenderParams {
13
13
  viewport: Viewport;
14
- camera: FramePerspectiveCamera;
14
+ camera: FrameCameraBase;
15
15
  }
16
16
  export declare function translateWorldLineToViewport(line: Line3.Line3, params: RenderParams): {
17
17
  start: Point.Point;
@@ -2,7 +2,7 @@ import { EventEmitter, h } from '../../stencil-public-runtime';
2
2
  import { Vector3 } from '@vertexvis/geometry';
3
3
  import { Formatter } from '../../lib/formatter';
4
4
  import { MeasurementModel } from '../../lib/measurement';
5
- import { DistanceUnitType, FramePerspectiveCamera } from '../../lib/types';
5
+ import { DistanceUnitType, FrameCameraBase } from '../../lib/types';
6
6
  import { PointToPointHitProvider } from './interactions';
7
7
  import { Anchor } from './utils';
8
8
  /**
@@ -138,7 +138,7 @@ export declare class ViewerMeasurementDistance {
138
138
  * The camera used to position the anchors. If `viewer` is defined, then the
139
139
  * projection view matrix of the viewer will be used.
140
140
  */
141
- camera?: FramePerspectiveCamera;
141
+ camera?: FrameCameraBase;
142
142
  /**
143
143
  * @internal
144
144
  */
@@ -1,10 +1,10 @@
1
1
  import { FunctionalComponent } from '../../stencil-public-runtime';
2
2
  import { MeasurementOverlay } from '../../lib/measurement';
3
- import { FramePerspectiveCamera, Viewport } from '../../lib/types';
3
+ import { FrameCameraBase, Viewport } from '../../lib/types';
4
4
  interface MeasurementOverlayViewProps<O extends MeasurementOverlay> {
5
5
  overlay: O;
6
6
  viewport: Viewport;
7
- camera: FramePerspectiveCamera;
7
+ camera: FrameCameraBase;
8
8
  }
9
9
  export declare const MeasurementOverlayView: FunctionalComponent<MeasurementOverlayViewProps<MeasurementOverlay>>;
10
10
  export {};
@@ -1,6 +1,6 @@
1
1
  import { h } from '../../stencil-public-runtime';
2
2
  import { MeasurementOverlayManager } from '../../lib/measurement';
3
- import { FramePerspectiveCamera } from '../../lib/types';
3
+ import { FrameCameraBase } from '../../lib/types';
4
4
  export declare class ViewerMeasurementOverlays {
5
5
  /**
6
6
  * The model that contains the overlays to present.
@@ -14,7 +14,7 @@ export declare class ViewerMeasurementOverlays {
14
14
  /**
15
15
  * @internal
16
16
  */
17
- camera?: FramePerspectiveCamera;
17
+ camera?: FrameCameraBase;
18
18
  /**
19
19
  * The viewer that this component is bound to.
20
20
  */
@@ -18,9 +18,9 @@ import { RowDataProvider as RowDataProvider1 } from "./components/scene-tree/sce
18
18
  import { DomScrollToOptions } from "./components/scene-tree-table-layout/lib/dom";
19
19
  import { FeatureHighlightOptions, FeatureLineOptions, FrameType } from "./interfaces";
20
20
  import { ColorMaterial } from "./lib/scenes/colorMaterial";
21
- import { Frame, FramePerspectiveCamera } from "./lib/types/frame";
21
+ import { Frame, FrameCameraBase } from "./lib/types/frame";
22
22
  import { ViewerStream } from "./lib/stream/stream";
23
- import { AngleUnitType, DepthBuffer, DistanceUnitType, EntityType, FramePerspectiveCamera as FramePerspectiveCamera1, Measurement, Orientation, StencilBufferManager, Viewport } from "./lib/types";
23
+ import { AngleUnitType, DepthBuffer, DistanceUnitType, EntityType, FrameCameraBase as FrameCameraBase1, FramePerspectiveCamera, Measurement, Orientation, StencilBufferManager, Viewport } from "./lib/types";
24
24
  import { TapEventDetails } from "./lib/interactions/tapEventDetails";
25
25
  import { ConnectionStatus } from "./components/viewer/viewer";
26
26
  import { Dimensions, Euler, Matrix4, Point, Quaternion, Rectangle, Vector3 } from "@vertexvis/geometry";
@@ -305,6 +305,10 @@ export namespace Components {
305
305
  * Enables or disables the default mouse and touch interactions provided by the viewer. Enabled by default.
306
306
  */
307
307
  "cameraControls": boolean;
308
+ /**
309
+ * The type of camera model to represent the scene with. Can be either `perspective` or `orthographic`, and defaults to `perspective`.
310
+ */
311
+ "cameraType": 'perspective' | 'orthographic';
308
312
  /**
309
313
  * The Client ID associated with your Vertex Application.
310
314
  */
@@ -542,7 +546,7 @@ export namespace Components {
542
546
  /**
543
547
  * The current camera of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to `<vertex-viewer>`.
544
548
  */
545
- "camera"?: FramePerspectiveCamera;
549
+ "camera"?: FrameCameraBase;
546
550
  /**
547
551
  * The current depth buffer of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to `<vertex-viewer>`.
548
552
  */
@@ -786,7 +790,7 @@ export namespace Components {
786
790
  /**
787
791
  * The camera used to position the anchors. If `viewer` is defined, then the projection view matrix of the viewer will be used.
788
792
  */
789
- "camera"?: FramePerspectiveCamera;
793
+ "camera"?: FrameCameraBase;
790
794
  /**
791
795
  * Computes the bounding boxes of the anchors and label. **Note:** invoking this function uses `getBoundingClientRect` internally and will cause a relayout of the DOM.
792
796
  */
@@ -877,7 +881,7 @@ export namespace Components {
877
881
  "start": Point.Point;
878
882
  }
879
883
  interface VertexViewerMeasurementOverlays {
880
- "camera"?: FramePerspectiveCamera;
884
+ "camera"?: FrameCameraBase;
881
885
  /**
882
886
  * The model that contains the overlays to present.
883
887
  */
@@ -1447,6 +1451,10 @@ declare namespace LocalJSX {
1447
1451
  * Enables or disables the default mouse and touch interactions provided by the viewer. Enabled by default.
1448
1452
  */
1449
1453
  "cameraControls"?: boolean;
1454
+ /**
1455
+ * The type of camera model to represent the scene with. Can be either `perspective` or `orthographic`, and defaults to `perspective`.
1456
+ */
1457
+ "cameraType"?: 'perspective' | 'orthographic';
1450
1458
  /**
1451
1459
  * The Client ID associated with your Vertex Application.
1452
1460
  */
@@ -1681,7 +1689,7 @@ declare namespace LocalJSX {
1681
1689
  /**
1682
1690
  * The current camera of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to `<vertex-viewer>`.
1683
1691
  */
1684
- "camera"?: FramePerspectiveCamera;
1692
+ "camera"?: FrameCameraBase;
1685
1693
  /**
1686
1694
  * The current depth buffer of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to `<vertex-viewer>`.
1687
1695
  */
@@ -1947,7 +1955,7 @@ declare namespace LocalJSX {
1947
1955
  /**
1948
1956
  * The camera used to position the anchors. If `viewer` is defined, then the projection view matrix of the viewer will be used.
1949
1957
  */
1950
- "camera"?: FramePerspectiveCamera;
1958
+ "camera"?: FrameCameraBase;
1951
1959
  /**
1952
1960
  * The distance between `start` and `end` in real world units. Value will be undefined if the start and end positions are undefined, or if the measurement is invalid.
1953
1961
  */
@@ -12,7 +12,7 @@ export * from './lib/interactions/interactionHandler';
12
12
  export * from './lib/interactions/keyInteraction';
13
13
  export * from './lib/measurement';
14
14
  export { Scene } from './lib/scenes';
15
- export { EntityType, LoadableResource, Frame as ReceivedFrame, FrameImage as ReceivedFrameImage, FrameScene as ReceivedFrameScene, FramePerspectiveCamera as ReceivedPerspectiveCamera, SynchronizedClock, Viewport, } from './lib/types';
15
+ export { EntityType, FrameCameraBase, LoadableResource, Frame as ReceivedFrame, FrameImage as ReceivedFrameImage, FrameScene as ReceivedFrameScene, FrameOrthographicCamera as ReceivedOrthographicCamera, FramePerspectiveCamera as ReceivedPerspectiveCamera, SynchronizedClock, Viewport, } from './lib/types';
16
16
  export * from './lib/types/markup';
17
17
  export * from './lib/types/measurementUnits';
18
18
  import { TapEventDetails } from './lib/interactions/tapEventDetails';
@@ -43,3 +43,6 @@ export declare class NoImplementationFoundError extends CustomError {
43
43
  export declare class InvalidArgumentError extends CustomError {
44
44
  constructor(message: string, e?: Error);
45
45
  }
46
+ export declare class InvalidCameraError extends CustomError {
47
+ constructor(message: string, e?: Error);
48
+ }
@@ -3,6 +3,8 @@
3
3
  */
4
4
  export * from './flyToPartKeyInteraction';
5
5
  export * from './interactionApi';
6
+ export * from './interactionApiOrthographic';
7
+ export * from './interactionApiPerspective';
6
8
  export * from './interactionEvent';
7
9
  export * from './interactionHandler';
8
10
  export * from './interactionHandler';
@@ -1,44 +1,53 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { vertexvis } from '@vertexvis/frame-streaming-protos';
3
- import { BoundingBox, Point, Ray, Vector3 } from '@vertexvis/geometry';
3
+ import { BoundingBox, Plane, Point, Ray, Vector3 } from '@vertexvis/geometry';
4
4
  import { StreamApi } from '@vertexvis/stream-api';
5
5
  import { Disposable } from '@vertexvis/utils';
6
6
  import { ReceivedFrame } from '../..';
7
7
  import { Cursor, CursorManager } from '../cursors';
8
8
  import { Camera, Scene } from '../scenes';
9
- import { DepthBuffer, EntityType, Interactions, Viewport } from '../types';
9
+ import { DepthBuffer, EntityType, FrameCameraBase, Interactions, Viewport } from '../types';
10
10
  import { TapEventDetails, TapEventKeys } from './tapEventDetails';
11
- declare type SceneProvider = () => Scene;
12
- declare type InteractionConfigProvider = () => Interactions.InteractionConfig;
13
- declare type CameraTransform = (data: {
14
- camera: Camera;
11
+ export declare type SceneProvider = () => Scene;
12
+ export declare type InteractionConfigProvider = () => Interactions.InteractionConfig;
13
+ export declare type CameraTransform<T extends Camera = Camera, R extends Camera = Camera> = (data: {
14
+ camera: T;
15
15
  viewport: Viewport;
16
16
  scale: Point.Point;
17
17
  boundingBox: BoundingBox.BoundingBox;
18
18
  frame: ReceivedFrame;
19
19
  depthBuffer?: DepthBuffer;
20
- }) => Camera;
20
+ }) => R;
21
+ export interface PanData {
22
+ hitPt: Vector3.Vector3;
23
+ hitPlane: Plane.Plane;
24
+ startingCamera: FrameCameraBase;
25
+ }
26
+ export interface ZoomData {
27
+ hitPt: Vector3.Vector3;
28
+ hitPlane: Plane.Plane;
29
+ }
21
30
  /**
22
31
  * The `InteractionApi` provides methods that API developers can use to modify
23
32
  * the internal state of an interaction.
24
33
  */
25
- export declare class InteractionApi {
26
- private stream;
34
+ export declare abstract class InteractionApi {
35
+ protected stream: StreamApi;
27
36
  private cursors;
28
- private getConfig;
29
- private getScene;
30
- private getFrame;
31
- private getViewport;
37
+ protected getConfig: InteractionConfigProvider;
38
+ protected getScene: SceneProvider;
39
+ protected getFrame: () => ReceivedFrame | undefined;
40
+ protected getViewport: () => Viewport;
32
41
  private tapEmitter;
33
42
  private doubleTapEmitter;
34
43
  private longPressEmitter;
35
44
  private interactionStartedEmitter;
36
45
  private interactionFinishedEmitter;
37
- private currentCamera?;
46
+ protected currentCamera?: Camera;
38
47
  private lastAngle;
39
48
  private worldRotationPoint?;
40
- private panData?;
41
- private zoomData?;
49
+ protected panData?: PanData;
50
+ protected zoomData?: ZoomData;
42
51
  constructor(stream: StreamApi, cursors: CursorManager, getConfig: InteractionConfigProvider, getScene: SceneProvider, getFrame: () => ReceivedFrame | undefined, getViewport: () => Viewport, tapEmitter: EventEmitter<TapEventDetails>, doubleTapEmitter: EventEmitter<TapEventDetails>, longPressEmitter: EventEmitter<TapEventDetails>, interactionStartedEmitter: EventEmitter<void>, interactionFinishedEmitter: EventEmitter<void>);
43
52
  /**
44
53
  * Displays a cursor over the viewer with the given priority. Cursors with
@@ -117,14 +126,6 @@ export declare class InteractionApi {
117
126
  * @param screenPt A point in screen coordinates.
118
127
  */
119
128
  panCameraToScreenPoint(screenPt: Point.Point): Promise<void>;
120
- /**
121
- * Performs a pan operation of the scene's camera, and requests a new image
122
- * for the updated scene.
123
- *
124
- * @param delta A position delta `{x, y}` in the 2D coordinate space of the
125
- * viewer.
126
- */
127
- panCameraByDelta(delta: Point.Point): Promise<void>;
128
129
  /**
129
130
  * Performs a view all operation for the scene's bounding box, and requests a
130
131
  * new image for the updated scene.
@@ -181,6 +182,13 @@ export declare class InteractionApi {
181
182
  hitItems(pt: Point.Point): Promise<vertexvis.protobuf.stream.IHit[]>;
182
183
  private emitTapEvent;
183
184
  private isCoarseInputDevice;
184
- private getWorldPoint;
185
+ protected getWorldPoint(point: Point.Point, depthBuffer: DepthBuffer, fallbackPoint: Vector3.Vector3): Vector3.Vector3;
186
+ /**
187
+ * Performs a pan operation of the scene's camera, and requests a new image
188
+ * for the updated scene.
189
+ *
190
+ * @param delta A position delta `{x, y}` in the 2D coordinate space of the
191
+ * viewer.
192
+ */
193
+ abstract panCameraByDelta(delta: Point.Point): Promise<void>;
185
194
  }
186
- export {};
@@ -0,0 +1,35 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { Point, Vector3 } from '@vertexvis/geometry';
3
+ import { StreamApi } from '@vertexvis/stream-api';
4
+ import { ReceivedFrame } from '../..';
5
+ import { CursorManager } from '../cursors';
6
+ import { OrthographicCamera } from '../scenes';
7
+ import { DepthBuffer, Viewport } from '../types';
8
+ import { CameraTransform, InteractionApi, InteractionConfigProvider, SceneProvider } from './interactionApi';
9
+ import { TapEventDetails } from './tapEventDetails';
10
+ export declare class InteractionApiOrthographic extends InteractionApi {
11
+ private orthographicZoomData?;
12
+ constructor(stream: StreamApi, cursors: CursorManager, getConfig: InteractionConfigProvider, getScene: SceneProvider, getFrame: () => ReceivedFrame | undefined, getViewport: () => Viewport, tapEmitter: EventEmitter<TapEventDetails>, doubleTapEmitter: EventEmitter<TapEventDetails>, longPressEmitter: EventEmitter<TapEventDetails>, interactionStartedEmitter: EventEmitter<void>, interactionFinishedEmitter: EventEmitter<void>);
13
+ /**
14
+ * Performs a pan operation of the scene's camera, and requests a new image
15
+ * for the updated scene.
16
+ *
17
+ * @param delta A position delta `{x, y}` in the 2D coordinate space of the
18
+ * viewer.
19
+ */
20
+ panCameraByDelta(delta: Point.Point): Promise<void>;
21
+ /**
22
+ * Moves the camera's position and look at to the given screen coordinate.
23
+ *
24
+ * If the screen coordinate intersects with an object, the camera will track
25
+ * the hit point so the mouse position is always under the mouse.
26
+ *
27
+ * If the screen coordinate doesn't intersect with an object, then ???.
28
+ *
29
+ * @param screenPt A point in screen coordinates.
30
+ */
31
+ panCameraToScreenPoint(screenPt: Point.Point): Promise<void>;
32
+ zoomCameraToPoint(point: Point.Point, delta: number): Promise<void>;
33
+ protected getWorldPoint(point: Point.Point, depthBuffer: DepthBuffer, fallbackPoint: Vector3.Vector3): Vector3.Vector3;
34
+ transformCamera(t: CameraTransform<OrthographicCamera>): Promise<void>;
35
+ }
@@ -0,0 +1,21 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { Point } from '@vertexvis/geometry';
3
+ import { StreamApi } from '@vertexvis/stream-api';
4
+ import { ReceivedFrame } from '../..';
5
+ import { CursorManager } from '../cursors';
6
+ import { PerspectiveCamera } from '../scenes';
7
+ import { Viewport } from '../types';
8
+ import { CameraTransform, InteractionApi, InteractionConfigProvider, SceneProvider } from './interactionApi';
9
+ import { TapEventDetails } from './tapEventDetails';
10
+ export declare class InteractionApiPerspective extends InteractionApi {
11
+ constructor(stream: StreamApi, cursors: CursorManager, getConfig: InteractionConfigProvider, getScene: SceneProvider, getFrame: () => ReceivedFrame | undefined, getViewport: () => Viewport, tapEmitter: EventEmitter<TapEventDetails>, doubleTapEmitter: EventEmitter<TapEventDetails>, longPressEmitter: EventEmitter<TapEventDetails>, interactionStartedEmitter: EventEmitter<void>, interactionFinishedEmitter: EventEmitter<void>);
12
+ /**
13
+ * Performs a pan operation of the scene's camera, and requests a new image
14
+ * for the updated scene.
15
+ *
16
+ * @param delta A position delta `{x, y}` in the 2D coordinate space of the
17
+ * viewer.
18
+ */
19
+ panCameraByDelta(delta: Point.Point): Promise<void>;
20
+ transformCamera(t: CameraTransform<PerspectiveCamera>): Promise<void>;
21
+ }
@@ -2,6 +2,8 @@ import { vertexvis } from '@vertexvis/frame-streaming-protos';
2
2
  import { Mapper as M } from '@vertexvis/utils';
3
3
  import { Token } from '../token';
4
4
  import { CrossSectioning, Frame, FrameCamera, ImageAttributesLike, Orientation } from '../types';
5
+ export declare const fromPbPerspectiveCamera: M.Func<vertexvis.protobuf.stream.IPerspectiveCamera, FrameCamera.PerspectiveFrameCamera>;
6
+ export declare const fromPbOrthographicCamera: M.Func<vertexvis.protobuf.stream.IOrthographicCamera, FrameCamera.OrthographicFrameCamera>;
5
7
  export declare const fromPbCamera: M.Func<vertexvis.protobuf.stream.ICamera, FrameCamera.FrameCamera>;
6
8
  export declare const fromPbSectionPlane: M.Func<vertexvis.protobuf.stream.ISectionPlane, CrossSectioning.SectionPlane>;
7
9
  export declare const fromPbCrossSectioning: M.Func<vertexvis.protobuf.stream.ICrossSectioning, CrossSectioning.CrossSectioning>;
@@ -0,0 +1,2 @@
1
+ import { BoundingSphere, Vector3 } from '@vertexvis/geometry';
2
+ export declare function constrainViewVector(viewVector: Vector3.Vector3, boundingSphere: BoundingSphere.BoundingSphere): Vector3.Vector3;
@@ -1,4 +1,4 @@
1
- import { Camera } from '../camera';
1
+ import { PerspectiveCamera } from '../camera';
2
2
  import { Scene } from '../scene';
3
- export declare const cameraMock: Camera;
3
+ export declare const cameraMock: PerspectiveCamera;
4
4
  export declare const sceneMock: Scene;
@@ -1,7 +1,7 @@
1
1
  import { BoundingBox, Vector3 } from '@vertexvis/geometry';
2
2
  import { StreamApi } from '@vertexvis/stream-api';
3
3
  import { FrameDecoder } from '../mappers';
4
- import { Animation, FlyTo, FrameCamera, FramePerspectiveCamera, StandardView } from '../types';
4
+ import { Animation, ClippingPlanes, FlyTo, FrameCamera, FrameCameraBase, FrameOrthographicCamera, FramePerspectiveCamera, StandardView } from '../types';
5
5
  import { CameraRenderResult } from './cameraRenderResult';
6
6
  interface CameraRenderOptions {
7
7
  animation?: Animation.Animation;
@@ -35,28 +35,22 @@ export interface FlyToParams {
35
35
  * This class in intended to treated as an immutable type. Any mutations return
36
36
  * a new instance of the class with the updated properties.
37
37
  */
38
- export declare class Camera implements FrameCamera.FrameCamera {
39
- private stream;
40
- private aspect;
38
+ export declare abstract class Camera {
39
+ protected stream: StreamApi;
40
+ protected aspect: number;
41
41
  private data;
42
- private boundingBox;
43
- private decodeFrame;
44
- private flyToOptions?;
45
- constructor(stream: StreamApi, aspect: number, data: FrameCamera.FrameCamera, boundingBox: BoundingBox.BoundingBox, decodeFrame: FrameDecoder);
46
- /**
47
- * Updates the position of the camera such that the given bounding box will
48
- * be contained within the camera's view.
49
- *
50
- * @param boundingBox The bounding box to position to.
51
- */
52
- fitToBoundingBox(boundingBox: BoundingBox.BoundingBox): Camera;
42
+ protected boundingBox: BoundingBox.BoundingBox;
43
+ protected decodeFrame: FrameDecoder;
44
+ protected flyToOptions?: FlyTo.FlyToOptions | undefined;
45
+ constructor(stream: StreamApi, aspect: number, data: FrameCamera.FrameCamera, boundingBox: BoundingBox.BoundingBox, decodeFrame: FrameDecoder, flyToOptions?: FlyTo.FlyToOptions | undefined);
46
+ protected fitCameraToBoundingBox(boundingBox: BoundingBox.BoundingBox, distance: number, viewVector: Vector3.Vector3): Camera;
53
47
  /**
54
48
  * Returns the distance from the camera's position to the center
55
49
  * of the provided bounding box (or the scene's visible bounding box if not provided).
56
50
  *
57
51
  * @param boundingBox - The bounding box to determine distance from.
58
52
  */
59
- distanceToBoundingBoxCenter(boundingBox?: BoundingBox.BoundingBox): number;
53
+ signedDistanceToBoundingBoxCenter(boundingBox?: BoundingBox.BoundingBox): number;
60
54
  /**
61
55
  * Specifies that the next render of the camera will be repositioned to one of
62
56
  * the options specified in `options`.
@@ -65,13 +59,6 @@ export declare class Camera implements FrameCamera.FrameCamera {
65
59
  * be positioned.
66
60
  */
67
61
  flyTo(paramsOrQuery: FlyToParams | ((q: FlyToExecutor) => TerminalFlyToExecutor)): Camera;
68
- /**
69
- * Shifts the position of the camera by the given delta.
70
- *
71
- * @param delta The number of units to shift the camera on the X, Y, and Z
72
- * axis.
73
- */
74
- moveBy(delta: Vector3.Vector3): Camera;
75
62
  viewAll(): Camera;
76
63
  /**
77
64
  * Queues the rendering for a new frame using this camera. The returned
@@ -85,6 +72,16 @@ export declare class Camera implements FrameCamera.FrameCamera {
85
72
  * @param axis A normalized vector to rotate around.
86
73
  */
87
74
  rotateAroundAxis(angleInRadians: number, axis: Vector3.Vector3): Camera;
75
+ /**
76
+ * Updates the `position` and `up` vectors of the camera to the given standard
77
+ * view.
78
+ *
79
+ * @param standardView The standard view to apply.
80
+ * @returns A new camera.
81
+ */
82
+ standardView(standardView: StandardView): Camera;
83
+ private buildFlyToType;
84
+ protected computeClippingPlanes(camera: FrameCamera.FrameCamera): ClippingPlanes.ClippingPlanes;
88
85
  /**
89
86
  * Repositions the camera by rotating its current position around an axis
90
87
  * defined at a specific world point.
@@ -93,32 +90,55 @@ export declare class Camera implements FrameCamera.FrameCamera {
93
90
  * @param point The point in world space to place the axis at.
94
91
  * @param axis A normalized vector to rotate around.
95
92
  */
96
- rotateAroundAxisAtPoint(angleInRadians: number, point: Vector3.Vector3, axis: Vector3.Vector3): Camera;
93
+ abstract rotateAroundAxisAtPoint(angleInRadians: number, point: Vector3.Vector3, axis: Vector3.Vector3): Camera;
97
94
  /**
98
- * Updates the `position` and `up` vectors of the camera to the given standard
99
- * view.
95
+ * Updates the position of the camera such that the given bounding box will
96
+ * be contained within the camera's view.
100
97
  *
101
- * @param standardView The standard view to apply.
102
- * @returns A new camera.
98
+ * @param boundingBox The bounding box to position to.
103
99
  */
104
- standardView(standardView: StandardView): Camera;
100
+ abstract fitToBoundingBox(boundingBox: BoundingBox.BoundingBox): Camera;
101
+ abstract get position(): Vector3.Vector3;
102
+ abstract get lookAt(): Vector3.Vector3;
103
+ abstract get up(): Vector3.Vector3;
104
+ abstract get near(): number;
105
+ abstract get far(): number;
106
+ abstract get aspectRatio(): number;
107
+ abstract get viewVector(): Vector3.Vector3;
108
+ /**
109
+ * Shifts the position of the camera by the given delta.
110
+ *
111
+ * @param delta The number of units to shift the camera on the X, Y, and Z
112
+ * axis.
113
+ */
114
+ abstract moveBy(delta: Vector3.Vector3): Camera;
105
115
  /**
106
116
  * Updates the `position`, `lookAt` and/or `up` vectors of the camera.
107
117
  *
108
118
  * @param camera The values to update the camera to.
109
119
  */
110
- update(camera: Partial<FrameCamera.FrameCamera>): Camera;
120
+ abstract update(camera: Partial<FrameCamera.FrameCamera>): Camera;
111
121
  /**
112
- * Returns a `FramePerspectiveCamera` representation.
122
+ * Returns a `FrameCameraBase` representation.
113
123
  */
114
- toFrameCamera(): FramePerspectiveCamera;
115
- private buildFlyToType;
116
- private computeClippingPlanes;
124
+ abstract toFrameCamera(): FrameCameraBase;
125
+ protected abstract updateFlyToOptions(flyToOptions?: FlyTo.FlyToOptions): Camera;
126
+ }
127
+ export declare class PerspectiveCamera extends Camera implements FrameCamera.PerspectiveFrameCamera {
128
+ private perspectiveData;
129
+ constructor(stream: StreamApi, aspect: number, perspectiveData: FrameCamera.PerspectiveFrameCamera, boundingBox: BoundingBox.BoundingBox, decodeFrame: FrameDecoder, flyToOptions?: FlyTo.FlyToOptions);
117
130
  /**
118
- * Returns the view vector for the camera, which is the direction between the
119
- * `position` and `lookAt` vectors.
131
+ * Shifts the position of the camera by the given delta.
132
+ *
133
+ * @param delta The number of units to shift the camera on the X, Y, and Z
134
+ * axis.
120
135
  */
121
- viewVector(): Vector3.Vector3;
136
+ moveBy(delta: Vector3.Vector3): Camera;
137
+ rotateAroundAxisAtPoint(angleInRadians: number, point: Vector3.Vector3, axis: Vector3.Vector3): Camera;
138
+ fitToBoundingBox(boundingBox: BoundingBox.BoundingBox): Camera;
139
+ update(camera: Partial<FrameCamera.FrameCamera>): Camera;
140
+ toFrameCamera(): FramePerspectiveCamera;
141
+ get viewVector(): Vector3.Vector3;
122
142
  /**
123
143
  * The position vector for the camera, in world space coordinates.
124
144
  */
@@ -134,7 +154,49 @@ export declare class Camera implements FrameCamera.FrameCamera {
134
154
  /**
135
155
  * The camera's field of view.
136
156
  */
137
- get fovY(): number;
157
+ get fovY(): number | undefined;
158
+ /**
159
+ * The aspect ratio of the camera.
160
+ */
161
+ get aspectRatio(): number;
162
+ /**
163
+ * The camera's near clipping plane.
164
+ */
165
+ get near(): number;
166
+ /**
167
+ * The camera's far clipping plane.
168
+ */
169
+ get far(): number;
170
+ protected updateFlyToOptions(flyToOptions?: FlyTo.FlyToOptions): PerspectiveCamera;
171
+ }
172
+ export declare class OrthographicCamera extends Camera implements FrameCamera.OrthographicFrameCamera {
173
+ private orthographicData;
174
+ constructor(stream: StreamApi, aspect: number, orthographicData: FrameCamera.OrthographicFrameCamera, boundingBox: BoundingBox.BoundingBox, decodeFrame: FrameDecoder, flyToOptions?: FlyTo.FlyToOptions);
175
+ /**
176
+ * Shifts the position of the camera by the given delta.
177
+ *
178
+ * @param delta The number of units to shift the camera on the X, Y, and Z
179
+ * axis.
180
+ */
181
+ moveBy(delta: Vector3.Vector3): Camera;
182
+ rotateAroundAxisAtPoint(angleInRadians: number, point: Vector3.Vector3, axis: Vector3.Vector3): Camera;
183
+ fitToBoundingBox(boundingBox: BoundingBox.BoundingBox): Camera;
184
+ update(camera: Partial<FrameCamera.FrameCamera>): Camera;
185
+ toFrameCamera(): FrameOrthographicCamera;
186
+ get viewVector(): Vector3.Vector3;
187
+ get position(): Vector3.Vector3;
188
+ /**
189
+ * A normalized vector representing the up direction.
190
+ */
191
+ get up(): Vector3.Vector3;
192
+ /**
193
+ * A vector, in world space coordinates, of where the camera is pointed at.
194
+ */
195
+ get lookAt(): Vector3.Vector3;
196
+ /**
197
+ * The camera's field of view.
198
+ */
199
+ get fovHeight(): number;
138
200
  /**
139
201
  * The aspect ratio of the camera.
140
202
  */
@@ -147,5 +209,6 @@ export declare class Camera implements FrameCamera.FrameCamera {
147
209
  * The camera's far clipping plane.
148
210
  */
149
211
  get far(): number;
212
+ protected updateFlyToOptions(flyToOptions?: FlyTo.FlyToOptions): OrthographicCamera;
150
213
  }
151
214
  export {};
@@ -4,7 +4,7 @@ import { StreamApi } from '@vertexvis/stream-api';
4
4
  import { UUID } from '@vertexvis/utils';
5
5
  import { FrameDecoder } from '../mappers';
6
6
  import { Frame } from '../types/frame';
7
- import { Camera } from './camera';
7
+ import { Camera } from '.';
8
8
  import { ColorMaterial } from './colorMaterial';
9
9
  import { CrossSectioner } from './crossSectioner';
10
10
  import { ItemOperation, SceneItemOperations, SceneOperationBuilder } from './operations';
@@ -1,7 +1,9 @@
1
1
  import { BoundingBox } from '@vertexvis/geometry';
2
- import { FrameCamera } from './frameCamera';
2
+ import { FrameCamera, OrthographicFrameCamera, PerspectiveFrameCamera } from './frameCamera';
3
3
  export interface ClippingPlanes {
4
4
  near: number;
5
5
  far: number;
6
6
  }
7
7
  export declare function fromBoundingBoxAndLookAtCamera(boundingBox: BoundingBox.BoundingBox, camera: FrameCamera): ClippingPlanes;
8
+ export declare function fromBoundingBoxAndPerspectiveCamera(boundingBox: BoundingBox.BoundingBox, camera: PerspectiveFrameCamera): ClippingPlanes;
9
+ export declare function fromBoundingBoxAndOrthographicCamera(boundingBox: BoundingBox.BoundingBox, camera: OrthographicFrameCamera): ClippingPlanes;