@cognite/reveal 2.1.2 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/core/cad.d.ts +1 -2
  2. package/core/src/datamodels/cad/CadManager.d.ts +10 -10
  3. package/core/src/datamodels/cad/CadModelFactory.d.ts +10 -4
  4. package/core/src/datamodels/cad/createCadManager.d.ts +4 -5
  5. package/core/src/datamodels/cad/picking.d.ts +1 -1
  6. package/core/src/datamodels/cad/rendering/RenderAlreadyLoadedGeometryProvider.d.ts +2 -1
  7. package/core/src/datamodels/cad/styling/AssetNodeCollection.d.ts +8 -2
  8. package/core/src/datamodels/cad/styling/InvertedNodeCollection.d.ts +3 -2
  9. package/core/src/datamodels/cad/styling/PopulateIndexSetFromPagedResponseHelper.d.ts +10 -4
  10. package/core/src/datamodels/cad/styling/PropertyFilterNodeCollection.d.ts +5 -11
  11. package/core/src/datamodels/cad/styling/SinglePropertyFilterNodeCollection.d.ts +5 -14
  12. package/core/src/datamodels/pointcloud/PointCloudManager.d.ts +5 -4
  13. package/core/src/datamodels/pointcloud/PointCloudMetadataRepository.d.ts +6 -5
  14. package/core/src/datamodels/pointcloud/createPointCloudManager.d.ts +2 -4
  15. package/core/src/datamodels/pointcloud/index.d.ts +5 -0
  16. package/core/src/index.d.ts +1 -1
  17. package/core/src/internals.d.ts +15 -0
  18. package/core/src/public/RevealManager.d.ts +11 -8
  19. package/core/src/public/createRevealManager.d.ts +2 -3
  20. package/core/src/public/migration/Cognite3DModel.d.ts +20 -1
  21. package/core/src/public/migration/Cognite3DViewer.d.ts +30 -10
  22. package/core/src/public/migration/types.d.ts +36 -23
  23. package/core/src/public/types.d.ts +3 -1
  24. package/core/src/{public/migration → storage}/RevealManagerHelper.d.ts +7 -7
  25. package/core/src/utilities/Spinner.d.ts +4 -5
  26. package/core/src/utilities/ViewStateHelper.d.ts +2 -2
  27. package/core/src/utilities/worldToViewport.d.ts +1 -2
  28. package/extensions/datasource.d.ts +9 -0
  29. package/extensions/datasource.js +30 -0
  30. package/extensions/datasource.map +1 -0
  31. package/index.d.ts +2 -1
  32. package/index.js +214 -125
  33. package/index.map +1 -1
  34. package/package.json +6 -8
  35. package/packages/cad-geometry-loaders/index.d.ts +4 -11
  36. package/packages/cad-geometry-loaders/src/{CadModelSectorBudget.d.ts → CadModelBudget.d.ts} +3 -10
  37. package/packages/cad-geometry-loaders/src/CadModelUpdateHandler.d.ts +5 -7
  38. package/packages/cad-geometry-loaders/src/sector/SectorLoader.d.ts +7 -6
  39. package/packages/cad-geometry-loaders/src/sector/culling/ByScreenSizeSectorCuller.d.ts +23 -0
  40. package/packages/cad-geometry-loaders/src/sector/culling/ByVisibilityGpuSectorCuller.d.ts +3 -5
  41. package/packages/cad-geometry-loaders/src/sector/culling/WeightFunctionsHelper.d.ts +50 -0
  42. package/packages/cad-geometry-loaders/src/sector/culling/computeNdcAreaOfBox.d.ts +12 -0
  43. package/packages/cad-geometry-loaders/src/sector/culling/computeSectorCost.d.ts +7 -0
  44. package/packages/cad-geometry-loaders/src/sector/culling/createV8SectorCuller.d.ts +7 -0
  45. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenSectorMapBase.d.ts +11 -0
  46. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenV8SectorMap.d.ts +17 -0
  47. package/packages/cad-geometry-loaders/src/sector/culling/{TakenSectorTree.d.ts → takensectors/TakenV8SectorTree.d.ts} +6 -6
  48. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenV9SectorMap.d.ts +20 -0
  49. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/index.d.ts +5 -0
  50. package/packages/cad-geometry-loaders/src/sector/culling/transformBoxToNDC.d.ts +5 -0
  51. package/packages/cad-geometry-loaders/src/sector/culling/types.d.ts +16 -4
  52. package/packages/cad-geometry-loaders/src/sector/rxSectorUtilities.d.ts +2 -2
  53. package/packages/cad-geometry-loaders/src/utilities/rxOperations.d.ts +3 -2
  54. package/packages/cad-geometry-loaders/src/utilities/types.d.ts +0 -23
  55. package/packages/cad-parsers/index.d.ts +7 -6
  56. package/packages/{cad-geometry-loaders/src/material-manager/rendering → cad-parsers/src/cad}/filterInstanceMesh.d.ts +1 -1
  57. package/packages/cad-parsers/src/cad/filterPrimitivesCommon.d.ts +5 -0
  58. package/packages/cad-parsers/src/cad/{filterPrimitives.d.ts → filterPrimitivesV8.d.ts} +0 -0
  59. package/packages/cad-parsers/src/cad/filterPrimitivesV9.d.ts +6 -0
  60. package/packages/cad-parsers/src/cad/primitiveGeometries.d.ts +1 -1
  61. package/packages/{cad-geometry-loaders/src/material-manager/rendering → cad-parsers/src/cad}/triangleMeshes.d.ts +1 -1
  62. package/packages/cad-parsers/src/cad/types.d.ts +2 -2
  63. package/packages/cad-parsers/src/metadata/CadModelMetadata.d.ts +10 -0
  64. package/packages/cad-parsers/src/metadata/CadModelMetadataRepository.d.ts +6 -6
  65. package/packages/cad-parsers/src/metadata/MetadataRepository.d.ts +3 -2
  66. package/packages/cad-parsers/src/metadata/parsers/CadMetadataParserGltf.d.ts +6 -0
  67. package/packages/cad-parsers/src/metadata/parsers/CadMetadataParserV8.d.ts +2 -47
  68. package/packages/cad-parsers/src/metadata/parsers/types.d.ts +60 -0
  69. package/packages/cad-parsers/src/metadata/types.d.ts +15 -4
  70. package/packages/{cad-geometry-loaders → cad-parsers}/src/sector/RootSectorNode.d.ts +1 -1
  71. package/packages/{cad-geometry-loaders → cad-parsers}/src/sector/SectorNode.d.ts +1 -1
  72. package/packages/cad-parsers/src/utilities/SectorSceneFactory.d.ts +2 -5
  73. package/packages/cad-parsers/src/utilities/computeBoundingBoxFromAttributes.d.ts +10 -0
  74. package/packages/{cad-geometry-loaders → cad-parsers}/src/utilities/float32BufferToMatrix.d.ts +0 -0
  75. package/packages/cad-parsers/src/utilities/types.d.ts +26 -0
  76. package/packages/cad-styling/index.d.ts +4 -0
  77. package/packages/cad-styling/src/CombineNodeCollectionBase.d.ts +4 -2
  78. package/packages/cad-styling/src/IntersectionNodeCollection.d.ts +4 -0
  79. package/packages/cad-styling/src/NodeAppearance.d.ts +23 -0
  80. package/packages/cad-styling/src/NodeAppearanceProvider.d.ts +7 -0
  81. package/packages/cad-styling/src/NodeCollectionBase.d.ts +7 -0
  82. package/packages/cad-styling/src/TreeIndexNodeCollection.d.ts +17 -1
  83. package/packages/cad-styling/src/UnionNodeCollection.d.ts +3 -0
  84. package/packages/cad-styling/src/prioritized/AreaCollection.d.ts +39 -0
  85. package/packages/cad-styling/src/prioritized/BoxClusterer.d.ts +29 -0
  86. package/packages/cad-styling/src/prioritized/ClusteredAreaCollection.d.ts +17 -0
  87. package/packages/cad-styling/src/prioritized/EmptyAreaCollection.d.ts +18 -0
  88. package/packages/cad-styling/src/prioritized/types.d.ts +7 -0
  89. package/packages/camera-manager/index.d.ts +3 -1
  90. package/packages/camera-manager/src/CameraManager.d.ts +84 -0
  91. package/packages/camera-manager/src/ComboControls.d.ts +60 -42
  92. package/packages/camera-manager/src/Keyboard.d.ts +10 -7
  93. package/packages/camera-manager/src/types.d.ts +64 -0
  94. package/packages/data-source/index.d.ts +6 -0
  95. package/packages/data-source/src/CdfDataSource.d.ts +19 -0
  96. package/packages/data-source/src/DataSource.d.ts +26 -0
  97. package/packages/data-source/src/LocalDataSource.d.ts +15 -0
  98. package/packages/metrics/index.d.ts +5 -0
  99. package/packages/metrics/src/MetricsLogger.d.ts +21 -0
  100. package/packages/metrics/src/types.d.ts +7 -0
  101. package/packages/modeldata-api/index.d.ts +8 -3
  102. package/packages/modeldata-api/src/{CdfModelDataClient.d.ts → CdfModelDataProvider.d.ts} +6 -6
  103. package/packages/modeldata-api/src/CdfModelIdentifier.d.ts +15 -0
  104. package/packages/modeldata-api/src/CdfModelMetadataProvider.d.ts +11 -27
  105. package/packages/modeldata-api/src/CdfModelOutputsProvider.d.ts +16 -0
  106. package/packages/modeldata-api/src/LocalModelDataProvider.d.ts +10 -0
  107. package/packages/modeldata-api/src/LocalModelIdentifier.d.ts +14 -0
  108. package/packages/modeldata-api/src/LocalModelMetadataProvider.d.ts +11 -14
  109. package/packages/modeldata-api/src/ModelIdentifier.d.ts +12 -0
  110. package/packages/modeldata-api/src/ModelMetadataProvider.d.ts +19 -0
  111. package/packages/modeldata-api/src/types.d.ts +19 -26
  112. package/packages/nodes-api/index.d.ts +0 -1
  113. package/packages/nodes-api/src/NodesApiClient.d.ts +16 -8
  114. package/packages/nodes-api/src/NodesCdfClient.d.ts +9 -4
  115. package/packages/nodes-api/src/NodesLocalClient.d.ts +10 -5
  116. package/packages/nodes-api/src/types.d.ts +0 -4
  117. package/packages/rendering/index.d.ts +17 -0
  118. package/packages/{cad-geometry-loaders/src/material-manager → rendering/src}/CadMaterialManager.d.ts +5 -5
  119. package/packages/rendering/src/GeometryBatchingManager.d.ts +30 -0
  120. package/packages/{cad-geometry-loaders → rendering}/src/InstancedMeshManager.d.ts +1 -1
  121. package/packages/{cad-geometry-loaders → rendering}/src/cameraconfig.d.ts +0 -0
  122. package/packages/{cad-geometry-loaders/src/material-manager → rendering/src}/rendering/EffectRenderManager.d.ts +28 -12
  123. package/packages/{cad-geometry-loaders/src/material-manager/styling → rendering/src/rendering}/NodeAppearanceTextureBuilder.d.ts +8 -7
  124. package/packages/{cad-parsers/src/cad → rendering/src/rendering}/RenderMode.d.ts +0 -0
  125. package/packages/{cad-geometry-loaders/src/material-manager → rendering/src}/rendering/createSimpleGeometryMesh.d.ts +1 -1
  126. package/packages/{cad-parsers/src/cad → rendering/src/rendering}/matCapTextureData.d.ts +0 -0
  127. package/packages/{cad-parsers/src/cad → rendering/src/rendering}/materials.d.ts +0 -0
  128. package/packages/{cad-parsers/src/cad → rendering/src/rendering}/primitives.d.ts +3 -3
  129. package/packages/{cad-parsers/src/cad → rendering/src/rendering}/shaders.d.ts +1 -1
  130. package/packages/{cad-geometry-loaders/src/material-manager → rendering/src}/rendering/types.d.ts +1 -1
  131. package/packages/{cad-geometry-loaders/src → rendering/src/sector}/CadNode.d.ts +18 -9
  132. package/packages/{cad-geometry-loaders/src/material-manager/styling → rendering/src/transform}/NodeTransformProvider.d.ts +1 -1
  133. package/packages/{cad-geometry-loaders/src/material-manager/styling → rendering/src/transform}/NodeTransformTextureBuilder.d.ts +1 -1
  134. package/packages/{cad-geometry-loaders/src/material-manager/styling → rendering/src/transform}/TransformOverrideBuffer.d.ts +3 -3
  135. package/packages/rendering/src/utilities/types.d.ts +26 -0
  136. package/packages/sector-loader/index.d.ts +6 -0
  137. package/packages/sector-loader/src/GltfSectorRepository.d.ts +14 -0
  138. package/packages/{cad-geometry-loaders/src/sector/Repository.d.ts → sector-loader/src/SectorRepository.d.ts} +2 -2
  139. package/packages/{cad-geometry-loaders/src/sector/CachedRepository.d.ts → sector-loader/src/V8SectorRepository.d.ts} +6 -6
  140. package/packages/{cad-geometry-loaders/src/sector → sector-loader/src/v8}/SimpleAndDetailedToSector3D.d.ts +4 -4
  141. package/packages/{cad-geometry-loaders/src/utilities → sector-loader/src/v8}/arrays.d.ts +0 -0
  142. package/packages/{cad-geometry-loaders/src/utilities → sector-loader/src/v8}/groupMeshesByNumber.d.ts +0 -0
  143. package/packages/sector-loader/src/v8/sectorUtilities.d.ts +16 -0
  144. package/packages/sector-parser/index.d.ts +5 -0
  145. package/packages/sector-parser/src/GltfSectorParser.d.ts +18 -0
  146. package/packages/sector-parser/src/reveal-glb-parser/GlbMetadataParser.d.ts +14 -0
  147. package/packages/sector-parser/src/reveal-glb-parser/primitiveGeometries.d.ts +12 -0
  148. package/packages/sector-parser/src/types.d.ts +98 -0
  149. package/packages/tools/index.d.ts +4 -1
  150. package/packages/tools/src/AxisView/AxisViewTool.d.ts +2 -2
  151. package/packages/tools/src/DebugLoadedSectorsTool.d.ts +1 -1
  152. package/packages/tools/src/Geomap/Geomap.d.ts +5 -2
  153. package/packages/tools/src/Geomap/GeomapTool.d.ts +5 -2
  154. package/packages/tools/src/HtmlOverlay/BucketGrid2D.d.ts +28 -0
  155. package/packages/tools/src/HtmlOverlay/HtmlOverlayTool.d.ts +160 -0
  156. package/packages/tools/src/Timeline/Keyframe.d.ts +39 -0
  157. package/packages/tools/src/Timeline/TimelineTool.d.ts +79 -0
  158. package/packages/tools/src/Timeline/types.d.ts +13 -0
  159. package/packages/utilities/index.d.ts +7 -3
  160. package/packages/utilities/src/NumericRange.d.ts +2 -1
  161. package/packages/utilities/src/RandomColors.d.ts +34 -0
  162. package/packages/utilities/src/WebGLRendererStateHelper.d.ts +1 -1
  163. package/packages/utilities/src/counterMap.d.ts +5 -0
  164. package/packages/utilities/src/datastructures/DynamicDefragmentedBuffer.d.ts +18 -5
  165. package/packages/utilities/src/events/InputHandler.d.ts +25 -0
  166. package/packages/utilities/src/events/index.d.ts +1 -0
  167. package/packages/utilities/src/indexset/IndexSet.d.ts +1 -1
  168. package/packages/utilities/src/three/isBox3OnPositiveSideOfPlane.d.ts +10 -0
  169. package/packages/utilities/src/three/toThreeBox3.d.ts +6 -0
  170. package/packages/utilities/src/three/visitBox3CornerPoints.d.ts +12 -0
  171. package/packages/utilities/src/types.d.ts +1 -0
  172. package/tools.js +77 -117
  173. package/tools.map +1 -1
  174. package/packages/cad-geometry-loaders/src/sector/sectorUtilities.d.ts +0 -19
  175. package/packages/cad-parsers/src/cad/computeBoundingBoxFromAttributes.d.ts +0 -9
  176. package/packages/modeldata-api/src/LocalModelDataClient.d.ts +0 -10
  177. package/packages/tools/src/HtmlOverlayTool.d.ts +0 -88
  178. package/packages/utilities/src/metrics.d.ts +0 -15
  179. package/packages/utilities/src/three/getBox3CornerPoints.d.ts +0 -5
@@ -2,13 +2,13 @@
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
4
  import { EventDispatcher, Vector3, PerspectiveCamera, OrthographicCamera } from 'three';
5
- export default class ComboControls extends EventDispatcher {
5
+ export declare class ComboControls extends EventDispatcher {
6
6
  enabled: boolean;
7
7
  enableDamping: boolean;
8
8
  dampingFactor: number;
9
9
  dynamicTarget: boolean;
10
10
  minDistance: number;
11
- maxDistance: number;
11
+ minZoomDistance: number;
12
12
  dollyFactor: number;
13
13
  minPolarAngle: number;
14
14
  maxPolarAngle: number;
@@ -32,25 +32,34 @@ export default class ComboControls extends EventDispatcher {
32
32
  minZoom: number;
33
33
  maxZoom: number;
34
34
  orthographicCameraDollyFactor: number;
35
- private temporarilyDisableDamping;
36
- private camera;
37
- private firstPersonMode;
38
- private reusableCamera;
39
- private reusableVector3;
40
- private _accumulatedMouseMove;
41
- private domElement;
42
- private target;
43
- private targetEnd;
44
- private spherical;
45
- private sphericalEnd;
46
- private deltaTarget;
47
- private keyboard;
48
- private offsetVector;
49
- private panVector;
50
- private raycaster;
51
- private targetFPS;
52
- private targetFPSOverActualFPS;
53
- private isFocused;
35
+ lookAtViewTarget: boolean;
36
+ useScrollTarget: boolean;
37
+ zoomToCursor: boolean;
38
+ minDeltaRatio: number;
39
+ maxDeltaRatio: number;
40
+ minDeltaDownscaleCoefficient: number;
41
+ maxDeltaDownscaleCoefficient: number;
42
+ private _temporarilyDisableDamping;
43
+ private readonly _camera;
44
+ private _firstPersonMode;
45
+ private readonly _reusableCamera;
46
+ private readonly _reusableVector3;
47
+ private readonly _accumulatedMouseMove;
48
+ private readonly _domElement;
49
+ private readonly _target;
50
+ private readonly _viewTarget;
51
+ private readonly _scrollTarget;
52
+ private readonly _targetEnd;
53
+ private readonly _spherical;
54
+ private _sphericalEnd;
55
+ private readonly _deltaTarget;
56
+ private _keyboard;
57
+ private readonly _offsetVector;
58
+ private readonly _panVector;
59
+ private readonly _raycaster;
60
+ private readonly _targetFPS;
61
+ private _targetFPSOverActualFPS;
62
+ private _isFocused;
54
63
  constructor(camera: PerspectiveCamera | OrthographicCamera, domElement: HTMLElement);
55
64
  update: (deltaTime: number) => boolean;
56
65
  getState: () => {
@@ -58,26 +67,35 @@ export default class ComboControls extends EventDispatcher {
58
67
  position: Vector3;
59
68
  };
60
69
  setState: (position: Vector3, target: Vector3) => void;
70
+ setViewTarget: (target: Vector3) => void;
71
+ setScrollTarget: (target: Vector3) => void;
61
72
  triggerCameraChangeEvent: () => void;
62
- private onMouseDown;
63
- private onMouseUp;
64
- private onMouseWheel;
65
- private onTouchStart;
66
- private onFocusChanged;
67
- private onContextMenu;
68
- private rotate;
69
- private startMouseRotation;
70
- private startMousePan;
71
- private startTouchRotation;
72
- private startTouchPinch;
73
- private handleKeyboard;
74
- private rotateSpherical;
75
- private rotateFirstPersonMode;
76
- private pan;
77
- private dollyOrthographicCamera;
78
- private dollyPerspectiveCamera;
79
- private dolly;
80
- private getDollyDeltaDistance;
81
- private panLeft;
82
- private panUp;
73
+ private calculateShortestDeltaTheta;
74
+ private readonly convertPixelCoordinatesToNormalized;
75
+ private readonly onMouseDown;
76
+ private readonly onMouseUp;
77
+ private readonly onMouseWheel;
78
+ private readonly onTouchStart;
79
+ private readonly onFocusChanged;
80
+ private readonly isDescendant;
81
+ private readonly onContextMenu;
82
+ private readonly rotate;
83
+ private readonly startMouseRotation;
84
+ private readonly startMousePan;
85
+ private readonly startTouchRotation;
86
+ private readonly startTouchPinch;
87
+ private readonly handleKeyboard;
88
+ private readonly rotateSpherical;
89
+ private readonly rotateFirstPersonMode;
90
+ private readonly pan;
91
+ private readonly dollyOrthographicCamera;
92
+ private readonly calculateNewRadiusAndTargetOffsetLerp;
93
+ private readonly clampedMap;
94
+ private readonly calculateNewRadiusAndTargetOffsetScrollTarget;
95
+ private readonly dollyWithWheelScroll;
96
+ private readonly dollyPerspectiveCamera;
97
+ private readonly dolly;
98
+ private readonly getDollyDeltaDistance;
99
+ private readonly panLeft;
100
+ private readonly panUp;
83
101
  }
@@ -1,14 +1,17 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
1
4
  export default class Keyboard {
2
5
  private keys;
3
6
  private _disabled;
4
7
  get disabled(): boolean;
5
8
  set disabled(isDisabled: boolean);
6
9
  constructor();
7
- isPressed: (key: string) => boolean;
8
- comsumePressed: (key: string) => boolean;
9
- private addEventListeners;
10
- private removeEventListeners;
11
- private onKeydown;
12
- private onKeyup;
13
- private clearPressedKeys;
10
+ isPressed(key: string): boolean;
11
+ comsumePressed(key: string): boolean;
12
+ private readonly addEventListeners;
13
+ private readonly removeEventListeners;
14
+ private readonly onKeydown;
15
+ private readonly onKeyup;
16
+ private readonly clearPressedKeys;
14
17
  }
@@ -0,0 +1,64 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ export declare type CameraControlsOptions = {
5
+ /**
6
+ * Sets mouse wheel initiated action.
7
+ *
8
+ * Modes:
9
+ *
10
+ * 'zoomToTarget' - zooms just to the current target (center of the screen) of the camera.
11
+ *
12
+ * 'zoomPastCursor' - zooms in the direction of the ray coming from camera through cursor screen position, allows going through objects.
13
+ *
14
+ * 'zoomToCursor' - mouse wheel scroll zooms towards the point on the model where cursor is hovering over, doesn't allow going through objects.
15
+ *
16
+ * Default is 'zoomPastCursor'.
17
+ *
18
+ */
19
+ mouseWheelAction?: 'zoomToTarget' | 'zoomPastCursor' | 'zoomToCursor';
20
+ /**
21
+ * Enables or disables change of camera target on mouse click. New target is then set to the point of the model under current cursor position.
22
+ *
23
+ * Default is false.
24
+ *
25
+ */
26
+ changeCameraTargetOnClick?: boolean;
27
+ };
28
+ export declare type ControlsState = {
29
+ position: THREE.Vector3;
30
+ target: THREE.Vector3;
31
+ };
32
+ export declare type CameraManagerCallbackData = {
33
+ intersection: {
34
+ /**
35
+ * Coordinate of the intersection.
36
+ */
37
+ point: THREE.Vector3;
38
+ /**
39
+ * Distance from the camera to the intersection.
40
+ */
41
+ distanceToCamera: number;
42
+ } | null;
43
+ /**
44
+ * Bounding box for all models on the scene
45
+ */
46
+ modelsBoundingBox: THREE.Box3;
47
+ };
48
+ /**
49
+ * Delegate for pointer events.
50
+ * @module @cognite/reveal
51
+ */
52
+ export declare type PointerEventDelegate = (event: {
53
+ offsetX: number;
54
+ offsetY: number;
55
+ }) => void;
56
+ /**
57
+ * Type defining camera change event data.
58
+ */
59
+ export declare type CameraChangeData = (event: {
60
+ camera: {
61
+ position: THREE.Vector3;
62
+ target: THREE.Vector3;
63
+ };
64
+ }) => void;
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ export { DataSource } from './src/DataSource';
5
+ export { CdfDataSource } from './src/CdfDataSource';
6
+ export { LocalDataSource } from './src/LocalDataSource';
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { CogniteClient } from '@cognite/sdk';
5
+ import { DataSource } from './DataSource';
6
+ import { NodesApiClient } from '../../nodes-api';
7
+ import { ModelDataProvider, ModelMetadataProvider } from '../../modeldata-api';
8
+ /**
9
+ * Data source for Cognite Data Fusion.
10
+ */
11
+ export declare class CdfDataSource implements DataSource {
12
+ private readonly _metadataProvider;
13
+ private readonly _nodesApiClient;
14
+ private readonly _modelDataClient;
15
+ constructor(sdkClient: CogniteClient);
16
+ getNodesApiClient(): NodesApiClient;
17
+ getModelDataProvider(): ModelDataProvider;
18
+ getModelMetadataProvider(): ModelMetadataProvider;
19
+ }
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { NodesApiClient } from '../../nodes-api';
5
+ import { ModelDataProvider, ModelMetadataProvider } from '../../modeldata-api';
6
+ /**
7
+ * Describes how Reveal data is stored, and provides means to create custom storage providers
8
+ * that Reveal will fetch data from.
9
+ * @version New since 2.2
10
+ */
11
+ export interface DataSource {
12
+ /**
13
+ * Gets a node API client that is able to fetch data about
14
+ * models.
15
+ */
16
+ getNodesApiClient(): NodesApiClient;
17
+ /**
18
+ * Gets a metadata provider for models.
19
+ */
20
+ getModelMetadataProvider(): ModelMetadataProvider;
21
+ /**
22
+ * Gets a client that is able to download geometry and other files
23
+ * for models.
24
+ */
25
+ getModelDataProvider(): ModelDataProvider;
26
+ }
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { NodesApiClient } from '../../nodes-api';
5
+ import { ModelDataProvider, ModelMetadataProvider } from '../../modeldata-api';
6
+ import { DataSource } from './DataSource';
7
+ /**
8
+ * Data source for loading models from local storage (i.e. by URL).
9
+ * This implementation is meant for use in development.
10
+ */
11
+ export declare class LocalDataSource implements DataSource {
12
+ getNodesApiClient(): NodesApiClient;
13
+ getModelDataProvider(): ModelDataProvider;
14
+ getModelMetadataProvider(): ModelMetadataProvider;
15
+ }
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ export { MetricsLogger } from './src/MetricsLogger';
5
+ export { EventProps, TrackedEvents } from './src/types';
@@ -0,0 +1,21 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { TrackedEvents, EventProps } from './types';
5
+ export declare class MetricsLogger {
6
+ _sessionProps: {
7
+ VERSION: string;
8
+ project: string;
9
+ application: string;
10
+ sessionId: string;
11
+ };
12
+ private constructor();
13
+ static init(logMetrics: boolean, project: string, applicationId: string, eventProps: EventProps): void;
14
+ private innerTrackEvent;
15
+ static trackEvent(eventName: TrackedEvents, eventProps: EventProps): void;
16
+ static trackCreateTool(toolName: string): void;
17
+ static trackLoadModel(eventProps: EventProps, modelIdentifier: any): void;
18
+ static trackCadModelStyled(nodeCollectionClassToken: string, appearance: any): void;
19
+ static trackError(error: Error, eventProps: EventProps): void;
20
+ static trackCameraNavigation(eventProps: EventProps): void;
21
+ }
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ export declare type TrackedEvents = 'init' | 'construct3dViewer' | 'loadModel' | 'error' | 'cameraNavigated' | 'toolCreated' | 'cadModelStyleAssigned';
5
+ export declare type EventProps = {
6
+ [key: string]: any;
7
+ };
@@ -1,8 +1,13 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- export { CdfModelDataClient } from './src/CdfModelDataClient';
4
+ export { CdfModelDataProvider } from './src/CdfModelDataProvider';
5
+ export { CdfModelIdentifier } from './src/CdfModelIdentifier';
5
6
  export { CdfModelMetadataProvider } from './src/CdfModelMetadataProvider';
6
- export { LocalModelDataClient } from './src/LocalModelDataClient';
7
+ export { CdfModelOutputsProvider } from './src/CdfModelOutputsProvider';
8
+ export { LocalModelDataProvider } from './src/LocalModelDataProvider';
9
+ export { LocalModelIdentifier } from './src/LocalModelIdentifier';
7
10
  export { LocalModelMetadataProvider } from './src/LocalModelMetadataProvider';
8
- export { ModelDataClient, LocalModelIdentifier, CdfModelIdentifier, BinaryFileProvider, HttpHeadersProvider, ModelMetadataProvider, File3dFormat } from './src/types';
11
+ export { ModelIdentifier } from './src/ModelIdentifier';
12
+ export { ModelMetadataProvider } from './src/ModelMetadataProvider';
13
+ export { BinaryFileProvider, File3dFormat, HttpHeadersProvider, ModelDataProvider, BlobOutputMetadata } from './src/types';
@@ -1,17 +1,17 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import { CogniteClient } from '@cognite/sdk';
5
- import { ModelDataClient } from './types';
4
+ import { CogniteClient, HttpHeaders } from '@cognite/sdk';
5
+ import { ModelDataProvider } from './types';
6
6
  /**
7
7
  * Provides 3D V2 specific extensions for the standard CogniteClient used by Reveal.
8
8
  */
9
- export declare class CdfModelDataClient implements ModelDataClient {
9
+ export declare class CdfModelDataProvider implements ModelDataProvider {
10
10
  private readonly client;
11
- private appId;
11
+ private authenticationPromise;
12
12
  constructor(client: CogniteClient);
13
- get headers(): import("@cognite/sdk").HttpHeaders;
13
+ get headers(): HttpHeaders;
14
14
  getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
15
15
  getJsonFile(baseUrl: string, fileName: string): Promise<any>;
16
- getApplicationIdentifier(): string;
16
+ private fetchWithRetry;
17
17
  }
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { ModelIdentifier } from '..';
5
+ /**
6
+ * Identifies a 3D model stored in CDF by the combination of a modelId, a revisionId
7
+ * and a format.
8
+ */
9
+ export declare class CdfModelIdentifier implements ModelIdentifier {
10
+ readonly revealInternalId: symbol;
11
+ readonly modelId: number;
12
+ readonly revisionId: number;
13
+ constructor(modelId: number, revisionId: number);
14
+ toString(): string;
15
+ }
@@ -2,35 +2,19 @@
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
+ import { BlobOutputMetadata, File3dFormat } from './types';
6
+ import { ModelMetadataProvider } from './ModelMetadataProvider';
5
7
  import { CogniteClient } from '@cognite/sdk';
6
- import { File3dFormat, CameraConfiguration, ModelMetadataProvider } from './types';
7
- import { Model3DOutputList } from './Model3DOutputList';
8
- export declare class CdfModelMetadataProvider implements ModelMetadataProvider<{
9
- modelId: number;
10
- revisionId: number;
11
- format: File3dFormat;
12
- }> {
8
+ import { ModelIdentifier } from './ModelIdentifier';
9
+ export declare class CdfModelMetadataProvider implements ModelMetadataProvider {
13
10
  private readonly _client;
14
11
  constructor(client: CogniteClient);
15
- getModelMatrix(modelIdentifier: {
16
- modelId: number;
17
- revisionId: number;
18
- format: File3dFormat | string;
19
- }): Promise<THREE.Matrix4>;
20
- getModelCamera(modelIdentifier: {
21
- modelId: number;
22
- revisionId: number;
23
- format: File3dFormat | string;
24
- }): Promise<CameraConfiguration | undefined>;
25
- getModelUri(modelIdentifier: {
26
- modelId: number;
27
- revisionId: number;
28
- format: File3dFormat | string;
29
- }): Promise<string>;
30
- getOutputs(modelIdentifier: {
31
- modelId: number;
32
- revisionId: number;
33
- format?: File3dFormat | string;
34
- }): Promise<Model3DOutputList>;
12
+ getModelMatrix(modelIdentifier: ModelIdentifier, format: File3dFormat): Promise<THREE.Matrix4>;
13
+ getModelCamera(modelIdentifier: ModelIdentifier): Promise<{
14
+ position: THREE.Vector3;
15
+ target: THREE.Vector3;
16
+ } | undefined>;
17
+ getModelUri(modelIdentifier: ModelIdentifier, formatMetadata: BlobOutputMetadata): Promise<string>;
18
+ getModelOutputs(modelIdentifier: ModelIdentifier): Promise<BlobOutputMetadata[]>;
35
19
  private getRequestPath;
36
20
  }
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { CdfModelIdentifier } from './CdfModelIdentifier';
5
+ import { Model3DOutputList } from './Model3DOutputList';
6
+ import { File3dFormat } from './types';
7
+ import { CogniteClient } from '@cognite/sdk';
8
+ /**
9
+ * Helper class for getting the available 'outputs' from the Cognite
10
+ * 3D processing pipeline for a given model.
11
+ */
12
+ export declare class CdfModelOutputsProvider {
13
+ private readonly _client;
14
+ constructor(client: CogniteClient);
15
+ getOutputs(modelIdentifier: CdfModelIdentifier, modelFormat: File3dFormat): Promise<Model3DOutputList>;
16
+ }
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { HttpHeaders } from '@cognite/sdk-core';
5
+ import { ModelDataProvider } from './types';
6
+ export declare class LocalModelDataProvider implements ModelDataProvider {
7
+ get headers(): HttpHeaders;
8
+ getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
9
+ getJsonFile(baseUrl: string, fileName: string): Promise<any>;
10
+ }
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { ModelIdentifier } from './ModelIdentifier';
5
+ /**
6
+ * Identifies a 3D model by a URL. This implementation is used for testing
7
+ * purposes.
8
+ */
9
+ export declare class LocalModelIdentifier implements ModelIdentifier {
10
+ readonly revealInternalId: symbol;
11
+ readonly localPath: string;
12
+ constructor(localPath: string);
13
+ toString(): string;
14
+ }
@@ -2,18 +2,15 @@
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { ModelMetadataProvider } from './types';
6
- import { CameraConfiguration } from './types';
7
- export declare class LocalModelMetadataProvider implements ModelMetadataProvider<{
8
- fileName: string;
9
- }> {
10
- getModelUri(params: {
11
- fileName: string;
12
- }): Promise<string>;
13
- getModelMatrix(_identifier: {
14
- fileName: string;
15
- }): Promise<THREE.Matrix4>;
16
- getModelCamera(_identifier: {
17
- fileName: string;
18
- }): Promise<CameraConfiguration | undefined>;
5
+ import { ModelIdentifier } from './ModelIdentifier';
6
+ import { ModelMetadataProvider } from './ModelMetadataProvider';
7
+ import { BlobOutputMetadata } from './types';
8
+ export declare class LocalModelMetadataProvider implements ModelMetadataProvider {
9
+ getModelUri(modelIdentifier: ModelIdentifier): Promise<string>;
10
+ getModelMatrix(modelIdentifier: ModelIdentifier): Promise<THREE.Matrix4>;
11
+ getModelCamera(modelIdentifier: ModelIdentifier): Promise<{
12
+ position: THREE.Vector3;
13
+ target: THREE.Vector3;
14
+ } | undefined>;
15
+ getModelOutputs(modelIdentifier: ModelIdentifier): Promise<BlobOutputMetadata[]>;
19
16
  }
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ /**
5
+ * Identifies a 3D model. Typically, implementations will use {@link CdfModelIdentifier}.
6
+ */
7
+ export interface ModelIdentifier {
8
+ /**
9
+ * Unique ID of the model.
10
+ */
11
+ readonly revealInternalId: symbol;
12
+ }
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ import { ModelIdentifier } from './ModelIdentifier';
6
+ import { BlobOutputMetadata, File3dFormat } from './types';
7
+ /**
8
+ * Provides metadata for 3D models.
9
+ * @version New since 2.2
10
+ */
11
+ export interface ModelMetadataProvider {
12
+ getModelOutputs(modelIdentifier: ModelIdentifier): Promise<BlobOutputMetadata[]>;
13
+ getModelUri(identifier: ModelIdentifier, formatMetadata: BlobOutputMetadata): Promise<string>;
14
+ getModelCamera(identifier: ModelIdentifier): Promise<{
15
+ position: THREE.Vector3;
16
+ target: THREE.Vector3;
17
+ } | undefined>;
18
+ getModelMatrix(identifier: ModelIdentifier, format: File3dFormat | string): Promise<THREE.Matrix4>;
19
+ }
@@ -1,53 +1,46 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import * as THREE from 'three';
5
4
  import { HttpHeaders } from '@cognite/sdk-core';
6
- export interface LocalModelIdentifier {
7
- fileName: string;
8
- }
9
- export interface CdfModelIdentifier {
10
- modelId: number;
11
- revisionId: number;
12
- }
13
5
  export interface JsonFileProvider {
14
6
  getJsonFile(baseUrl: string, fileName: string): Promise<any>;
15
7
  }
16
8
  export interface BinaryFileProvider {
17
9
  getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
18
10
  }
19
- export interface ModelMetadataProvider<TModelIdentifier> {
11
+ /**
12
+ * Provides data for 3D models.
13
+ * @version New since 2.2
14
+ */
15
+ export interface ModelDataProvider extends HttpHeadersProvider, JsonFileProvider, BinaryFileProvider {
20
16
  /**
21
- * Returns an URI that identifies the resource where model geometry and metadata files are stored.
22
- * @param identifier Identifier of the model
17
+ * Download and parse a JSON file and return the resulting struct.
18
+ * @param baseUrl Base URL of the model.
19
+ * @param fileName Filename of JSON file.
23
20
  */
24
- getModelUri(identifier: TModelIdentifier): Promise<string>;
25
- getModelCamera(identifier: TModelIdentifier): Promise<CameraConfiguration | undefined>;
26
- getModelMatrix(identifier: TModelIdentifier): Promise<THREE.Matrix4>;
27
- }
28
- export interface ModelDataClient extends HttpHeadersProvider, JsonFileProvider, BinaryFileProvider {
29
21
  getJsonFile(baseUrl: string, fileName: string): Promise<any>;
30
- getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
31
22
  /**
32
- * Returns an identifier that can be used to identify the application Reveal is used in.
23
+ * Downloads a binary blob.
24
+ * @param baseUrl Base URL of the model.
25
+ * @param fileName Filename of binary file.
33
26
  */
34
- getApplicationIdentifier(): string;
27
+ getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
35
28
  }
36
29
  export interface HttpHeadersProvider {
37
30
  readonly headers: HttpHeaders;
38
31
  }
39
32
  export declare enum File3dFormat {
40
33
  EptPointCloud = "ept-pointcloud",
34
+ /**
35
+ * V8 models only due to bug for version checks in Reveal <3.0
36
+ */
41
37
  RevealCadModel = "reveal-directory",
38
+ /**
39
+ * Reveal v9 and above (GLTF based output)
40
+ */
41
+ GltfCadModel = "gltf-directory",
42
42
  AnyFormat = "all-outputs"
43
43
  }
44
- /**
45
- * Represents a camera configuration, consisting of a camera position and target.
46
- */
47
- export declare type CameraConfiguration = {
48
- readonly position: THREE.Vector3;
49
- readonly target: THREE.Vector3;
50
- };
51
44
  export interface BlobOutputMetadata {
52
45
  blobId: number;
53
46
  format: File3dFormat | string;
@@ -4,4 +4,3 @@
4
4
  export { NodesApiClient } from './src/NodesApiClient';
5
5
  export { NodesCdfClient } from './src/NodesCdfClient';
6
6
  export { NodesLocalClient } from './src/NodesLocalClient';
7
- export { NodeTreeIndexAndSubtreeSize } from './src/types';