@cognite/reveal 4.1.1-dev.20230213 → 4.1.1-dev.20230215

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 (26) hide show
  1. package/dist/index.js +180 -168
  2. package/dist/index.js.map +1 -1
  3. package/dist/packages/360-images/index.d.ts +6 -6
  4. package/dist/packages/360-images/src/Image360Facade.d.ts +8 -5
  5. package/dist/packages/360-images/src/{Image360LoadingCache.d.ts → cache/Image360LoadingCache.d.ts} +1 -1
  6. package/dist/packages/360-images/src/{DefaultImage360Collection.d.ts → collection/DefaultImage360Collection.d.ts} +9 -5
  7. package/dist/packages/360-images/src/{Image360Collection.d.ts → collection/Image360Collection.d.ts} +2 -2
  8. package/dist/packages/360-images/src/collection/Image360CollectionFactory.d.ts +12 -0
  9. package/dist/packages/360-images/src/collection/Image360CollectionIcons.d.ts +27 -0
  10. package/dist/packages/360-images/src/{Image360.d.ts → entity/Image360.d.ts} +0 -0
  11. package/dist/packages/360-images/src/{Image360Entity.d.ts → entity/Image360Entity.d.ts} +3 -4
  12. package/dist/packages/360-images/src/entity/Image360Icon.d.ts +25 -0
  13. package/dist/packages/360-images/src/{Image360Visualization.d.ts → entity/Image360Visualization.d.ts} +0 -0
  14. package/dist/packages/360-images/src/{Image360VisualizationBox.d.ts → entity/Image360VisualizationBox.d.ts} +2 -2
  15. package/dist/packages/360-images/src/types.d.ts +1 -1
  16. package/dist/packages/api/src/api-helpers/Image360ApiHelper.d.ts +1 -3
  17. package/dist/packages/api/src/public/migration/Cognite3DViewer.d.ts +1 -2
  18. package/dist/packages/cad-model/src/picking/PickingHandler.d.ts +3 -1
  19. package/dist/packages/camera-manager/src/ComboControls.d.ts +1 -0
  20. package/dist/packages/data-providers/src/image-360-data-providers/Cdf360ImageEventProvider.d.ts +1 -1
  21. package/dist/packages/data-providers/src/types.d.ts +2 -5
  22. package/dist/packages/utilities/index.d.ts +1 -0
  23. package/dist/packages/utilities/src/three/AttributeDataAccessor.d.ts +12 -0
  24. package/package.json +6 -6
  25. package/dist/packages/360-images/src/Image360EntityFactory.d.ts +0 -13
  26. package/dist/packages/360-images/src/Image360Icon.d.ts +0 -19
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
- export { Image360 } from './src/Image360';
5
- export { Image360Collection } from './src/Image360Collection';
4
+ export { Image360 } from './src/entity/Image360';
5
+ export { Image360Collection } from './src/collection/Image360Collection';
6
6
  export { Image360Facade } from './src/Image360Facade';
7
- export { Image360EntityFactory } from './src/Image360EntityFactory';
8
- export { Image360Entity } from './src/Image360Entity';
9
- export { Image360Visualization } from './src/Image360Visualization';
7
+ export { Image360CollectionFactory } from './src/collection/Image360CollectionFactory';
8
+ export { Image360Entity } from './src/entity/Image360Entity';
9
+ export { Image360Visualization } from './src/entity/Image360Visualization';
10
10
  export { Image360EnteredDelegate, Image360ExitedDelegate } from './src/types';
11
- export { DefaultImage360Collection } from './src/DefaultImage360Collection';
11
+ export { DefaultImage360Collection } from './src/collection/DefaultImage360Collection';
@@ -2,21 +2,24 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { Image360Entity } from './Image360Entity';
6
- import { Image360EntityFactory } from './Image360EntityFactory';
5
+ import { Image360Entity } from './entity/Image360Entity';
6
+ import { Image360CollectionFactory } from './collection/Image360CollectionFactory';
7
+ import { DefaultImage360Collection } from './collection/DefaultImage360Collection';
7
8
  export declare class Image360Facade<T> {
8
9
  private readonly _entityFactory;
9
- private readonly _image360Entities;
10
+ private readonly _image360Collections;
10
11
  private readonly _rayCaster;
11
12
  private readonly _image360Cache;
13
+ get collections(): DefaultImage360Collection[];
12
14
  set allIconsVisibility(visible: boolean);
13
15
  set allHoverIconsVisibility(visible: boolean);
14
- constructor(_entityFactory: Image360EntityFactory<T>);
15
- create(dataProviderFilter: T, postTransform?: THREE.Matrix4, preComputedRotation?: boolean): Promise<Image360Entity[]>;
16
+ constructor(_entityFactory: Image360CollectionFactory<T>);
17
+ create(dataProviderFilter: T, postTransform?: THREE.Matrix4, preComputedRotation?: boolean): Promise<DefaultImage360Collection>;
16
18
  delete(entity: Image360Entity): Promise<void>;
17
19
  preload(entity: Image360Entity): Promise<void>;
18
20
  intersect(coords: {
19
21
  x: number;
20
22
  y: number;
21
23
  }, camera: THREE.Camera): Image360Entity | undefined;
24
+ dispose(): void;
22
25
  }
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
- import { Image360Entity } from './Image360Entity';
4
+ import { Image360Entity } from '../entity/Image360Entity';
5
5
  export declare class Image360LoadingCache {
6
6
  private readonly _cacheSize;
7
7
  private readonly _loaded360Images;
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * Copyright 2023 Cognite AS
3
3
  */
4
- import { EventTrigger } from '../../utilities';
5
- import { Image360 } from './Image360';
4
+ import { EventTrigger } from '../../../utilities';
6
5
  import { Image360Collection } from './Image360Collection';
7
- import { Image360Entity } from './Image360Entity';
8
- import { Image360EnteredDelegate, Image360ExitedDelegate } from './types';
6
+ import { Image360Entity } from '../entity/Image360Entity';
7
+ import { Image360EnteredDelegate, Image360ExitedDelegate } from '../types';
8
+ import { Image360CollectionIcons } from './Image360CollectionIcons';
9
9
  /**
10
10
  * Default implementation of {@link Image360Collection}. Used for events when entering
11
11
  * and exiting 360 image mode
@@ -16,6 +16,7 @@ export declare class DefaultImage360Collection implements Image360Collection {
16
16
  */
17
17
  readonly image360Entities: Image360Entity[];
18
18
  private readonly _events;
19
+ private readonly _icons;
19
20
  /**
20
21
  * The events from the image collection.
21
22
  */
@@ -23,7 +24,7 @@ export declare class DefaultImage360Collection implements Image360Collection {
23
24
  image360Entered: EventTrigger<Image360EnteredDelegate>;
24
25
  image360Exited: EventTrigger<Image360ExitedDelegate>;
25
26
  };
26
- constructor(entities: Image360[]);
27
+ constructor(entities: Image360Entity[], icons: Image360CollectionIcons);
27
28
  /**
28
29
  * Subscribes to events on 360 Image datasets. There are several event types:
29
30
  * 'image360Entered' - Subscribes to a event for entering 360 image mode.
@@ -40,5 +41,8 @@ export declare class DefaultImage360Collection implements Image360Collection {
40
41
  */
41
42
  off(event: 'image360Entered', callback: Image360EnteredDelegate): void;
42
43
  off(event: 'image360Exited', callback: Image360ExitedDelegate): void;
44
+ setIconsVisibility(visible: boolean): void;
45
+ setSelectedVisibility(visible: boolean): void;
46
+ remove(entity: Image360Entity): void;
43
47
  dispose(): void;
44
48
  }
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
- import { Image360 } from './Image360';
5
- import { Image360EnteredDelegate, Image360ExitedDelegate } from './types';
4
+ import { Image360 } from './../entity/Image360';
5
+ import { Image360EnteredDelegate, Image360ExitedDelegate } from '../types';
6
6
  /**
7
7
  * A wrapper that represents a set of 360 images.
8
8
  */
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright 2023 Cognite AS
3
+ */
4
+ import { Image360Provider } from '../../../data-providers';
5
+ import { SceneHandler } from '../../../utilities';
6
+ import { DefaultImage360Collection } from './DefaultImage360Collection';
7
+ export declare class Image360CollectionFactory<T> {
8
+ private readonly _image360DataProvider;
9
+ private readonly _sceneHandler;
10
+ constructor(image360DataProvider: Image360Provider<T>, sceneHandler: SceneHandler);
11
+ create(dataProviderFilter: T, postTransform: THREE.Matrix4, preMultipliedRotation: boolean): Promise<DefaultImage360Collection>;
12
+ }
@@ -0,0 +1,27 @@
1
+ /*!
2
+ * Copyright 2023 Cognite AS
3
+ */
4
+ import { Matrix4 } from 'three';
5
+ import { SceneHandler } from '../../../utilities';
6
+ import { Image360Icon } from '../entity/Image360Icon';
7
+ export declare class Image360CollectionIcons {
8
+ private readonly MIN_PIXEL_SIZE;
9
+ private readonly MAX_PIXEL_SIZE;
10
+ private readonly _sceneHandler;
11
+ private readonly _geometry;
12
+ private readonly _backMaterial;
13
+ private readonly _frontMaterial;
14
+ private readonly _frontPoints;
15
+ private readonly _backPoints;
16
+ private readonly _hoverIconTexture;
17
+ private readonly _onRenderTrigger;
18
+ private readonly _sharedTexture;
19
+ constructor(sceneHandler: SceneHandler);
20
+ initializeImage360Icons(transforms: Matrix4[]): Image360Icon[];
21
+ dispose(): void;
22
+ private initializeIconsMaterials;
23
+ private createIconsMaterial;
24
+ private initializePoints;
25
+ private createOuterRingsTexture;
26
+ private createHoverIconTexture;
27
+ }
@@ -2,8 +2,8 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { SceneHandler } from '../../utilities';
6
- import { Image360Descriptor, Image360FileProvider } from '../../data-providers';
5
+ import { SceneHandler } from '../../../utilities';
6
+ import { Image360Descriptor, Image360FileProvider } from '../../../data-providers';
7
7
  import { Image360Icon } from './Image360Icon';
8
8
  import { Image360VisualizationBox } from './Image360VisualizationBox';
9
9
  import { Image360 } from './Image360';
@@ -30,7 +30,7 @@ export declare class Image360Entity implements Image360 {
30
30
  * @returns Image360Visualization
31
31
  */
32
32
  get image360Visualization(): Image360VisualizationBox;
33
- constructor(image360Metadata: Image360Descriptor, sceneHandler: SceneHandler, imageProvider: Image360FileProvider, postTransform: THREE.Matrix4, preComputedRotation: boolean);
33
+ constructor(image360Metadata: Image360Descriptor, sceneHandler: SceneHandler, imageProvider: Image360FileProvider, transform: THREE.Matrix4, icon: Image360Icon);
34
34
  /**
35
35
  * Loads the 360 image (6 faces) into the visualization object.
36
36
  */
@@ -44,5 +44,4 @@ export declare class Image360Entity implements Image360 {
44
44
  * @obvious
45
45
  */
46
46
  dispose(): void;
47
- private computeTransform;
48
47
  }
@@ -0,0 +1,25 @@
1
+ /*!
2
+ * Copyright 2022 Cognite AS
3
+ */
4
+ import { AttributeDataAccessor, EventTrigger, SceneHandler } from '../../../utilities';
5
+ import * as THREE from 'three';
6
+ import { Ray, Vector3 } from 'three';
7
+ export declare class Image360Icon {
8
+ private readonly _hoverSprite;
9
+ private readonly _alphaAttributeAccessor;
10
+ private readonly _position;
11
+ private readonly _sceneHandler;
12
+ private _adaptiveScale;
13
+ private readonly _minPixelSize;
14
+ private readonly _maxPixelSize;
15
+ private readonly _setAdaptiveScale;
16
+ private readonly _onRenderTrigger;
17
+ constructor(position: THREE.Vector3, hoverIconTexture: THREE.CanvasTexture, sceneHandler: SceneHandler, alphaAttributeAccessor: AttributeDataAccessor<Uint8ClampedArray>, minPixelSize: number, maxPixelSize: number, onRenderTrigger: EventTrigger<(renderer: THREE.WebGLRenderer, camera: THREE.Camera) => void>);
18
+ set visible(visible: boolean);
19
+ get visible(): boolean;
20
+ set hoverSpriteVisible(visible: boolean);
21
+ intersect(ray: Ray): Vector3 | null;
22
+ dispose(): void;
23
+ private setupAdaptiveScaling;
24
+ private createHoverSprite;
25
+ }
@@ -2,8 +2,8 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { SceneHandler } from '../../utilities';
6
- import { Image360Face } from '../../data-providers';
5
+ import { SceneHandler } from '../../../utilities';
6
+ import { Image360Face } from '../../../data-providers';
7
7
  import { Image360Visualization } from './Image360Visualization';
8
8
  export declare class Image360VisualizationBox implements Image360Visualization {
9
9
  private readonly _worldTransform;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright 2023 Cognite AS
3
3
  */
4
- import { Image360 } from './Image360';
4
+ import { Image360 } from './entity/Image360';
5
5
  /**
6
6
  * Delegate for 360 image mode entered events.
7
7
  */
@@ -3,10 +3,9 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { CogniteClient } from '@cognite/sdk';
6
- import { Image360Collection, Image360Entity } from '../../../360-images';
6
+ import { Image360Collection, Image360Entity, Image360 } from '../../../360-images';
7
7
  import { InputHandler, SceneHandler } from '../../../utilities';
8
8
  import { ProxyCameraManager } from '../../../camera-manager';
9
- import { Image360 } from '../../../360-images/src/Image360';
10
9
  export declare class Image360ApiHelper {
11
10
  private readonly _image360Facade;
12
11
  private readonly _domElement;
@@ -17,7 +16,6 @@ export declare class Image360ApiHelper {
17
16
  private readonly _activeCameraManager;
18
17
  private readonly _image360Navigation;
19
18
  private _cachedCameraManager;
20
- private readonly _imageCollection;
21
19
  constructor(cogniteClient: CogniteClient, sceneHandler: SceneHandler, domElement: HTMLElement, activeCameraManager: ProxyCameraManager, inputHandler: InputHandler, requestRedraw: () => void);
22
20
  add360ImageSet(eventFilter: {
23
21
  [key: string]: string;
@@ -10,8 +10,7 @@ import { CogniteModel } from '../types';
10
10
  import { ViewerState } from '../../utilities/ViewStateHelper';
11
11
  import { CameraManager, CameraChangeDelegate } from '../../../../camera-manager';
12
12
  import { SupportedModelTypes } from '../../../../model-base';
13
- import { Image360Collection } from '../../../../360-images';
14
- import { Image360 } from '../../../../360-images/src/Image360';
13
+ import { Image360Collection, Image360 } from '../../../../360-images';
15
14
  /**
16
15
  * @example
17
16
  * ```js
@@ -16,6 +16,7 @@ type IntersectCadNodesResult = {
16
16
  export declare class PickingHandler {
17
17
  private readonly _clearColor;
18
18
  private readonly _clearAlpha;
19
+ private readonly _raycaster;
19
20
  private readonly _pickPixelColorStorage;
20
21
  private readonly _rgbaVector;
21
22
  private readonly _unpackFactors;
@@ -25,7 +26,8 @@ export declare class PickingHandler {
25
26
  private readonly _mutex;
26
27
  constructor(renderer: THREE.WebGLRenderer, materialManager: CadMaterialManager, sceneHandler: SceneHandler);
27
28
  intersectCadNodes(cadNodes: CadNode[], input: IntersectInput, async?: boolean): Promise<IntersectCadNodesResult[]>;
28
- intersectCadNode(cadNode: CadNode, input: IntersectInput, async: boolean): Promise<IntersectCadNodesResult | undefined>;
29
+ private filterOutOfBoundCadNodes;
30
+ private intersectCadNode;
29
31
  private pickTreeIndex;
30
32
  private perspectiveDepthToViewZ;
31
33
  private pickDepth;
@@ -129,6 +129,7 @@ export declare class ComboControls extends EventDispatcher {
129
129
  private readonly convertPixelCoordinatesToNormalized;
130
130
  private readonly onPointerDown;
131
131
  private readonly onMouseDown;
132
+ private readonly onPointerUp;
132
133
  private readonly onMouseUp;
133
134
  private readonly onMouseWheel;
134
135
  private readonly onTouchStart;
@@ -7,7 +7,7 @@ import { Image360Provider } from '../Image360Provider';
7
7
  export declare class Cdf360ImageEventProvider implements Image360Provider<Metadata> {
8
8
  private readonly _client;
9
9
  constructor(client: CogniteClient);
10
- get360ImageDescriptors(metadataFilter: Metadata): Promise<Image360Descriptor[]>;
10
+ get360ImageDescriptors(metadataFilter: Metadata, preMultipliedRotation: boolean): Promise<Image360Descriptor[]>;
11
11
  get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[]): Promise<Image360Face[]>;
12
12
  private mergeDescriptors;
13
13
  private listEvents;
@@ -9,7 +9,7 @@ export interface BinaryFileProvider {
9
9
  getBinaryFile(baseUrl: string, fileName: string): Promise<ArrayBuffer>;
10
10
  }
11
11
  export interface Image360DescriptorProvider<T> {
12
- get360ImageDescriptors(metadataFilter: T): Promise<Image360Descriptor[]>;
12
+ get360ImageDescriptors(metadataFilter: T, preMultipliedRotation: boolean): Promise<Image360Descriptor[]>;
13
13
  }
14
14
  export interface Image360FileProvider {
15
15
  get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[]): Promise<Image360Face[]>;
@@ -22,10 +22,7 @@ export type Image360EventDescriptor = {
22
22
  label: string;
23
23
  collectionId: string;
24
24
  collectionLabel: string;
25
- transformations: {
26
- translation: THREE.Matrix4;
27
- rotation: THREE.Matrix4;
28
- };
25
+ transform: THREE.Matrix4;
29
26
  };
30
27
  export type Image360Face = {
31
28
  face: 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom';
@@ -12,6 +12,7 @@ export { NumericRange } from './src/NumericRange';
12
12
  export { determinePowerOfTwoDimensions } from './src/determinePowerOfTwoDimensions';
13
13
  export { IndexSet } from './src/IndexSet';
14
14
  export { DynamicDefragmentedBuffer } from './src/datastructures/DynamicDefragmentedBuffer';
15
+ export { AttributeDataAccessor } from './src/three/AttributeDataAccessor';
15
16
  export { AutoDisposeGroup } from './src/three/AutoDisposeGroup';
16
17
  export { BoundingBoxLOD } from './src/three/BoundingBoxLOD';
17
18
  export { toThreeBox3 } from './src/three/toThreeBox3';
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright 2023 Cognite AS
3
+ */
4
+ import { BufferAttribute } from 'three';
5
+ import { TypedArray } from '../types';
6
+ export declare class AttributeDataAccessor<T extends TypedArray> {
7
+ private readonly _dataView;
8
+ private readonly _attribute;
9
+ constructor(dataView: T, attribute: BufferAttribute);
10
+ set(array: ArrayLike<number>, offset?: number | undefined): void;
11
+ at(index: number): number | undefined;
12
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/reveal",
3
- "version": "4.1.1-dev.20230213",
3
+ "version": "4.1.1-dev.20230215",
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": {
@@ -83,7 +83,7 @@
83
83
  "three-stdlib": "2.21.1"
84
84
  },
85
85
  "devDependencies": {
86
- "@azure/msal-browser": "2.32.2",
86
+ "@azure/msal-browser": "2.33.0",
87
87
  "@cognite/sdk": "7.18.0",
88
88
  "@microsoft/api-extractor": "^7.33.6",
89
89
  "@types/dat.gui": "0.7.7",
@@ -102,8 +102,8 @@
102
102
  "@types/stats": "0.16.30",
103
103
  "@types/three": "0.149.0",
104
104
  "@types/tween.js": "18.5.1",
105
- "@typescript-eslint/eslint-plugin": "5.50.0",
106
- "@typescript-eslint/parser": "5.50.0",
105
+ "@typescript-eslint/eslint-plugin": "5.51.0",
106
+ "@typescript-eslint/parser": "5.51.0",
107
107
  "concurrently": "7.6.0",
108
108
  "cross-env": "7.0.3",
109
109
  "cross-var": "1.1.0",
@@ -120,9 +120,9 @@
120
120
  "glob": "8.1.0",
121
121
  "glslify-loader": "2.0.0",
122
122
  "html-webpack-plugin": "5.5.0",
123
- "jest": "29.4.1",
123
+ "jest": "29.4.2",
124
124
  "jest-canvas-mock": "2.4.0",
125
- "jest-environment-jsdom": "29.4.1",
125
+ "jest-environment-jsdom": "29.4.2",
126
126
  "jest-extended": "3.2.3",
127
127
  "jest-image-snapshot": "6.1.0",
128
128
  "jest-puppeteer": "6.2.0",
@@ -1,13 +0,0 @@
1
- /*!
2
- * Copyright 2022 Cognite AS
3
- */
4
- import * as THREE from 'three';
5
- import { Image360Entity } from './Image360Entity';
6
- import { SceneHandler } from '../../utilities';
7
- import { Image360Provider } from '../../data-providers';
8
- export declare class Image360EntityFactory<T> {
9
- private readonly _sceneHandler;
10
- private readonly _image360DataProvider;
11
- constructor(image360DataProvider: Image360Provider<T>, sceneHandler: SceneHandler);
12
- create(dataProviderFilter: T, postTransform: THREE.Matrix4, preMultipliedRotation: boolean): Promise<Image360Entity[]>;
13
- }
@@ -1,19 +0,0 @@
1
- /*!
2
- * Copyright 2022 Cognite AS
3
- */
4
- import { SceneHandler } from '../../utilities';
5
- import * as THREE from 'three';
6
- export declare class Image360Icon extends THREE.Group {
7
- private readonly MIN_PIXEL_SIZE;
8
- private readonly MAX_PIXEL_SIZE;
9
- private readonly _hoverSprite;
10
- private readonly _outerSprite;
11
- private readonly _sceneHandler;
12
- constructor(modelToWorldTransform: THREE.Matrix4, sceneHandler: SceneHandler);
13
- set hoverSpriteVisible(visible: boolean);
14
- raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection<THREE.Object3D<THREE.Event>>[]): void;
15
- dispose(): void;
16
- private setupAdaptiveScaling;
17
- private createOuterRingsSprite;
18
- private createHoverSprite;
19
- }