@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
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ import { RevealGeometryCollectionType } from '../types';
6
+ export declare function setBoxGeometry(geometry: THREE.BufferGeometry): THREE.Box3;
7
+ export declare function setQuadGeometry(geometry: THREE.BufferGeometry, includeNormal?: boolean): THREE.Box3;
8
+ export declare function setTrapeziumGeometry(geometry: THREE.BufferGeometry): THREE.Box3;
9
+ export declare function setConeGeometry(geometry: THREE.BufferGeometry): THREE.Box3;
10
+ export declare function setTorusGeometry(geometry: THREE.BufferGeometry): THREE.Box3;
11
+ export declare function setNutGeometry(geometry: THREE.BufferGeometry): THREE.Box3;
12
+ export declare function setPrimitiveTopology(primitiveCollectionName: RevealGeometryCollectionType, geometry: THREE.BufferGeometry): void;
@@ -0,0 +1,98 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ export declare type GltfJson = {
5
+ accessors: Accessor[];
6
+ asset: Asset;
7
+ bufferViews: BufferView[];
8
+ buffers: Buffer[];
9
+ extensionsUsed: string[];
10
+ meshes: Mesh[];
11
+ nodes: Node[];
12
+ scene: number;
13
+ scenes: Scene[];
14
+ };
15
+ export declare type Scene = {
16
+ nodes: number[];
17
+ };
18
+ export declare type Accessor = {
19
+ bufferView: number;
20
+ byteOffset: number | undefined;
21
+ componentType: number;
22
+ count: number;
23
+ type: string;
24
+ };
25
+ export declare type Asset = {
26
+ copyright: string;
27
+ generator: string;
28
+ version: string;
29
+ };
30
+ export declare type Buffer = {
31
+ byteLength: number;
32
+ };
33
+ export declare type BufferView = {
34
+ buffer: number;
35
+ byteLength: number;
36
+ byteOffset: number | undefined;
37
+ byteStride: number;
38
+ };
39
+ export declare type Node = {
40
+ name: string;
41
+ mesh: number | undefined;
42
+ extensions: {
43
+ EXT_mesh_gpu_instancing: {
44
+ attributes: {
45
+ [key: string]: number;
46
+ };
47
+ } | undefined;
48
+ };
49
+ };
50
+ export declare type Mesh = {
51
+ primitives: Primitive[];
52
+ extras: {
53
+ [key: string]: any;
54
+ } | undefined;
55
+ };
56
+ export declare type Primitive = {
57
+ attributes: {
58
+ [key: string]: number;
59
+ };
60
+ indices: number;
61
+ };
62
+ export declare enum RevealGeometryCollectionType {
63
+ BoxCollection = 0,
64
+ CircleCollection = 1,
65
+ ConeCollection = 2,
66
+ EccentricConeCollection = 3,
67
+ EllipsoidSegmentCollection = 4,
68
+ GeneralCylinderCollection = 5,
69
+ GeneralRingCollection = 6,
70
+ QuadCollection = 7,
71
+ TorusSegmentCollection = 8,
72
+ TrapeziumCollection = 9,
73
+ NutCollection = 10,
74
+ TriangleMesh = 11,
75
+ InstanceMesh = 12
76
+ }
77
+ export declare type GlbHeaderData = {
78
+ json: GltfJson;
79
+ binContentLength: number;
80
+ byteOffsetToBinContent: number;
81
+ };
82
+ export declare type GeometryProcessingPayload = {
83
+ geometryType: RevealGeometryCollectionType;
84
+ bufferGeometry: THREE.InstancedBufferGeometry | THREE.BufferGeometry;
85
+ instancingExtension: {
86
+ attributes: {
87
+ [key: string]: number;
88
+ };
89
+ } | undefined;
90
+ meshId: number | undefined;
91
+ glbHeaderData: GlbHeaderData;
92
+ data: ArrayBuffer;
93
+ };
94
+ export declare type ParsedGeometry = {
95
+ type: RevealGeometryCollectionType;
96
+ geometryBuffer: THREE.BufferGeometry;
97
+ instanceId?: string;
98
+ };
@@ -1,12 +1,15 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- export { HtmlOverlayTool, HtmlOverlayOptions } from './src/HtmlOverlayTool';
4
+ export { HtmlOverlayTool, HtmlOverlayOptions, HtmlOverlayPositionUpdatedDelegate, HtmlOverlayCreateClusterDelegate } from './src/HtmlOverlay/HtmlOverlayTool';
5
5
  export { ExplodedViewTool } from './src/ExplodedViewTool';
6
6
  export { DebugCameraTool } from './src/DebugCameraTool';
7
7
  export { AxisViewTool } from './src/AxisView/AxisViewTool';
8
8
  export { AxisBoxConfig, AxisBoxCompassConfig, AxisBoxFaceConfig, Corner, AbsolutePosition, RelativePosition } from './src/AxisView/types';
9
9
  export { GeomapTool } from './src/Geomap/GeomapTool';
10
10
  export { MapConfig, MapProviders, BingMapConfig, HereMapConfig, MapboxConfig, MapboxMode, MapboxStyle, MapboxImageFormat, BingMapType, BingMapImageFormat, HereMapType, HereMapScheme, HereMapImageFormat } from './src/Geomap/MapConfig';
11
+ export { TimelineTool } from './src/Timeline/TimelineTool';
12
+ export { Keyframe } from './src/Timeline/Keyframe';
13
+ export { TimelineDateUpdateDelegate } from './src/Timeline/types';
11
14
  export { Cognite3DViewerToolBase } from './src/Cognite3DViewerToolBase';
12
15
  export { DebugLoadedSectorsTool, DebugLoadedSectorsToolOptions } from './src/DebugLoadedSectorsTool';
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import { Cognite3DViewer } from '../../../../core';
5
4
  import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
5
  import { AxisBoxConfig } from './types';
6
+ import { Cognite3DViewer } from '../../../../core';
7
7
  export declare class AxisViewTool extends Cognite3DViewerToolBase {
8
8
  private readonly _layoutConfig;
9
9
  private readonly _boxFaceGeometry;
@@ -15,7 +15,7 @@ export declare class AxisViewTool extends Cognite3DViewerToolBase {
15
15
  private readonly _screenPosition;
16
16
  private readonly _disposeClickDiv;
17
17
  private _dynamicUpdatePosition;
18
- private _updateClickDiv;
18
+ private readonly _updateClickDiv;
19
19
  constructor(viewer: Cognite3DViewer, config?: AxisBoxConfig);
20
20
  dispose(): void;
21
21
  private createClickDiv;
@@ -4,7 +4,7 @@ export declare type DebugLoadedSectorsToolOptions = {
4
4
  showSimpleSectors?: boolean;
5
5
  showDetailedSectors?: boolean;
6
6
  showDiscardedSectors?: boolean;
7
- colorBy?: 'depth' | 'lod' | 'loadedTimestamp' | 'random';
7
+ colorBy?: 'depth' | 'lod' | 'loadedTimestamp' | 'drawcalls' | 'random';
8
8
  leafsOnly?: boolean;
9
9
  sectorPathFilterRegex?: string;
10
10
  };
@@ -2,13 +2,16 @@ import { Cognite3DViewer } from '../../../../core';
2
2
  import { LatLongPosition, MapConfig } from './MapConfig';
3
3
  export declare class Geomap {
4
4
  private readonly _viewer;
5
- private _map;
5
+ private readonly _map;
6
6
  private _intervalId;
7
7
  private readonly _onCameraChange;
8
8
  constructor(viewer: Cognite3DViewer, mapConfig: MapConfig);
9
9
  private requestRedraw;
10
10
  private getMapProvider;
11
- latLongToWorldCoordinates(latLong: LatLongPosition): any;
11
+ latLongToWorldCoordinates(latLong: LatLongPosition): {
12
+ x: number;
13
+ y: number;
14
+ };
12
15
  private handleCameraChange;
13
16
  dispose(): void;
14
17
  }
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import { Cognite3DViewer } from '../../../../core';
5
4
  import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
5
  import { LatLongPosition, MapConfig } from './MapConfig';
6
+ import { Cognite3DViewer } from '../../../../core';
7
7
  /**
8
8
  * The `GeomapTool` is a geolocation for the models and allow the user to place them on the maps.
9
9
  * @version New since 2.1.
@@ -16,6 +16,9 @@ export declare class GeomapTool extends Cognite3DViewerToolBase {
16
16
  * Converts Latitude & Longitude into Vector2 World coordinates on the Map
17
17
  * @param latLong Latitude & Longitude
18
18
  */
19
- latLongToWorldCoordinates(latLong: LatLongPosition): void;
19
+ latLongToWorldCoordinates(latLong: LatLongPosition): {
20
+ x: number;
21
+ y: number;
22
+ };
20
23
  dispose(): void;
21
24
  }
@@ -0,0 +1,28 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Data structure that splits a 2D region into cells where each cell can contain zero to many
7
+ * elements. Elements can be stored in several cells. This data structure make overlap lookups
8
+ * efficient.
9
+ *
10
+ * Note! This class is tailored for usage with {@link HtmlOverlayTool} and has a few restrictions
11
+ * and assumptions associated with the usage. If used elsewhere, take care as to how this affects
12
+ * performance and behaviour.
13
+ */
14
+ export declare class BucketGrid2D<T> {
15
+ private readonly _dimensions;
16
+ private readonly _bounds;
17
+ private readonly _cells;
18
+ /**
19
+ * Holds elements that has been removed from the collection using {@link removeOverlappingElements}.
20
+ * This is used to avoid expensive re-allocations of cells when removing elements.
21
+ */
22
+ private readonly _removedElements;
23
+ constructor(bounds: THREE.Box2, dimensions: [width: number, height: number]);
24
+ insert(bounds: THREE.Box2, element: T): void;
25
+ overlappingElements(bounds: THREE.Box2): Generator<T>;
26
+ removeOverlappingElements(bounds: THREE.Box2): Generator<T>;
27
+ private cellsIntersecting;
28
+ }
@@ -0,0 +1,160 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
+ import { Cognite3DViewer } from '../../../../core';
7
+ /**
8
+ * Callback that is triggered whenever the 2D position of an overlay is updated
9
+ * in {@link HtmlOverlayTool}.
10
+ */
11
+ export declare type HtmlOverlayPositionUpdatedDelegate = (element: HTMLElement, position2D: THREE.Vector2, position3D: THREE.Vector3, distanceToCamera: number, userData: any) => void;
12
+ /**
13
+ * Callback that is triggered when a set of overlays are clustered together in
14
+ * {@link HtmlOverlayTool}.
15
+ */
16
+ export declare type HtmlOverlayCreateClusterDelegate = (overlayElements: {
17
+ htmlElement: HTMLElement;
18
+ userData: any;
19
+ }[]) => HTMLElement;
20
+ /**
21
+ * Options for an overlay added using {@link HtmlOverlayTool.add}.
22
+ */
23
+ export declare type HtmlOverlayOptions = {
24
+ /**
25
+ * Callback that is triggered whenever the position of the overlay is updated. Optional.
26
+ */
27
+ positionUpdatedCallback?: HtmlOverlayPositionUpdatedDelegate;
28
+ /**
29
+ * Optional user specified data that is provided to the {@link HtmlOverlayCreateClusterDelegate} and
30
+ * {@link HtmlOverlayPositionUpdatedDelegate}.
31
+ */
32
+ userData?: any;
33
+ };
34
+ /**
35
+ * Controls how close overlay elements are clustered together.
36
+ */
37
+ export declare type HtmlOverlayToolClusteringOptions = {
38
+ /**
39
+ * Currently only 'overlapInScreenSpace' is supported. In this mode,
40
+ * overlays are clustered together into a single element as defined by
41
+ * the {@link createClusterElementCallback} and hidden when they overlap
42
+ * in screen space. The composite element is placed at the midpoint of
43
+ * all clustered elements.
44
+ *
45
+ * Clustered elements are faded in/out using CSS styling `transition`,
46
+ * `opacity` and `visibility`.
47
+ */
48
+ mode: 'overlapInScreenSpace';
49
+ /**
50
+ * Callback that is triggered when a set of overlays are clustered together
51
+ * to create a "composite" element as a placeholder for the clustered elements.
52
+ * Note that this callback will be triggered every frame for each cluster so it
53
+ * must be performant.
54
+ */
55
+ createClusterElementCallback: HtmlOverlayCreateClusterDelegate;
56
+ };
57
+ export declare type HtmlOverlayToolOptions = {
58
+ clusteringOptions?: HtmlOverlayToolClusteringOptions;
59
+ };
60
+ /**
61
+
62
+ * Manages HTMLoverlays for {@see Cognite3DViewer}. Attaches HTML elements to a
63
+ * 3D position and updates its position/visibility as user moves the camera. This is
64
+ * useful to create HTML overlays to highlight information about key positions in the 3D model.
65
+ *
66
+ * Attached elements *must* have CSS style 'position: absolute'. It's also recommended
67
+ * in most cases to have styles 'pointer-events: none' and 'touch-action: none' to avoid
68
+ * interfering with 3D navigation. Consider also applying 'transform: translate(-50%, -50%)'
69
+ * to anchor the center of the element rather than the top-left corner. In some cases the
70
+ * `zIndex`-attribute is necessary for the element to appear on top of the viewer.
71
+ *
72
+ * @example
73
+ * ```js
74
+ * const el = document.createElement('div');
75
+ * el.style.position = 'absolute'; // Required!
76
+ * // Anchor to center of element
77
+ * el.style.transform = 'translate(-50%, -50%)';
78
+ * // Avoid being target for events
79
+ * el.style.pointerEvents = 'none;
80
+ * el.style.touchAction = 'none';
81
+ * // Render in front of other elements
82
+ * el.style.zIndex = 10;
83
+ *
84
+ * el.style.color = 'red';
85
+ * el.innerHtml = '<h1>Overlay</h1>';
86
+ *
87
+ * const overlayTool = new HtmlOverlayTool(viewer);
88
+ * overlayTool.add(el, new THREE.Vector3(10, 10, 10));
89
+ * // ...
90
+ * overlayTool.remove(el);
91
+ * // or, to remove all attached elements
92
+ * overlayTool.clear();
93
+ *
94
+ * // detach the tool from the viewer
95
+ * overlayTool.dispose();
96
+ * ```
97
+ */
98
+ export declare class HtmlOverlayTool extends Cognite3DViewerToolBase {
99
+ private readonly _viewer;
100
+ private readonly _options;
101
+ private readonly _htmlOverlays;
102
+ private readonly _compositeOverlays;
103
+ private readonly _onSceneRenderedHandler;
104
+ private readonly _onViewerDisposedHandler;
105
+ private readonly _preallocatedVariables;
106
+ private readonly scheduleUpdate;
107
+ private get viewerDomElement();
108
+ private get viewerCamera();
109
+ private get viewerRenderer();
110
+ constructor(viewer: Cognite3DViewer, options?: HtmlOverlayToolOptions);
111
+ /**
112
+ * Returns all added HTML elements along with their 3D positions.
113
+ */
114
+ get elements(): {
115
+ element: HTMLElement;
116
+ position3D: THREE.Vector3;
117
+ }[];
118
+ /**
119
+ * Removes all elements and detaches from the viewer.
120
+ * @override
121
+ */
122
+ dispose(): void;
123
+ /**
124
+ * Registers a HTML overlay that will be updated on rendering.
125
+ *
126
+ * @param htmlElement
127
+ * @param position3D
128
+ * @param options
129
+ */
130
+ add(htmlElement: HTMLElement, position3D: THREE.Vector3, options?: HtmlOverlayOptions): void;
131
+ /**
132
+ * Removes a overlay and removes it from the DOM.
133
+ * @param htmlElement
134
+ */
135
+ remove(htmlElement: HTMLElement): void;
136
+ /**
137
+ * Removes all attached HTML overlay elements.
138
+ */
139
+ clear(): void;
140
+ /**
141
+ * Updates positions of all overlays. This is automatically managed and there
142
+ * shouldn't be any reason to trigger this unless the attached elements are
143
+ * modified externally.
144
+ *
145
+ * Calling this function often might cause degraded performance.
146
+ */
147
+ forceUpdate(): void;
148
+ /**
149
+ * Update size of new elements. This is only done once as this causes
150
+ * layout to be invalidated which is an expensive operation.
151
+ */
152
+ private updateNewElementSizes;
153
+ private commitDOMChanges;
154
+ private clusterElements;
155
+ private cleanupClusterElements;
156
+ private clusterByOverlapInScreenSpace;
157
+ private addComposite;
158
+ private onSceneRendered;
159
+ private onViewerDisposed;
160
+ }
@@ -0,0 +1,39 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { NodeCollectionBase, NodeAppearance } from '../../../../core/src';
5
+ import { Cognite3DModel } from '../../../../core';
6
+ /**
7
+ * Timeline Key Frames contains parameters to access Nodes, Styles for the Timeline
8
+ */
9
+ export declare class Keyframe {
10
+ private readonly _date;
11
+ private readonly _model;
12
+ private readonly _nodeCollectionAndAppearance;
13
+ constructor(model: Cognite3DModel, date: Date);
14
+ /**
15
+ * Get date of the Keyframe
16
+ * @returns date
17
+ */
18
+ getKeyframeDate(): Date;
19
+ /**
20
+ * Assigns the styles for the node set for the model for this Keyframe
21
+ */
22
+ activate(): void;
23
+ /**
24
+ * Removes the style for the model
25
+ */
26
+ deactivate(): void;
27
+ /**
28
+ * Add node & style to the collection. If the collection has been added, the style is updated to the
29
+ * appearance provided.
30
+ * @param nodeCollection Node set to apply the Styles
31
+ * @param nodeAppearance Style to assign to the node collection
32
+ */
33
+ assignStyledNodeCollection(nodeCollection: NodeCollectionBase, nodeAppearance: NodeAppearance): void;
34
+ /**
35
+ * Remove Node & Style for this keyframe's nodeCollection and nodeAppearance
36
+ * @param nodeCollection Nodes to be unassign from node collection
37
+ */
38
+ unassignStyledNodeCollection(nodeCollection: NodeCollectionBase): void;
39
+ }
@@ -0,0 +1,79 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { Cognite3DModel } from '../../../../core';
5
+ import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
+ import { Keyframe } from './Keyframe';
7
+ import { TimelineDateUpdateDelegate } from './types';
8
+ /**
9
+ * Tool to applying styles to nodes based on date to play them over in Timeline
10
+ */
11
+ export declare class TimelineTool extends Cognite3DViewerToolBase {
12
+ private readonly _model;
13
+ private readonly _keyframes;
14
+ private _playback;
15
+ private readonly _events;
16
+ constructor(cadModel: Cognite3DModel);
17
+ /**
18
+ * Subscribe to the Date changed event
19
+ * @param event `dateChanged` event
20
+ * @param listener Listen to Timeline date Update during Playback
21
+ */
22
+ subscribe(event: 'dateChanged', listener: TimelineDateUpdateDelegate): void;
23
+ /**
24
+ * Unsubscribe to the Date changed event
25
+ * @param event `dateChanged` event
26
+ * @param listener Remove Listen to Timeline date Update
27
+ */
28
+ unsubscribe(event: 'dateChanged', listener: TimelineDateUpdateDelegate): void;
29
+ /**
30
+ * Create Key frame for the Timeline
31
+ * @param date - date value by Date.now() since January 1, 1970
32
+ */
33
+ createKeyframe(date: Date): Keyframe;
34
+ /**
35
+ * Returns the keyframe at the date given, or undefined if not found.
36
+ * @param date
37
+ * @returns
38
+ */
39
+ getKeyframeByDate(date: Date): Keyframe | undefined;
40
+ /**
41
+ * Removes the Keyframe from the timeline. Does nothing if the keyframe isn't part of the timeline.
42
+ * @param keyframe - Keyframe to be removed from the timeline
43
+ */
44
+ removeKeyframe(keyframe: Keyframe): void;
45
+ /**
46
+ * Removes the Keyframe from the Timeline
47
+ * @param date - Date of the Keyframe to be removed from the Timeline
48
+ */
49
+ removeKeyframeByDate(date: Date): void;
50
+ /**
51
+ * Starts playback of Timeline
52
+ * @param startDate - Keyframe date to start the Playback of Keyframes
53
+ * @param endDate - Keyframe date to stop the Playback of Keyframes
54
+ * @param totalDurationInMilliSeconds - Number of milliseconds for all Keyframe within startDate & endDate to be rendered
55
+ */
56
+ play(startDate: Date, endDate: Date, totalDurationInMilliSeconds: number): void;
57
+ /**
58
+ * Stops any ongoing playback
59
+ */
60
+ stop(): void;
61
+ /**
62
+ * Pause any ongoing playback
63
+ */
64
+ pause(): void;
65
+ /**
66
+ * Resume any paused playback
67
+ */
68
+ resume(): void;
69
+ /**
70
+ * Provides all Keyframes in the Timeline
71
+ * @returns All Keyframes in Timeline
72
+ */
73
+ getAllKeyframes(): Keyframe[];
74
+ dispose(): void;
75
+ /**
76
+ * Sort the Timeline Keyframe by their Date
77
+ */
78
+ private sortKeyframesByDates;
79
+ }
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { Keyframe } from './Keyframe';
5
+ /**
6
+ * Delegate for Timeline Date update
7
+ */
8
+ export declare type TimelineDateUpdateDelegate = (event: {
9
+ date: Date;
10
+ activeKeyframe: Keyframe | undefined;
11
+ startDate: Date;
12
+ endDate: Date;
13
+ }) => void;
@@ -3,8 +3,9 @@
3
3
  */
4
4
  export { traverseDepthFirst } from './src/objectTraversal';
5
5
  export { transformCameraConfiguration } from './src/transformCameraConfiguration';
6
+ export { RandomColors } from './src/RandomColors';
6
7
  export { CameraConfiguration } from './src/CameraConfiguration';
7
- export { EventTrigger, clickOrTouchEventOffset } from './src/events';
8
+ export { EventTrigger, clickOrTouchEventOffset, InputHandler } from './src/events';
8
9
  export { assertNever } from './src/assertNever';
9
10
  export { NumericRange } from './src/NumericRange';
10
11
  export { determinePowerOfTwoDimensions } from './src/determinePowerOfTwoDimensions';
@@ -13,12 +14,15 @@ export { packFloatInto } from './src/packFloat';
13
14
  export { DynamicDefragmentedBuffer } from './src/datastructures/DynamicDefragmentedBuffer';
14
15
  export { AutoDisposeGroup } from './src/three/AutoDisposeGroup';
15
16
  export { BoundingBoxLOD } from './src/three/BoundingBoxLOD';
16
- export { getBox3CornerPoints } from './src/three/getBox3CornerPoints';
17
+ export { toThreeBox3 } from './src/three/toThreeBox3';
18
+ export { isBox3OnPositiveSideOfPlane } from './src/three/isBox3OnPositiveSideOfPlane';
19
+ export { visitBox3CornerPoints } from './src/three/visitBox3CornerPoints';
17
20
  export { isMobileOrTablet } from './src/isMobileOrTablet';
18
21
  export { WebGLRendererStateHelper } from './src/WebGLRendererStateHelper';
19
22
  export { WorkerPool } from './src/workers/WorkerPool';
23
+ export { TypedArray, TypedArrayConstructor } from './src/types';
20
24
  export { MemoryRequestCache } from './src/cache/MemoryRequestCache';
21
25
  export { MostFrequentlyUsedCache } from './src/cache/MostFrequentlyUsedCache';
22
- export { trackError, trackLoadModel, trackCameraNavigation, trackEvent, initMetrics } from './src/metrics';
23
26
  export { disposeAttributeArrayOnUpload } from './src/disposeAttributeArrayOnUpload';
24
27
  export { revealEnv } from './src/revealEnv';
28
+ export { incrementOrInsertIndex, decrementOrDeleteIndex } from './src/counterMap';
@@ -17,5 +17,6 @@ export declare class NumericRange {
17
17
  isInside(range: NumericRange): boolean;
18
18
  union(range: NumericRange): NumericRange;
19
19
  forEach(action: (value: number) => void): void;
20
- str(): string;
20
+ toString(): string;
21
+ static isNumericRange(value: any): value is NumericRange;
21
22
  }
@@ -0,0 +1,34 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Utility class for creating reasonable visible colors. Mainly meant for use
7
+ * in debugging.
8
+ */
9
+ export declare class RandomColors {
10
+ private static readonly _colors;
11
+ /**
12
+ * Returns a color as a THREE.Color.
13
+ * @param colorIndex
14
+ * @returns
15
+ */
16
+ static color(colorIndex: number): THREE.Color;
17
+ /**
18
+ * Returns color as RGB components between 0 and 255.
19
+ * @param colorIndex Return
20
+ * @returns
21
+ */
22
+ static colorRGB(colorIndex: number): [number, number, number];
23
+ /**
24
+ * Returns a color string suitable for usage in CSS styles.
25
+ * @param colorIndex
26
+ * @returns
27
+ */
28
+ static colorCSS(colorIndex: number): string;
29
+ /**
30
+ * Returns a random color with reasonable lightness and saturation
31
+ * to make the color easily distinguishable from other colors.
32
+ */
33
+ static generateRandomColor(): THREE.Color;
34
+ }
@@ -10,6 +10,6 @@ export declare class WebGLRendererStateHelper {
10
10
  setSize(width: number, height: number): void;
11
11
  set localClippingEnabled(enabled: boolean);
12
12
  set autoClear(enabled: boolean);
13
- setRenderTarget(renderTarget: THREE.RenderTarget | null): void;
13
+ setRenderTarget(renderTarget: THREE.WebGLRenderTarget | null): void;
14
14
  resetState(): void;
15
15
  }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Copyright 2022 Cognite AS
3
+ */
4
+ export declare function incrementOrInsertIndex(indexMap: Map<number, number>, index: number): void;
5
+ export declare function decrementOrDeleteIndex(indexMap: Map<number, number>, index: number): void;
@@ -4,19 +4,32 @@
4
4
  import { TypedArray } from '../types';
5
5
  export declare class DynamicDefragmentedBuffer<T extends TypedArray> {
6
6
  get length(): number;
7
- get buffer(): T;
8
- private _buffer;
7
+ get bufferView(): T;
8
+ private _bufferView;
9
9
  private _numFilled;
10
- private _type;
11
- private _batchMap;
10
+ private readonly _type;
11
+ private readonly _batchMap;
12
12
  private _currentTail;
13
13
  private _batchIdCounter;
14
14
  constructor(initialSize: number, type: new (length: number) => T);
15
15
  add(array: T): {
16
16
  batchId: number;
17
17
  bufferIsReallocated: boolean;
18
+ updateRange: {
19
+ byteOffset: number;
20
+ byteCount: number;
21
+ };
22
+ };
23
+ remove(batchId: number): {
24
+ updateRange: {
25
+ byteOffset: number;
26
+ byteCount: number;
27
+ };
28
+ };
29
+ getRangeForBatchId(batchId: number): {
30
+ byteOffset: number;
31
+ byteCount: number;
18
32
  };
19
- remove(batchId: number): void;
20
33
  private createBatch;
21
34
  private allocateNewBuffer;
22
35
  }