@cognite/reveal 3.0.2 → 3.1.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.
- package/core/src/internals.d.ts +2 -2
- package/core/src/public/RevealManager.d.ts +8 -17
- package/core/src/public/createRevealManager.d.ts +5 -4
- package/core/src/public/migration/Cognite3DViewer.d.ts +26 -13
- package/core/src/public/migration/renderOptionsHelpers.d.ts +29 -0
- package/core/src/public/migration/types.d.ts +2 -0
- package/core/src/public/types.d.ts +6 -1
- package/core/src/storage/RevealManagerHelper.d.ts +7 -6
- package/eptBinaryDecoder.worker.map +1 -0
- package/extensions/datasource.js +6 -6
- package/extensions/datasource.map +1 -1
- package/index.js +213 -165
- package/index.map +1 -1
- package/package.json +5 -5
- package/packages/cad-geometry-loaders/index.d.ts +3 -0
- package/packages/{cad-model → cad-geometry-loaders}/src/CadManager.d.ts +2 -4
- package/packages/cad-geometry-loaders/src/CadModelUpdateHandler.d.ts +1 -1
- package/packages/{cad-model → cad-geometry-loaders}/src/InternalRevealCadOptions.d.ts +0 -0
- package/packages/{cad-model → cad-geometry-loaders}/src/createCadManager.d.ts +2 -2
- package/packages/cad-geometry-loaders/src/sector/culling/OrderSectorsByVisibilityCoverage.d.ts +3 -3
- package/packages/cad-geometry-loaders/src/sector/culling/RenderAlreadyLoadedGeometryProvider.d.ts +5 -3
- package/packages/cad-geometry-loaders/src/sector/culling/createV8SectorCuller.d.ts +2 -2
- package/packages/cad-geometry-loaders/src/sector/culling/types.d.ts +1 -1
- package/packages/cad-model/index.d.ts +6 -9
- package/packages/cad-model/src/CadModelFactory.d.ts +3 -2
- package/packages/{rendering/src → cad-model/src/batching}/GeometryBatchingManager.d.ts +2 -2
- package/packages/{rendering/src → cad-model/src/batching}/InstancedMeshManager.d.ts +2 -2
- package/packages/cad-model/src/picking/PickingHandler.d.ts +35 -0
- package/packages/cad-model/src/types.d.ts +59 -0
- package/packages/cad-model/src/{BoundingBoxClipper.d.ts → utilities/BoundingBoxClipper.d.ts} +0 -0
- package/packages/cad-model/src/{NodeIdAndTreeIndexMaps.d.ts → utilities/NodeIdAndTreeIndexMaps.d.ts} +0 -0
- package/packages/cad-model/src/{callActionWithIndicesAsync.d.ts → utilities/callActionWithIndicesAsync.d.ts} +0 -0
- package/packages/{rendering/src/sector → cad-model/src/wrappers}/CadNode.d.ts +2 -5
- package/packages/cad-model/src/{Cognite3DModel.d.ts → wrappers/Cognite3DModel.d.ts} +4 -4
- package/packages/cad-parsers/src/cad/primitiveGeometries.d.ts +3 -3
- package/packages/cad-styling/src/NodeAppearance.d.ts +6 -6
- package/packages/camera-manager/src/ComboControls.d.ts +1 -1
- package/packages/modeldata-api/index.d.ts +1 -1
- package/packages/modeldata-api/src/CdfModelDataProvider.d.ts +1 -2
- package/packages/modeldata-api/src/LocalModelDataProvider.d.ts +0 -2
- package/packages/modeldata-api/src/LocalModelMetadataProvider.d.ts +2 -2
- package/packages/modeldata-api/src/types.d.ts +1 -5
- package/packages/pointclouds/index.d.ts +5 -1
- package/packages/pointclouds/src/CognitePointCloudModel.d.ts +12 -1
- package/packages/pointclouds/src/PointCloudFactory.d.ts +9 -5
- package/packages/pointclouds/src/PointCloudManager.d.ts +13 -2
- package/packages/pointclouds/src/PointCloudNode.d.ts +11 -4
- package/packages/pointclouds/src/PotreeGroupWrapper.d.ts +8 -1
- package/packages/pointclouds/src/PotreeNodeWrapper.d.ts +8 -9
- package/packages/pointclouds/src/PotreePnextLoader.d.ts +4 -0
- package/packages/pointclouds/src/createPointClassKey.d.ts +5 -0
- package/packages/pointclouds/src/createPointCloudManager.d.ts +2 -1
- package/packages/pointclouds/src/potree-three-loader/Potree.d.ts +46 -0
- package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometry.d.ts +10 -0
- package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometryNode.d.ts +11 -0
- package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometry.d.ts +50 -0
- package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometryNode.d.ts +63 -0
- package/packages/pointclouds/src/potree-three-loader/geometry/translationUtils.d.ts +7 -0
- package/packages/pointclouds/src/potree-three-loader/index.d.ts +10 -0
- package/packages/pointclouds/src/potree-three-loader/loading/EptBinaryLoader.d.ts +12 -0
- package/packages/pointclouds/src/potree-three-loader/loading/EptLoader.d.ts +5 -0
- package/packages/pointclouds/src/potree-three-loader/loading/ILoader.d.ts +4 -0
- package/packages/pointclouds/src/potree-three-loader/loading/globalLoadingCounter.d.ts +5 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/PointCloudMaterial.d.ts +203 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/classification.d.ts +2 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/clipping.d.ts +12 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/constants.d.ts +14 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/enums.d.ts +46 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/features.d.ts +6 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/gradients/SpectralGradient.d.ts +2 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/index.d.ts +5 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/texture-generation.d.ts +5 -0
- package/packages/pointclouds/src/potree-three-loader/rendering/types.d.ts +10 -0
- package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNode.d.ts +7 -0
- package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNodeBase.d.ts +18 -0
- package/packages/pointclouds/src/potree-three-loader/tree/PointAttributes.d.ts +52 -0
- package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctree.d.ts +48 -0
- package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreeNode.d.ts +27 -0
- package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePicker.d.ts +11 -0
- package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePickerHelper.d.ts +57 -0
- package/packages/pointclouds/src/potree-three-loader/tree/PointCloudTree.d.ts +6 -0
- package/packages/pointclouds/src/potree-three-loader/types/IPotree.d.ts +11 -0
- package/packages/pointclouds/src/potree-three-loader/types/IVisibilityUpdateResult.d.ts +18 -0
- package/packages/pointclouds/src/potree-three-loader/types/type-predicates.d.ts +6 -0
- package/packages/pointclouds/src/potree-three-loader/types/types.d.ts +14 -0
- package/packages/pointclouds/src/potree-three-loader/utils/BinaryHeap.d.ts +11 -0
- package/packages/pointclouds/src/potree-three-loader/utils/WorkerPool.d.ts +31 -0
- package/packages/pointclouds/src/potree-three-loader/utils/async-blocking-queue.d.ts +8 -0
- package/packages/pointclouds/src/potree-three-loader/utils/bounds.d.ts +6 -0
- package/packages/pointclouds/src/potree-three-loader/utils/box3-helper.d.ts +13 -0
- package/packages/pointclouds/src/potree-three-loader/utils/lru.d.ts +32 -0
- package/packages/pointclouds/src/potree-three-loader/utils/math.d.ts +1 -0
- package/packages/pointclouds/src/potree-three-loader/utils/utils.d.ts +8 -0
- package/packages/pointclouds/src/potree-three-loader/version.d.ts +9 -0
- package/packages/pointclouds/src/potree-three-loader/workers/eptBinaryDecoder.worker.d.ts +18 -0
- package/packages/pointclouds/src/types.d.ts +0 -30
- package/packages/rendering/index.d.ts +5 -2
- package/packages/rendering/src/RenderPass.d.ts +15 -0
- package/packages/rendering/src/RenderPipelineExecutor.d.ts +12 -0
- package/packages/rendering/src/RenderPipelineProvider.d.ts +15 -0
- package/packages/rendering/src/pipeline-executors/BasicPipelineExecutor.d.ts +11 -0
- package/packages/rendering/src/render-passes/GeometryPass.d.ts +16 -0
- package/packages/rendering/src/render-passes/PostProcessingPass.d.ts +24 -0
- package/packages/rendering/src/render-passes/SSAOPass.d.ts +14 -0
- package/packages/rendering/src/render-passes/types.d.ts +31 -0
- package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderModePipelineProvider.d.ts +23 -0
- package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderPipelineProvider.d.ts +25 -0
- package/packages/rendering/src/render-pipeline-providers/DefaultRenderPipelineProvider.d.ts +34 -0
- package/packages/rendering/src/render-pipeline-providers/types.d.ts +19 -0
- package/packages/rendering/src/rendering/shaders.d.ts +1 -15
- package/packages/rendering/src/rendering/types.d.ts +1 -1
- package/packages/rendering/src/utilities/renderUtilities.d.ts +26 -0
- package/packages/tools/src/AxisView/AxisViewTool.d.ts +0 -1
- package/packages/utilities/index.d.ts +3 -0
- package/packages/utilities/src/DeferredPromise.d.ts +1 -1
- package/packages/utilities/src/SceneHandler.d.ts +21 -0
- package/packages/utilities/src/WebGLRendererStateHelper.d.ts +12 -0
- package/packages/utilities/src/device.d.ts +10 -0
- package/packages/utilities/src/isMobileOrTablet.d.ts +1 -0
- package/packages/utilities/src/three/createFullScreenTriangleGeometry.d.ts +5 -0
- package/tools.js +58 -45
- package/tools.map +1 -1
- package/packages/cad-model/src/CadModelSectorLoadStatistics.d.ts +0 -38
- package/packages/cad-model/src/GeometryFilter.d.ts +0 -20
- package/packages/cad-model/src/WellKnownUnit.d.ts +0 -7
- package/packages/cad-model/src/picking.d.ts +0 -28
- package/packages/rendering/src/rendering/EffectRenderManager.d.ts +0 -99
|
@@ -5,6 +5,7 @@ import { LoadingState } from '../../model-base';
|
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
6
6
|
import * as THREE from 'three';
|
|
7
7
|
import { PotreeNodeWrapper } from './PotreeNodeWrapper';
|
|
8
|
+
import { Potree, PointCloudOctree } from './potree-three-loader';
|
|
8
9
|
/**
|
|
9
10
|
* Wrapper around Potree.Group with type information and
|
|
10
11
|
* basic functionality.
|
|
@@ -14,20 +15,26 @@ export declare class PotreeGroupWrapper extends THREE.Object3D {
|
|
|
14
15
|
private _lastDrawPointBuffersHash;
|
|
15
16
|
private readonly _forceLoadingSubject;
|
|
16
17
|
private readonly _loadingObservable;
|
|
18
|
+
private readonly _pointClouds;
|
|
17
19
|
get needsRedraw(): boolean;
|
|
18
20
|
private readonly nodes;
|
|
19
21
|
private readonly potreeGroup;
|
|
22
|
+
private readonly _potreeInstance;
|
|
20
23
|
private numNodesLoadingAfterLastRedraw;
|
|
21
24
|
private numChildrenAfterLastRedraw;
|
|
22
25
|
/**
|
|
26
|
+
* @param potreeInstance Main instance of the Potree library in this Reveal instance
|
|
23
27
|
* @param pollLoadingStatusInterval Controls how often the wrapper checks for loading status. Used for testing.
|
|
24
28
|
*/
|
|
25
|
-
constructor(pollLoadingStatusInterval?: number);
|
|
29
|
+
constructor(potreeInstance: Potree, pollLoadingStatusInterval?: number);
|
|
26
30
|
get pointBudget(): number;
|
|
27
31
|
set pointBudget(points: number);
|
|
32
|
+
get pointClouds(): PointCloudOctree[];
|
|
33
|
+
get potreeInstance(): Potree;
|
|
28
34
|
getLoadingStateObserver(): Observable<LoadingState>;
|
|
29
35
|
addPointCloud(node: PotreeNodeWrapper): void;
|
|
30
36
|
removePointCloud(node: PotreeNodeWrapper): void;
|
|
37
|
+
traversePointClouds(callback: (pointCloud: PointCloudOctree) => void): void;
|
|
31
38
|
requestRedraw(): void;
|
|
32
39
|
resetRedraw(): void;
|
|
33
40
|
private createLoadingStateObservable;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright 2021 Cognite AS
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
-
import { PotreePointSizeType, PotreePointColorType, PotreePointShape } from './types';
|
|
6
5
|
export declare type PotreeClassification = {
|
|
7
6
|
[pointClass: number]: {
|
|
8
7
|
x: number;
|
|
@@ -11,20 +10,19 @@ export declare type PotreeClassification = {
|
|
|
11
10
|
w: number;
|
|
12
11
|
};
|
|
13
12
|
};
|
|
13
|
+
import { PointCloudOctree, PotreePointColorType, PotreePointShape, PickPoint } from './potree-three-loader';
|
|
14
|
+
import { WellKnownAsprsPointClassCodes } from './types';
|
|
14
15
|
/**
|
|
15
|
-
* Wrapper around `Potree.PointCloudOctree` with some
|
|
16
|
+
* Wrapper around `Potree.PointCloudOctree` with some convenience functions.
|
|
16
17
|
*/
|
|
17
18
|
export declare class PotreeNodeWrapper {
|
|
18
|
-
readonly
|
|
19
|
+
readonly octree: PointCloudOctree;
|
|
19
20
|
private _needsRedraw;
|
|
21
|
+
private readonly _classification;
|
|
20
22
|
get needsRedraw(): boolean;
|
|
21
|
-
constructor(
|
|
23
|
+
constructor(octree: PointCloudOctree);
|
|
22
24
|
get pointSize(): number;
|
|
23
25
|
set pointSize(size: number);
|
|
24
|
-
get pointSizeType(): PotreePointSizeType;
|
|
25
|
-
set pointSizeType(type: PotreePointSizeType);
|
|
26
|
-
get pointBudget(): number;
|
|
27
|
-
set pointBudget(count: number);
|
|
28
26
|
get visiblePointCount(): number;
|
|
29
27
|
get boundingBox(): THREE.Box3;
|
|
30
28
|
get pointColorType(): PotreePointColorType;
|
|
@@ -32,6 +30,7 @@ export declare class PotreeNodeWrapper {
|
|
|
32
30
|
get pointShape(): PotreePointShape;
|
|
33
31
|
set pointShape(shape: PotreePointShape);
|
|
34
32
|
get classification(): PotreeClassification;
|
|
35
|
-
|
|
33
|
+
pick(renderer: THREE.WebGLRenderer, camera: THREE.Camera, ray: THREE.Ray): PickPoint | null;
|
|
34
|
+
setClassificationAndRecompute(pointClass: number | WellKnownAsprsPointClassCodes, visible: boolean): void;
|
|
36
35
|
resetRedraw(): void;
|
|
37
36
|
}
|
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
* Copyright 2021 Cognite AS
|
|
3
3
|
*/
|
|
4
4
|
import { PointCloudManager } from './PointCloudManager';
|
|
5
|
+
import * as THREE from 'three';
|
|
5
6
|
import { ModelDataProvider, ModelMetadataProvider } from '../../modeldata-api';
|
|
6
|
-
export declare function createPointCloudManager(modelMetadataProvider: ModelMetadataProvider, modelDataProvider: ModelDataProvider): PointCloudManager;
|
|
7
|
+
export declare function createPointCloudManager(modelMetadataProvider: ModelMetadataProvider, modelDataProvider: ModelDataProvider, scene: THREE.Scene, renderer: THREE.WebGLRenderer): PointCloudManager;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Camera, Ray, WebGLRenderer } from 'three';
|
|
2
|
+
import { PointCloudOctree } from './tree/PointCloudOctree';
|
|
3
|
+
import { PickParams } from './tree/PointCloudOctreePicker';
|
|
4
|
+
import { PickPoint } from './types/types';
|
|
5
|
+
import { IPotree } from './types/IPotree';
|
|
6
|
+
import { IVisibilityUpdateResult } from './types/IVisibilityUpdateResult';
|
|
7
|
+
import { IPointCloudTreeNodeBase } from './tree/IPointCloudTreeNodeBase';
|
|
8
|
+
import { LRU } from './utils/lru';
|
|
9
|
+
import { ModelDataProvider } from '../../../modeldata-api';
|
|
10
|
+
export declare class QueueItem {
|
|
11
|
+
pointCloudIndex: number;
|
|
12
|
+
weight: number;
|
|
13
|
+
node: IPointCloudTreeNodeBase;
|
|
14
|
+
parent?: IPointCloudTreeNodeBase | undefined;
|
|
15
|
+
constructor(pointCloudIndex: number, weight: number, node: IPointCloudTreeNodeBase, parent?: IPointCloudTreeNodeBase | undefined);
|
|
16
|
+
}
|
|
17
|
+
export declare class Potree implements IPotree {
|
|
18
|
+
private static picker;
|
|
19
|
+
private _pointBudget;
|
|
20
|
+
private readonly _rendererSize;
|
|
21
|
+
private readonly _modelDataProvider;
|
|
22
|
+
maxNumNodesLoading: number;
|
|
23
|
+
features: {
|
|
24
|
+
SHADER_INTERPOLATION: boolean;
|
|
25
|
+
SHADER_SPLATS: boolean;
|
|
26
|
+
SHADER_EDL: boolean;
|
|
27
|
+
precision: string;
|
|
28
|
+
};
|
|
29
|
+
lru: LRU;
|
|
30
|
+
constructor(modelDataProvider: ModelDataProvider);
|
|
31
|
+
loadPointCloud(baseUrl: string, fileName: string, _xhrRequest?: (input: RequestInfo, init?: RequestInit) => Promise<Response>): Promise<PointCloudOctree>;
|
|
32
|
+
updatePointClouds(pointClouds: PointCloudOctree[], camera: Camera, renderer: WebGLRenderer): IVisibilityUpdateResult;
|
|
33
|
+
static pick(pointClouds: PointCloudOctree[], renderer: WebGLRenderer, camera: Camera, ray: Ray, params?: Partial<PickParams>): PickPoint | null;
|
|
34
|
+
get pointBudget(): number;
|
|
35
|
+
set pointBudget(value: number);
|
|
36
|
+
static set maxLoaderWorkers(value: number);
|
|
37
|
+
static get maxLoaderWorkers(): number;
|
|
38
|
+
private updateVisibilityForNode;
|
|
39
|
+
private createVisibilityUpdateResult;
|
|
40
|
+
private updateVisibility;
|
|
41
|
+
private updateTreeNodeVisibility;
|
|
42
|
+
private updateChildVisibility;
|
|
43
|
+
private updateBoundingBoxVisibility;
|
|
44
|
+
private shouldClip;
|
|
45
|
+
private readonly updateVisibilityStructures;
|
|
46
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IPointCloudTreeNodeBase } from '../tree/IPointCloudTreeNodeBase';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
export interface IPointCloudTreeGeometry {
|
|
4
|
+
root: IPointCloudTreeNodeBase | undefined;
|
|
5
|
+
boundingBox: THREE.Box3;
|
|
6
|
+
tightBoundingBox: THREE.Box3;
|
|
7
|
+
offset: THREE.Vector3;
|
|
8
|
+
spacing: number;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
}
|
package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometryNode.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IPointCloudTreeNodeBase } from '../tree/IPointCloudTreeNodeBase';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
export interface IPointCloudTreeGeometryNode extends IPointCloudTreeNodeBase {
|
|
4
|
+
geometry: THREE.BufferGeometry | undefined;
|
|
5
|
+
failed: boolean;
|
|
6
|
+
load: () => Promise<void>;
|
|
7
|
+
baseUrl: () => string;
|
|
8
|
+
fileName: () => string;
|
|
9
|
+
oneTimeDisposeHandlers: (() => void)[];
|
|
10
|
+
doneLoading: (bufferGeometry: THREE.BufferGeometry, _tightBoundingBox: THREE.Box3, np: number, _mean: THREE.Vector3) => void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { ILoader } from '../loading/ILoader';
|
|
3
|
+
import { PointCloudEptGeometryNode } from './PointCloudEptGeometryNode';
|
|
4
|
+
import { IPointCloudTreeGeometry } from './IPointCloudTreeGeometry';
|
|
5
|
+
import { ModelDataProvider } from '../../../../modeldata-api';
|
|
6
|
+
declare type SchemaEntry = {
|
|
7
|
+
name: string;
|
|
8
|
+
scale: number;
|
|
9
|
+
offset: number;
|
|
10
|
+
};
|
|
11
|
+
export declare class PointCloudEptGeometry implements IPointCloudTreeGeometry {
|
|
12
|
+
private readonly _eptScale;
|
|
13
|
+
private readonly _eptOffset;
|
|
14
|
+
private readonly _url;
|
|
15
|
+
private readonly _boundingBox;
|
|
16
|
+
private readonly _tightBoundingBox;
|
|
17
|
+
private readonly _offset;
|
|
18
|
+
private readonly _span;
|
|
19
|
+
private readonly _spacing;
|
|
20
|
+
private readonly _loader;
|
|
21
|
+
private readonly _schema;
|
|
22
|
+
private _root;
|
|
23
|
+
private readonly _projection;
|
|
24
|
+
get root(): PointCloudEptGeometryNode | undefined;
|
|
25
|
+
set root(r: PointCloudEptGeometryNode | undefined);
|
|
26
|
+
get boundingBox(): THREE.Box3;
|
|
27
|
+
get tightBoundingBox(): THREE.Box3;
|
|
28
|
+
get offset(): THREE.Vector3;
|
|
29
|
+
get spacing(): number;
|
|
30
|
+
get url(): string;
|
|
31
|
+
get schema(): SchemaEntry[];
|
|
32
|
+
get eptScale(): THREE.Vector3;
|
|
33
|
+
get eptOffset(): THREE.Vector3;
|
|
34
|
+
get loader(): ILoader;
|
|
35
|
+
constructor(url: string, info: any, dataLoader: ModelDataProvider);
|
|
36
|
+
dispose(): void;
|
|
37
|
+
}
|
|
38
|
+
export declare class EptKey {
|
|
39
|
+
readonly ept: PointCloudEptGeometry;
|
|
40
|
+
readonly x: number;
|
|
41
|
+
readonly y: number;
|
|
42
|
+
readonly z: number;
|
|
43
|
+
readonly b: THREE.Box3;
|
|
44
|
+
readonly d: number;
|
|
45
|
+
constructor(ept: PointCloudEptGeometry, b: THREE.Box3, d: number, x?: number, y?: number, z?: number);
|
|
46
|
+
name(): string;
|
|
47
|
+
step(a: number, b: number, c: number): EptKey;
|
|
48
|
+
children(): string[];
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { IPointCloudTreeGeometryNode } from './IPointCloudTreeGeometryNode';
|
|
2
|
+
import { IPointCloudTreeNodeBase } from '../tree/IPointCloudTreeNodeBase';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { PointCloudEptGeometry, EptKey } from './PointCloudEptGeometry';
|
|
5
|
+
import { ModelDataProvider } from '../../../../modeldata-api';
|
|
6
|
+
export declare class PointCloudEptGeometryNode implements IPointCloudTreeGeometryNode {
|
|
7
|
+
private readonly _id;
|
|
8
|
+
private readonly _ept;
|
|
9
|
+
private readonly _key;
|
|
10
|
+
private readonly _dataLoader;
|
|
11
|
+
private readonly _boundingBox;
|
|
12
|
+
private readonly _boundingSphere;
|
|
13
|
+
private readonly _spacing;
|
|
14
|
+
private _level;
|
|
15
|
+
private _numPoints;
|
|
16
|
+
private readonly _name;
|
|
17
|
+
private readonly _index;
|
|
18
|
+
private readonly _children;
|
|
19
|
+
private _loading;
|
|
20
|
+
private _loaded;
|
|
21
|
+
private _parent;
|
|
22
|
+
private _isLeafNode;
|
|
23
|
+
private _geometry;
|
|
24
|
+
private _oneTimeDisposeHandlers;
|
|
25
|
+
static IDCount: number;
|
|
26
|
+
get id(): number;
|
|
27
|
+
get name(): string;
|
|
28
|
+
get level(): number;
|
|
29
|
+
get spacing(): number;
|
|
30
|
+
get boundingBox(): THREE.Box3;
|
|
31
|
+
get boundingSphere(): THREE.Sphere;
|
|
32
|
+
get loaded(): boolean;
|
|
33
|
+
get key(): EptKey;
|
|
34
|
+
get failed(): boolean;
|
|
35
|
+
get numPoints(): number;
|
|
36
|
+
get children(): IPointCloudTreeNodeBase[];
|
|
37
|
+
get oneTimeDisposeHandlers(): (() => void)[];
|
|
38
|
+
get isLeafNode(): boolean;
|
|
39
|
+
get geometry(): THREE.BufferGeometry | undefined;
|
|
40
|
+
get ept(): PointCloudEptGeometry;
|
|
41
|
+
get index(): number;
|
|
42
|
+
set parent(_p: PointCloudEptGeometryNode | undefined);
|
|
43
|
+
get parent(): PointCloudEptGeometryNode | undefined;
|
|
44
|
+
constructor(ept: PointCloudEptGeometry, modelDataProvider: ModelDataProvider, b?: THREE.Box3, d?: number, x?: number, y?: number, z?: number);
|
|
45
|
+
get isGeometryNode(): boolean;
|
|
46
|
+
getLevel(): number;
|
|
47
|
+
get isTreeNode(): boolean;
|
|
48
|
+
isLoaded(): boolean;
|
|
49
|
+
getBoundingSphere(): THREE.Sphere;
|
|
50
|
+
getBoundingBox(): THREE.Box3;
|
|
51
|
+
baseUrl(): string;
|
|
52
|
+
getNumPoints(): number;
|
|
53
|
+
fileName(): string;
|
|
54
|
+
getChildren(): IPointCloudTreeGeometryNode[];
|
|
55
|
+
traverse(callback: (node: IPointCloudTreeNodeBase) => void, includeSelf?: boolean): void;
|
|
56
|
+
addChild(child: PointCloudEptGeometryNode): void;
|
|
57
|
+
load(): Promise<void>;
|
|
58
|
+
loadPoints(): Promise<void>;
|
|
59
|
+
loadHierarchy(): Promise<void>;
|
|
60
|
+
doneLoading(bufferGeometry: THREE.BufferGeometry, _tightBoundingBox: THREE.Box3, np: number, _mean: THREE.Vector3): void;
|
|
61
|
+
toPotreeName(d: number, x: number, y: number, z: number): string;
|
|
62
|
+
dispose(): void;
|
|
63
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
export declare function toVector3(v: number[], offset?: number): THREE.Vector3;
|
|
6
|
+
export declare function toBox3(b: number[]): THREE.Box3;
|
|
7
|
+
export declare function sphereFrom(b: THREE.Box3): THREE.Sphere;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './rendering';
|
|
2
|
+
export * from './tree/PointAttributes';
|
|
3
|
+
export * from './tree/PointCloudOctreeNode';
|
|
4
|
+
export * from './tree/PointCloudOctreePicker';
|
|
5
|
+
export * from './tree/PointCloudOctree';
|
|
6
|
+
export * from './tree/PointCloudTree';
|
|
7
|
+
export * from './Potree';
|
|
8
|
+
export * from './types/types';
|
|
9
|
+
export * from './version';
|
|
10
|
+
export { globalNumNodesLoading as numPointCloudNodesLoading } from './loading/globalLoadingCounter';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WorkerPool } from '../utils/WorkerPool';
|
|
2
|
+
import { ILoader } from './ILoader';
|
|
3
|
+
import { ModelDataProvider } from '../../../../modeldata-api';
|
|
4
|
+
import { PointCloudEptGeometryNode } from '../geometry/PointCloudEptGeometryNode';
|
|
5
|
+
export declare class EptBinaryLoader implements ILoader {
|
|
6
|
+
private readonly _dataLoader;
|
|
7
|
+
static readonly WORKER_POOL: WorkerPool<Worker>;
|
|
8
|
+
extension(): string;
|
|
9
|
+
constructor(dataLoader: ModelDataProvider);
|
|
10
|
+
load(node: PointCloudEptGeometryNode): Promise<void>;
|
|
11
|
+
parse(node: PointCloudEptGeometryNode, buffer: ArrayBuffer): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ModelDataProvider } from '../../../../modeldata-api';
|
|
2
|
+
import { PointCloudEptGeometry } from '../geometry/PointCloudEptGeometry';
|
|
3
|
+
export declare class EptLoader {
|
|
4
|
+
static load(baseUrl: string, fileName: string, modelDataProvider: ModelDataProvider): Promise<PointCloudEptGeometry>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare let globalNumNodesLoading: number;
|
|
2
|
+
declare const globalMaxNumNodesLoading: number;
|
|
3
|
+
export { globalNumNodesLoading, globalMaxNumNodesLoading };
|
|
4
|
+
export declare function incrementGlobalNumNodesLoading(): void;
|
|
5
|
+
export declare function decrementGlobalNumNodesLoading(): void;
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { BufferGeometry, Camera, Color, Material, RawShaderMaterial, Scene, Texture, Vector3, Vector4, WebGLRenderer } from 'three';
|
|
2
|
+
import { PointCloudOctree } from '../tree/PointCloudOctree';
|
|
3
|
+
import { IPointCloudTreeNodeBase } from '../tree/IPointCloudTreeNodeBase';
|
|
4
|
+
import { IPointCloudTreeNode } from '../tree/IPointCloudTreeNode';
|
|
5
|
+
import { ClipMode, IClipBox } from './clipping';
|
|
6
|
+
import { PointCloudMixingMode, PotreePointColorType, PointOpacityType, PotreePointShape, PotreePointSizeType, TreeType } from './enums';
|
|
7
|
+
import { IClassification, IUniform } from './types';
|
|
8
|
+
export interface IPointCloudMaterialParameters {
|
|
9
|
+
size: number;
|
|
10
|
+
minSize: number;
|
|
11
|
+
maxSize: number;
|
|
12
|
+
treeType: TreeType;
|
|
13
|
+
}
|
|
14
|
+
export interface IPointCloudMaterialUniforms {
|
|
15
|
+
bbSize: IUniform<[number, number, number]>;
|
|
16
|
+
blendDepthSupplement: IUniform<number>;
|
|
17
|
+
blendHardness: IUniform<number>;
|
|
18
|
+
classificationLUT: IUniform<Texture>;
|
|
19
|
+
clipBoxCount: IUniform<number>;
|
|
20
|
+
clipBoxes: IUniform<Float32Array>;
|
|
21
|
+
depthMap: IUniform<Texture | null>;
|
|
22
|
+
diffuse: IUniform<[number, number, number]>;
|
|
23
|
+
fov: IUniform<number>;
|
|
24
|
+
gradient: IUniform<Texture>;
|
|
25
|
+
heightMax: IUniform<number>;
|
|
26
|
+
heightMin: IUniform<number>;
|
|
27
|
+
intensityBrightness: IUniform<number>;
|
|
28
|
+
intensityContrast: IUniform<number>;
|
|
29
|
+
intensityGamma: IUniform<number>;
|
|
30
|
+
intensityRange: IUniform<[number, number]>;
|
|
31
|
+
isLeafNode: IUniform<boolean>;
|
|
32
|
+
level: IUniform<number>;
|
|
33
|
+
maxSize: IUniform<number>;
|
|
34
|
+
minSize: IUniform<number>;
|
|
35
|
+
octreeSize: IUniform<number>;
|
|
36
|
+
opacity: IUniform<number>;
|
|
37
|
+
pcIndex: IUniform<number>;
|
|
38
|
+
rgbBrightness: IUniform<number>;
|
|
39
|
+
rgbContrast: IUniform<number>;
|
|
40
|
+
rgbGamma: IUniform<number>;
|
|
41
|
+
screenHeight: IUniform<number>;
|
|
42
|
+
screenWidth: IUniform<number>;
|
|
43
|
+
size: IUniform<number>;
|
|
44
|
+
spacing: IUniform<number>;
|
|
45
|
+
toModel: IUniform<number[]>;
|
|
46
|
+
transition: IUniform<number>;
|
|
47
|
+
uColor: IUniform<Color>;
|
|
48
|
+
visibleNodes: IUniform<Texture>;
|
|
49
|
+
vnStart: IUniform<number>;
|
|
50
|
+
wClassification: IUniform<number>;
|
|
51
|
+
wElevation: IUniform<number>;
|
|
52
|
+
wIntensity: IUniform<number>;
|
|
53
|
+
wReturnNumber: IUniform<number>;
|
|
54
|
+
wRGB: IUniform<number>;
|
|
55
|
+
wSourceID: IUniform<number>;
|
|
56
|
+
opacityAttenuation: IUniform<number>;
|
|
57
|
+
filterByNormalThreshold: IUniform<number>;
|
|
58
|
+
highlightedPointCoordinate: IUniform<Vector3>;
|
|
59
|
+
highlightedPointColor: IUniform<Vector4>;
|
|
60
|
+
enablePointHighlighting: IUniform<boolean>;
|
|
61
|
+
highlightedPointScale: IUniform<number>;
|
|
62
|
+
normalFilteringMode: IUniform<number>;
|
|
63
|
+
backgroundMap: IUniform<Texture | null>;
|
|
64
|
+
pointCloudID: IUniform<number>;
|
|
65
|
+
pointCloudMixAngle: IUniform<number>;
|
|
66
|
+
stripeDistanceX: IUniform<number>;
|
|
67
|
+
stripeDistanceY: IUniform<number>;
|
|
68
|
+
stripeDivisorX: IUniform<number>;
|
|
69
|
+
stripeDivisorY: IUniform<number>;
|
|
70
|
+
pointCloudMixingMode: IUniform<number>;
|
|
71
|
+
}
|
|
72
|
+
export declare class PointCloudMaterial extends RawShaderMaterial {
|
|
73
|
+
private static readonly helperVec3;
|
|
74
|
+
private static readonly helperVec2;
|
|
75
|
+
/**
|
|
76
|
+
* Use the drawing buffer size instead of the dom client width and height when passing the screen height and screen width uniforms to the
|
|
77
|
+
* shader. This is useful if you have offscreen canvases (which in some browsers return 0 as client width and client height).
|
|
78
|
+
*/
|
|
79
|
+
useDrawingBufferSize: boolean;
|
|
80
|
+
lights: boolean;
|
|
81
|
+
fog: boolean;
|
|
82
|
+
numClipBoxes: number;
|
|
83
|
+
clipBoxes: IClipBox[];
|
|
84
|
+
visibleNodesTexture: Texture | undefined;
|
|
85
|
+
private readonly visibleNodeTextureOffsets;
|
|
86
|
+
private readonly _gradient;
|
|
87
|
+
private gradientTexture;
|
|
88
|
+
private _classification;
|
|
89
|
+
private classificationTexture;
|
|
90
|
+
uniforms: IPointCloudMaterialUniforms & Record<string, IUniform<any>>;
|
|
91
|
+
bbSize: [number, number, number];
|
|
92
|
+
depthMap: Texture | undefined;
|
|
93
|
+
fov: number;
|
|
94
|
+
heightMax: number;
|
|
95
|
+
heightMin: number;
|
|
96
|
+
intensityBrightness: number;
|
|
97
|
+
intensityContrast: number;
|
|
98
|
+
intensityGamma: number;
|
|
99
|
+
intensityRange: [number, number];
|
|
100
|
+
maxSize: number;
|
|
101
|
+
minSize: number;
|
|
102
|
+
octreeSize: number;
|
|
103
|
+
opacity: number;
|
|
104
|
+
rgbBrightness: number;
|
|
105
|
+
rgbContrast: number;
|
|
106
|
+
rgbGamma: number;
|
|
107
|
+
screenHeight: number;
|
|
108
|
+
screenWidth: number;
|
|
109
|
+
size: number;
|
|
110
|
+
spacing: number;
|
|
111
|
+
transition: number;
|
|
112
|
+
color: Color;
|
|
113
|
+
weightClassification: number;
|
|
114
|
+
weightElevation: number;
|
|
115
|
+
weightIntensity: number;
|
|
116
|
+
weightReturnNumber: number;
|
|
117
|
+
weightRGB: number;
|
|
118
|
+
weightSourceID: number;
|
|
119
|
+
opacityAttenuation: number;
|
|
120
|
+
filterByNormalThreshold: number;
|
|
121
|
+
highlightedPointCoordinate: Vector3;
|
|
122
|
+
highlightedPointColor: Vector4;
|
|
123
|
+
enablePointHighlighting: boolean;
|
|
124
|
+
highlightedPointScale: number;
|
|
125
|
+
normalFilteringMode: number;
|
|
126
|
+
backgroundMap: Texture | undefined;
|
|
127
|
+
pointCloudID: number;
|
|
128
|
+
pointCloudMixingMode: number;
|
|
129
|
+
stripeDistanceX: number;
|
|
130
|
+
stripeDistanceY: number;
|
|
131
|
+
stripeDivisorX: number;
|
|
132
|
+
stripeDivisorY: number;
|
|
133
|
+
pointCloudMixAngle: number;
|
|
134
|
+
useClipBox: boolean;
|
|
135
|
+
weighted: boolean;
|
|
136
|
+
pointColorType: PotreePointColorType;
|
|
137
|
+
pointSizeType: PotreePointSizeType;
|
|
138
|
+
clipMode: ClipMode;
|
|
139
|
+
useEDL: boolean;
|
|
140
|
+
shape: PotreePointShape;
|
|
141
|
+
treeType: TreeType;
|
|
142
|
+
pointOpacityType: PointOpacityType;
|
|
143
|
+
useFilterByNormal: boolean;
|
|
144
|
+
useTextureBlending: boolean;
|
|
145
|
+
usePointCloudMixing: boolean;
|
|
146
|
+
highlightPoint: boolean;
|
|
147
|
+
attributes: {
|
|
148
|
+
position: {
|
|
149
|
+
type: string;
|
|
150
|
+
value: never[];
|
|
151
|
+
};
|
|
152
|
+
color: {
|
|
153
|
+
type: string;
|
|
154
|
+
value: never[];
|
|
155
|
+
};
|
|
156
|
+
normal: {
|
|
157
|
+
type: string;
|
|
158
|
+
value: never[];
|
|
159
|
+
};
|
|
160
|
+
intensity: {
|
|
161
|
+
type: string;
|
|
162
|
+
value: never[];
|
|
163
|
+
};
|
|
164
|
+
classification: {
|
|
165
|
+
type: string;
|
|
166
|
+
value: never[];
|
|
167
|
+
};
|
|
168
|
+
returnNumber: {
|
|
169
|
+
type: string;
|
|
170
|
+
value: never[];
|
|
171
|
+
};
|
|
172
|
+
numberOfReturns: {
|
|
173
|
+
type: string;
|
|
174
|
+
value: never[];
|
|
175
|
+
};
|
|
176
|
+
pointSourceID: {
|
|
177
|
+
type: string;
|
|
178
|
+
value: never[];
|
|
179
|
+
};
|
|
180
|
+
indices: {
|
|
181
|
+
type: string;
|
|
182
|
+
value: never[];
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
constructor(parameters?: Partial<IPointCloudMaterialParameters>);
|
|
186
|
+
dispose(): void;
|
|
187
|
+
clearVisibleNodeTextureOffsets(): void;
|
|
188
|
+
updateShaderSource(): void;
|
|
189
|
+
applyDefines(shaderSrc: string): string;
|
|
190
|
+
setPointCloudMixingMode(mode: PointCloudMixingMode): void;
|
|
191
|
+
getPointCloudMixingMode(): PointCloudMixingMode;
|
|
192
|
+
setClipBoxes(clipBoxes: IClipBox[]): void;
|
|
193
|
+
get classification(): IClassification;
|
|
194
|
+
set classification(value: IClassification);
|
|
195
|
+
private recomputeClassification;
|
|
196
|
+
get elevationRange(): [number, number];
|
|
197
|
+
set elevationRange(value: [number, number]);
|
|
198
|
+
getUniform<K extends keyof IPointCloudMaterialUniforms>(name: K): IPointCloudMaterialUniforms[K]['value'];
|
|
199
|
+
setUniform<K extends keyof IPointCloudMaterialUniforms>(name: K, value: IPointCloudMaterialUniforms[K]['value']): void;
|
|
200
|
+
updateMaterial(octree: PointCloudOctree, visibleNodes: IPointCloudTreeNodeBase[], camera: Camera, renderer: WebGLRenderer): void;
|
|
201
|
+
private updateVisibilityTextureData;
|
|
202
|
+
static makeOnBeforeRender(octree: PointCloudOctree, node: IPointCloudTreeNode, pcIndex?: number): (renderer: WebGLRenderer, scene: Scene, camera: Camera, bufferGeometry: BufferGeometry, material: Material) => void;
|
|
203
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Color, Vector4 } from 'three';
|
|
2
|
+
export declare const DEFAULT_RGB_BRIGHTNESS = 0;
|
|
3
|
+
export declare const DEFAULT_RGB_CONTRAST = 0;
|
|
4
|
+
export declare const DEFAULT_RGB_GAMMA = 1;
|
|
5
|
+
export declare const DEFAULT_MAX_POINT_SIZE = 50;
|
|
6
|
+
export declare const DEFAULT_MIN_NODE_PIXEL_SIZE = 50;
|
|
7
|
+
export declare const DEFAULT_MIN_POINT_SIZE = 2;
|
|
8
|
+
export declare const DEFAULT_PICK_WINDOW_SIZE = 15;
|
|
9
|
+
export declare const DEFAULT_POINT_BUDGET = 1000000;
|
|
10
|
+
export declare const MAX_LOADS_TO_GPU = 2;
|
|
11
|
+
export declare const MAX_NUM_NODES_LOADING = 4;
|
|
12
|
+
export declare const PERSPECTIVE_CAMERA = "PerspectiveCamera";
|
|
13
|
+
export declare const COLOR_BLACK: Color;
|
|
14
|
+
export declare const DEFAULT_HIGHLIGHT_COLOR: Vector4;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare enum PotreePointSizeType {
|
|
2
|
+
Fixed = 0,
|
|
3
|
+
Attenuated = 1,
|
|
4
|
+
Adaptive = 2
|
|
5
|
+
}
|
|
6
|
+
export declare enum PotreePointShape {
|
|
7
|
+
Square = 0,
|
|
8
|
+
Circle = 1,
|
|
9
|
+
Paraboloid = 2
|
|
10
|
+
}
|
|
11
|
+
export declare enum TreeType {
|
|
12
|
+
Octree = 0,
|
|
13
|
+
KdTree = 1
|
|
14
|
+
}
|
|
15
|
+
export declare enum PointOpacityType {
|
|
16
|
+
Fixed = 0,
|
|
17
|
+
Attenuated = 1
|
|
18
|
+
}
|
|
19
|
+
export declare enum PotreePointColorType {
|
|
20
|
+
Rgb = 0,
|
|
21
|
+
Color = 1,
|
|
22
|
+
Depth = 2,
|
|
23
|
+
Height = 3,
|
|
24
|
+
Elevation = 3,
|
|
25
|
+
Intensity = 4,
|
|
26
|
+
IntensityGradient = 5,
|
|
27
|
+
Lod = 6,
|
|
28
|
+
LevelOfDetail = 6,
|
|
29
|
+
PointIndex = 7,
|
|
30
|
+
Classification = 8,
|
|
31
|
+
ReturnNumber = 9,
|
|
32
|
+
Source = 10,
|
|
33
|
+
Normal = 11,
|
|
34
|
+
Phong = 12,
|
|
35
|
+
RgbHeight = 13,
|
|
36
|
+
Composite = 50
|
|
37
|
+
}
|
|
38
|
+
export declare enum NormalFilteringMode {
|
|
39
|
+
ABSOLUTE_NORMAL_FILTERING_MODE = 1,
|
|
40
|
+
LESS_EQUAL_NORMAL_FILTERING_MODE = 2,
|
|
41
|
+
GREATER_NORMAL_FILTERING_MODE = 3
|
|
42
|
+
}
|
|
43
|
+
export declare enum PointCloudMixingMode {
|
|
44
|
+
CHECKBOARD = 1,
|
|
45
|
+
STRIPES = 2
|
|
46
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Color, Texture } from 'three';
|
|
2
|
+
import { IClassification, IGradient } from './types';
|
|
3
|
+
export declare function generateDataTexture(width: number, height: number, color: Color): Texture;
|
|
4
|
+
export declare function generateGradientTexture(gradient: IGradient): Texture;
|
|
5
|
+
export declare function generateClassificationTexture(classification: IClassification): Texture;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Color, IUniform as IThreeUniform, Vector4 } from 'three';
|
|
2
|
+
export declare type IGradient = [number, Color][];
|
|
3
|
+
export interface IClassification {
|
|
4
|
+
[value: string]: Vector4;
|
|
5
|
+
DEFAULT: Vector4;
|
|
6
|
+
}
|
|
7
|
+
export interface IUniform<T> extends IThreeUniform {
|
|
8
|
+
type: string;
|
|
9
|
+
value: T;
|
|
10
|
+
}
|