@cognite/reveal 4.3.1 → 4.3.2-dev.20230613

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.
@@ -9,6 +9,7 @@ import { IconCollection, IconCullingScheme } from '../icons/IconCollection';
9
9
  import { Image360AnnotationAppearance } from '../annotation/types';
10
10
  import { IdEither } from '@cognite/sdk';
11
11
  import { Image360DataProvider } from '../../../data-providers';
12
+ import { Image360AnnotationFilter } from '../annotation/Image360AnnotationFilter';
12
13
  /**
13
14
  * Default implementation of {@link Image360Collection}. Used for events when entering
14
15
  * and exiting 360 image mode
@@ -26,6 +27,7 @@ export declare class DefaultImage360Collection implements Image360Collection {
26
27
  private _needsRedraw;
27
28
  private _defaultStyle;
28
29
  private readonly _image360DataProvider;
30
+ private readonly _annotationFilter;
29
31
  private readonly _events;
30
32
  private readonly _icons;
31
33
  private _isCollectionVisible;
@@ -43,7 +45,7 @@ export declare class DefaultImage360Collection implements Image360Collection {
43
45
  image360Exited: EventTrigger<Image360ExitedDelegate>;
44
46
  };
45
47
  get isCollectionVisible(): boolean;
46
- constructor(collectionId: string, collectionLabel: string | undefined, entities: Image360Entity[], icons: IconCollection, image360DataProvider: Image360DataProvider);
48
+ constructor(collectionId: string, collectionLabel: string | undefined, entities: Image360Entity[], icons: IconCollection, annotationFilter: Image360AnnotationFilter, image360DataProvider: Image360DataProvider);
47
49
  /**
48
50
  * Subscribes to events on 360 Image datasets. There are several event types:
49
51
  * 'image360Entered' - Subscribes to a event for entering 360 image mode.
@@ -16,6 +16,7 @@ export declare class Image360RevisionEntity implements Image360Revision {
16
16
  private _onFullResolutionCompleted;
17
17
  private _defaultAppearance;
18
18
  private _annotations;
19
+ private _annotationsPromise;
19
20
  private readonly _annotationFilterer;
20
21
  constructor(imageProvider: Image360DataProvider, image360Descriptor: Image360Descriptor, image360VisualizationBox: Image360VisualizationBox, annotationFilterer: Image360AnnotationFilter);
21
22
  /**
@@ -2,7 +2,7 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  import { AnnotationModel, CogniteClient, IdEither, Metadata, CogniteInternalId } from '@cognite/sdk';
5
- import { Historical360ImageSet, Image360Face, Image360FileDescriptor } from '../types';
5
+ import { Historical360ImageSet, Image360AnnotationFilterDelegate, Image360Face, Image360FileDescriptor } from '../types';
6
6
  import { Image360Provider } from '../Image360Provider';
7
7
  export declare class Cdf360ImageEventProvider implements Image360Provider<Metadata> {
8
8
  private readonly _client;
@@ -24,5 +24,6 @@ export declare class Cdf360ImageEventProvider implements Image360Provider<Metada
24
24
  }[], abortSignal?: AbortSignal): Promise<ArrayBuffer[]>;
25
25
  private getDownloadUrls;
26
26
  private parseEventMetadata;
27
- get360ImageAssets(image360FileDescriptors: Image360FileDescriptor[]): Promise<IdEither[]>;
27
+ get360ImageAssets(image360FileDescriptors: Image360FileDescriptor[], annotationFilter: Image360AnnotationFilterDelegate): Promise<IdEither[]>;
28
+ private listFileAnnotations;
28
29
  }
@@ -1,6 +1,6 @@
1
1
  import { Image360Provider } from '../Image360Provider';
2
- import { Historical360ImageSet, Image360Face, Image360FileDescriptor } from '../types';
3
- import { AnnotationModel, CogniteInternalId, IdEither } from '@cognite/sdk/dist/src';
2
+ import { Historical360ImageSet, Image360AnnotationFilterDelegate, Image360Face, Image360FileDescriptor } from '../types';
3
+ import { AnnotationModel, CogniteInternalId, IdEither } from '@cognite/sdk';
4
4
  export declare class Local360ImageProvider implements Image360Provider<unknown> {
5
5
  private readonly _modelUrl;
6
6
  constructor(modelUrl: string);
@@ -9,5 +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
+ get360ImageAssets(_image360FileDescriptors: Image360FileDescriptor[], _annotationFilter: Image360AnnotationFilterDelegate): Promise<IdEither[]>;
13
13
  }
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { AnnotationModel, CogniteInternalId, IdEither } from '@cognite/sdk';
5
5
  import * as THREE from 'three';
6
+ export type Image360AnnotationFilterDelegate = (annotation: AnnotationModel) => boolean;
6
7
  export interface JsonFileProvider {
7
8
  getJsonFile(baseUrl: string, fileName: string): Promise<any>;
8
9
  }
@@ -21,7 +22,7 @@ export interface Image360FileProvider {
21
22
  getLowResolution360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
22
23
  }
23
24
  export interface Image360AssetProvider {
24
- get360ImageAssets(image360FileDescriptors: Image360FileDescriptor[]): Promise<IdEither[]>;
25
+ get360ImageAssets(image360FileDescriptors: Image360FileDescriptor[], annotationFilter: Image360AnnotationFilterDelegate): Promise<IdEither[]>;
25
26
  }
26
27
  export type Historical360ImageSet = Image360EventDescriptor & {
27
28
  imageRevisions: Image360Descriptor[];
@@ -1,8 +1,10 @@
1
1
  /*!
2
2
  * Adapted from pnext/three-loader (https://github.com/pnext/three-loader)
3
3
  */
4
- import { Texture } from 'three';
5
- import { IUniform } from './types';
4
+ import { Camera, RawShaderMaterial, Texture, WebGLRenderer } from 'three';
5
+ import { PointColorType, PointShape, PointSizeType } from './enums';
6
+ import { PointClassification, IUniform, OctreeMaterialParams } from './types';
7
+ import { PointCloudObjectAppearanceTexture } from './PointCloudObjectAppearanceTexture';
6
8
  import { PointCloudObjectIdMaps } from './PointCloudObjectIdMaps';
7
9
  export interface IPointCloudMaterialParameters {
8
10
  size: number;
@@ -34,3 +36,84 @@ export interface IPointCloudMaterialUniforms {
34
36
  visibleNodes: IUniform<Texture>;
35
37
  vnStart: IUniform<number>;
36
38
  }
39
+ export declare class PointCloudMaterial extends RawShaderMaterial {
40
+ private static readonly helperVec3;
41
+ /**
42
+ * Use the drawing buffer size instead of the dom client width and height when passing the screen height and screen width uniforms to the
43
+ * shader. This is useful if you have offscreen canvases (which in some browsers return 0 as client width and client height).
44
+ */
45
+ useDrawingBufferSize: boolean;
46
+ lights: boolean;
47
+ fog: boolean;
48
+ visibleNodesTexture: Texture | undefined;
49
+ visibleNodeTextureOffsets: Map<string, number>;
50
+ private readonly _gradient;
51
+ private gradientTexture;
52
+ private _objectAppearanceTexture;
53
+ private _classification;
54
+ private classificationTexture;
55
+ uniforms: IPointCloudMaterialUniforms & Record<string, IUniform<any>>;
56
+ accessor fov: number;
57
+ accessor heightMax: number;
58
+ accessor heightMin: number;
59
+ accessor intensityBrightness: number;
60
+ accessor intensityContrast: number;
61
+ accessor intensityGamma: number;
62
+ accessor intensityRange: [number, number];
63
+ accessor maxSize: number;
64
+ accessor minSize: number;
65
+ accessor octreeSize: number;
66
+ accessor screenHeight: number;
67
+ accessor screenWidth: number;
68
+ accessor size: number;
69
+ accessor spacing: number;
70
+ accessor weighted: boolean;
71
+ accessor hqDepthPass: boolean;
72
+ accessor pointColorType: PointColorType;
73
+ accessor pointSizeType: PointSizeType;
74
+ accessor useEDL: boolean;
75
+ accessor shape: PointShape;
76
+ attributes: {
77
+ position: {
78
+ type: string;
79
+ value: never[];
80
+ };
81
+ color: {
82
+ type: string;
83
+ value: never[];
84
+ };
85
+ intensity: {
86
+ type: string;
87
+ value: never[];
88
+ };
89
+ classification: {
90
+ type: string;
91
+ value: never[];
92
+ };
93
+ objectId: {
94
+ type: string;
95
+ value: never[];
96
+ };
97
+ indices: {
98
+ type: string;
99
+ value: never[];
100
+ };
101
+ };
102
+ constructor(parameters?: Partial<IPointCloudMaterialParameters>);
103
+ dispose(): void;
104
+ clearVisibleNodeTextureOffsets(): void;
105
+ updateShaderSource(): void;
106
+ applyDefines(shaderSrc: string): string;
107
+ get objectAppearanceTexture(): PointCloudObjectAppearanceTexture;
108
+ set objectAppearanceTexture(texture: PointCloudObjectAppearanceTexture);
109
+ get classification(): PointClassification;
110
+ set classification(value: PointClassification);
111
+ private recomputeClassification;
112
+ get elevationRange(): [number, number];
113
+ set elevationRange(value: [number, number]);
114
+ getUniform<K extends keyof IPointCloudMaterialUniforms>(name: K): IPointCloudMaterialUniforms[K]['value'];
115
+ setUniform<K extends keyof IPointCloudMaterialUniforms>(name: K, value: IPointCloudMaterialUniforms[K]['value']): void;
116
+ onBeforeRender(renderer: WebGLRenderer): void;
117
+ updateMaterial(octreeParams: OctreeMaterialParams, visibilityTextureData: Uint8Array, camera: Camera): void;
118
+ private updateVisibilityTextureData;
119
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/reveal",
3
- "version": "4.3.1",
3
+ "version": "4.3.2-dev.20230613",
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": {
@@ -75,8 +75,8 @@
75
75
  "random-seed": "0.3.0",
76
76
  "rxjs": "7.8.1",
77
77
  "skmeans": "0.11.3",
78
- "sparse-octree": "7.1.6",
79
- "three-stdlib": "2.23.4"
78
+ "sparse-octree": "7.1.8",
79
+ "three-stdlib": "2.23.7"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@azure/msal-browser": "2.37.0",
@@ -85,7 +85,7 @@
85
85
  "@types/dat.gui": "0.7.10",
86
86
  "@types/gl": "^6.0.2",
87
87
  "@types/glob": "8.1.0",
88
- "@types/jest": "29.5.1",
88
+ "@types/jest": "29.5.2",
89
89
  "@types/jest-environment-puppeteer": "5.0.3",
90
90
  "@types/jest-image-snapshot": "6.1.0",
91
91
  "@types/jsdom": "21.1.1",
@@ -97,12 +97,12 @@
97
97
  "@types/stats": "0.16.30",
98
98
  "@types/three": "0.152.1",
99
99
  "@types/tween.js": "18.5.1",
100
- "@typescript-eslint/eslint-plugin": "5.59.7",
101
- "@typescript-eslint/parser": "5.59.7",
102
- "concurrently": "8.0.1",
100
+ "@typescript-eslint/eslint-plugin": "5.59.8",
101
+ "@typescript-eslint/parser": "5.59.8",
102
+ "concurrently": "8.1.0",
103
103
  "cross-env": "7.0.3",
104
104
  "dat.gui": "0.7.9",
105
- "eslint": "8.41.0",
105
+ "eslint": "8.42.0",
106
106
  "eslint-config-prettier": "8.8.0",
107
107
  "eslint-plugin-header": "3.1.1",
108
108
  "eslint-plugin-jsdoc": "44.2.7",
@@ -119,13 +119,13 @@
119
119
  "jest-environment-jsdom": "29.5.0",
120
120
  "jest-extended": "3.2.4",
121
121
  "jest-image-snapshot": "6.1.0",
122
- "jest-puppeteer": "8.0.6",
122
+ "jest-puppeteer": "9.0.0",
123
123
  "jsdom": "22.1.0",
124
124
  "moq.ts": "10.0.6",
125
125
  "nock": "13.3.1",
126
126
  "prettier": "2.8.8",
127
127
  "process": "0.11.10",
128
- "puppeteer": "20.4.0",
128
+ "puppeteer": "20.5.0",
129
129
  "random-seed": "0.3.0",
130
130
  "raw-loader": "4.0.2",
131
131
  "remove-files-webpack-plugin": "1.5.0",
@@ -136,10 +136,10 @@
136
136
  "ts-jest": "29.1.0",
137
137
  "ts-loader": "9.4.3",
138
138
  "tsc-alias": "1.8.6",
139
- "typescript": "5.0.4",
139
+ "typescript": "5.1.3",
140
140
  "wasm-pack": "0.11.1",
141
- "webpack": "5.84.1",
142
- "webpack-cli": "5.1.1",
141
+ "webpack": "5.85.0",
142
+ "webpack-cli": "5.1.3",
143
143
  "webpack-dev-server": "4.15.0",
144
144
  "webpack-node-externals": "3.0.0",
145
145
  "whatwg-fetch": "3.6.2",
@@ -157,5 +157,5 @@
157
157
  "files": [
158
158
  "./dist/*"
159
159
  ],
160
- "packageManager": "yarn@3.5.1"
160
+ "packageManager": "yarn@3.6.0"
161
161
  }