@cognite/reveal 4.9.2 → 4.10.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.
@@ -279,7 +279,7 @@ export declare class Cognite3DViewer {
279
279
  * @param datasource The data data source which holds the references to the 360 image sets.
280
280
  * @param dataModelIdentifier The search parameters to apply when querying Cognite Datamodels that contains the 360 images.
281
281
  */
282
- add360ImageSet(datasource: 'datamodels', dataModelIdentifier: Image360DataModelIdentifier): Promise<Image360Collection>;
282
+ add360ImageSet(datasource: 'datamodels', dataModelIdentifier: Image360DataModelIdentifier, add360ImageOptions?: AddImage360Options): Promise<Image360Collection>;
283
283
  /**
284
284
  * Adds a set of 360 images to the scene from the /events API in Cognite Data Fusion.
285
285
  * @param datasource The CDF data source which holds the references to the 360 image sets.
@@ -11,6 +11,7 @@ export { ComboControlsOptions } from './src/ComboControlsOptions';
11
11
  export { CameraControlsOptions } from './src/CameraControlsOptions';
12
12
  export { DebouncedCameraStopEventTrigger } from './src/utils/DebouncedCameraStopEventTrigger';
13
13
  export { IFlexibleCameraManager } from './src/Flexible/IFlexibleCameraManager';
14
+ export { FlexibleControlsTypeChangeDelegate } from './src/Flexible/IFlexibleCameraManager';
14
15
  export { FlexibleCameraManager } from './src/Flexible/FlexibleCameraManager';
15
16
  export { FlexibleControlsOptions } from './src/Flexible/FlexibleControlsOptions';
16
17
  export { FlexibleWheelZoomType } from './src/Flexible/FlexibleWheelZoomType';
@@ -7,14 +7,17 @@ export declare class DampedSpherical {
7
7
  readonly end: Spherical;
8
8
  private readonly _valueVector;
9
9
  private readonly _endVector;
10
+ static isVertical(vector: Vector3): boolean;
10
11
  isChanged(epsilon: number): boolean;
11
12
  getValueVector(): Vector3;
12
13
  getEndVector(): Vector3;
13
14
  setValueVector(vector: Vector3): void;
14
15
  setEndVector(vector: Vector3): void;
16
+ setThetaFromVector(vector: Vector3): void;
15
17
  copy(vector: Vector3): void;
16
18
  synchronize(): void;
17
19
  synchronizeEnd(): void;
18
20
  damp(dampeningFactor: number): void;
21
+ static correctPhi(value: Spherical): void;
19
22
  static dampSphericalVectors(value: Spherical, end: Spherical, dampeningFactor: number): void;
20
23
  }
@@ -14,6 +14,7 @@ export declare class DampedVector3 {
14
14
  copy(value: Vector3): void;
15
15
  add(other: DampedVector3): void;
16
16
  synchronize(): void;
17
+ synchronizeEnd(): void;
17
18
  damp(dampeningFactor: number): void;
18
19
  /**
19
20
  * Suppose this(DampedVector3) is the position that orbits around the center point (DampedVector3). This has to be damped as a vector
@@ -7,7 +7,8 @@ import { FlexibleControlsOptions } from './FlexibleControlsOptions';
7
7
  import { InputHandler } from '../../../utilities';
8
8
  import { CameraEventDelegate, CameraManagerCallbackData, CameraManagerEventType, CameraState } from './../types';
9
9
  import { CameraManager } from './../CameraManager';
10
- import { IFlexibleCameraManager } from './IFlexibleCameraManager';
10
+ import { FlexibleControlsType } from './FlexibleControlsType';
11
+ import { FlexibleControlsTypeChangeDelegate, IFlexibleCameraManager } from './IFlexibleCameraManager';
11
12
  type RaycastCallback = (x: number, y: number, pickBoundingBox: boolean) => Promise<CameraManagerCallbackData>;
12
13
  /**
13
14
  * Flexible implementation of {@link CameraManager}. The user can switch between Orbit, FirstPersion or OrbitInCenter
@@ -15,7 +16,7 @@ type RaycastCallback = (x: number, y: number, pickBoundingBox: boolean) => Promi
15
16
  * @beta
16
17
  */
17
18
  export declare class FlexibleCameraManager implements IFlexibleCameraManager {
18
- private readonly _events;
19
+ private readonly _triggers;
19
20
  private readonly _stopEventTrigger;
20
21
  private readonly _controls;
21
22
  private readonly _camera;
@@ -46,6 +47,10 @@ export declare class FlexibleCameraManager implements IFlexibleCameraManager {
46
47
  fitCameraToBoundingBox(boundingBox: Box3, duration?: number, radiusFactor?: number): void;
47
48
  update(deltaTime: number, boundingBox: Box3): void;
48
49
  dispose(): void;
50
+ get controlsType(): FlexibleControlsType;
51
+ set controlsType(value: FlexibleControlsType);
52
+ addControlsTypeChangeListener(callback: FlexibleControlsTypeChangeDelegate): void;
53
+ removeControlsTypeChangeListener(callback: FlexibleControlsTypeChangeDelegate): void;
49
54
  get options(): FlexibleControlsOptions;
50
55
  get controls(): FlexibleControls;
51
56
  get camera(): PerspectiveCamera;
@@ -55,12 +60,15 @@ export declare class FlexibleCameraManager implements IFlexibleCameraManager {
55
60
  private set isEnabled(value);
56
61
  private getPosition;
57
62
  private getTarget;
63
+ getBoundingBoxDiagonal(): number;
64
+ getHorizontalDiagonal(): number;
58
65
  setPositionAndTarget(position: Vector3, target: Vector3): void;
59
66
  private getPickedPointPixelCoordinates;
60
67
  private getTargetByBoundingBox;
61
68
  private addEventListeners;
62
69
  private removeEventListeners;
63
70
  private readonly onCameraChange;
71
+ private readonly onControlsTypeChange;
64
72
  private readonly onKeyDown;
65
73
  private readonly onClick;
66
74
  private readonly onDoubleClick;
@@ -69,7 +77,5 @@ export declare class FlexibleCameraManager implements IFlexibleCameraManager {
69
77
  private setTargetAndCameraPosition;
70
78
  private updateCameraNearAndFar;
71
79
  private updateControlsSensitivity;
72
- getBoundingBoxDiagonal(): number;
73
- getHorizontalDiagonal(): number;
74
80
  }
75
81
  export {};
@@ -4,14 +4,7 @@
4
4
  import { EventDispatcher, OrthographicCamera, PerspectiveCamera, Quaternion, Vector3 } from 'three';
5
5
  import { FlexibleControlsType } from './FlexibleControlsType';
6
6
  import { FlexibleControlsOptions } from './FlexibleControlsOptions';
7
- export type FlexibleControlsEvent = {
8
- cameraChange: {
9
- camera: {
10
- position: Vector3;
11
- target: Vector3;
12
- };
13
- };
14
- };
7
+ import { FlexibleControlsEvent } from './FlexibleControlsEvent';
15
8
  /**
16
9
  * @beta
17
10
  */
@@ -27,8 +20,6 @@ export declare class FlexibleControls extends EventDispatcher<FlexibleControlsEv
27
20
  private _scrollDirection;
28
21
  private _scrollDistance;
29
22
  private _tempTarget;
30
- private readonly _rawCameraRotation;
31
- private readonly _accumulatedMouseRotation;
32
23
  private readonly _keyboard;
33
24
  private readonly _pointEventCache;
34
25
  private readonly _reusableVector3s;
@@ -37,13 +28,6 @@ export declare class FlexibleControls extends EventDispatcher<FlexibleControlsEv
37
28
  get options(): FlexibleControlsOptions;
38
29
  get isEnabled(): boolean;
39
30
  set isEnabled(isEnabled: boolean);
40
- /**
41
- * Camera rotation to be used by the camera instead of target-based rotation.
42
- * This rotation is used only when set to non-default quaternion value (not identity rotation quaternion).
43
- * Externally, value is updated by `CameraManager` when `setState` method with non-zero rotation is called. Automatically
44
- * resets to default value when `setState` method is called with no rotation value.
45
- */
46
- get cameraRawRotation(): Quaternion;
47
31
  get controlsType(): FlexibleControlsType;
48
32
  getTarget(): Vector3;
49
33
  setTarget(value: Vector3): void;
@@ -54,18 +38,20 @@ export declare class FlexibleControls extends EventDispatcher<FlexibleControlsEv
54
38
  };
55
39
  setScrollCursor(value: Vector3 | undefined): void;
56
40
  setTempTarget(value: Vector3 | undefined): void;
57
- setState(position: Vector3, target: Vector3): void;
41
+ setPositionAndTarget(position: Vector3, target: Vector3): void;
42
+ setPositionAndDirection(position: Vector3, direction: Vector3): void;
43
+ setPositionAndRotation(position: Vector3, rotation: Quaternion): void;
58
44
  setControlsType(controlsType: FlexibleControlsType): boolean;
59
45
  private getPanFactor;
60
46
  private getWheelSpeed;
61
47
  private getDampingFactor;
62
48
  private newVector3;
63
49
  update(deltaTimeS: number, forceUpdate?: boolean): boolean;
64
- triggerCameraChangeEvent: () => void;
50
+ triggerCameraChangeEvent(): void;
51
+ triggerControlsTypeChangeEvent(): void;
65
52
  private readonly onPointerDown;
66
53
  private readonly onMouseDown;
67
54
  private readonly onPointerUp;
68
- private readonly onMouseUp;
69
55
  private readonly onMouseWheel;
70
56
  private readonly onTouchStart;
71
57
  private readonly onFocusChanged;
@@ -84,9 +70,10 @@ export declare class FlexibleControls extends EventDispatcher<FlexibleControlsEv
84
70
  private translate;
85
71
  private dollyOrthographicCamera;
86
72
  private dollyWithWheelScroll;
87
- private getRadiusAndTranslation;
73
+ private getTranslation;
88
74
  private getTranslationByDirection;
89
75
  private getTranslationByScrollCursor;
76
+ private getStep;
90
77
  private handleKeyboard;
91
78
  private handleRotationFromKeyboard;
92
79
  private handleMoveFromKeyboard;
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * Copyright 2024 Cognite AS
3
+ */
4
+ import { Vector3 } from 'three';
5
+ import { FlexibleControlsType } from './FlexibleControlsType';
6
+ /**
7
+ * @beta
8
+ */
9
+ export type FlexibleControlsEvent = {
10
+ cameraChange: {
11
+ content: {
12
+ position: Vector3;
13
+ target: Vector3;
14
+ };
15
+ };
16
+ controlsTypeChange: {
17
+ controlsType: FlexibleControlsType;
18
+ };
19
+ };
@@ -1,13 +1,20 @@
1
1
  /*!
2
2
  * Copyright 2024 Cognite AS
3
3
  */
4
- import { FlexibleControlsOptions } from './FlexibleControlsOptions';
5
4
  import { CameraManager } from '../CameraManager';
5
+ import { FlexibleControlsType } from './FlexibleControlsType';
6
+ /**
7
+ * @beta
8
+ */
9
+ export type FlexibleControlsTypeChangeDelegate = (controlsType: FlexibleControlsType) => void;
6
10
  /**
7
11
  * Flexible implementation of {@link CameraManager}. The user can switch between Orbit, FirstPersion or OrbitInCenter
8
12
  * Supports automatic update of camera near and far planes and animated change of camera position and target.
9
13
  * @beta
10
14
  */
11
15
  export interface IFlexibleCameraManager extends CameraManager {
12
- get options(): FlexibleControlsOptions;
16
+ get controlsType(): FlexibleControlsType;
17
+ set controlsType(value: FlexibleControlsType);
18
+ addControlsTypeChangeListener(callback: FlexibleControlsTypeChangeDelegate): void;
19
+ removeControlsTypeChangeListener(callback: FlexibleControlsTypeChangeDelegate): void;
13
20
  }
@@ -1,7 +1,4 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import * as THREE from 'three';
1
+ import { Box2 } from 'three';
5
2
  /**
6
3
  * Data structure that splits a 2D region into cells where each cell can contain zero to many
7
4
  * elements. Elements can be stored in several cells. This data structure make overlap lookups
@@ -20,9 +17,9 @@ export declare class BucketGrid2D<T> {
20
17
  * This is used to avoid expensive re-allocations of cells when removing elements.
21
18
  */
22
19
  private readonly _removedElements;
23
- constructor(bounds: THREE.Box2, dimensions: [width: number, height: number]);
24
- insert(bounds: THREE.Box2, element: T): void;
25
- overlappingElements(bounds: THREE.Box2): Generator<T>;
26
- removeOverlappingElements(bounds: THREE.Box2): Generator<T>;
20
+ constructor(bounds: Box2, dimensions: [width: number, height: number]);
21
+ insert(bounds: Box2, element: T): void;
22
+ overlappingElements(bounds: Box2): Generator<T>;
23
+ removeOverlappingElements(bounds: Box2): Generator<T>;
27
24
  private cellsIntersecting;
28
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/reveal",
3
- "version": "4.9.2",
3
+ "version": "4.10.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": {