@cognite/reveal 4.1.1-dev.20230222 → 4.1.1-dev.20230223

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.
@@ -2,14 +2,23 @@
2
2
  * Copyright 2022 Cognite AS
3
3
  */
4
4
  import { Image360Entity } from '../entity/Image360Entity';
5
+ export type DownloadRequest = {
6
+ entity: Image360Entity;
7
+ load360Image: Promise<void>;
8
+ abort: () => void;
9
+ };
5
10
  export declare class Image360LoadingCache {
6
- private readonly _cacheSize;
11
+ private readonly _imageCacheSize;
12
+ private readonly _downloadCacheSize;
7
13
  private readonly _loaded360Images;
8
- private readonly _inFlightEntities;
14
+ private readonly _inProgressDownloads;
9
15
  get cachedEntities(): Image360Entity[];
10
- get currentlyLoadingEntities(): Map<Image360Entity, Promise<void>>;
11
- constructor(_cacheSize?: number);
16
+ get currentlyLoadingEntities(): DownloadRequest[];
17
+ getDownloadInProgress(entity: Image360Entity): DownloadRequest | undefined;
18
+ constructor(_imageCacheSize?: number, _downloadCacheSize?: number);
12
19
  cachedPreload(entity: Image360Entity): Promise<void>;
13
20
  purge(entity: Image360Entity): Promise<void>;
14
21
  private purgeLastRecentlyUsedInvisibleEntity;
22
+ private abortLastRecentlyReqestedEntity;
23
+ private createAbortSignal;
15
24
  }
@@ -34,7 +34,7 @@ export declare class Image360Entity implements Image360 {
34
34
  /**
35
35
  * Loads the 360 image (6 faces) into the visualization object.
36
36
  */
37
- load360Image(): Promise<void>;
37
+ load360Image(abortSignal?: AbortSignal): Promise<void>;
38
38
  /**
39
39
  * Drops the GPU resources for the 360 image
40
40
  * the icon will be preserved.
@@ -29,6 +29,7 @@ export type SceneSectorMetadata = {
29
29
  readonly boundingBox: BoundingBox;
30
30
  readonly geometryBoundingBox?: BoundingBox;
31
31
  readonly sectorFileName: string | null;
32
+ readonly texturedFileName: string | null;
32
33
  readonly maxDiagonalLength: number;
33
34
  readonly minDiagonalLength: number;
34
35
  readonly downloadSize: number;
@@ -8,7 +8,7 @@ export declare class Cdf360ImageEventProvider implements Image360Provider<Metada
8
8
  private readonly _client;
9
9
  constructor(client: CogniteClient);
10
10
  get360ImageDescriptors(metadataFilter: Metadata, preMultipliedRotation: boolean): Promise<Image360Descriptor[]>;
11
- get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[]): Promise<Image360Face[]>;
11
+ get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
12
12
  private mergeDescriptors;
13
13
  private listEvents;
14
14
  private listFiles;
@@ -4,5 +4,5 @@ export declare class Local360ImageProvider implements Image360Provider<unknown>
4
4
  private readonly _modelUrl;
5
5
  constructor(modelUrl: string);
6
6
  get360ImageDescriptors(): Promise<Image360Descriptor[]>;
7
- get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[]): Promise<Image360Face[]>;
7
+ get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
8
8
  }
@@ -12,7 +12,7 @@ export interface Image360DescriptorProvider<T> {
12
12
  get360ImageDescriptors(metadataFilter: T, preMultipliedRotation: boolean): Promise<Image360Descriptor[]>;
13
13
  }
14
14
  export interface Image360FileProvider {
15
- get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[]): Promise<Image360Face[]>;
15
+ get360ImageFiles(image360FaceDescriptors: Image360FileDescriptor[], abortSignal?: AbortSignal): Promise<Image360Face[]>;
16
16
  }
17
17
  export type Image360Descriptor = Image360EventDescriptor & {
18
18
  faceDescriptors: Image360FileDescriptor[];
@@ -18,6 +18,8 @@ export declare class CadMaterialManager {
18
18
  off(event: 'materialsChanged', listener: () => void): void;
19
19
  addModelMaterials(modelIdentifier: string, maxTreeIndex: number): void;
20
20
  removeModelMaterials(modelIdentifier: string): void;
21
+ addTexturedMeshMaterial(modelIdentifier: string, sectorId: number, texture: THREE.Texture): THREE.RawShaderMaterial;
22
+ removeTexturedMeshMaterial(modelIdentifier: string, sectorId: number): void;
21
23
  getModelMaterials(modelIdentifier: string): Materials;
22
24
  getModelNodeAppearanceProvider(modelIdentifier: string): NodeAppearanceProvider;
23
25
  getModelNodeTransformProvider(modelIdentifier: string): NodeTransformProvider;
@@ -38,4 +40,5 @@ export declare class CadMaterialManager {
38
40
  private getModelMaterialsWrapper;
39
41
  private applyToAllMaterials;
40
42
  private triggerMaterialsChanged;
43
+ private initializeDefinesAndUniforms;
41
44
  }
@@ -19,5 +19,10 @@ export interface Materials {
19
19
  instancedMesh: THREE.RawShaderMaterial;
20
20
  triangleMesh: THREE.RawShaderMaterial;
21
21
  simple: THREE.RawShaderMaterial;
22
+ texturedMaterials: {
23
+ [key: string]: THREE.RawShaderMaterial;
24
+ };
22
25
  }
23
- export declare function createMaterials(renderMode: RenderMode, clippingPlanes: THREE.Plane[], overrideColorPerTreeIndex: THREE.DataTexture, transformOverrideIndexTexture: THREE.DataTexture, transformOverrideLookupTexture: THREE.DataTexture): Materials;
26
+ export declare function forEachMaterial(materials: Materials, callback: (material: THREE.RawShaderMaterial) => void): void;
27
+ export declare function createMaterials(renderMode: RenderMode, clippingPlanes: THREE.Plane[], overrideColorPerTreeIndex: THREE.DataTexture, transformOverrideIndexTexture: THREE.DataTexture, transformOverrideLookupTexture: THREE.DataTexture, matCapTexture: THREE.Texture): Materials;
28
+ export declare function initializeDefinesAndUniforms(material: THREE.RawShaderMaterial, overrideColorPerTreeIndex: THREE.DataTexture, transformOverrideIndexTexture: THREE.DataTexture, transformOverrideTexture: THREE.DataTexture, matCapTexture: THREE.Texture, renderMode: RenderMode): void;
@@ -1,14 +1,6 @@
1
1
  /*!
2
2
  * Copyright 2021 Cognite AS
3
3
  */
4
- /**
5
- * Defines used to enable debugging features in shaders.
6
- */
7
- export declare const shaderDefines: {
8
- defines: {
9
- COGNITE_COLOR_BY_TREE_INDEX: boolean;
10
- };
11
- };
12
4
  export declare const sectorShaders: {
13
5
  simpleMesh: {
14
6
  fragment: string;
@@ -8,6 +8,7 @@ export declare class GltfSectorParser {
8
8
  private processInstancedTriangleMesh;
9
9
  private processPrimitiveCollection;
10
10
  private processTriangleMesh;
11
+ private getDiffuseTexture;
11
12
  private getVertexBuffer;
12
13
  private setIndexBuffer;
13
14
  private setPositionBuffer;
@@ -7,10 +7,13 @@ export type GltfJson = {
7
7
  bufferViews: BufferView[];
8
8
  buffers: Buffer[];
9
9
  extensionsUsed: string[];
10
+ images: Image[];
11
+ materials: Material[];
10
12
  meshes: Mesh[];
11
13
  nodes: Node[];
12
14
  scene: number;
13
15
  scenes: Scene[];
16
+ textures: Texture[];
14
17
  };
15
18
  export type Scene = {
16
19
  nodes: number[];
@@ -66,6 +69,22 @@ export type Primitive = {
66
69
  bufferView: number;
67
70
  } | undefined;
68
71
  };
72
+ material: number | undefined;
73
+ };
74
+ export type Material = {
75
+ name: string;
76
+ pbrMetallicRoughness: {
77
+ baseColorTexture: {
78
+ index: number;
79
+ };
80
+ };
81
+ };
82
+ export type Texture = {
83
+ source: number;
84
+ };
85
+ export type Image = {
86
+ bufferView: number;
87
+ mimeType: string;
69
88
  };
70
89
  export declare enum RevealGeometryCollectionType {
71
90
  BoxCollection = 0,
@@ -80,7 +99,8 @@ export declare enum RevealGeometryCollectionType {
80
99
  TrapeziumCollection = 9,
81
100
  NutCollection = 10,
82
101
  TriangleMesh = 11,
83
- InstanceMesh = 12
102
+ TexturedTriangleMesh = 12,
103
+ InstanceMesh = 13
84
104
  }
85
105
  export type GlbHeaderData = {
86
106
  json: GltfJson;
@@ -97,10 +117,12 @@ export type GeometryProcessingPayload = {
97
117
  } | undefined;
98
118
  meshId: number | undefined;
99
119
  glbHeaderData: GlbHeaderData;
120
+ texture?: THREE.Texture;
100
121
  data: ArrayBuffer;
101
122
  };
102
123
  export type ParsedGeometry = {
103
124
  type: RevealGeometryCollectionType;
104
125
  geometryBuffer: THREE.BufferGeometry;
126
+ texture?: THREE.Texture;
105
127
  instanceId?: string;
106
128
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/reveal",
3
- "version": "4.1.1-dev.20230222",
3
+ "version": "4.1.1-dev.20230223",
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": {