@cognite/reveal 4.0.0 → 4.1.0-dev.20230127

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 (62) hide show
  1. package/README.md +4 -15
  2. package/dist/api-entry-points/core.d.ts +2 -2
  3. package/dist/index.js +161 -145
  4. package/dist/index.js.map +1 -1
  5. package/dist/packages/360-images/index.d.ts +2 -0
  6. package/dist/packages/360-images/src/DefaultImage360Collection.d.ts +44 -0
  7. package/dist/packages/360-images/src/Image360Collection.d.ts +17 -0
  8. package/dist/packages/360-images/src/types.d.ts +12 -0
  9. package/dist/packages/api/index.d.ts +0 -1
  10. package/dist/packages/api/src/api-helpers/Image360ApiHelper.d.ts +4 -2
  11. package/dist/packages/api/src/public/RevealManager.d.ts +6 -2
  12. package/dist/packages/api/src/public/RevealOptions.d.ts +2 -1
  13. package/dist/packages/api/src/public/migration/Cognite3DViewer.d.ts +25 -8
  14. package/dist/packages/api/src/public/migration/types.d.ts +26 -0
  15. package/dist/packages/cad-geometry-loaders/src/CadManager.d.ts +2 -1
  16. package/dist/packages/cad-geometry-loaders/src/InternalRevealCadOptions.d.ts +1 -1
  17. package/dist/packages/cad-geometry-loaders/src/sector/culling/ByScreenSizeSectorCuller.d.ts +2 -2
  18. package/dist/packages/cad-geometry-loaders/src/sector/culling/WeightFunctionsHelper.d.ts +2 -2
  19. package/dist/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenV9SectorMap.d.ts +2 -2
  20. package/dist/packages/cad-geometry-loaders/src/sector/culling/types.d.ts +1 -1
  21. package/dist/packages/cad-model/src/batching/DrawCallBatchingManager.d.ts +9 -0
  22. package/dist/packages/cad-model/src/batching/MultiBufferBatchingManager.d.ts +38 -0
  23. package/dist/packages/cad-model/src/utilities/GeometryBufferUtils.d.ts +18 -0
  24. package/dist/packages/cad-model/src/utilities/getShaderMaterial.d.ts +7 -0
  25. package/dist/packages/cad-model/src/wrappers/CadNode.d.ts +6 -0
  26. package/dist/packages/cad-model/src/wrappers/CogniteCadModel.d.ts +17 -0
  27. package/dist/packages/cad-parsers/index.d.ts +1 -1
  28. package/dist/packages/cad-parsers/src/metadata/parsers/types.d.ts +1 -28
  29. package/dist/packages/cad-parsers/src/metadata/types.d.ts +1 -35
  30. package/dist/packages/cad-parsers/src/utilities/SectorScene.d.ts +11 -0
  31. package/dist/packages/camera-manager/src/ComboControls.d.ts +1 -1
  32. package/dist/packages/camera-manager/src/StationaryCameraManager.d.ts +5 -0
  33. package/dist/packages/camera-manager/src/types.d.ts +1 -1
  34. package/dist/packages/data-providers/index.d.ts +0 -1
  35. package/dist/packages/data-providers/src/pointcloud-stylable-object-providers/DummyPointCloudStylableObjectProvider.d.ts +1 -1
  36. package/dist/packages/data-providers/src/pointcloud-stylable-object-providers/types.d.ts +21 -1
  37. package/dist/packages/data-providers/src/utilities/applyDefaultModelTransformation.d.ts +0 -1
  38. package/dist/packages/logger/index.d.ts +3 -2
  39. package/dist/packages/pointclouds/src/CognitePointCloudModel.d.ts +17 -0
  40. package/dist/packages/pointclouds/src/PointCloudIntersection.d.ts +5 -0
  41. package/dist/packages/pointclouds/src/PointCloudNode.d.ts +5 -2
  42. package/dist/packages/pointclouds/src/PointCloudPickingHandler.d.ts +5 -0
  43. package/dist/packages/pointclouds/src/potree-three-loader/Potree.d.ts +2 -0
  44. package/dist/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometry.d.ts +0 -1
  45. package/dist/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctree.d.ts +11 -1
  46. package/dist/packages/rendering/index.d.ts +4 -1
  47. package/dist/packages/rendering/src/CadMaterialManager.d.ts +1 -0
  48. package/dist/packages/rendering/src/PointCloudMaterialManager.d.ts +1 -4
  49. package/dist/packages/rendering/src/ResizeHandler.d.ts +29 -0
  50. package/dist/packages/rendering/src/pipeline-executors/BasicPipelineExecutor.d.ts +1 -11
  51. package/dist/packages/rendering/src/pointcloud-rendering/PointCloudMaterial.d.ts +5 -5
  52. package/dist/packages/rendering/src/pointcloud-rendering/PointCloudObjectAppearanceTexture.d.ts +1 -3
  53. package/dist/packages/rendering/src/render-pipeline-providers/CadGeometryRenderModePipelineProvider.d.ts +2 -3
  54. package/dist/packages/rendering/src/render-pipeline-providers/DefaultRenderPipelineProvider.d.ts +5 -3
  55. package/dist/packages/rendering/src/rendering/SettableRenderTarget.d.ts +9 -0
  56. package/dist/packages/rendering/src/utilities/renderUtilities.d.ts +2 -4
  57. package/dist/packages/rendering/src/utilities/types.d.ts +7 -0
  58. package/dist/packages/tools/src/Measurement/MeasurementLine.d.ts +2 -2
  59. package/dist/packages/utilities/index.d.ts +1 -0
  60. package/dist/packages/{api/src/public → utilities/src}/constants.d.ts +1 -0
  61. package/package.json +37 -36
  62. package/dist/packages/cad-model/src/batching/GeometryBatchingManager.d.ts +0 -31
@@ -19,5 +19,16 @@ export declare class SectorSceneImpl implements SectorScene {
19
19
  getSectorsIntersectingBox(b: THREE.Box3): SectorMetadata[];
20
20
  getBoundsOfMostGeometry(): THREE.Box3;
21
21
  getSectorsIntersectingFrustum(projectionMatrix: THREE.Matrix4, inverseCameraModelMatrix: THREE.Matrix4): SectorMetadata[];
22
+ /**
23
+ * Recursive intersection detection.
24
+ */
25
+ private detectIntersectingBounds;
26
+ /**
27
+ * Use kmeans to group inputBounds into clusters.
28
+ *
29
+ * @param inBounds The bounds to be grouped into clusters.
30
+ * @returns Both the list of cluster bounds and the cluster with the highest node count
31
+ */
32
+ private generateClusters;
22
33
  private computeBoundsOfMostGeometry;
23
34
  }
@@ -76,7 +76,7 @@ export declare class ComboControls extends EventDispatcher {
76
76
  private readonly _scrollTarget;
77
77
  private readonly _targetEnd;
78
78
  private readonly _spherical;
79
- private _sphericalEnd;
79
+ private readonly _sphericalEnd;
80
80
  private readonly _deltaTarget;
81
81
  private readonly _rawCameraRotation;
82
82
  private readonly _keyboard;
@@ -9,10 +9,12 @@ export declare class StationaryCameraManager implements CameraManager {
9
9
  private readonly _cameraChangedListeners;
10
10
  private readonly _domElement;
11
11
  private _defaultFOV;
12
+ private readonly _minFOV;
12
13
  private readonly _stopEventTrigger;
13
14
  private _isDragging;
14
15
  constructor(domElement: HTMLElement, camera: THREE.PerspectiveCamera);
15
16
  getCamera(): THREE.PerspectiveCamera;
17
+ get defaultFOV(): number;
16
18
  setCameraState(state: CameraState): void;
17
19
  getCameraState(): Required<CameraState>;
18
20
  activate(cameraManager: CameraManager): void;
@@ -21,10 +23,13 @@ export declare class StationaryCameraManager implements CameraManager {
21
23
  off(eventType: CameraManagerEventType, callback: CameraChangeDelegate): void;
22
24
  fitCameraToBoundingBox(boundingBox: THREE.Box3, _?: number, radiusFactor?: number): void;
23
25
  moveTo(targetPosition: THREE.Vector3, duration?: number): Promise<void>;
26
+ setFOV(fov: number): void;
24
27
  update(_: number, boundingBox: THREE.Box3): void;
25
28
  dispose(): void;
26
29
  private readonly enableDragging;
27
30
  private readonly disableDragging;
28
31
  private readonly rotateCamera;
29
32
  private readonly zoomCamera;
33
+ private getCursorRay;
34
+ private getTarget;
30
35
  }
@@ -80,4 +80,4 @@ export declare const CAMERA_MANAGER_EVENT_TYPE_LIST: readonly ["cameraChange", "
80
80
  /**
81
81
  * Union type of the supported camera manager event types
82
82
  */
83
- export type CameraManagerEventType = typeof CAMERA_MANAGER_EVENT_TYPE_LIST[number];
83
+ export type CameraManagerEventType = (typeof CAMERA_MANAGER_EVENT_TYPE_LIST)[number];
@@ -17,6 +17,5 @@ export { PointCloudStylableObjectProvider } from './src/PointCloudStylableObject
17
17
  export { StylableObject, SerializableStylableObject } from './src/pointcloud-stylable-object-providers/StylableObject';
18
18
  export { CdfPointCloudStylableObjectProvider } from './src/pointcloud-stylable-object-providers/CdfPointCloudStylableObjectProvider';
19
19
  export { DummyPointCloudStylableObjectProvider } from './src/pointcloud-stylable-object-providers/DummyPointCloudStylableObjectProvider';
20
- export { cadFromCdfToThreeMatrix } from './src/utilities/applyDefaultModelTransformation';
21
20
  export { Image360Provider } from './src/Image360Provider';
22
21
  export { BinaryFileProvider, JsonFileProvider, File3dFormat, BlobOutputMetadata, Image360Descriptor, Image360FileProvider, Image360Face } from './src/types';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
- import { ModelIdentifier } from '../../../data-providers';
4
+ import { ModelIdentifier } from '../ModelIdentifier';
5
5
  import { PointCloudStylableObjectProvider } from '../PointCloudStylableObjectProvider';
6
6
  import { PointCloudObject } from './types';
7
7
  export declare class DummyPointCloudStylableObjectProvider implements PointCloudStylableObjectProvider {
@@ -4,14 +4,34 @@
4
4
  import { StylableObject } from './StylableObject';
5
5
  import { IShape } from '../../../utilities';
6
6
  import { Box3 } from 'three';
7
+ import { AnnotationsAssetRef } from '@cognite/sdk';
7
8
  export type CdfPointCloudObjectAnnotation = {
8
9
  annotationId: number;
9
- assetId?: number;
10
+ asset?: AnnotationsAssetRef;
10
11
  region: IShape[];
11
12
  };
13
+ /**
14
+ * @public
15
+ * Metadata for a single point cloud object
16
+ */
12
17
  export type PointCloudObjectMetadata = {
18
+ /**
19
+ * The CDF Annotation ID associated with the point cloud object.
20
+ */
13
21
  annotationId: number;
22
+ /**
23
+ * The CDF Asset ID associated with the point cloud object, if any.
24
+ *
25
+ * @deprecated Use {@link PointCloudObjectMetadata.assetRef} instead.
26
+ */
14
27
  assetId?: number;
28
+ /**
29
+ * Asset identifiers for asset associated with this point cloud object, if any.
30
+ */
31
+ assetRef?: AnnotationsAssetRef;
32
+ /**
33
+ * The bounding box of this annotation
34
+ */
15
35
  boundingBox: Box3;
16
36
  };
17
37
  export type PointCloudObject = PointCloudObjectMetadata & {
@@ -3,5 +3,4 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { File3dFormat } from '../types';
6
- export declare const cadFromCdfToThreeMatrix: THREE.Matrix4;
7
6
  export declare function applyDefaultModelTransformation(matrix: THREE.Matrix4, format: File3dFormat | string): void;
@@ -1,5 +1,6 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- import log from './src/Log';
5
- export default log;
4
+ import defaultLog from './src/Log';
5
+ declare const Log: defaultLog.RootLogger;
6
+ export { Log };
@@ -64,6 +64,18 @@ export declare class CognitePointCloudModel {
64
64
  * @param out Preallocated `THREE.Matrix4` (optional)
65
65
  */
66
66
  getCdfToDefaultModelTransformation(out?: THREE.Matrix4): THREE.Matrix4;
67
+ /**
68
+ * Map point from CDF to model space, taking the model's custom transformation into account
69
+ * @param point Point to compute transformation from
70
+ * @param out Optional pre-allocated point
71
+ */
72
+ mapPointFromCdfToModelCoordinates(point: THREE.Vector3, out?: THREE.Vector3): THREE.Vector3;
73
+ /**
74
+ * Map bounding box from CDF to model space, taking the model's custom transformation into account
75
+ * @param box Box to compute transformation from
76
+ * @param out Optional pre-allocated box
77
+ */
78
+ mapBoxFromCdfToModelCoordinates(box: THREE.Box3, out?: THREE.Box3): THREE.Box3;
67
79
  /**
68
80
  * Sets a visible filter on points of a given class.
69
81
  * @param pointClass ASPRS classification class code. Either one of the well known
@@ -143,6 +155,11 @@ export declare class CognitePointCloudModel {
143
155
  * @see {@link PointShape}.
144
156
  */
145
157
  set pointShape(shape: PointShape);
158
+ /**
159
+ * Sets the clipping planes for this model. They will be combined with the
160
+ * global clipping planes.
161
+ */
162
+ setModelClippingPlanes(clippingPlanes: THREE.Plane[]): void;
146
163
  /**
147
164
  * Gets default point appearance
148
165
  */
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
+ import { AnnotationsAssetRef } from '@cognite/sdk';
4
5
  import { CognitePointCloudModel } from './CognitePointCloudModel';
5
6
  export type PointCloudIntersection = {
6
7
  /**
@@ -27,4 +28,8 @@ export type PointCloudIntersection = {
27
28
  * Annotation Id of the intersected object within a pointcloud. (0 if not applicable)
28
29
  */
29
30
  annotationId: number;
31
+ /**
32
+ * Reference to the asset associated to the intersected point cloud object, if any.
33
+ */
34
+ assetRef?: AnnotationsAssetRef;
30
35
  };
@@ -11,7 +11,7 @@ import { Matrix4, Group } from 'three';
11
11
  export declare class PointCloudNode extends Group {
12
12
  private readonly _cameraConfiguration?;
13
13
  private readonly _octree;
14
- private readonly _annotations;
14
+ private readonly _objectIdToAnnotationsMap;
15
15
  private readonly _classificationHandler;
16
16
  private _needsRedraw;
17
17
  private static readonly pickingWindowSize;
@@ -78,9 +78,12 @@ export declare class PointCloudNode extends Group {
78
78
  getModelTransformation(out?: Matrix4): THREE.Matrix4;
79
79
  getCdfToDefaultModelTransformation(out?: Matrix4): Matrix4;
80
80
  get stylableObjectAnnotationMetadata(): Iterable<PointCloudObjectMetadata>;
81
- get stylableObjects(): PointCloudObject[];
81
+ getStylableObjectMetadata(objectId: number): PointCloudObjectMetadata | undefined;
82
+ get stylableObjectCount(): number;
82
83
  get defaultAppearance(): CompletePointCloudAppearance;
83
84
  set defaultAppearance(appearance: CompletePointCloudAppearance);
85
+ set clippingPlanes(clippingPlanes: THREE.Plane[]);
84
86
  assignStyledPointCloudObjectCollection(styledCollection: StyledPointCloudObjectCollection): void;
85
87
  removeAllStyledPointCloudObjects(): void;
88
+ dispose(): void;
86
89
  }
@@ -4,6 +4,7 @@
4
4
  import * as THREE from 'three';
5
5
  import { IntersectInput } from '../../model-base';
6
6
  import { PointCloudNode } from './PointCloudNode';
7
+ import { AnnotationsAssetRef } from '@cognite/sdk';
7
8
  export interface IntersectPointCloudNodeResult {
8
9
  /**
9
10
  * Distance from camera to intersected point.
@@ -29,6 +30,10 @@ export interface IntersectPointCloudNodeResult {
29
30
  * annotationId of the clicked object within a pointcloud.
30
31
  */
31
32
  annotationId: number;
33
+ /**
34
+ * asset reference of the clicked object in the pointcloud, if any.
35
+ */
36
+ assetRef?: AnnotationsAssetRef;
32
37
  }
33
38
  export declare class PointCloudPickingHandler {
34
39
  private readonly _normalized;
@@ -18,11 +18,13 @@ export declare class Potree implements IPotree {
18
18
  private readonly _modelDataProvider;
19
19
  private readonly _materialManager;
20
20
  private readonly _throttledUpdateFunc;
21
+ private _shouldLoad;
21
22
  maxNumNodesLoading: number;
22
23
  lru: LRU;
23
24
  constructor(modelDataProvider: ModelDataProvider, pointCloudMaterialManager: PointCloudMaterialManager);
24
25
  loadPointCloud(baseUrl: string, fileName: string, pointCloudObjects: PointCloudObject[], modelIdentifier: symbol): Promise<PointCloudOctree>;
25
26
  updatePointClouds(pointClouds: PointCloudOctree[], camera: Camera, renderer: WebGLRenderer): void;
27
+ set shouldLoad(value: boolean);
26
28
  private innerUpdatePointClouds;
27
29
  get pointBudget(): number;
28
30
  set pointBudget(value: number);
@@ -16,7 +16,6 @@ export declare class PointCloudEptGeometry implements IPointCloudTreeGeometry {
16
16
  private readonly _spacing;
17
17
  private readonly _schema;
18
18
  private _root;
19
- private readonly _projection;
20
19
  get loader(): EptBinaryLoader;
21
20
  get root(): PointCloudEptGeometryNode | undefined;
22
21
  set root(r: PointCloudEptGeometryNode | undefined);
@@ -1,4 +1,4 @@
1
- import { Box3, Camera, Object3D, Ray, Sphere, WebGLRenderer } from 'three';
1
+ import { Box3, Camera, Object3D, Plane, Ray, Sphere, WebGLRenderer } from 'three';
2
2
  import { IPointCloudTreeGeometry } from '../geometry/IPointCloudTreeGeometry';
3
3
  import { IPointCloudTreeGeometryNode } from '../geometry/IPointCloudTreeGeometryNode';
4
4
  import { PickParams } from './PointCloudOctreePicker';
@@ -29,14 +29,24 @@ export declare class PointCloudOctree extends PointCloudTree {
29
29
  showBoundingBox: boolean;
30
30
  private readonly visibleBounds;
31
31
  private picker;
32
+ private _globalClippingPlanes;
33
+ private _localClippingPlanes;
32
34
  constructor(potree: IPotree, pcoGeometry: IPointCloudTreeGeometry, material: PointCloudMaterial);
33
35
  private updateMaterial;
36
+ setGlobalClippingPlane(planes: Plane[]): void;
37
+ setModelClippingPlane(planes: Plane[]): void;
38
+ updateClippingPlanes(): void;
34
39
  dispose(): void;
35
40
  get pointSizeType(): PointSizeType;
36
41
  set pointSizeType(value: PointSizeType);
37
42
  toTreeNode(geometryNode: IPointCloudTreeGeometryNode, parent?: IPointCloudTreeNode | null): IPointCloudTreeNode;
38
43
  updateVisibleBounds(): void;
39
44
  updateBoundingBoxes(): void;
45
+ updateMatricesForDescendants(): void;
46
+ /**
47
+ * Override updateMatrixWorld to not update children recursively. Child transformations
48
+ * are defined in relation to the base octree, and are instead updated using updateMatricesfordescendants()
49
+ */
40
50
  updateMatrixWorld(force: boolean): void;
41
51
  hideDescendants(object: Object3D): void;
42
52
  moveToOrigin(): void;
@@ -11,7 +11,8 @@ export * from './src/pointcloud-rendering/types';
11
11
  export * from './src/pointcloud-rendering/PointCloudObjectIdMaps';
12
12
  export { DEFAULT_CLASSIFICATION } from './src/pointcloud-rendering/classification';
13
13
  export { RenderMode } from './src/rendering/RenderMode';
14
- export { RenderLayer } from './src/utilities/renderUtilities';
14
+ export { RenderLayer, setModelRenderLayers } from './src/utilities/renderUtilities';
15
+ export { StyledTreeIndexSets } from './src/utilities/types';
15
16
  export { coverageShaders } from './src/rendering/shaders';
16
17
  export { Materials } from './src/rendering/materials';
17
18
  export { PointCloudMaterial, OctreeMaterialParams } from './src/pointcloud-rendering';
@@ -20,3 +21,5 @@ export { CadGeometryRenderModePipelineProvider } from './src/render-pipeline-pro
20
21
  export { BasicPipelineExecutor } from './src/pipeline-executors/BasicPipelineExecutor';
21
22
  export { RenderPipelineExecutor } from './src/RenderPipelineExecutor';
22
23
  export { RenderPipelineProvider } from './src/RenderPipelineProvider';
24
+ export { ResizeHandler } from './src/ResizeHandler';
25
+ export { SettableRenderTarget } from './src/rendering/SettableRenderTarget';
@@ -22,6 +22,7 @@ export declare class CadMaterialManager {
22
22
  getModelNodeAppearanceProvider(modelIdentifier: string): NodeAppearanceProvider;
23
23
  getModelNodeTransformProvider(modelIdentifier: string): NodeTransformProvider;
24
24
  getModelDefaultNodeAppearance(modelIdentifier: string): NodeAppearance;
25
+ getModelClippingPlanes(modelIdentifier: string): THREE.Plane[];
25
26
  setModelClippingPlanes(modelIdentifier: string, clippingPlanes: THREE.Plane[]): void;
26
27
  setModelDefaultNodeAppearance(modelIdentifier: string, defaultAppearance: NodeAppearance): void;
27
28
  getModelBackTreeIndices(modelIdentifier: string): IndexSet;
@@ -6,13 +6,10 @@ import { PointCloudMaterial } from './pointcloud-rendering';
6
6
  import { PointCloudMaterialParameters } from './render-passes/types';
7
7
  export declare class PointCloudMaterialManager {
8
8
  private readonly _modelsMaterialsMap;
9
- private _clippingPlanes;
10
9
  addModelMaterial(modelIdentifier: symbol, objectIdMaps: PointCloudObjectIdMaps): void;
11
10
  removeModelMaterial(modelIdentifier: symbol): void;
12
11
  getModelMaterial(modelIdentifier: symbol): PointCloudMaterial;
13
- get clippingPlanes(): THREE.Plane[];
14
- set clippingPlanes(clippingPlanes: THREE.Plane[]);
15
- setClippingPlanesForPointCloud(modelIdentifier: symbol): void;
12
+ initializeClippingPlanesForPointCloud(modelIdentifier: symbol): void;
16
13
  setModelsMaterialParameters(materialParameters: PointCloudMaterialParameters | undefined): void;
17
14
  setMaterialParameters(material: PointCloudMaterial, parameters: PointCloudMaterialParameters): void;
18
15
  dispose(): void;
@@ -0,0 +1,29 @@
1
+ /*!
2
+ * Copyright 2022 Cognite AS
3
+ */
4
+ import { WebGLRenderer, PerspectiveCamera } from 'three';
5
+ import { CameraManager } from '../../camera-manager';
6
+ export type ResizeHandlerOptions = {
7
+ renderResolutionThreshold?: number;
8
+ };
9
+ export declare class ResizeHandler {
10
+ private readonly _defaultResolutionThreshold;
11
+ private readonly _renderer;
12
+ private readonly _cameraManager;
13
+ private _stoppedCameraResolutionThreshold;
14
+ private _currentResolutionThreshold;
15
+ private _movingResolutionFactor;
16
+ private readonly _onCameraChangeCallback;
17
+ private readonly _onCameraStopCallback;
18
+ private readonly _resizeObserver;
19
+ private _shouldResize;
20
+ constructor(renderer: WebGLRenderer, cameraManager: CameraManager, resizeOptions?: ResizeHandlerOptions);
21
+ get needsRedraw(): boolean;
22
+ resetRedraw(): void;
23
+ setResolutionThreshold(threshold: number): void;
24
+ setMovingCameraResolutionFactor(factor: number): void;
25
+ handleResize(camera: PerspectiveCamera): void;
26
+ private setupResizeListener;
27
+ private resize;
28
+ dispose(): void;
29
+ }
@@ -4,19 +4,9 @@
4
4
  import * as THREE from 'three';
5
5
  import { RenderPipelineExecutor } from '../RenderPipelineExecutor';
6
6
  import { RenderPipelineProvider } from '../RenderPipelineProvider';
7
- export type BasicPipelineExecutorOptions = {
8
- autoResizeRenderer: boolean;
9
- resolutionThreshold?: number;
10
- };
11
7
  export declare class BasicPipelineExecutor implements RenderPipelineExecutor {
12
- private readonly _defaultResolutionThreshold;
13
8
  private readonly _renderer;
14
- private readonly _resolutionThreshold;
15
- private readonly _resizeObserver;
16
- private _shouldResize;
17
- constructor(renderer: THREE.WebGLRenderer, options?: BasicPipelineExecutorOptions);
9
+ constructor(renderer: THREE.WebGLRenderer);
18
10
  render(renderPipeline: RenderPipelineProvider, camera: THREE.PerspectiveCamera): void;
19
- private setupResizeListener;
20
- private resize;
21
11
  dispose(): void;
22
12
  }
@@ -5,7 +5,7 @@ import { Camera, RawShaderMaterial, Texture, WebGLRenderer } from 'three';
5
5
  import { PointColorType, PointShape, PointSizeType } from './enums';
6
6
  import { PointClassification, IUniform, OctreeMaterialParams } from './types';
7
7
  import { PointCloudObjectAppearanceTexture } from './PointCloudObjectAppearanceTexture';
8
- import { PointCloudObjectIdMaps } from '../../../rendering';
8
+ import { PointCloudObjectIdMaps } from './PointCloudObjectIdMaps';
9
9
  export interface IPointCloudMaterialParameters {
10
10
  size: number;
11
11
  minSize: number;
@@ -39,7 +39,6 @@ export interface IPointCloudMaterialUniforms {
39
39
  }
40
40
  export declare class PointCloudMaterial extends RawShaderMaterial {
41
41
  private static readonly helperVec3;
42
- private static readonly helperVec2;
43
42
  /**
44
43
  * Use the drawing buffer size instead of the dom client width and height when passing the screen height and screen width uniforms to the
45
44
  * shader. This is useful if you have offscreen canvases (which in some browsers return 0 as client width and client height).
@@ -51,7 +50,7 @@ export declare class PointCloudMaterial extends RawShaderMaterial {
51
50
  visibleNodeTextureOffsets: Map<string, number>;
52
51
  private readonly _gradient;
53
52
  private gradientTexture;
54
- private readonly _objectAppearanceTexture;
53
+ private _objectAppearanceTexture;
55
54
  private _classification;
56
55
  private classificationTexture;
57
56
  uniforms: IPointCloudMaterialUniforms & Record<string, IUniform<any>>;
@@ -108,6 +107,7 @@ export declare class PointCloudMaterial extends RawShaderMaterial {
108
107
  updateShaderSource(): void;
109
108
  applyDefines(shaderSrc: string): string;
110
109
  get objectAppearanceTexture(): PointCloudObjectAppearanceTexture;
110
+ set objectAppearanceTexture(texture: PointCloudObjectAppearanceTexture);
111
111
  get classification(): PointClassification;
112
112
  set classification(value: PointClassification);
113
113
  private recomputeClassification;
@@ -115,7 +115,7 @@ export declare class PointCloudMaterial extends RawShaderMaterial {
115
115
  set elevationRange(value: [number, number]);
116
116
  getUniform<K extends keyof IPointCloudMaterialUniforms>(name: K): IPointCloudMaterialUniforms[K]['value'];
117
117
  setUniform<K extends keyof IPointCloudMaterialUniforms>(name: K, value: IPointCloudMaterialUniforms[K]['value']): void;
118
- onBeforeRender(): void;
119
- updateMaterial(octreeParams: OctreeMaterialParams, visibilityTextureData: Uint8Array, camera: Camera, renderer: WebGLRenderer): void;
118
+ onBeforeRender(renderer: WebGLRenderer): void;
119
+ updateMaterial(octreeParams: OctreeMaterialParams, visibilityTextureData: Uint8Array, camera: Camera): void;
120
120
  private updateVisibilityTextureData;
121
121
  }
@@ -5,17 +5,15 @@ import * as THREE from 'three';
5
5
  import { StyledPointCloudObjectCollection, PointCloudObjectCollection, CompletePointCloudAppearance } from '../../../pointcloud-styling';
6
6
  import { PointCloudObjectIdMaps } from './PointCloudObjectIdMaps';
7
7
  export declare class PointCloudObjectAppearanceTexture {
8
- private _objectStyleTexture;
8
+ private readonly _objectStyleTexture;
9
9
  private _needsReconstruction;
10
10
  private readonly _styledObjectSets;
11
11
  private _defaultAppearance;
12
12
  private readonly _width;
13
13
  private readonly _height;
14
14
  private _annotationIdsToObjectId;
15
- private _objectIdsToAnnotationId;
16
15
  constructor(width: number, height: number);
17
16
  setObjectsMaps(objectsMaps: PointCloudObjectIdMaps): void;
18
- convertObjectIdToAnnotationId(objectId: number): number;
19
17
  private appearanceToRgba;
20
18
  private setObjectStyle;
21
19
  private setObjectCollectionStyle;
@@ -7,9 +7,8 @@ import { RenderPass } from '../RenderPass';
7
7
  import { RenderPipelineProvider } from '../RenderPipelineProvider';
8
8
  import { RenderMode } from '../rendering/RenderMode';
9
9
  import { SceneHandler } from '../../../utilities';
10
- export declare class CadGeometryRenderModePipelineProvider implements RenderPipelineProvider {
11
- private readonly _materialManager;
12
- private readonly _cadModels;
10
+ import { SettableRenderTarget } from '../rendering/SettableRenderTarget';
11
+ export declare class CadGeometryRenderModePipelineProvider implements RenderPipelineProvider, SettableRenderTarget {
13
12
  private readonly _renderTargetData;
14
13
  private readonly _geometryPass;
15
14
  private _outputRenderTarget;
@@ -8,14 +8,15 @@ import { RenderPipelineProvider } from '../RenderPipelineProvider';
8
8
  import { RenderOptions } from '../rendering/types';
9
9
  import { SceneHandler } from '../../../utilities';
10
10
  import { PointCloudMaterialManager } from '../PointCloudMaterialManager';
11
- export declare class DefaultRenderPipelineProvider implements RenderPipelineProvider {
11
+ import { SettableRenderTarget } from '../rendering/SettableRenderTarget';
12
+ export declare class DefaultRenderPipelineProvider implements RenderPipelineProvider, SettableRenderTarget {
12
13
  private readonly _viewerScene;
13
14
  private readonly _renderTargetData;
14
15
  private readonly _cadModels;
15
16
  private readonly _pointCloudModels;
16
17
  private readonly _customObjects;
17
- private readonly _autoResizeOutputTarget;
18
- private readonly _outputRenderTarget;
18
+ private _autoResizeOutputTarget;
19
+ private _outputRenderTarget;
19
20
  private readonly _cadGeometryRenderPipeline;
20
21
  private readonly _pointCloudRenderPipeline;
21
22
  private readonly _postProcessingPass;
@@ -29,6 +30,7 @@ export declare class DefaultRenderPipelineProvider implements RenderPipelineProv
29
30
  target: THREE.WebGLRenderTarget;
30
31
  autoSize?: boolean;
31
32
  });
33
+ setOutputRenderTarget(target: THREE.WebGLRenderTarget | null, autoSizeRenderTarget?: boolean): void;
32
34
  pipeline(renderer: THREE.WebGLRenderer): Generator<RenderPass>;
33
35
  dispose(): void;
34
36
  private pipelineSetup;
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Copyright 2022 Cognite AS
3
+ */
4
+ /**
5
+ * Interface for allowing render targets in renderPipelines to be changed dynamicaly in RevealManager.
6
+ */
7
+ export interface SettableRenderTarget {
8
+ setOutputRenderTarget(target: THREE.WebGLRenderTarget | null, autoSizeRenderTarget?: boolean): void;
9
+ }
@@ -4,6 +4,7 @@
4
4
  import * as THREE from 'three';
5
5
  import { WebGLRendererStateHelper } from '../../../utilities';
6
6
  import { CadMaterialManager } from '../CadMaterialManager';
7
+ import { StyledTreeIndexSets } from './types';
7
8
  import { BlitOptions, DepthBlendBlitOptions, PointCloudPassParameters, PointCloudPostProcessingOptions } from '../render-passes/types';
8
9
  export declare const unitOrthographicCamera: THREE.OrthographicCamera;
9
10
  export declare function createFullScreenTriangleMesh(shaderMaterial: THREE.RawShaderMaterial): THREE.Mesh;
@@ -18,14 +19,11 @@ export declare enum RenderLayer {
18
19
  PointCloud = 8,
19
20
  Default = 0
20
21
  }
21
- export declare function setupCadModelsGeometryLayers(materialManager: CadMaterialManager, cadModels?: {
22
- cadNode: THREE.Object3D;
23
- modelIdentifier: string;
24
- }[]): void;
25
22
  export declare function getLayerMask(renderLayer: number): number;
26
23
  export declare function hasStyledNodes(modelIdentifiers: string[], materialManager: CadMaterialManager): {
27
24
  back: boolean;
28
25
  inFront: boolean;
29
26
  ghost: boolean;
30
27
  };
28
+ export declare function setModelRenderLayers(rootNode: THREE.Object3D, stylingSets: StyledTreeIndexSets): void;
31
29
  export declare function setRendererParameters(rendererHelper: WebGLRendererStateHelper, parameters: PointCloudPassParameters): void;
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
+ import { IndexSet } from '../../../utilities';
4
5
  import * as THREE from 'three';
5
6
  /**
6
7
  * Colors from the Cognite theme.
@@ -24,3 +25,9 @@ export declare class RevealColors {
24
25
  static readonly Red: THREE.Color;
25
26
  static readonly Green: THREE.Color;
26
27
  }
28
+ export type StyledTreeIndexSets = {
29
+ back: IndexSet;
30
+ ghost: IndexSet;
31
+ inFront: IndexSet;
32
+ visible: IndexSet;
33
+ };
@@ -7,7 +7,8 @@ export declare class MeasurementLine {
7
7
  private readonly _meshes;
8
8
  private readonly _fixedWidthLineMaterial;
9
9
  private readonly _adaptiveWidthLineMaterial;
10
- private readonly _position;
10
+ private readonly _startPos;
11
+ private readonly _endpoint;
11
12
  constructor(lineWidth: number, lineColor: THREE.Color, startPoint: THREE.Vector3);
12
13
  dispose(): void;
13
14
  get meshes(): THREE.Group;
@@ -38,7 +39,6 @@ export declare class MeasurementLine {
38
39
  updateLineColor(color: THREE.Color): void;
39
40
  /**
40
41
  * Generate line geometry and create the mesh.
41
- * @param point Point from where the line will be generated.
42
42
  */
43
43
  private startLine;
44
44
  }
@@ -34,6 +34,7 @@ export { calculateVolumeOfMesh } from './src/calculateVolumeOfMesh';
34
34
  export { worldToNormalizedViewportCoordinates, worldToViewportCoordinates, pixelToNormalizedDeviceCoordinates } from './src/worldToViewport';
35
35
  export { DeferredPromise } from './src/DeferredPromise';
36
36
  export { SceneHandler } from './src/SceneHandler';
37
+ export { CDF_TO_VIEWER_TRANSFORMATION } from './src/constants';
37
38
  export * from './src/workers/workerize-transferable';
38
39
  export * from './src/shapes';
39
40
  export * from './src/linalg';
@@ -2,6 +2,7 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  import { Matrix4 } from 'three';
5
+ export declare const cadFromCdfToThreeMatrix: Matrix4;
5
6
  /**
6
7
  * The transformation matrix from CDF coordinates to ThreeJS/Reveal.
7
8
  * Note that this is already applied to {@link CogniteCadModel} and {@link CognitePointCloudModel}