@cognite/reveal 3.0.0 → 3.1.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 (136) hide show
  1. package/README.md +24 -3
  2. package/core/src/internals.d.ts +2 -2
  3. package/core/src/public/RevealManager.d.ts +8 -17
  4. package/core/src/public/createRevealManager.d.ts +5 -4
  5. package/core/src/public/migration/Cognite3DViewer.d.ts +29 -16
  6. package/core/src/public/migration/renderOptionsHelpers.d.ts +29 -0
  7. package/core/src/public/migration/types.d.ts +2 -30
  8. package/core/src/public/types.d.ts +6 -1
  9. package/core/src/storage/RevealManagerHelper.d.ts +7 -6
  10. package/eptBinaryDecoder.worker.map +1 -0
  11. package/extensions/datasource.js +6 -6
  12. package/extensions/datasource.map +1 -1
  13. package/index.d.ts +2 -2
  14. package/index.js +216 -168
  15. package/index.map +1 -1
  16. package/package.json +5 -4
  17. package/packages/cad-geometry-loaders/index.d.ts +3 -0
  18. package/packages/{cad-model → cad-geometry-loaders}/src/CadManager.d.ts +2 -4
  19. package/packages/cad-geometry-loaders/src/CadModelUpdateHandler.d.ts +1 -1
  20. package/packages/{cad-model → cad-geometry-loaders}/src/InternalRevealCadOptions.d.ts +0 -0
  21. package/packages/{cad-model → cad-geometry-loaders}/src/createCadManager.d.ts +2 -2
  22. package/packages/cad-geometry-loaders/src/sector/culling/OrderSectorsByVisibilityCoverage.d.ts +3 -3
  23. package/packages/cad-geometry-loaders/src/sector/culling/RenderAlreadyLoadedGeometryProvider.d.ts +5 -3
  24. package/packages/cad-geometry-loaders/src/sector/culling/createV8SectorCuller.d.ts +2 -2
  25. package/packages/cad-geometry-loaders/src/sector/culling/types.d.ts +1 -1
  26. package/packages/cad-model/index.d.ts +6 -9
  27. package/packages/cad-model/src/CadModelFactory.d.ts +3 -2
  28. package/packages/{rendering/src → cad-model/src/batching}/GeometryBatchingManager.d.ts +2 -2
  29. package/packages/{rendering/src → cad-model/src/batching}/InstancedMeshManager.d.ts +2 -2
  30. package/packages/cad-model/src/picking/PickingHandler.d.ts +35 -0
  31. package/packages/cad-model/src/types.d.ts +59 -0
  32. package/packages/cad-model/src/{BoundingBoxClipper.d.ts → utilities/BoundingBoxClipper.d.ts} +0 -0
  33. package/packages/{model-base/src → cad-model/src/utilities}/NodeIdAndTreeIndexMaps.d.ts +0 -0
  34. package/packages/cad-model/src/{callActionWithIndicesAsync.d.ts → utilities/callActionWithIndicesAsync.d.ts} +0 -0
  35. package/packages/{rendering/src/sector → cad-model/src/wrappers}/CadNode.d.ts +2 -5
  36. package/packages/cad-model/src/{Cognite3DModel.d.ts → wrappers/Cognite3DModel.d.ts} +4 -4
  37. package/packages/cad-parsers/src/cad/primitiveGeometries.d.ts +3 -3
  38. package/packages/cad-styling/src/NodeAppearance.d.ts +6 -6
  39. package/packages/camera-manager/src/CameraManager.d.ts +2 -1
  40. package/packages/camera-manager/src/ComboControls.d.ts +1 -1
  41. package/packages/camera-manager/src/DefaultCameraManager.d.ts +1 -1
  42. package/packages/camera-manager/src/types.d.ts +5 -14
  43. package/packages/model-base/index.d.ts +0 -1
  44. package/packages/modeldata-api/index.d.ts +1 -1
  45. package/packages/modeldata-api/src/CdfModelDataProvider.d.ts +1 -2
  46. package/packages/modeldata-api/src/LocalModelDataProvider.d.ts +0 -2
  47. package/packages/modeldata-api/src/LocalModelMetadataProvider.d.ts +2 -2
  48. package/packages/modeldata-api/src/types.d.ts +1 -5
  49. package/packages/pointclouds/index.d.ts +3 -1
  50. package/packages/pointclouds/src/CognitePointCloudModel.d.ts +12 -1
  51. package/packages/pointclouds/src/PointCloudFactory.d.ts +9 -5
  52. package/packages/pointclouds/src/PointCloudManager.d.ts +13 -2
  53. package/packages/pointclouds/src/PointCloudNode.d.ts +11 -4
  54. package/packages/pointclouds/src/PotreeGroupWrapper.d.ts +8 -1
  55. package/packages/pointclouds/src/PotreeNodeWrapper.d.ts +8 -10
  56. package/packages/pointclouds/src/PotreePnextLoader.d.ts +4 -0
  57. package/packages/pointclouds/src/createPointClassKey.d.ts +5 -0
  58. package/packages/pointclouds/src/createPointCloudManager.d.ts +2 -1
  59. package/packages/pointclouds/src/potree-three-loader/Potree.d.ts +46 -0
  60. package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometry.d.ts +10 -0
  61. package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometryNode.d.ts +11 -0
  62. package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometry.d.ts +50 -0
  63. package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometryNode.d.ts +63 -0
  64. package/packages/pointclouds/src/potree-three-loader/geometry/translationUtils.d.ts +7 -0
  65. package/packages/pointclouds/src/potree-three-loader/index.d.ts +10 -0
  66. package/packages/pointclouds/src/potree-three-loader/loading/EptBinaryLoader.d.ts +12 -0
  67. package/packages/pointclouds/src/potree-three-loader/loading/EptLoader.d.ts +5 -0
  68. package/packages/pointclouds/src/potree-three-loader/loading/ILoader.d.ts +4 -0
  69. package/packages/pointclouds/src/potree-three-loader/loading/globalLoadingCounter.d.ts +5 -0
  70. package/packages/pointclouds/src/potree-three-loader/rendering/PointCloudMaterial.d.ts +203 -0
  71. package/packages/pointclouds/src/potree-three-loader/rendering/classification.d.ts +2 -0
  72. package/packages/pointclouds/src/potree-three-loader/rendering/clipping.d.ts +12 -0
  73. package/packages/pointclouds/src/potree-three-loader/rendering/constants.d.ts +14 -0
  74. package/packages/pointclouds/src/potree-three-loader/rendering/enums.d.ts +46 -0
  75. package/packages/pointclouds/src/potree-three-loader/rendering/features.d.ts +6 -0
  76. package/packages/pointclouds/src/potree-three-loader/rendering/gradients/SpectralGradient.d.ts +2 -0
  77. package/packages/pointclouds/src/potree-three-loader/rendering/index.d.ts +5 -0
  78. package/packages/pointclouds/src/potree-three-loader/rendering/texture-generation.d.ts +5 -0
  79. package/packages/pointclouds/src/potree-three-loader/rendering/types.d.ts +10 -0
  80. package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNode.d.ts +7 -0
  81. package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNodeBase.d.ts +18 -0
  82. package/packages/pointclouds/src/potree-three-loader/tree/PointAttributes.d.ts +52 -0
  83. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctree.d.ts +48 -0
  84. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreeNode.d.ts +27 -0
  85. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePicker.d.ts +11 -0
  86. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePickerHelper.d.ts +57 -0
  87. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudTree.d.ts +6 -0
  88. package/packages/pointclouds/src/potree-three-loader/types/IPotree.d.ts +11 -0
  89. package/packages/pointclouds/src/potree-three-loader/types/IVisibilityUpdateResult.d.ts +18 -0
  90. package/packages/pointclouds/src/potree-three-loader/types/type-predicates.d.ts +6 -0
  91. package/packages/pointclouds/src/potree-three-loader/types/types.d.ts +14 -0
  92. package/packages/pointclouds/src/potree-three-loader/utils/BinaryHeap.d.ts +11 -0
  93. package/packages/pointclouds/src/potree-three-loader/utils/WorkerPool.d.ts +31 -0
  94. package/packages/pointclouds/src/potree-three-loader/utils/async-blocking-queue.d.ts +8 -0
  95. package/packages/pointclouds/src/potree-three-loader/utils/bounds.d.ts +6 -0
  96. package/packages/pointclouds/src/potree-three-loader/utils/box3-helper.d.ts +13 -0
  97. package/packages/pointclouds/src/potree-three-loader/utils/lru.d.ts +32 -0
  98. package/packages/pointclouds/src/potree-three-loader/utils/math.d.ts +1 -0
  99. package/packages/pointclouds/src/potree-three-loader/utils/utils.d.ts +8 -0
  100. package/packages/pointclouds/src/potree-three-loader/version.d.ts +9 -0
  101. package/packages/pointclouds/src/potree-three-loader/workers/eptBinaryDecoder.worker.d.ts +18 -0
  102. package/packages/pointclouds/src/types.d.ts +0 -30
  103. package/packages/rendering/index.d.ts +5 -2
  104. package/packages/rendering/src/RenderPass.d.ts +15 -0
  105. package/packages/rendering/src/RenderPipelineExecutor.d.ts +12 -0
  106. package/packages/rendering/src/RenderPipelineProvider.d.ts +15 -0
  107. package/packages/rendering/src/pipeline-executors/BasicPipelineExecutor.d.ts +11 -0
  108. package/packages/rendering/src/render-passes/GeometryPass.d.ts +16 -0
  109. package/packages/rendering/src/render-passes/PostProcessingPass.d.ts +24 -0
  110. package/packages/rendering/src/render-passes/SSAOPass.d.ts +14 -0
  111. package/packages/rendering/src/render-passes/types.d.ts +31 -0
  112. package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderModePipelineProvider.d.ts +23 -0
  113. package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderPipelineProvider.d.ts +25 -0
  114. package/packages/rendering/src/render-pipeline-providers/DefaultRenderPipelineProvider.d.ts +34 -0
  115. package/packages/rendering/src/render-pipeline-providers/types.d.ts +19 -0
  116. package/packages/rendering/src/rendering/shaders.d.ts +1 -15
  117. package/packages/rendering/src/rendering/types.d.ts +1 -1
  118. package/packages/rendering/src/utilities/renderUtilities.d.ts +26 -0
  119. package/packages/tools/src/AxisView/AxisViewTool.d.ts +0 -1
  120. package/packages/utilities/index.d.ts +4 -0
  121. package/packages/utilities/src/DeferredPromise.d.ts +1 -1
  122. package/packages/utilities/src/SceneHandler.d.ts +21 -0
  123. package/packages/utilities/src/WebGLRendererStateHelper.d.ts +12 -0
  124. package/packages/utilities/src/device.d.ts +10 -0
  125. package/packages/utilities/src/events/InputHandler.d.ts +1 -5
  126. package/packages/utilities/src/events/index.d.ts +1 -0
  127. package/packages/utilities/src/events/types.d.ts +27 -0
  128. package/packages/utilities/src/isMobileOrTablet.d.ts +1 -0
  129. package/packages/utilities/src/three/createFullScreenTriangleGeometry.d.ts +5 -0
  130. package/tools.js +62 -46
  131. package/tools.map +1 -1
  132. package/packages/cad-model/src/CadModelSectorLoadStatistics.d.ts +0 -38
  133. package/packages/cad-model/src/GeometryFilter.d.ts +0 -20
  134. package/packages/cad-model/src/WellKnownUnit.d.ts +0 -7
  135. package/packages/cad-model/src/picking.d.ts +0 -28
  136. package/packages/rendering/src/rendering/EffectRenderManager.d.ts +0 -99
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/reveal",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "WebGL based 3D viewer for CAD and point clouds processed in Cognite Data Fusion.",
5
5
  "homepage": "https://github.com/cognitedata/reveal/tree/master/viewer",
6
6
  "repository": {
@@ -19,11 +19,11 @@
19
19
  "main": "index.js",
20
20
  "types": "index.d.ts",
21
21
  "dependencies": {
22
- "@cognite/potree-core": "1.5.2",
23
22
  "@cognite/reveal-parser-worker": "1.3.0",
24
23
  "@tweenjs/tween.js": "18.6.4",
25
24
  "@types/draco3dgltf": "1.4.0",
26
- "@types/three": "0.138.0",
25
+ "@types/geojson": "7946.0.8",
26
+ "@types/three": "0.140.0",
27
27
  "assert": "2.0.0",
28
28
  "comlink": "4.3.1",
29
29
  "geo-three": "0.0.17",
@@ -32,9 +32,10 @@
32
32
  "lodash": "4.17.21",
33
33
  "loglevel": "1.8.0",
34
34
  "mixpanel-browser": "2.45.0",
35
+ "proj4": "^2.8.0",
35
36
  "rxjs": "7.5.5",
36
37
  "skmeans": "0.11.3",
37
- "three": "0.138.3"
38
+ "three": "0.140.2"
38
39
  },
39
40
  "peerDependencies": {
40
41
  "@cognite/sdk": "^5.0.0 || ^6.0.0 || ^7.0.0",
@@ -5,3 +5,6 @@ export { CadModelBudget, defaultDesktopCadModelBudget } from './src/CadModelBudg
5
5
  export { CadModelUpdateHandler } from './src/CadModelUpdateHandler';
6
6
  export { SectorCuller } from './src/sector/culling/SectorCuller';
7
7
  export { createV8SectorCuller } from './src/sector/culling/createV8SectorCuller';
8
+ export { CadManager } from './src/CadManager';
9
+ export { createCadManager } from './src/createCadManager';
10
+ export { InternalRevealCadOptions } from './src/InternalRevealCadOptions';
@@ -3,14 +3,12 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { Observable } from 'rxjs';
6
- import { CadModelFactory } from './CadModelFactory';
7
- import { CadModelSectorLoadStatistics } from './CadModelSectorLoadStatistics';
8
- import { GeometryFilter } from './GeometryFilter';
9
6
  import { CadModelMetadata } from '../../cad-parsers';
10
7
  import { CadModelUpdateHandler, CadModelBudget } from '../../cad-geometry-loaders';
11
8
  import { LoadingState } from '../../model-base';
12
- import { CadNode, CadMaterialManager, RenderMode } from '../../rendering';
9
+ import { CadMaterialManager, RenderMode } from '../../rendering';
13
10
  import { ModelIdentifier } from '../../modeldata-api';
11
+ import { CadModelFactory, CadModelSectorLoadStatistics, CadNode, GeometryFilter } from '../../cad-model';
14
12
  export declare class CadManager {
15
13
  private readonly _materialManager;
16
14
  private readonly _cadModelFactory;
@@ -3,13 +3,13 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { ConsumedSector } from '../../cad-parsers';
6
- import { CadNode } from '../../rendering';
7
6
  import { Observable } from 'rxjs';
8
7
  import { SectorCuller } from './sector/culling/SectorCuller';
9
8
  import { CadLoadingHints } from './CadLoadingHints';
10
9
  import { LoadingState } from '../../model-base';
11
10
  import { CadModelBudget } from './CadModelBudget';
12
11
  import { SectorLoadingSpent } from './sector/culling/types';
12
+ import { CadNode } from '../../cad-model';
13
13
  export declare class CadModelUpdateHandler {
14
14
  private readonly _sectorCuller;
15
15
  private readonly _modelStateHandler;
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import { CadManager } from './CadManager';
5
5
  import { InternalRevealCadOptions } from './InternalRevealCadOptions';
6
- import { CadMaterialManager, EffectRenderManager } from '../../rendering';
6
+ import { CadMaterialManager, CadGeometryRenderModePipelineProvider } from '../../rendering';
7
7
  import { ModelDataProvider, ModelMetadataProvider } from '../../modeldata-api';
8
- export declare function createCadManager(modelMetadataProvider: ModelMetadataProvider, modelDataProvider: ModelDataProvider, renderer: THREE.WebGLRenderer, materialManager: CadMaterialManager, renderManager: EffectRenderManager, cadOptions: InternalRevealCadOptions & {
8
+ export declare function createCadManager(modelMetadataProvider: ModelMetadataProvider, modelDataProvider: ModelDataProvider, renderer: THREE.WebGLRenderer, materialManager: CadMaterialManager, depthOnlyRenderPipeline: CadGeometryRenderModePipelineProvider, cadOptions: InternalRevealCadOptions & {
9
9
  continuousModelStreaming?: boolean;
10
10
  }): CadManager;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { CadModelMetadata, WantedSector } from '../../../../cad-parsers';
6
- import { EffectRenderManager } from '../../../../rendering';
6
+ import { CadGeometryRenderModePipelineProvider } from '../../../../rendering';
7
7
  /**
8
8
  * Options for OrderSectorsByVisibleCoverage.
9
9
  */
@@ -13,9 +13,9 @@ export interface OrderSectorsByVisibleCoverageOptions {
13
13
  */
14
14
  renderer: THREE.WebGLRenderer;
15
15
  /**
16
- * EffectRenderManager used to initialize the RenderAlreadyLoadedGeometryProvider
16
+ * GeometryDepthRenderPipeline used to initialize the RenderAlreadyLoadedGeometryProvider
17
17
  */
18
- renderManager: EffectRenderManager;
18
+ depthOnlyRenderPipeline: CadGeometryRenderModePipelineProvider;
19
19
  }
20
20
  export declare type PrioritizedSectorIdentifier = {
21
21
  /**
@@ -1,9 +1,11 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import { EffectRenderManager } from '../../../../rendering';
4
+ import * as THREE from 'three';
5
+ import { CadGeometryRenderModePipelineProvider } from '../../../../rendering';
5
6
  export declare class RenderAlreadyLoadedGeometryProvider {
6
- private readonly _renderManager;
7
- constructor(renderManager: EffectRenderManager);
7
+ private readonly _depthOnlyRenderPipeline;
8
+ private readonly _basicPipelineExecutor;
9
+ constructor(renderer: THREE.WebGLRenderer, depthOnlyRenderPipeline: CadGeometryRenderModePipelineProvider);
8
10
  renderOccludingGeometry(target: THREE.WebGLRenderTarget | null, camera: THREE.PerspectiveCamera): void;
9
11
  }
@@ -2,6 +2,6 @@
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { EffectRenderManager } from '../../../../rendering';
5
+ import { CadGeometryRenderModePipelineProvider } from '../../../../rendering';
6
6
  import { SectorCuller } from './SectorCuller';
7
- export declare function createV8SectorCuller(renderer: THREE.WebGLRenderer, renderManager: EffectRenderManager): SectorCuller;
7
+ export declare function createV8SectorCuller(renderer: THREE.WebGLRenderer, depthOnlyRenderPipeline: CadGeometryRenderModePipelineProvider): SectorCuller;
@@ -6,7 +6,7 @@ import { PrioritizedArea } from '../../../../cad-styling';
6
6
  import { CadModelMetadata, LevelOfDetail, WantedSector } from '../../../../cad-parsers';
7
7
  import { CadLoadingHints } from '../../CadLoadingHints';
8
8
  import { CadModelBudget } from '../../CadModelBudget';
9
- import { CadNode } from '../../../../rendering';
9
+ import { CadNode } from '../../../../cad-model';
10
10
  export interface DetermineSectorsInput {
11
11
  camera: THREE.PerspectiveCamera;
12
12
  clippingPlanes: THREE.Plane[];
@@ -1,12 +1,9 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
- export { CadManager } from './src/CadManager';
5
- export { GeometryFilter } from './src/GeometryFilter';
6
- export { CadModelSectorLoadStatistics } from './src/CadModelSectorLoadStatistics';
7
- export { intersectCadNodes } from './src/picking';
8
- export { createCadManager } from './src/createCadManager';
9
- export { BoundingBoxClipper } from './src/BoundingBoxClipper';
10
- export { InternalRevealCadOptions } from './src/InternalRevealCadOptions';
11
- export { Cognite3DModel } from './src/Cognite3DModel';
12
- export { WellKnownUnit } from './src/WellKnownUnit';
4
+ export { BoundingBoxClipper } from './src/utilities/BoundingBoxClipper';
5
+ export { Cognite3DModel } from './src/wrappers/Cognite3DModel';
6
+ export { PickingHandler } from './src/picking/PickingHandler';
7
+ export { CadNode } from './src/wrappers/CadNode';
8
+ export { CadModelFactory } from './src/CadModelFactory';
9
+ export { WellKnownUnit, GeometryFilter, CadModelSectorLoadStatistics } from './src/types';
@@ -1,7 +1,8 @@
1
- import { GeometryFilter } from './GeometryFilter';
2
- import { CadMaterialManager, CadNode } from '../../rendering';
1
+ import { GeometryFilter } from './types';
2
+ import { CadMaterialManager } from '../../rendering';
3
3
  import { CadModelMetadata } from '../../cad-parsers';
4
4
  import { ModelDataProvider, ModelMetadataProvider, ModelIdentifier } from '../../modeldata-api';
5
+ import { CadNode } from './wrappers/CadNode';
5
6
  export declare class CadModelFactory {
6
7
  private readonly _materialManager;
7
8
  private readonly _modelDataProvider;
@@ -2,8 +2,8 @@
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { ParsedGeometry } from '../../sector-parser';
6
- import { Materials } from './rendering/materials';
5
+ import { ParsedGeometry } from '../../../sector-parser';
6
+ import { Materials } from '../../../rendering';
7
7
  export declare class GeometryBatchingManager {
8
8
  private readonly _batchedGeometriesGroup;
9
9
  private readonly _materials;
@@ -2,8 +2,8 @@
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { InstancedMeshFile } from '../../cad-parsers';
6
- import { CadMaterialManager } from './CadMaterialManager';
5
+ import { InstancedMeshFile } from '../../../cad-parsers';
6
+ import { CadMaterialManager } from '../../../rendering';
7
7
  export declare class InstancedMeshManager {
8
8
  private readonly _instancedGeometryMap;
9
9
  private readonly _instancedAttributeMap;
@@ -0,0 +1,35 @@
1
+ /*!
2
+ * Copyright 2022 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ import { IntersectInput } from '../../../model-base';
6
+ import { CadMaterialManager } from '../../../rendering';
7
+ import { SceneHandler } from '../../../utilities';
8
+ import { CadNode } from '../wrappers/CadNode';
9
+ declare type IntersectCadNodesResult = {
10
+ distance: number;
11
+ point: THREE.Vector3;
12
+ treeIndex: number;
13
+ cadNode: CadNode;
14
+ object: THREE.Object3D;
15
+ };
16
+ export declare class PickingHandler {
17
+ private readonly _clearColor;
18
+ private readonly _clearAlpha;
19
+ private readonly _pickPixelColorStorage;
20
+ private readonly _rgbaVector;
21
+ private readonly _unpackFactors;
22
+ private readonly _pipelineExecutor;
23
+ private readonly _depthRenderPipeline;
24
+ private readonly _treeIndexRenderPipeline;
25
+ constructor(renderer: THREE.WebGLRenderer, materialManager: CadMaterialManager, sceneHandler: SceneHandler);
26
+ intersectCadNodes(cadNodes: CadNode[], input: IntersectInput): IntersectCadNodesResult[];
27
+ intersectCadNode(cadNode: CadNode, input: IntersectInput): IntersectCadNodesResult | undefined;
28
+ private pickTreeIndex;
29
+ private perspectiveDepthToViewZ;
30
+ private pickDepth;
31
+ private getPosition;
32
+ private pickPixel;
33
+ private unpackRGBAToDepth;
34
+ }
35
+ export {};
@@ -0,0 +1,59 @@
1
+ /*!
2
+ * Copyright 2022 Cognite AS
3
+ */
4
+ /**
5
+ * Units supported by {@link Cognite3DModel}.
6
+ */
7
+ export declare type WellKnownUnit = 'Meters' | 'Centimeters' | 'Millimeters' | 'Micrometers' | 'Kilometers' | 'Feet' | 'Inches' | 'Yards' | 'Miles' | 'Mils' | 'Microinches';
8
+ export declare type GeometryFilter = {
9
+ /**
10
+ * The bounds to load geometry within. By default this box is in CDF coordinate space which
11
+ * will be transformed into coordinates relative to the model using the the model transformation
12
+ * which can be specified using {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions |the CDF API},
13
+ * or set in {@link https://fusion.cognite.com/ |Cognite Fusion}.
14
+ * @see {@link isBoundingBoxInModelCoordinates}.
15
+ */
16
+ boundingBox?: THREE.Box3;
17
+ /**
18
+ * When set, the geometry filter {@link boundingBox} will be considered to be in "Reveal/ThreeJS space".
19
+ * Rather than CDF space which is the default. When using Reveal space, the model transformation
20
+ * which can be specified using {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions |the CDF API},
21
+ * or set in {@link https://fusion.cognite.com/ |Cognite Fusion}.
22
+ */
23
+ isBoundingBoxInModelCoordinates?: boolean;
24
+ };
25
+ export declare type CadModelSectorLoadStatistics = {
26
+ /**
27
+ * Estimated number of bytes to download sectors.
28
+ */
29
+ readonly downloadSize: number;
30
+ /**
31
+ * Estimated number of draw calls required to draw sectors.
32
+ */
33
+ readonly drawCalls: number;
34
+ /**
35
+ * Total number of sectors to load.
36
+ */
37
+ readonly loadedSectorCount: number;
38
+ /**
39
+ * Number of 'simple' sectors to load.
40
+ */
41
+ readonly simpleSectorCount: number;
42
+ /**
43
+ * Number of 'detailed' sectors to load.
44
+ */
45
+ readonly detailedSectorCount: number;
46
+ /**
47
+ * How many sectors that was "forced prioritized", e.g.
48
+ * because they are near the camera.
49
+ */
50
+ readonly forcedDetailedSectorCount: number;
51
+ /**
52
+ * The total number of sectors in models we are loading.
53
+ */
54
+ readonly totalSectorCount: number;
55
+ /**
56
+ * How much of the prioritized nodes that are loaded (between 0 and 1).
57
+ */
58
+ readonly accumulatedPriority: number;
59
+ };
@@ -2,14 +2,11 @@
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { CadMaterialManager } from '../CadMaterialManager';
6
- import { SectorQuads } from '../rendering/types';
7
- import { NodeTransformProvider } from '../transform/NodeTransformProvider';
8
- import { RenderMode } from '../rendering/RenderMode';
9
5
  import { NodeAppearanceProvider, NodeAppearance, PrioritizedArea } from '../../../cad-styling';
10
6
  import { SectorScene, CadModelMetadata, SectorGeometry, InstancedMeshFile, RootSectorNode, WantedSector, ConsumedSector } from '../../../cad-parsers';
11
7
  import { SectorRepository } from '../../../sector-loader';
12
8
  import { ParsedGeometry } from '../../../sector-parser';
9
+ import { CadMaterialManager, NodeTransformProvider, RenderMode, SectorQuads } from '../../../rendering';
13
10
  export declare type ParseCallbackDelegate = (parsed: {
14
11
  lod: string;
15
12
  data: SectorGeometry | SectorQuads;
@@ -21,7 +18,7 @@ export declare class CadNode extends THREE.Object3D {
21
18
  private readonly _sectorRepository;
22
19
  private _rootSector;
23
20
  private _sectorScene;
24
- private _geometryBatchingManager;
21
+ private _geometryBatchingManager?;
25
22
  constructor(model: CadModelMetadata, materialManager: CadMaterialManager, sectorRepository: SectorRepository);
26
23
  get nodeTransformProvider(): NodeTransformProvider;
27
24
  get nodeAppearanceProvider(): NodeAppearanceProvider;
@@ -3,10 +3,10 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { CogniteInternalId } from '@cognite/sdk';
6
- import { WellKnownUnit } from './WellKnownUnit';
7
- import { SupportedModelTypes, CogniteModelBase } from '../../model-base';
8
- import { NumericRange, CameraConfiguration } from '../../utilities';
9
- import { NodeAppearance, NodeCollection, CdfModelNodeCollectionDataProvider } from '../../cad-styling';
6
+ import { SupportedModelTypes, CogniteModelBase } from '../../../model-base';
7
+ import { NumericRange, CameraConfiguration } from '../../../utilities';
8
+ import { NodeAppearance, NodeCollection, CdfModelNodeCollectionDataProvider } from '../../../cad-styling';
9
+ import { WellKnownUnit } from '../types';
10
10
  /**
11
11
  * Represents a single 3D CAD model loaded from CDF.
12
12
  * @noInheritDoc
@@ -3,11 +3,11 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  export declare const boxGeometry: {
6
- index: THREE.BufferAttribute;
6
+ index: THREE.BufferAttribute | null;
7
7
  position: THREE.BufferAttribute | THREE.InterleavedBufferAttribute;
8
8
  }, boxGeometryBoundingBox: THREE.Box3;
9
9
  export declare const quadGeometry: {
10
- index: THREE.BufferAttribute;
10
+ index: THREE.BufferAttribute | null;
11
11
  position: THREE.BufferAttribute | THREE.InterleavedBufferAttribute;
12
12
  normal: THREE.BufferAttribute | THREE.InterleavedBufferAttribute;
13
13
  }, quadGeometryBoundingBox: THREE.Box3;
@@ -24,7 +24,7 @@ export declare const torusLodGeometries: {
24
24
  position: THREE.Float32BufferAttribute;
25
25
  }[];
26
26
  export declare const nutGeometry: {
27
- index: THREE.BufferAttribute;
27
+ index: THREE.BufferAttribute | null;
28
28
  position: THREE.BufferAttribute | THREE.InterleavedBufferAttribute;
29
29
  normal: THREE.BufferAttribute | THREE.InterleavedBufferAttribute;
30
30
  }, nutGeometryBoundingBox: THREE.Box3;
@@ -75,11 +75,11 @@ export declare const DefaultNodeAppearance: {
75
75
  InFront: NodeAppearance;
76
76
  Ghosted: NodeAppearance;
77
77
  Highlighted: {
78
- color?: [number, number, number];
79
- visible?: boolean;
80
- renderInFront?: boolean;
81
- renderGhosted?: boolean;
82
- outlineColor?: NodeOutlineColor;
83
- prioritizedForLoadingHint?: number;
78
+ color?: [number, number, number] | undefined;
79
+ visible?: boolean | undefined;
80
+ renderInFront?: boolean | undefined;
81
+ renderGhosted?: boolean | undefined;
82
+ outlineColor?: NodeOutlineColor | undefined;
83
+ prioritizedForLoadingHint?: number | undefined;
84
84
  };
85
85
  };
@@ -1,7 +1,8 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
- import { CameraChangeDelegate, CameraState } from './types';
4
+ import * as THREE from 'three';
5
+ import { CameraState, CameraChangeDelegate } from './types';
5
6
  /**
6
7
  * Interface for manager responsible for all manipulations to the camera,
7
8
  * including animations and modification of state. Implementations are responsible for
@@ -62,7 +62,7 @@ export declare class ComboControls extends EventDispatcher {
62
62
  private _targetFPSOverActualFPS;
63
63
  private _isFocused;
64
64
  constructor(camera: PerspectiveCamera | OrthographicCamera, domElement: HTMLElement);
65
- update: (deltaTime: number) => boolean;
65
+ update: (deltaTime: number, forceUpdate?: boolean) => boolean;
66
66
  getState: () => {
67
67
  target: Vector3;
68
68
  position: Vector3;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { ComboControls } from './ComboControls';
6
- import { CameraControlsOptions, CameraChangeDelegate, CameraState } from './types';
6
+ import { CameraControlsOptions, CameraState, CameraChangeDelegate } from './types';
7
7
  import { CameraManager } from './CameraManager';
8
8
  /**
9
9
  * Default implementation of {@link CameraManager}. Uses target-based orbit controls combined with
@@ -43,6 +43,11 @@ export declare type CameraState = {
43
43
  */
44
44
  rotation?: THREE.Quaternion;
45
45
  };
46
+ /**
47
+ * Delegate for camera update events.
48
+ * @module @cognite/reveal
49
+ */
50
+ export declare type CameraChangeDelegate = (position: THREE.Vector3, target: THREE.Vector3) => void;
46
51
  export declare type CameraManagerCallbackData = {
47
52
  intersection: {
48
53
  /**
@@ -59,17 +64,3 @@ export declare type CameraManagerCallbackData = {
59
64
  */
60
65
  modelsBoundingBox: THREE.Box3;
61
66
  };
62
- /**
63
- * Delegate for pointer events.
64
- * @module @cognite/reveal
65
- */
66
- export declare type PointerEventDelegate = (event: {
67
- offsetX: number;
68
- offsetY: number;
69
- }) => void;
70
- /**
71
- * Delegate for camera update events.
72
- * @module @cognite/reveal
73
- * @see {@link CameraManager.on}.
74
- */
75
- export declare type CameraChangeDelegate = (position: THREE.Vector3, target: THREE.Vector3) => void;
@@ -4,5 +4,4 @@
4
4
  export { IntersectInput, LoadingState } from './src/types';
5
5
  export { SupportedModelTypes } from './src/SupportedModelTypes';
6
6
  export { CogniteModelBase } from './src/CogniteModelBase';
7
- export { NodeIdAndTreeIndexMaps } from './src/NodeIdAndTreeIndexMaps';
8
7
  export { MetadataRepository } from './src/MetadataRepository';
@@ -9,4 +9,4 @@ export { LocalModelIdentifier } from './src/LocalModelIdentifier';
9
9
  export { LocalModelMetadataProvider } from './src/LocalModelMetadataProvider';
10
10
  export { ModelIdentifier } from './src/ModelIdentifier';
11
11
  export { ModelMetadataProvider } from './src/ModelMetadataProvider';
12
- export { BinaryFileProvider, File3dFormat, HttpHeadersProvider, ModelDataProvider, BlobOutputMetadata } from './src/types';
12
+ export { BinaryFileProvider, File3dFormat, ModelDataProvider, BlobOutputMetadata } from './src/types';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import { CogniteClient, HttpHeaders } from '@cognite/sdk';
4
+ import { CogniteClient } from '@cognite/sdk';
5
5
  import { ModelDataProvider } from './types';
6
6
  /**
7
7
  * Provides 3D V2 specific extensions for the standard CogniteClient used by Reveal.
@@ -10,7 +10,6 @@ export declare class CdfModelDataProvider implements ModelDataProvider {
10
10
  private readonly client;
11
11
  private authenticationPromise;
12
12
  constructor(client: CogniteClient);
13
- get headers(): HttpHeaders;
14
13
  getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
15
14
  getJsonFile(baseUrl: string, fileName: string): Promise<any>;
16
15
  private fetchWithRetry;
@@ -1,10 +1,8 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import { HttpHeaders } from '@cognite/sdk-core';
5
4
  import { ModelDataProvider } from './types';
6
5
  export declare class LocalModelDataProvider implements ModelDataProvider {
7
- get headers(): HttpHeaders;
8
6
  getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
9
7
  getJsonFile(baseUrl: string, fileName: string): Promise<any>;
10
8
  }
@@ -4,10 +4,10 @@
4
4
  import * as THREE from 'three';
5
5
  import { ModelIdentifier } from './ModelIdentifier';
6
6
  import { ModelMetadataProvider } from './ModelMetadataProvider';
7
- import { BlobOutputMetadata } from './types';
7
+ import { BlobOutputMetadata, File3dFormat } from './types';
8
8
  export declare class LocalModelMetadataProvider implements ModelMetadataProvider {
9
9
  getModelUri(modelIdentifier: ModelIdentifier): Promise<string>;
10
- getModelMatrix(modelIdentifier: ModelIdentifier): Promise<THREE.Matrix4>;
10
+ getModelMatrix(modelIdentifier: ModelIdentifier, format: File3dFormat): Promise<THREE.Matrix4>;
11
11
  getModelCamera(modelIdentifier: ModelIdentifier): Promise<{
12
12
  position: THREE.Vector3;
13
13
  target: THREE.Vector3;
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import { HttpHeaders } from '@cognite/sdk-core';
5
4
  export interface JsonFileProvider {
6
5
  getJsonFile(baseUrl: string, fileName: string): Promise<any>;
7
6
  }
@@ -11,7 +10,7 @@ export interface BinaryFileProvider {
11
10
  /**
12
11
  * Provides data for 3D models.
13
12
  */
14
- export interface ModelDataProvider extends HttpHeadersProvider, JsonFileProvider, BinaryFileProvider {
13
+ export interface ModelDataProvider extends JsonFileProvider, BinaryFileProvider {
15
14
  /**
16
15
  * Download and parse a JSON file and return the resulting struct.
17
16
  * @param baseUrl Base URL of the model.
@@ -25,9 +24,6 @@ export interface ModelDataProvider extends HttpHeadersProvider, JsonFileProvider
25
24
  */
26
25
  getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
27
26
  }
28
- export interface HttpHeadersProvider {
29
- readonly headers: HttpHeaders;
30
- }
31
27
  export declare enum File3dFormat {
32
28
  EptPointCloud = "ept-pointcloud",
33
29
  /**
@@ -2,7 +2,8 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  export { intersectPointClouds } from './src/picking';
5
- export { PotreePointShape, PotreePointColorType, PotreePointSizeType, WellKnownAsprsPointClassCodes } from './src/types';
5
+ export { WellKnownAsprsPointClassCodes } from './src/types';
6
+ export { PotreePointShape, PotreePointColorType, PotreePointSizeType } from './src/potree-three-loader';
6
7
  export { PointCloudNode } from './src/PointCloudNode';
7
8
  export { PointCloudManager } from './src/PointCloudManager';
8
9
  export { createPointCloudManager } from './src/createPointCloudManager';
@@ -11,3 +12,4 @@ export { PointCloudIntersection } from './src/PointCloudIntersection';
11
12
  export { CognitePointCloudModel } from './src/CognitePointCloudModel';
12
13
  export { PotreeNodeWrapper } from './src/PotreeNodeWrapper';
13
14
  export { PotreeGroupWrapper } from './src/PotreeGroupWrapper';
15
+ export { Potree, PointCloudOctree } from './src/PotreePnextLoader';
@@ -3,7 +3,8 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { CameraConfiguration } from '../../utilities';
6
- import { PotreePointColorType, PotreePointShape, WellKnownAsprsPointClassCodes } from './types';
6
+ import { WellKnownAsprsPointClassCodes } from './types';
7
+ import { PotreePointColorType, PotreePointShape, PotreePointSizeType } from './potree-three-loader';
7
8
  import { SupportedModelTypes, CogniteModelBase } from '../../model-base';
8
9
  /**
9
10
  * Represents a point clouds model loaded from CDF.
@@ -106,6 +107,16 @@ export declare class CognitePointCloudModel extends THREE.Object3D implements Co
106
107
  * @default `1`
107
108
  */
108
109
  set pointSize(size: number);
110
+ /**
111
+ * Get the point size type.
112
+ */
113
+ get pointSizeType(): PotreePointSizeType;
114
+ /**
115
+ * Set the point size type for the point cloud.
116
+ * The point size type can be either Fixed or Adaptive.
117
+ * @default `PotreePointSizeType.Adaptive`
118
+ */
119
+ set pointSizeType(type: PotreePointSizeType);
109
120
  /**
110
121
  * Sets the point shape of each rendered point in the point cloud.
111
122
  * @default `PotreePointShape.Circle`
@@ -1,9 +1,13 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
1
4
  import { PotreeNodeWrapper } from './PotreeNodeWrapper';
2
5
  import { PointCloudMetadata } from './PointCloudMetadata';
3
- import { HttpHeadersProvider } from '../../modeldata-api';
6
+ import { ModelDataProvider } from '../../modeldata-api';
7
+ import { Potree } from './potree-three-loader';
4
8
  export declare class PointCloudFactory {
5
- private readonly _httpHeadersProvider;
6
- constructor(httpHeadersProvider: HttpHeadersProvider);
7
- createModel(modelMetadata: PointCloudMetadata): PotreeNodeWrapper;
8
- private initializePointCloudXhrRequestHeaders;
9
+ private readonly _potreeInstance;
10
+ constructor(modelLoader: ModelDataProvider);
11
+ get potreeInstance(): Potree;
12
+ createModel(modelMetadata: PointCloudMetadata): Promise<PotreeNodeWrapper>;
9
13
  }