@cognite/reveal 4.12.1 → 4.13.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 (52) hide show
  1. package/dist/api-entry-points/core.d.ts +2 -2
  2. package/dist/index.js +228 -224
  3. package/dist/index.js.map +1 -1
  4. package/dist/packages/360-images/src/collection/DefaultImage360Collection.d.ts +1 -1
  5. package/dist/packages/360-images/src/collection/Image360CollectionFactory.d.ts +2 -1
  6. package/dist/packages/360-images/src/entity/Image360.d.ts +2 -2
  7. package/dist/packages/360-images/src/entity/Image360Entity.d.ts +4 -4
  8. package/dist/packages/360-images/src/entity/Image360RevisionEntity.d.ts +2 -1
  9. package/dist/packages/3d-overlays/src/Overlay3DCollection.d.ts +2 -2
  10. package/dist/packages/3d-overlays/src/OverlayCollection.d.ts +3 -2
  11. package/dist/packages/api/src/api-helpers/Image360ApiHelper.d.ts +5 -1
  12. package/dist/packages/api/src/public/migration/Cognite3DViewer.d.ts +1 -1
  13. package/dist/packages/api/src/public/migration/types.d.ts +14 -8
  14. package/dist/packages/cad-model/src/types.d.ts +2 -1
  15. package/dist/packages/cad-model/src/utilities/GeometryBufferUtils.d.ts +1 -1
  16. package/dist/packages/cad-styling/src/prioritized/AreaCollection.d.ts +5 -4
  17. package/dist/packages/cad-styling/src/prioritized/BoxClusterer.d.ts +1 -1
  18. package/dist/packages/cad-styling/src/prioritized/ClusteredAreaCollection.d.ts +5 -4
  19. package/dist/packages/cad-styling/src/prioritized/EmptyAreaCollection.d.ts +5 -4
  20. package/dist/packages/cad-styling/src/prioritized/types.d.ts +2 -1
  21. package/dist/packages/camera-manager/index.d.ts +1 -2
  22. package/dist/packages/camera-manager/src/Flexible/FlexibleCameraEventTarget.d.ts +20 -0
  23. package/dist/packages/camera-manager/src/Flexible/FlexibleCameraManager.d.ts +15 -14
  24. package/dist/packages/camera-manager/src/Flexible/FlexibleCameraMarkers.d.ts +1 -0
  25. package/dist/packages/camera-manager/src/Flexible/FlexibleControls.d.ts +22 -20
  26. package/dist/packages/camera-manager/src/Flexible/IFlexibleCameraManager.d.ts +45 -1
  27. package/dist/packages/camera-manager/src/Keyboard.d.ts +3 -5
  28. package/dist/packages/camera-manager/src/types.d.ts +10 -9
  29. package/dist/packages/pointclouds/src/PointCloudIntersection.d.ts +2 -1
  30. package/dist/packages/pointclouds/src/PointCloudNode.d.ts +6 -6
  31. package/dist/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePickerHelper.d.ts +1 -1
  32. package/dist/packages/pointclouds/src/potree-three-loader/types/types.d.ts +2 -2
  33. package/dist/packages/pointclouds/src/potree-three-loader/workers/assignPointsToObjectsWithWasm.d.ts +2 -1
  34. package/dist/packages/rendering/src/RenderPipelineProvider.d.ts +2 -1
  35. package/dist/packages/rendering/src/pointcloud-rendering/types.d.ts +3 -3
  36. package/dist/packages/rendering/src/render-passes/SSAOPass.d.ts +1 -1
  37. package/dist/packages/rendering/src/render-passes/types.d.ts +4 -4
  38. package/dist/packages/rendering/src/rendering/SettableRenderTarget.d.ts +2 -1
  39. package/dist/packages/sector-parser/src/types.d.ts +5 -4
  40. package/dist/packages/tools/src/Measurement/types.d.ts +4 -3
  41. package/dist/packages/utilities/index.d.ts +7 -1
  42. package/dist/packages/utilities/src/CameraConfiguration.d.ts +3 -2
  43. package/dist/packages/utilities/src/events/InputHandler.d.ts +10 -18
  44. package/dist/packages/utilities/src/events/PointerEvents.d.ts +16 -0
  45. package/dist/packages/utilities/src/events/PointerEventsTarget.d.ts +29 -0
  46. package/dist/packages/utilities/src/events/disposeOfAllEventListeners.d.ts +11 -0
  47. package/dist/packages/utilities/src/events/getWheelEventDelta.d.ts +8 -0
  48. package/dist/packages/utilities/src/events/types.d.ts +5 -4
  49. package/package.json +78 -79
  50. package/dist/packages/camera-manager/src/Flexible/FlexibleControlsEvent.d.ts +0 -19
  51. package/dist/packages/camera-manager/src/utils/getWheelDelta.d.ts +0 -4
  52. package/dist/packages/utilities/src/events/index.d.ts +0 -7
@@ -41,5 +41,49 @@ export interface IFlexibleCameraManager extends CameraManager {
41
41
  * @param callback - The callback function to be removed from the controls type change listeners.
42
42
  */
43
43
  removeControlsTypeChangeListener(callback: FlexibleControlsTypeChangeDelegate): void;
44
+ /**
45
+ * Called when a click event is triggered
46
+ * @beta
47
+ */
48
+ onClick(event: PointerEvent): Promise<void>;
49
+ /**
50
+ * Called when double click event is triggered
51
+ * @beta
52
+ */
53
+ onDoubleClick(event: PointerEvent): Promise<void>;
54
+ /**
55
+ * Called when pointer is pressed
56
+ * @beta
57
+ */
58
+ onPointerDown(event: PointerEvent, leftButton: boolean): Promise<void>;
59
+ /**
60
+ * Called when pointer is dragged
61
+ * @beta
62
+ */
63
+ onPointerDrag(event: PointerEvent, leftButton: boolean): Promise<void>;
64
+ /**
65
+ * Called when pointer is released
66
+ * @beta
67
+ */
68
+ onPointerUp(event: PointerEvent, leftButton: boolean): Promise<void>;
69
+ /**
70
+ * Called when wheel event is triggered
71
+ * @beta
72
+ */
73
+ onWheel(event: WheelEvent): Promise<void>;
74
+ /**
75
+ * Called when a key is pressed or released
76
+ * @beta
77
+ */
78
+ onKey(event: KeyboardEvent, down: boolean): void;
79
+ /**
80
+ * Called when focus is changed
81
+ * @beta
82
+ */
83
+ onFocusChanged(haveFocus: boolean): void;
44
84
  }
45
- export declare function asFlexibleCameraManager(manager: CameraManager): IFlexibleCameraManager | undefined;
85
+ /**
86
+ * Check id the CameraManager is a IFlexibleCameraManager
87
+ * @beta
88
+ */
89
+ export declare function isFlexibleCameraManager(manager: CameraManager): manager is IFlexibleCameraManager;
@@ -6,10 +6,8 @@ type EventCode = (typeof EVENT_CODES)[number];
6
6
  export default class Keyboard {
7
7
  private readonly _keys;
8
8
  private _isEnabled;
9
- private readonly _domElement;
10
9
  get isEnabled(): boolean;
11
10
  set isEnabled(value: boolean);
12
- constructor(domElement: HTMLElement);
13
11
  isPressed(key: EventCode): boolean;
14
12
  isShiftPressed(): boolean;
15
13
  isShiftPressedOnly(): boolean;
@@ -17,7 +15,6 @@ export default class Keyboard {
17
15
  isCtrlPressedOnly(): boolean;
18
16
  isAltPressed(): boolean;
19
17
  isMetaPressed(): boolean;
20
- dispose(): void;
21
18
  /**
22
19
  * Given two keys representing positive and negative directions (e.g., left and right, or up and down),
23
20
  * this method returns 1 for the positive key, -1 for the negative key, or 0 if neither or both is pressed.
@@ -27,10 +24,11 @@ export default class Keyboard {
27
24
  * @returns A value indicating the direction of movement: 1 (positive), -1 (negative), or 0 (none).
28
25
  */
29
26
  getKeyboardMovementValue(positiveKey: EventCode, negativeKey: EventCode): number;
30
- private readonly addEventListeners;
31
- private readonly removeEventListeners;
27
+ addEventListeners(domElement: HTMLElement): void;
28
+ removeEventListeners(domElement: HTMLElement): void;
32
29
  private readonly onKeyDown;
33
30
  private readonly onKeyUp;
31
+ onKey(event: KeyboardEvent, down: boolean): void;
34
32
  readonly clearPressedKeys: () => void;
35
33
  }
36
34
  export {};
@@ -1,29 +1,30 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
+ import type { Box3, Quaternion, Vector3 } from 'three';
4
5
  export type ControlsState = {
5
- position: THREE.Vector3;
6
- target: THREE.Vector3;
6
+ position: Vector3;
7
+ target: Vector3;
7
8
  };
8
9
  export type CameraState = {
9
10
  /**
10
11
  * Camera position in world space.
11
12
  */
12
- position?: THREE.Vector3;
13
+ position?: Vector3;
13
14
  /**
14
15
  * Camera target in world space.
15
16
  * **/
16
- target?: THREE.Vector3;
17
+ target?: Vector3;
17
18
  /**
18
19
  * Camera local rotation in quaternion form.
19
20
  */
20
- rotation?: THREE.Quaternion;
21
+ rotation?: Quaternion;
21
22
  };
22
23
  /**
23
24
  * Delegate for camera update events.
24
25
  * @module @cognite/reveal
25
26
  */
26
- export type CameraChangeDelegate = (position: THREE.Vector3, target: THREE.Vector3) => void;
27
+ export type CameraChangeDelegate = (position: Vector3, target: Vector3) => void;
27
28
  /**
28
29
  * Delegate for camera update events.
29
30
  * @module @cognite/reveal
@@ -41,7 +42,7 @@ export type CameraManagerCallbackData = {
41
42
  /**
42
43
  * Coordinate of the intersection.
43
44
  */
44
- point: THREE.Vector3;
45
+ point: Vector3;
45
46
  /**
46
47
  * Distance from the camera to the intersection.
47
48
  */
@@ -50,11 +51,11 @@ export type CameraManagerCallbackData = {
50
51
  /**
51
52
  * Bounding box for all models on the scene
52
53
  */
53
- modelsBoundingBox: THREE.Box3;
54
+ modelsBoundingBox: Box3;
54
55
  /**
55
56
  * Bounding box for the object (node in a model) that was picked
56
57
  */
57
- pickedBoundingBox: THREE.Box3 | undefined;
58
+ pickedBoundingBox: Box3 | undefined;
58
59
  };
59
60
  /**
60
61
  * List of supported event types (adapted from https://stackoverflow.com/questions/44480644/string-union-to-string-array)
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { AnnotationsAssetRef } from '@cognite/sdk';
5
5
  import { CognitePointCloudModel } from './CognitePointCloudModel';
6
+ import type { Vector3 } from 'three';
6
7
  export type PointCloudIntersection = {
7
8
  /**
8
9
  * The intersection type.
@@ -15,7 +16,7 @@ export type PointCloudIntersection = {
15
16
  /**
16
17
  * Coordinate of the intersection.
17
18
  */
18
- point: THREE.Vector3;
19
+ point: Vector3;
19
20
  /**
20
21
  * The index of the point that was intersected.
21
22
  */
@@ -7,7 +7,7 @@ import { WellKnownAsprsPointClassCodes } from './types';
7
7
  import { PointColorType, PointShape, PointSizeType } from '../../rendering';
8
8
  import { PointCloudObjectMetadata, PointCloudObject } from '../../data-providers';
9
9
  import { CompletePointCloudAppearance, StyledPointCloudObjectCollection } from '../../pointcloud-styling';
10
- import { Matrix4, Group, Color } from 'three';
10
+ import { Matrix4, Group, Box3, Color, type Camera, type Plane, type Ray, type WebGLRenderer } from 'three';
11
11
  export declare class PointCloudNode extends Group {
12
12
  private readonly _cameraConfiguration?;
13
13
  private readonly _octree;
@@ -41,7 +41,7 @@ export declare class PointCloudNode extends Group {
41
41
  * @param ray Ray representing the direction for picking.
42
42
  * @returns Picked point data.
43
43
  */
44
- pick(renderer: THREE.WebGLRenderer, camera: THREE.Camera, ray: THREE.Ray): PickPoint | null;
44
+ pick(renderer: WebGLRenderer, camera: Camera, ray: Ray): PickPoint | null;
45
45
  /**
46
46
  * Sets a visible filter on points of a given class.
47
47
  * @param pointClass ASPRS classification class code. Either one of the well known
@@ -74,16 +74,16 @@ export declare class PointCloudNode extends Group {
74
74
  code: number | WellKnownAsprsPointClassCodes;
75
75
  color: Color;
76
76
  }>;
77
- getBoundingBox(outBbox?: THREE.Box3): THREE.Box3;
78
- setModelTransformation(matrix: THREE.Matrix4): void;
79
- getModelTransformation(out?: Matrix4): THREE.Matrix4;
77
+ getBoundingBox(outBbox?: Box3): Box3;
78
+ setModelTransformation(matrix: Matrix4): void;
79
+ getModelTransformation(out?: Matrix4): Matrix4;
80
80
  getCdfToDefaultModelTransformation(out?: Matrix4): Matrix4;
81
81
  get stylableObjectAnnotationMetadata(): Iterable<PointCloudObjectMetadata>;
82
82
  getStylableObjectMetadata(objectId: number): PointCloudObjectMetadata | undefined;
83
83
  get stylableObjectCount(): number;
84
84
  get defaultAppearance(): CompletePointCloudAppearance;
85
85
  set defaultAppearance(appearance: CompletePointCloudAppearance);
86
- set clippingPlanes(clippingPlanes: THREE.Plane[]);
86
+ set clippingPlanes(clippingPlanes: Plane[]);
87
87
  assignStyledPointCloudObjectCollection(styledCollection: StyledPointCloudObjectCollection): void;
88
88
  removeAllStyledPointCloudObjects(): void;
89
89
  dispose(): void;
@@ -48,7 +48,7 @@ export declare class PointCloudOctreePickerHelper {
48
48
  private static updatePickMaterial;
49
49
  static updatePickRenderTarget(pickState: IPickState, width: number, height: number): void;
50
50
  private static makePickRenderTarget;
51
- static findHit(pixels: Uint8Array, pickWndSize: number, nodes: RenderedNode[], camera: THREE.Camera): PointCloudHit | null;
51
+ static findHit(pixels: Uint8Array, pickWndSize: number, nodes: RenderedNode[], camera: Camera): PointCloudHit | null;
52
52
  static getPickPoint(hit: PointCloudHit | null, nodes: RenderedNode[]): PickPoint | null;
53
53
  static getPointPosition(nodes: RenderedNode[], pcIndex: number, pIndex: number): Vector3;
54
54
  private static addPositionToPickPoint;
@@ -1,8 +1,8 @@
1
- import { Vector3 } from 'three';
1
+ import type { Vector3, Object3D } from 'three';
2
2
  import { PointCloudOctree } from '../tree/PointCloudOctree';
3
3
  export interface PickPoint {
4
4
  pointIndex: number;
5
- object: THREE.Object3D;
5
+ object: Object3D;
6
6
  position: Vector3;
7
7
  normal?: Vector3;
8
8
  pointCloud?: PointCloudOctree;
@@ -2,4 +2,5 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  import { SerializableStylableObject } from '../../../../data-providers';
5
- export declare function assignPointsToObjectsWithWasm(points: Float32Array, objects: SerializableStylableObject[], pointOffset: THREE.Vector3, sectorBoundingBox: THREE.Box3): Promise<Uint16Array>;
5
+ import type { Vector3, Box3 } from 'three';
6
+ export declare function assignPointsToObjectsWithWasm(points: Float32Array, objects: SerializableStylableObject[], pointOffset: Vector3, sectorBoundingBox: Box3): Promise<Uint16Array>;
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
+ import type { WebGLRenderer } from 'three';
4
5
  import { RenderPass } from './RenderPass';
5
6
  /**
6
7
  * Defines a provider that provides a set of renderpasses
@@ -10,6 +11,6 @@ import { RenderPass } from './RenderPass';
10
11
  * render passes given some dependency.
11
12
  */
12
13
  export interface RenderPipelineProvider {
13
- pipeline(renderer: THREE.WebGLRenderer): Generator<RenderPass>;
14
+ pipeline(renderer: WebGLRenderer): Generator<RenderPass>;
14
15
  dispose(): void;
15
16
  }
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Adapted from pnext/three-loader (https://github.com/pnext/three-loader)
3
3
  */
4
- import { Color, IUniform as IThreeUniform, Vector4 } from 'three';
4
+ import { Color, IUniform as IThreeUniform, Vector4, type Box3, type Vector3 } from 'three';
5
5
  export type IGradient = [number, Color][];
6
6
  export interface PointClassification {
7
7
  [value: string]: Vector4;
@@ -12,7 +12,7 @@ export interface IUniform<T> extends IThreeUniform {
12
12
  value: T;
13
13
  }
14
14
  export type OctreeMaterialParams = {
15
- scale: THREE.Vector3;
15
+ scale: Vector3;
16
16
  spacing: number;
17
- boundingBox: THREE.Box3;
17
+ boundingBox: Box3;
18
18
  };
@@ -8,7 +8,7 @@ export declare class SSAOPass implements RenderPass {
8
8
  private readonly _fullScreenTriangle;
9
9
  private readonly _ssaoShaderMaterial;
10
10
  set ssaoParameters(ssaoParameters: SsaoParameters);
11
- constructor(depthTexture: THREE.Texture, ssaoParameters: SsaoParameters);
11
+ constructor(depthTexture: THREE.Texture | null, ssaoParameters: SsaoParameters);
12
12
  render(renderer: THREE.WebGLRenderer, camera: THREE.Camera): void;
13
13
  private createKernel;
14
14
  }
@@ -18,7 +18,7 @@ export declare enum BlitEffect {
18
18
  export type BlitOptions = {
19
19
  texture: THREE.Texture;
20
20
  effect?: BlitEffect;
21
- depthTexture?: THREE.DepthTexture;
21
+ depthTexture: THREE.DepthTexture | null;
22
22
  ssaoTexture?: THREE.Texture;
23
23
  blendOptions?: BlendOptions;
24
24
  overrideAlpha?: number;
@@ -27,9 +27,9 @@ export type BlitOptions = {
27
27
  };
28
28
  export type DepthBlendBlitOptions = {
29
29
  texture: THREE.Texture;
30
- depthTexture: THREE.DepthTexture;
30
+ depthTexture: THREE.DepthTexture | null;
31
31
  blendTexture: THREE.Texture;
32
- blendDepthTexture: THREE.Texture;
32
+ blendDepthTexture: THREE.Texture | null;
33
33
  blendFactor: number;
34
34
  overrideAlpha?: number;
35
35
  outline?: boolean;
@@ -37,7 +37,7 @@ export type DepthBlendBlitOptions = {
37
37
  export type PointCloudPostProcessingOptions = {
38
38
  logDepthTexture: THREE.Texture;
39
39
  texture: THREE.Texture;
40
- depthTexture: THREE.DepthTexture;
40
+ depthTexture: THREE.DepthTexture | null;
41
41
  pointBlending: boolean;
42
42
  edlOptions: EdlOptions;
43
43
  };
@@ -1,9 +1,10 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
+ import type { WebGLRenderTarget } from 'three';
4
5
  /**
5
6
  * Interface for allowing render targets in renderPipelines to be changed dynamicaly in RevealManager.
6
7
  */
7
8
  export interface SettableRenderTarget {
8
- setOutputRenderTarget(target: THREE.WebGLRenderTarget | null, autoSizeRenderTarget?: boolean): void;
9
+ setOutputRenderTarget(target: WebGLRenderTarget | null, autoSizeRenderTarget?: boolean): void;
9
10
  }
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
+ import type { InstancedBufferGeometry, BufferGeometry, Texture as ThreeTexture } from 'three';
4
5
  export type GltfJson = {
5
6
  accessors: Accessor[];
6
7
  asset: Asset;
@@ -109,7 +110,7 @@ export type GlbHeaderData = {
109
110
  };
110
111
  export type GeometryProcessingPayload = {
111
112
  geometryType: RevealGeometryCollectionType;
112
- bufferGeometry: THREE.InstancedBufferGeometry | THREE.BufferGeometry;
113
+ bufferGeometry: InstancedBufferGeometry | BufferGeometry;
113
114
  instancingExtension: {
114
115
  attributes: {
115
116
  [key: string]: number;
@@ -117,12 +118,12 @@ export type GeometryProcessingPayload = {
117
118
  } | undefined;
118
119
  meshId: number | undefined;
119
120
  glbHeaderData: GlbHeaderData;
120
- texture?: THREE.Texture;
121
+ texture?: ThreeTexture;
121
122
  data: ArrayBuffer;
122
123
  };
123
124
  export type ParsedGeometry = {
124
125
  type: RevealGeometryCollectionType;
125
- geometryBuffer: THREE.BufferGeometry;
126
- texture?: THREE.Texture;
126
+ geometryBuffer: BufferGeometry;
127
+ texture?: ThreeTexture;
127
128
  instanceId?: string;
128
129
  };
@@ -1,10 +1,11 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
+ import type { Vector3, Color } from 'three';
4
5
  export type Measurement = {
5
6
  readonly measurementId: number;
6
- readonly startPoint: THREE.Vector3;
7
- readonly endPoint: THREE.Vector3;
7
+ readonly startPoint: Vector3;
8
+ readonly endPoint: Vector3;
8
9
  readonly distanceInMeters: number;
9
10
  };
10
11
  /**
@@ -35,5 +36,5 @@ export type MeasurementOptions = {
35
36
  /**
36
37
  * Line color in 32 bit hex.
37
38
  */
38
- color?: THREE.Color;
39
+ color?: Color;
39
40
  };
@@ -5,7 +5,13 @@ export { traverseDepthFirst } from './src/objectTraversal';
5
5
  export { transformCameraConfiguration } from './src/transformCameraConfiguration';
6
6
  export { RandomColors } from './src/RandomColors';
7
7
  export { CameraConfiguration } from './src/CameraConfiguration';
8
- export { EventTrigger, clickOrTouchEventOffset, getClickOrTouchEventPoint, InputHandler, disposeOfAllEventListeners } from './src/events';
8
+ export { EventTrigger } from './src/events/EventTrigger';
9
+ export { InputHandler } from './src/events/InputHandler';
10
+ export { PointerEvents } from './src/events/PointerEvents';
11
+ export { PointerEventsTarget } from './src/events/PointerEventsTarget';
12
+ export { disposeOfAllEventListeners } from './src/events/disposeOfAllEventListeners';
13
+ export { clickOrTouchEventOffset, getClickOrTouchEventPoint } from './src/events/clickOrTouchEventOffset';
14
+ export { getWheelEventDelta } from './src/events/getWheelEventDelta';
9
15
  export { DisposedDelegate, BeforeSceneRenderedDelegate, SceneRenderedDelegate, PointerEventDelegate, PointerEventData } from './src/events/types';
10
16
  export { assertNever } from './src/assertNever';
11
17
  export { NumericRange } from './src/NumericRange';
@@ -1,10 +1,11 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
+ import type { Vector3 } from 'three';
4
5
  /**
5
6
  * Represents a camera configuration, consisting of a camera position and target.
6
7
  */
7
8
  export type CameraConfiguration = {
8
- readonly position: THREE.Vector3;
9
- readonly target: THREE.Vector3;
9
+ readonly position: Vector3;
10
+ readonly target: Vector3;
10
11
  };
@@ -1,14 +1,12 @@
1
- import { EventTrigger } from './EventTrigger';
2
1
  import { PointerEventDelegate } from './types';
3
- export type EventCollection = {
4
- [eventName: string]: EventTrigger<(...args: any[]) => void>;
5
- };
6
- export declare class InputHandler {
7
- private readonly domElement;
8
- private static readonly maxMoveDistance;
9
- private static readonly maxClickDuration;
10
- private readonly _events;
2
+ import { PointerEvents } from './PointerEvents';
3
+ export declare class InputHandler extends PointerEvents {
4
+ private readonly _domElement;
5
+ private readonly _pointerEventsTarget;
6
+ private readonly _clickEvents;
7
+ private readonly _hoverEvents;
11
8
  constructor(domElement: HTMLElement);
9
+ dispose(): void;
12
10
  /**
13
11
  * @example
14
12
  * ```js
@@ -18,13 +16,7 @@ export declare class InputHandler {
18
16
  */
19
17
  on(event: 'click' | 'hover', callback: PointerEventDelegate): void;
20
18
  off(event: 'click' | 'hover', callback: PointerEventDelegate): void;
21
- dispose(): void;
22
- private setupEventListeners;
23
- private isProperClick;
24
- private handleClickEvent;
25
- private readonly onHoverCallback;
19
+ onClick(event: PointerEvent): Promise<void>;
20
+ onHover(event: PointerEvent): void;
21
+ get isEnabled(): boolean;
26
22
  }
27
- /**
28
- * Method for deleting all external events that are associated with current instance of a class.
29
- */
30
- export declare function disposeOfAllEventListeners(eventList: EventCollection): void;
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * Copyright 2024 Cognite AS
3
+ */
4
+ /**
5
+ * This base should be extended for listen to various pointer events.
6
+ * @beta
7
+ */
8
+ export declare class PointerEvents {
9
+ onHover(_event: PointerEvent): void;
10
+ onClick(_event: PointerEvent): Promise<void>;
11
+ onDoubleClick(_event: PointerEvent): Promise<void>;
12
+ onPointerDown(_event: PointerEvent, _leftButton: boolean): Promise<void>;
13
+ onPointerUp(_event: PointerEvent, _leftButton: boolean): Promise<void>;
14
+ onPointerDrag(_event: PointerEvent, _leftButton: boolean): Promise<void>;
15
+ get isEnabled(): boolean;
16
+ }
@@ -0,0 +1,29 @@
1
+ import { PointerEvents } from './PointerEvents';
2
+ /**
3
+ * This class fires click, double click, hover end similar events at a PointerEvents
4
+ * onClick will fired if it's a single click, and the mouse hasn't move too much
5
+ * If onDoubleClick is fired, the onClick will not be fired
6
+ * onHover will be fired only if the mouse button is not pressed and not to often
7
+ * If mouse, the onDoubleClick and onClick is fired when the left mouse button is pressed
8
+ * onPointerDrag will be fired wnen the mouse button is pressed and the mouse is moving
9
+ * @beta
10
+ */
11
+ export declare class PointerEventsTarget {
12
+ private readonly _domElement;
13
+ private readonly _events;
14
+ private readonly _downPosition;
15
+ private _lastDownTimestamp;
16
+ private _prevDownTimestamp;
17
+ private _clickCounter;
18
+ private _isLeftDown;
19
+ private get isEnabled();
20
+ constructor(domElement: HTMLElement, events: PointerEvents);
21
+ addEventListeners(): void;
22
+ removeEventListeners(): void;
23
+ private readonly onPointerDown;
24
+ private readonly onPointerHover;
25
+ private readonly onPointerDrag;
26
+ private readonly onPointerUp;
27
+ private isProperClick;
28
+ private isDoubleClick;
29
+ }
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { EventTrigger } from './EventTrigger';
5
+ export type EventCollection = {
6
+ [eventName: string]: EventTrigger<(...args: any[]) => void>;
7
+ };
8
+ /**
9
+ * Method for deleting all external events that are associated with current instance of a class.
10
+ */
11
+ export declare function disposeOfAllEventListeners(eventList: EventCollection): void;
@@ -0,0 +1,8 @@
1
+ /*!
2
+ * Copyright 2024 Cognite AS
3
+ */
4
+ /**
5
+ * Determines hove many deltas the whell has been scrolled.
6
+ * @param event An WheelEvent
7
+ */
8
+ export declare function getWheelEventDelta(event: WheelEvent): number;
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
+ import type { PerspectiveCamera, WebGLRenderer } from 'three';
4
5
  /**
5
6
  * Delegate for pointer events.
6
7
  * @module @cognite/reveal
@@ -25,8 +26,8 @@ export type DisposedDelegate = () => void;
25
26
  */
26
27
  export type BeforeSceneRenderedDelegate = (event: {
27
28
  frameNumber: number;
28
- renderer: THREE.WebGLRenderer;
29
- camera: THREE.PerspectiveCamera;
29
+ renderer: WebGLRenderer;
30
+ camera: PerspectiveCamera;
30
31
  }) => void;
31
32
  /**
32
33
  * Delegate for event triggered when scene has been rendered.
@@ -35,6 +36,6 @@ export type BeforeSceneRenderedDelegate = (event: {
35
36
  export type SceneRenderedDelegate = (event: {
36
37
  frameNumber: number;
37
38
  renderTime: number;
38
- renderer: THREE.WebGLRenderer;
39
- camera: THREE.PerspectiveCamera;
39
+ renderer: WebGLRenderer;
40
+ camera: PerspectiveCamera;
40
41
  }) => void;