@cognite/reveal 4.2.0-dev.20230531 → 4.2.0-dev.20230602

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.
@@ -7,6 +7,7 @@ import { Image360Entity } from '../entity/Image360Entity';
7
7
  import { Image360EnteredDelegate, Image360ExitedDelegate } from '../types';
8
8
  import { IconCollection, IconCullingScheme } from '../icons/IconCollection';
9
9
  import { Image360AnnotationAppearance } from '../annotation/types';
10
+ import { IdEither } from '@cognite/sdk';
10
11
  import { Image360DataProvider } from '../../../data-providers';
11
12
  /**
12
13
  * Default implementation of {@link Image360Collection}. Used for events when entering
@@ -79,5 +80,6 @@ export declare class DefaultImage360Collection implements Image360Collection {
79
80
  resetRedraw(): void;
80
81
  getDefaultAnnotationStyle(): Image360AnnotationAppearance;
81
82
  setDefaultAnnotationStyle(defaultStyle: Image360AnnotationAppearance): void;
82
- findImageAnnotation(filter: Image360AnnotationAssetFilter): Promise<Image360AnnotationAssetQueryResult[]>;
83
+ findImageAnnotations(filter: Image360AnnotationAssetFilter): Promise<Image360AnnotationAssetQueryResult[]>;
84
+ getAssetIds(): Promise<IdEither[]>;
83
85
  }
@@ -8,9 +8,12 @@ import { Image360Revision } from '../entity/Image360Revision';
8
8
  import { IdEither } from '@cognite/sdk';
9
9
  import { Image360Annotation } from '../annotation/Image360Annotation';
10
10
  /**
11
- * Filter for finding annotation related to asset
11
+ * Filter for finding annotations related to an asset
12
12
  */
13
13
  export type Image360AnnotationAssetFilter = {
14
+ /**
15
+ * Reference to the wanted asset
16
+ */
14
17
  assetRef: IdEither;
15
18
  };
16
19
  /**
@@ -89,7 +92,11 @@ export interface Image360Collection {
89
92
  */
90
93
  setDefaultAnnotationStyle(appearance: Image360AnnotationAppearance): void;
91
94
  /**
92
- * Find 360 images associated with a asset with the given assetRef
95
+ * Find 360 images associated with an asset through CDF annotations
96
+ */
97
+ findImageAnnotations(filter: Image360AnnotationAssetFilter): Promise<Image360AnnotationAssetQueryResult[]>;
98
+ /**
99
+ * Get IDs of all CDF assets associated with this 360 image collection through CDF annotations
93
100
  */
94
- findImageAnnotation(filter: Image360AnnotationAssetFilter): Promise<Image360AnnotationAssetQueryResult[]>;
101
+ getAssetIds(): Promise<IdEither[]>;
95
102
  }
@@ -6,6 +6,7 @@ import { Overlay3D } from './Overlay3D';
6
6
  import { DefaultOverlay3DContentType, OverlayCollection, OverlayInfo } from './OverlayCollection';
7
7
  export type Overlay3DCollectionOptions = {
8
8
  overlayTexture?: Texture;
9
+ overlayTextureMask?: Texture;
9
10
  maxPointSize?: number;
10
11
  defaultOverlayColor?: Color;
11
12
  };
@@ -14,7 +15,7 @@ export declare class Overlay3DCollection<MetadataType = DefaultOverlay3DContentT
14
15
  private readonly MaxPixelSize;
15
16
  private readonly DefaultMaxPoints;
16
17
  private readonly defaultOverlayColor;
17
- private readonly _sharedTexture;
18
+ private readonly _sharedTextures;
18
19
  private readonly _overlayPoints;
19
20
  private readonly _iconRadius;
20
21
  private _overlays;
@@ -30,5 +31,5 @@ export declare class Overlay3DCollection<MetadataType = DefaultOverlay3DContentT
30
31
  private updatePointsObject;
31
32
  private initializeOverlay3DIcons;
32
33
  dispose(): void;
33
- private createCircleTexture;
34
+ private createCircleTextures;
34
35
  }
@@ -9,7 +9,7 @@ export type DefaultOverlay3DContentType = {
9
9
  [key: string]: string;
10
10
  };
11
11
  /**
12
- * Data used in creating an overlay
12
+ * Data used in creating an overlay.
13
13
  */
14
14
  export type OverlayInfo<ContentType = DefaultOverlay3DContentType> = {
15
15
  /**
@@ -26,7 +26,7 @@ export type OverlayInfo<ContentType = DefaultOverlay3DContentType> = {
26
26
  color?: THREE.Color;
27
27
  };
28
28
  /**
29
- * A set of overlays managed
29
+ * A set of overlays managed.
30
30
  */
31
31
  export interface OverlayCollection<ContentType> {
32
32
  /**
@@ -4,6 +4,7 @@
4
4
  import { Color, DepthModes, Group, Texture, Vector3 } from 'three';
5
5
  export type OverlayPointsParameters = {
6
6
  spriteTexture: Texture;
7
+ maskTexture?: Texture;
7
8
  minPixelSize: number;
8
9
  maxPixelSize: number;
9
10
  radius: number;
@@ -12,6 +12,7 @@ export declare class Image360ApiHelper {
12
12
  private _transitionInProgress;
13
13
  private readonly _raycaster;
14
14
  private _needsRedraw;
15
+ private readonly _imageCollections;
15
16
  private readonly _interactionState;
16
17
  private readonly _eventHandlers;
17
18
  private readonly _debouncePreLoad;
@@ -24,7 +25,9 @@ export declare class Image360ApiHelper {
24
25
  resetRedraw(): void;
25
26
  private getNormalizedOffset;
26
27
  add360ImageSet(eventFilter: Metadata, collectionTransform: THREE.Matrix4, preMultipliedRotation: boolean, annotationOptions?: Image360AnnotationFilterOptions): Promise<Image360Collection>;
28
+ getImageCollections(): Image360Collection[];
27
29
  remove360Images(entities: Image360[]): Promise<void>;
30
+ remove360ImageCollection(collection: Image360Collection): void;
28
31
  enter360Image(image360Entity: Image360Entity, revision?: Image360RevisionEntity): Promise<void>;
29
32
  private applyFullResolutionTextures;
30
33
  private transition;
@@ -281,11 +281,21 @@ export declare class Cognite3DViewer {
281
281
  add360ImageSet(datasource: 'events', eventFilter: {
282
282
  [key: string]: string;
283
283
  }, add360ImageOptions?: AddImage360Options): Promise<Image360Collection>;
284
+ /**
285
+ * Returns a list of added 360 image collections.
286
+ */
287
+ get360ImageCollections(): Image360Collection[];
284
288
  /**
285
289
  * Remove a set of 360 images.
286
290
  * @param image360Entities
291
+ * @deprecated
287
292
  */
288
293
  remove360Images(...image360Entities: Image360[]): Promise<void>;
294
+ /**
295
+ * Removes a previously added 360 image collection from the viewer.
296
+ * @param imageCollection Collection to remove.
297
+ */
298
+ remove360ImageSet(imageCollection: Image360Collection): void;
289
299
  /**
290
300
  * Enter visualization of a 360 image.
291
301
  * @param image360 The 360 image to enter.
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
- import { Image360DescriptorProvider, Image360FileProvider, Image360AnnotationProvider } from './types';
4
+ import { Image360DescriptorProvider, Image360FileProvider, Image360AnnotationProvider, Image360AssetProvider } from './types';
5
5
  export interface Image360Provider<T> extends Image360DescriptorProvider<T>, Image360DataProvider {
6
6
  }
7
- export interface Image360DataProvider extends Image360FileProvider, Image360AnnotationProvider {
7
+ export interface Image360DataProvider extends Image360FileProvider, Image360AnnotationProvider, Image360AssetProvider {
8
8
  }
@@ -24,5 +24,5 @@ export declare class Cdf360ImageEventProvider implements Image360Provider<Metada
24
24
  }[], abortSignal?: AbortSignal): Promise<ArrayBuffer[]>;
25
25
  private getDownloadUrls;
26
26
  private parseEventMetadata;
27
- get360ImageFaces(): Promise<void>;
27
+ get360ImageAssets(image360FileDescriptors: Image360FileDescriptor[]): Promise<IdEither[]>;
28
28
  }
@@ -9,4 +9,5 @@ export declare class Local360ImageProvider implements Image360Provider<unknown>
9
9
  get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
10
10
  getLowResolution360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
11
11
  getFilesByAssetRef(_assetId: IdEither): Promise<CogniteInternalId[]>;
12
+ get360ImageAssets(_image360FileDescriptors: Image360FileDescriptor[]): Promise<IdEither[]>;
12
13
  }
@@ -20,6 +20,9 @@ export interface Image360FileProvider {
20
20
  get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
21
21
  getLowResolution360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
22
22
  }
23
+ export interface Image360AssetProvider {
24
+ get360ImageAssets(image360FileDescriptors: Image360FileDescriptor[]): Promise<IdEither[]>;
25
+ }
23
26
  export type Historical360ImageSet = Image360EventDescriptor & {
24
27
  imageRevisions: Image360Descriptor[];
25
28
  };
@@ -5,7 +5,7 @@ export { HtmlOverlayTool, HtmlOverlayOptions, HtmlOverlayToolOptions, HtmlOverla
5
5
  export { DebugCameraTool } from './src/DebugCameraTool';
6
6
  export { AxisViewTool } from './src/AxisView/AxisViewTool';
7
7
  export { AxisBoxConfig, AxisBoxCompassConfig, AxisBoxFaceConfig, Corner, AbsolutePosition, RelativePosition } from './src/AxisView/types';
8
- export { Overlay3DTool, Overlay3DToolParameters, OverlayEventHandler, OverlayToolEvent } from './src/Overlay3D/Overlay3DTool';
8
+ export { Overlay3DTool, Overlay3DToolParameters, OverlayEventHandler, OverlayToolEvent, OverlayCollectionOptions } from './src/Overlay3D/Overlay3DTool';
9
9
  export { TimelineTool } from './src/Timeline/TimelineTool';
10
10
  export { Keyframe } from './src/Timeline/Keyframe';
11
11
  export { TimelineDateUpdateDelegate } from './src/Timeline/types';
@@ -15,10 +15,10 @@ export type OverlayToolEvent = 'hover' | 'click' | 'disposed';
15
15
  */
16
16
  export type OverlayEventHandler<ContentType> = (event: {
17
17
  targetOverlay: Overlay3D<ContentType>;
18
- htmlOverlay: HTMLElement;
18
+ htmlTextOverlay: HTMLElement;
19
19
  mousePosition: {
20
- clientX: number;
21
- clientY: number;
20
+ offsetX: number;
21
+ offsetY: number;
22
22
  };
23
23
  }) => void;
24
24
  /**
@@ -36,6 +36,30 @@ export type Overlay3DToolParameters = {
36
36
  */
37
37
  defaultOverlayColor: THREE.Color;
38
38
  };
39
+ /**
40
+ * Parameters for instantiating the OverlayCollection.
41
+ */
42
+ export type OverlayCollectionOptions = {
43
+ /**
44
+ * Sets default overlay color for newly added overlays.
45
+ * Default is yellow.
46
+ * */
47
+ defaultOverlayColor?: THREE.Color;
48
+ /**
49
+ * Sets default texture for all overlays of this OverlayCollection.
50
+ * Must be a square texture, recommended size is at least `maxPointSize` for
51
+ * not pixelated overlays.
52
+ */
53
+ overlayTexture?: THREE.Texture;
54
+ /**
55
+ * Sets default mask for all overlays of this OverlayCollection,
56
+ * denoting where overlay color should be placed compared to texture color.
57
+ * Must be a square texture with the same size as `overlayTexture`.
58
+ * Texture should be monochrome. Internally, R channel is used for
59
+ * denoting pixels that should be colored by texture and not by overlay color.
60
+ */
61
+ overlayTextureMask?: THREE.Texture;
62
+ };
39
63
  /**
40
64
  * Tool for adding and interacting with 2D overlays positioned at points in
41
65
  */
@@ -56,7 +80,7 @@ export declare class Overlay3DTool<ContentType = DefaultOverlay3DContentType> ex
56
80
  * @param overlays Array of overlays to add.
57
81
  * @returns Overlay group containing it's id.
58
82
  */
59
- createOverlayCollection(overlays?: OverlayInfo<ContentType>[]): OverlayCollection<ContentType>;
83
+ createOverlayCollection(overlays?: OverlayInfo<ContentType>[], options?: OverlayCollectionOptions): OverlayCollection<ContentType>;
60
84
  /**
61
85
  * Removes overlays that were added with addOverlays method.
62
86
  * @param overlayCollection Id of the overlay group to remove.
@@ -76,6 +100,7 @@ export declare class Overlay3DTool<ContentType = DefaultOverlay3DContentType> ex
76
100
  getVisible(): boolean;
77
101
  /**
78
102
  * Sets whether text overlay is visible.
103
+ * Default is false.
79
104
  */
80
105
  setTextOverlayVisible(visible: boolean): void;
81
106
  /**
@@ -105,6 +130,5 @@ export declare class Overlay3DTool<ContentType = DefaultOverlay3DContentType> ex
105
130
  private readonly onMouseClick;
106
131
  private positionTextOverlay;
107
132
  private intersectPointsMarkers;
108
- private convertPixelCoordinatesToNormalized;
109
133
  private createTextOverlay;
110
134
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/reveal",
3
- "version": "4.2.0-dev.20230531",
3
+ "version": "4.2.0-dev.20230602",
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": {
@@ -76,7 +76,7 @@
76
76
  "rxjs": "7.8.1",
77
77
  "skmeans": "0.11.3",
78
78
  "sparse-octree": "7.1.6",
79
- "three-stdlib": "2.22.4"
79
+ "three-stdlib": "2.23.4"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@azure/msal-browser": "2.37.0",
@@ -91,7 +91,7 @@
91
91
  "@types/jsdom": "21.1.1",
92
92
  "@types/lodash": "4.14.195",
93
93
  "@types/mixpanel-browser": "2.38.1",
94
- "@types/node": "18.16.15",
94
+ "@types/node": "18.16.16",
95
95
  "@types/random-seed": "0.3.3",
96
96
  "@types/skmeans": "0.11.4",
97
97
  "@types/stats": "0.16.30",
@@ -120,7 +120,7 @@
120
120
  "jest-extended": "3.2.4",
121
121
  "jest-image-snapshot": "6.1.0",
122
122
  "jest-puppeteer": "8.0.6",
123
- "jsdom": "22.0.0",
123
+ "jsdom": "22.1.0",
124
124
  "moq.ts": "10.0.6",
125
125
  "nock": "13.3.1",
126
126
  "prettier": "2.8.8",