@cognite/reveal 3.0.2 → 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 (127) hide show
  1. package/core/src/internals.d.ts +2 -2
  2. package/core/src/public/RevealManager.d.ts +8 -17
  3. package/core/src/public/createRevealManager.d.ts +5 -4
  4. package/core/src/public/migration/Cognite3DViewer.d.ts +26 -13
  5. package/core/src/public/migration/renderOptionsHelpers.d.ts +29 -0
  6. package/core/src/public/migration/types.d.ts +2 -0
  7. package/core/src/public/types.d.ts +6 -1
  8. package/core/src/storage/RevealManagerHelper.d.ts +7 -6
  9. package/eptBinaryDecoder.worker.map +1 -0
  10. package/extensions/datasource.js +6 -6
  11. package/extensions/datasource.map +1 -1
  12. package/index.js +213 -165
  13. package/index.map +1 -1
  14. package/package.json +5 -5
  15. package/packages/cad-geometry-loaders/index.d.ts +3 -0
  16. package/packages/{cad-model → cad-geometry-loaders}/src/CadManager.d.ts +2 -4
  17. package/packages/cad-geometry-loaders/src/CadModelUpdateHandler.d.ts +1 -1
  18. package/packages/{cad-model → cad-geometry-loaders}/src/InternalRevealCadOptions.d.ts +0 -0
  19. package/packages/{cad-model → cad-geometry-loaders}/src/createCadManager.d.ts +2 -2
  20. package/packages/cad-geometry-loaders/src/sector/culling/OrderSectorsByVisibilityCoverage.d.ts +3 -3
  21. package/packages/cad-geometry-loaders/src/sector/culling/RenderAlreadyLoadedGeometryProvider.d.ts +5 -3
  22. package/packages/cad-geometry-loaders/src/sector/culling/createV8SectorCuller.d.ts +2 -2
  23. package/packages/cad-geometry-loaders/src/sector/culling/types.d.ts +1 -1
  24. package/packages/cad-model/index.d.ts +6 -9
  25. package/packages/cad-model/src/CadModelFactory.d.ts +3 -2
  26. package/packages/{rendering/src → cad-model/src/batching}/GeometryBatchingManager.d.ts +2 -2
  27. package/packages/{rendering/src → cad-model/src/batching}/InstancedMeshManager.d.ts +2 -2
  28. package/packages/cad-model/src/picking/PickingHandler.d.ts +35 -0
  29. package/packages/cad-model/src/types.d.ts +59 -0
  30. package/packages/cad-model/src/{BoundingBoxClipper.d.ts → utilities/BoundingBoxClipper.d.ts} +0 -0
  31. package/packages/cad-model/src/{NodeIdAndTreeIndexMaps.d.ts → utilities/NodeIdAndTreeIndexMaps.d.ts} +0 -0
  32. package/packages/cad-model/src/{callActionWithIndicesAsync.d.ts → utilities/callActionWithIndicesAsync.d.ts} +0 -0
  33. package/packages/{rendering/src/sector → cad-model/src/wrappers}/CadNode.d.ts +2 -5
  34. package/packages/cad-model/src/{Cognite3DModel.d.ts → wrappers/Cognite3DModel.d.ts} +4 -4
  35. package/packages/cad-parsers/src/cad/primitiveGeometries.d.ts +3 -3
  36. package/packages/cad-styling/src/NodeAppearance.d.ts +6 -6
  37. package/packages/camera-manager/src/ComboControls.d.ts +1 -1
  38. package/packages/modeldata-api/index.d.ts +1 -1
  39. package/packages/modeldata-api/src/CdfModelDataProvider.d.ts +1 -2
  40. package/packages/modeldata-api/src/LocalModelDataProvider.d.ts +0 -2
  41. package/packages/modeldata-api/src/LocalModelMetadataProvider.d.ts +2 -2
  42. package/packages/modeldata-api/src/types.d.ts +1 -5
  43. package/packages/pointclouds/index.d.ts +5 -1
  44. package/packages/pointclouds/src/CognitePointCloudModel.d.ts +12 -1
  45. package/packages/pointclouds/src/PointCloudFactory.d.ts +9 -5
  46. package/packages/pointclouds/src/PointCloudManager.d.ts +13 -2
  47. package/packages/pointclouds/src/PointCloudNode.d.ts +11 -4
  48. package/packages/pointclouds/src/PotreeGroupWrapper.d.ts +8 -1
  49. package/packages/pointclouds/src/PotreeNodeWrapper.d.ts +8 -9
  50. package/packages/pointclouds/src/PotreePnextLoader.d.ts +4 -0
  51. package/packages/pointclouds/src/createPointClassKey.d.ts +5 -0
  52. package/packages/pointclouds/src/createPointCloudManager.d.ts +2 -1
  53. package/packages/pointclouds/src/potree-three-loader/Potree.d.ts +46 -0
  54. package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometry.d.ts +10 -0
  55. package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometryNode.d.ts +11 -0
  56. package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometry.d.ts +50 -0
  57. package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometryNode.d.ts +63 -0
  58. package/packages/pointclouds/src/potree-three-loader/geometry/translationUtils.d.ts +7 -0
  59. package/packages/pointclouds/src/potree-three-loader/index.d.ts +10 -0
  60. package/packages/pointclouds/src/potree-three-loader/loading/EptBinaryLoader.d.ts +12 -0
  61. package/packages/pointclouds/src/potree-three-loader/loading/EptLoader.d.ts +5 -0
  62. package/packages/pointclouds/src/potree-three-loader/loading/ILoader.d.ts +4 -0
  63. package/packages/pointclouds/src/potree-three-loader/loading/globalLoadingCounter.d.ts +5 -0
  64. package/packages/pointclouds/src/potree-three-loader/rendering/PointCloudMaterial.d.ts +203 -0
  65. package/packages/pointclouds/src/potree-three-loader/rendering/classification.d.ts +2 -0
  66. package/packages/pointclouds/src/potree-three-loader/rendering/clipping.d.ts +12 -0
  67. package/packages/pointclouds/src/potree-three-loader/rendering/constants.d.ts +14 -0
  68. package/packages/pointclouds/src/potree-three-loader/rendering/enums.d.ts +46 -0
  69. package/packages/pointclouds/src/potree-three-loader/rendering/features.d.ts +6 -0
  70. package/packages/pointclouds/src/potree-three-loader/rendering/gradients/SpectralGradient.d.ts +2 -0
  71. package/packages/pointclouds/src/potree-three-loader/rendering/index.d.ts +5 -0
  72. package/packages/pointclouds/src/potree-three-loader/rendering/texture-generation.d.ts +5 -0
  73. package/packages/pointclouds/src/potree-three-loader/rendering/types.d.ts +10 -0
  74. package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNode.d.ts +7 -0
  75. package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNodeBase.d.ts +18 -0
  76. package/packages/pointclouds/src/potree-three-loader/tree/PointAttributes.d.ts +52 -0
  77. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctree.d.ts +48 -0
  78. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreeNode.d.ts +27 -0
  79. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePicker.d.ts +11 -0
  80. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePickerHelper.d.ts +57 -0
  81. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudTree.d.ts +6 -0
  82. package/packages/pointclouds/src/potree-three-loader/types/IPotree.d.ts +11 -0
  83. package/packages/pointclouds/src/potree-three-loader/types/IVisibilityUpdateResult.d.ts +18 -0
  84. package/packages/pointclouds/src/potree-three-loader/types/type-predicates.d.ts +6 -0
  85. package/packages/pointclouds/src/potree-three-loader/types/types.d.ts +14 -0
  86. package/packages/pointclouds/src/potree-three-loader/utils/BinaryHeap.d.ts +11 -0
  87. package/packages/pointclouds/src/potree-three-loader/utils/WorkerPool.d.ts +31 -0
  88. package/packages/pointclouds/src/potree-three-loader/utils/async-blocking-queue.d.ts +8 -0
  89. package/packages/pointclouds/src/potree-three-loader/utils/bounds.d.ts +6 -0
  90. package/packages/pointclouds/src/potree-three-loader/utils/box3-helper.d.ts +13 -0
  91. package/packages/pointclouds/src/potree-three-loader/utils/lru.d.ts +32 -0
  92. package/packages/pointclouds/src/potree-three-loader/utils/math.d.ts +1 -0
  93. package/packages/pointclouds/src/potree-three-loader/utils/utils.d.ts +8 -0
  94. package/packages/pointclouds/src/potree-three-loader/version.d.ts +9 -0
  95. package/packages/pointclouds/src/potree-three-loader/workers/eptBinaryDecoder.worker.d.ts +18 -0
  96. package/packages/pointclouds/src/types.d.ts +0 -30
  97. package/packages/rendering/index.d.ts +5 -2
  98. package/packages/rendering/src/RenderPass.d.ts +15 -0
  99. package/packages/rendering/src/RenderPipelineExecutor.d.ts +12 -0
  100. package/packages/rendering/src/RenderPipelineProvider.d.ts +15 -0
  101. package/packages/rendering/src/pipeline-executors/BasicPipelineExecutor.d.ts +11 -0
  102. package/packages/rendering/src/render-passes/GeometryPass.d.ts +16 -0
  103. package/packages/rendering/src/render-passes/PostProcessingPass.d.ts +24 -0
  104. package/packages/rendering/src/render-passes/SSAOPass.d.ts +14 -0
  105. package/packages/rendering/src/render-passes/types.d.ts +31 -0
  106. package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderModePipelineProvider.d.ts +23 -0
  107. package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderPipelineProvider.d.ts +25 -0
  108. package/packages/rendering/src/render-pipeline-providers/DefaultRenderPipelineProvider.d.ts +34 -0
  109. package/packages/rendering/src/render-pipeline-providers/types.d.ts +19 -0
  110. package/packages/rendering/src/rendering/shaders.d.ts +1 -15
  111. package/packages/rendering/src/rendering/types.d.ts +1 -1
  112. package/packages/rendering/src/utilities/renderUtilities.d.ts +26 -0
  113. package/packages/tools/src/AxisView/AxisViewTool.d.ts +0 -1
  114. package/packages/utilities/index.d.ts +3 -0
  115. package/packages/utilities/src/DeferredPromise.d.ts +1 -1
  116. package/packages/utilities/src/SceneHandler.d.ts +21 -0
  117. package/packages/utilities/src/WebGLRendererStateHelper.d.ts +12 -0
  118. package/packages/utilities/src/device.d.ts +10 -0
  119. package/packages/utilities/src/isMobileOrTablet.d.ts +1 -0
  120. package/packages/utilities/src/three/createFullScreenTriangleGeometry.d.ts +5 -0
  121. package/tools.js +58 -45
  122. package/tools.map +1 -1
  123. package/packages/cad-model/src/CadModelSectorLoadStatistics.d.ts +0 -38
  124. package/packages/cad-model/src/GeometryFilter.d.ts +0 -20
  125. package/packages/cad-model/src/WellKnownUnit.d.ts +0 -7
  126. package/packages/cad-model/src/picking.d.ts +0 -28
  127. 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.2",
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,12 +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/geojson": "^7946.0.8",
27
- "@types/three": "0.139.0",
25
+ "@types/geojson": "7946.0.8",
26
+ "@types/three": "0.140.0",
28
27
  "assert": "2.0.0",
29
28
  "comlink": "4.3.1",
30
29
  "geo-three": "0.0.17",
@@ -33,9 +32,10 @@
33
32
  "lodash": "4.17.21",
34
33
  "loglevel": "1.8.0",
35
34
  "mixpanel-browser": "2.45.0",
35
+ "proj4": "^2.8.0",
36
36
  "rxjs": "7.5.5",
37
37
  "skmeans": "0.11.3",
38
- "three": "0.139.2"
38
+ "three": "0.140.2"
39
39
  },
40
40
  "peerDependencies": {
41
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
  };
@@ -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;
@@ -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,10 +2,14 @@
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';
9
10
  export { PointCloudBudget } from './src/PointCloudBudget';
10
11
  export { PointCloudIntersection } from './src/PointCloudIntersection';
11
12
  export { CognitePointCloudModel } from './src/CognitePointCloudModel';
13
+ export { PotreeNodeWrapper } from './src/PotreeNodeWrapper';
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
  }
@@ -6,21 +6,32 @@ import { LoadingState } from '../../model-base';
6
6
  import { PointCloudFactory } from './PointCloudFactory';
7
7
  import { PointCloudNode } from './PointCloudNode';
8
8
  import { PointCloudMetadataRepository } from './PointCloudMetadataRepository';
9
+ import { PotreeGroupWrapper } from './PotreeGroupWrapper';
10
+ import { PointCloudOctree } from './potree-three-loader';
9
11
  import { Observable } from 'rxjs';
10
12
  import { ModelIdentifier } from '../../modeldata-api';
11
13
  export declare class PointCloudManager {
12
14
  private readonly _pointCloudMetadataRepository;
13
15
  private readonly _pointCloudFactory;
14
16
  private readonly _pointCloudGroupWrapper;
15
- constructor(metadataRepository: PointCloudMetadataRepository, modelFactory: PointCloudFactory);
17
+ private readonly _cameraSubject;
18
+ private readonly _modelSubject;
19
+ private readonly _budgetSubject;
20
+ private readonly _renderer;
21
+ private _clippingPlanes;
22
+ constructor(metadataRepository: PointCloudMetadataRepository, modelFactory: PointCloudFactory, scene: THREE.Scene, renderer: THREE.WebGLRenderer);
23
+ get pointCloudGroupWrapper(): PotreeGroupWrapper;
16
24
  requestRedraw(): void;
17
25
  resetRedraw(): void;
18
26
  get pointBudget(): number;
19
27
  set pointBudget(points: number);
20
28
  get needsRedraw(): boolean;
21
29
  set clippingPlanes(planes: THREE.Plane[]);
30
+ setClippingPlanesForPointCloud(octree: PointCloudOctree): void;
22
31
  getLoadingStateObserver(): Observable<LoadingState>;
23
- updateCamera(_camera: THREE.PerspectiveCamera): void;
32
+ updatePointClouds(camera: THREE.PerspectiveCamera): void;
33
+ updateCamera(camera: THREE.PerspectiveCamera): void;
24
34
  addModel(modelIdentifier: ModelIdentifier): Promise<PointCloudNode>;
25
35
  removeModel(node: PointCloudNode): void;
36
+ private loadedModelsObservable;
26
37
  }
@@ -5,7 +5,8 @@ import * as THREE from 'three';
5
5
  import { CameraConfiguration } from '../../utilities';
6
6
  import { PotreeGroupWrapper } from './PotreeGroupWrapper';
7
7
  import { PotreeNodeWrapper } from './PotreeNodeWrapper';
8
- import { PotreePointSizeType, PotreePointColorType, PotreePointShape, WellKnownAsprsPointClassCodes } from './types';
8
+ import { WellKnownAsprsPointClassCodes } from './types';
9
+ import { PickPoint, PotreePointColorType, PotreePointShape, PotreePointSizeType } from './potree-three-loader';
9
10
  export declare class PointCloudNode extends THREE.Group {
10
11
  private readonly _potreeGroup;
11
12
  private readonly _potreeNode;
@@ -20,14 +21,20 @@ export declare class PointCloudNode extends THREE.Group {
20
21
  get pointSize(): number;
21
22
  set pointSize(size: number);
22
23
  get pointSizeType(): PotreePointSizeType;
23
- set pointSizeType(value: PotreePointSizeType);
24
- get pointBudget(): number;
25
- set pointBudget(count: number);
24
+ set pointSizeType(pointSizeType: PotreePointSizeType);
26
25
  get visiblePointCount(): number;
27
26
  get pointColorType(): PotreePointColorType;
28
27
  set pointColorType(type: PotreePointColorType);
29
28
  get pointShape(): PotreePointShape;
30
29
  set pointShape(value: PotreePointShape);
30
+ /**
31
+ * GPU-based picking allowing to get point data based on ray directing from the camera.
32
+ * @param renderer Renderer object used for Reveal rendereing.
33
+ * @param camera Camera object used for Reveal rendering.
34
+ * @param ray Ray representing the direction for picking.
35
+ * @returns Picked point data.
36
+ */
37
+ pick(renderer: THREE.WebGLRenderer, camera: THREE.Camera, ray: THREE.Ray): PickPoint | null;
31
38
  /**
32
39
  * Sets a visible filter on points of a given class.
33
40
  * @param pointClass ASPRS classification class code. Either one of the well known