@cognite/reveal 2.0.0-beta.3 → 2.1.2
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/README.md +81 -6
- package/core/cad.d.ts +5 -0
- package/core/index.d.ts +7 -0
- package/{datamodels → core/src/datamodels}/base/SupportedModelTypes.d.ts +4 -4
- package/{datamodels → core/src/datamodels}/base/index.d.ts +6 -6
- package/{datamodels → core/src/datamodels}/base/types.d.ts +14 -13
- package/{datamodels → core/src/datamodels}/cad/CadManager.d.ts +43 -50
- package/{datamodels → core/src/datamodels}/cad/CadModelFactory.d.ts +7 -11
- package/{datamodels → core/src/datamodels}/cad/CadModelSectorLoadStatistics.d.ts +38 -38
- package/core/src/datamodels/cad/createCadManager.d.ts +10 -0
- package/{datamodels → core/src/datamodels}/cad/picking.d.ts +28 -28
- package/{datamodels → core/src/datamodels}/cad/rendering/RenderAlreadyLoadedGeometryProvider.d.ts +9 -10
- package/{datamodels → core/src/datamodels}/cad/sector/CadModelClipper.d.ts +10 -10
- package/{datamodels → core/src/datamodels}/cad/styling/AssetNodeCollection.d.ts +39 -39
- package/{datamodels → core/src/datamodels}/cad/styling/InvertedNodeCollection.d.ts +24 -24
- package/{datamodels → core/src/datamodels}/cad/styling/NodeCollectionDeserializer.d.ts +26 -26
- package/{datamodels → core/src/datamodels}/cad/styling/PopulateIndexSetFromPagedResponseHelper.d.ts +24 -25
- package/{datamodels → core/src/datamodels}/cad/styling/PropertyFilterNodeCollection.d.ts +61 -61
- package/{datamodels → core/src/datamodels}/cad/styling/SinglePropertyFilterNodeCollection.d.ts +60 -63
- package/{datamodels → core/src/datamodels}/cad/styling/index.d.ts +8 -13
- package/{datamodels → core/src/datamodels}/pointcloud/PointCloudFactory.d.ts +9 -9
- package/{datamodels → core/src/datamodels}/pointcloud/PointCloudManager.d.ts +25 -22
- package/{datamodels → core/src/datamodels}/pointcloud/PointCloudMetadata.d.ts +11 -11
- package/{datamodels → core/src/datamodels}/pointcloud/PointCloudMetadataRepository.d.ts +13 -12
- package/{datamodels → core/src/datamodels}/pointcloud/PointCloudNode.d.ts +62 -61
- package/{datamodels → core/src/datamodels}/pointcloud/PotreeGroupWrapper.d.ts +39 -33
- package/{datamodels → core/src/datamodels}/pointcloud/PotreeNodeWrapper.d.ts +38 -38
- package/core/src/datamodels/pointcloud/createPointCloudManager.d.ts +8 -0
- package/{datamodels → core/src/datamodels}/pointcloud/picking.d.ts +29 -29
- package/{datamodels → core/src/datamodels}/pointcloud/types.d.ts +114 -114
- package/core/src/index.d.ts +19 -0
- package/{migration.d.ts → core/src/migration.d.ts} +8 -8
- package/{public → core/src/public}/RevealManager.d.ts +61 -62
- package/{public → core/src/public}/createRevealManager.d.ts +24 -24
- package/{public → core/src/public}/migration/Cognite3DModel.d.ts +323 -297
- package/{public → core/src/public}/migration/Cognite3DViewer.d.ts +545 -535
- package/{public → core/src/public}/migration/CogniteModelBase.d.ts +17 -17
- package/{public → core/src/public}/migration/CognitePointCloudModel.d.ts +121 -127
- package/{public → core/src/public}/migration/NodeIdAndTreeIndexMaps.d.ts +4 -4
- package/{public → core/src/public}/migration/NotSupportedInMigrationWrapperError.d.ts +11 -11
- package/{public → core/src/public}/migration/RenderController.d.ts +4 -4
- package/core/src/public/migration/RevealManagerHelper.d.ts +58 -0
- package/{public → core/src/public}/migration/types.d.ts +240 -222
- package/core/src/public/types.d.ts +45 -0
- package/{utilities → core/src/utilities}/BoundingBoxClipper.d.ts +23 -26
- package/core/src/utilities/Spinner.d.ts +28 -0
- package/{utilities → core/src/utilities}/ViewStateHelper.d.ts +33 -33
- package/{utilities → core/src/utilities}/callActionWithIndicesAsync.d.ts +4 -4
- package/core/src/utilities/index.d.ts +8 -0
- package/{utilities → core/src/utilities}/reflection.d.ts +7 -13
- package/core/src/utilities/worldToViewport.d.ts +31 -0
- package/{utilities/events/clickOrTouchEventOffset.d.ts → core/utilities.d.ts} +4 -4
- package/index.d.ts +8 -20
- package/index.js +176 -121
- package/index.map +1 -1
- package/package.json +47 -120
- package/packages/cad-geometry-loaders/index.d.ts +20 -0
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadLoadingHints.d.ts +11 -11
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadModelSectorBudget.d.ts +26 -21
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadModelUpdateHandler.d.ts +44 -42
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadNode.d.ts +54 -59
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/InstancedMeshManager.d.ts +20 -20
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/cameraconfig.d.ts +12 -12
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/CadMaterialManager.d.ts +37 -39
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/EffectRenderManager.d.ts +83 -83
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/createSimpleGeometryMesh.d.ts +6 -6
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/filterInstanceMesh.d.ts +6 -6
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/triangleMeshes.d.ts +6 -6
- package/packages/cad-geometry-loaders/src/material-manager/rendering/types.d.ts +76 -0
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/NodeAppearanceTextureBuilder.d.ts +50 -51
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/NodeTransformProvider.d.ts +13 -13
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/NodeTransformTextureBuilder.d.ts +23 -23
- package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/TransformOverrideBuffer.d.ts +21 -21
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/CachedRepository.d.ts +25 -26
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/ModelStateHandler.d.ts +12 -12
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/Repository.d.ts +9 -9
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/RootSectorNode.d.ts +12 -12
- package/packages/cad-geometry-loaders/src/sector/SectorLoader.d.ts +28 -0
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/SectorNode.d.ts +21 -20
- package/packages/cad-geometry-loaders/src/sector/SimpleAndDetailedToSector3D.d.ts +20 -0
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/ByVisibilityGpuSectorCuller.d.ts +53 -53
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/OccludingGeometryProvider.d.ts +6 -6
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/OrderSectorsByVisibilityCoverage.d.ts +107 -108
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/SectorCuller.d.ts +33 -33
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/TakenSectorTree.d.ts +24 -24
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/types.d.ts +71 -68
- package/packages/cad-geometry-loaders/src/sector/rxSectorUtilities.d.ts +12 -0
- package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/sectorUtilities.d.ts +19 -20
- package/packages/cad-geometry-loaders/src/utilities/PromiseUtils.d.ts +18 -0
- package/{utilities → packages/cad-geometry-loaders/src/utilities}/arrays.d.ts +5 -5
- package/{datamodels/cad/rendering → packages/cad-geometry-loaders/src/utilities}/float32BufferToMatrix.d.ts +12 -12
- package/{datamodels/cad/sector → packages/cad-geometry-loaders/src/utilities}/groupMeshesByNumber.d.ts +8 -8
- package/{utilities → packages/cad-geometry-loaders/src/utilities}/rxOperations.d.ts +5 -7
- package/{utilities → packages/cad-geometry-loaders/src/utilities}/types.d.ts +48 -67
- package/packages/cad-parsers/index.d.ts +20 -0
- package/{datamodels/cad/sector → packages/cad-parsers/src/cad}/CadSectorParser.d.ts +15 -16
- package/{datamodels/cad/sector → packages/cad-parsers/src/cad}/LevelOfDetail.d.ts +8 -8
- package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/RenderMode.d.ts +15 -15
- package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/computeBoundingBoxFromAttributes.d.ts +9 -9
- package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/filterPrimitives.d.ts +9 -9
- package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/matCapTextureData.d.ts +5 -5
- package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/materials.d.ts +23 -23
- package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/primitiveGeometries.d.ts +31 -31
- package/packages/cad-parsers/src/cad/primitives.d.ts +12 -0
- package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/shaders.d.ts +101 -101
- package/packages/cad-parsers/src/cad/types.d.ts +56 -0
- package/{datamodels/cad/parsers → packages/cad-parsers/src/metadata}/CadMetadataParser.d.ts +7 -7
- package/{datamodels/cad → packages/cad-parsers/src/metadata}/CadModelMetadata.d.ts +44 -36
- package/packages/cad-parsers/src/metadata/CadModelMetadataRepository.d.ts +16 -0
- package/{datamodels/base → packages/cad-parsers/src/metadata}/MetadataRepository.d.ts +6 -6
- package/{datamodels/cad → packages/cad-parsers/src/metadata}/parsers/CadMetadataParserV8.d.ts +51 -50
- package/packages/cad-parsers/src/metadata/types.d.ts +41 -0
- package/{datamodels/cad/sector → packages/cad-parsers/src/utilities}/SectorScene.d.ts +21 -21
- package/packages/cad-parsers/src/utilities/SectorSceneFactory.d.ts +12 -0
- package/packages/cad-parsers/src/utilities/types.d.ts +48 -0
- package/packages/cad-styling/index.d.ts +9 -0
- package/{datamodels/cad/styling → packages/cad-styling/src}/CombineNodeCollectionBase.d.ts +31 -31
- package/{datamodels/cad/styling → packages/cad-styling/src}/IntersectionNodeCollection.d.ts +15 -15
- package/{datamodels/cad → packages/cad-styling/src}/NodeAppearance.d.ts +62 -66
- package/{datamodels/cad/styling → packages/cad-styling/src}/NodeAppearanceProvider.d.ts +29 -29
- package/{datamodels/cad/styling → packages/cad-styling/src}/NodeCollectionBase.d.ts +47 -47
- package/{datamodels/cad/styling → packages/cad-styling/src}/TreeIndexNodeCollection.d.ts +23 -24
- package/{datamodels/cad/styling → packages/cad-styling/src}/UnionNodeCollection.d.ts +15 -15
- package/packages/camera-manager/index.d.ts +4 -0
- package/{combo-camera-controls → packages/camera-manager/src}/ComboControls.d.ts +83 -83
- package/{combo-camera-controls → packages/camera-manager/src}/Keyboard.d.ts +14 -14
- package/packages/logger/index.d.ts +5 -0
- package/packages/logger/src/Log.d.ts +5 -0
- package/packages/modeldata-api/index.d.ts +8 -0
- package/packages/modeldata-api/src/CdfModelDataClient.d.ts +17 -0
- package/{utilities/networking/CdfModelDataClient.d.ts → packages/modeldata-api/src/CdfModelMetadataProvider.d.ts} +36 -45
- package/packages/modeldata-api/src/LocalModelDataClient.d.ts +10 -0
- package/packages/modeldata-api/src/LocalModelMetadataProvider.d.ts +19 -0
- package/{utilities/networking → packages/modeldata-api/src}/Model3DOutputList.d.ts +17 -18
- package/{utilities/networking → packages/modeldata-api/src}/applyDefaultModelTransformation.d.ts +6 -6
- package/packages/modeldata-api/src/types.d.ts +55 -0
- package/packages/modeldata-api/src/utilities.d.ts +7 -0
- package/packages/nodes-api/index.d.ts +7 -0
- package/packages/nodes-api/src/NodesApiClient.d.ts +43 -0
- package/packages/nodes-api/src/NodesCdfClient.d.ts +19 -0
- package/packages/nodes-api/src/NodesLocalClient.d.ts +25 -0
- package/packages/nodes-api/src/types.d.ts +14 -0
- package/packages/tools/index.d.ts +12 -0
- package/{tools → packages/tools/src}/AxisView/AxisViewTool.d.ts +32 -32
- package/{tools → packages/tools/src}/AxisView/types.d.ts +98 -98
- package/{tools → packages/tools/src}/Cognite3DViewerToolBase.d.ts +25 -25
- package/{tools → packages/tools/src}/DebugCameraTool.d.ts +20 -20
- package/{tools → packages/tools/src}/DebugLoadedSectorsTool.d.ts +23 -22
- package/{tools → packages/tools/src}/ExplodedViewTool.d.ts +12 -12
- package/packages/tools/src/Geomap/Geomap.d.ts +14 -0
- package/packages/tools/src/Geomap/GeomapTool.d.ts +21 -0
- package/packages/tools/src/Geomap/MapConfig.d.ts +195 -0
- package/{tools → packages/tools/src}/HtmlOverlayTool.d.ts +88 -88
- package/packages/tools/src/types.d.ts +4 -0
- package/packages/utilities/index.d.ts +24 -0
- package/packages/utilities/src/CameraConfiguration.d.ts +10 -0
- package/{utilities → packages/utilities/src}/IndexSet.d.ts +1 -1
- package/{utilities → packages/utilities/src}/NumericRange.d.ts +21 -21
- package/{utilities → packages/utilities/src}/WebGLRendererStateHelper.d.ts +15 -15
- package/{utilities → packages/utilities/src}/assertNever.d.ts +7 -7
- package/{utilities → packages/utilities/src}/cache/MemoryRequestCache.d.ts +22 -22
- package/{utilities → packages/utilities/src/cache}/MostFrequentlyUsedCache.d.ts +19 -19
- package/{utilities → packages/utilities/src}/cache/RequestCache.d.ts +13 -13
- package/{utilities → packages/utilities/src}/datastructures/DynamicDefragmentedBuffer.d.ts +22 -22
- package/{utilities → packages/utilities/src}/determinePowerOfTwoDimensions.d.ts +11 -11
- package/{utilities → packages/utilities/src}/disposeAttributeArrayOnUpload.d.ts +17 -17
- package/{utilities → packages/utilities/src}/events/EventTrigger.d.ts +13 -13
- package/packages/utilities/src/events/clickOrTouchEventOffset.d.ts +13 -0
- package/{utilities → packages/utilities/src}/events/index.d.ts +5 -5
- package/{utilities → packages/utilities/src}/indexset/IndexSet.d.ts +26 -26
- package/{utilities → packages/utilities/src}/indexset/IntermediateIndexNode.d.ts +26 -26
- package/{utilities → packages/utilities/src}/indexset/LeafIndexNode.d.ts +16 -16
- package/{utilities → packages/utilities/src}/isMobileOrTablet.d.ts +4 -4
- package/{utilities → packages/utilities/src}/metrics.d.ts +15 -15
- package/{utilities → packages/utilities/src}/networking/isTheSameDomain.d.ts +11 -11
- package/{utilities → packages/utilities/src}/objectTraversal.d.ts +8 -8
- package/{utilities → packages/utilities/src}/packFloat.d.ts +6 -6
- package/{revealEnv.d.ts → packages/utilities/src/revealEnv.d.ts} +10 -10
- package/{utilities → packages/utilities/src}/three/AutoDisposeGroup.d.ts +17 -17
- package/packages/utilities/src/three/BoundingBoxLOD.d.ts +27 -0
- package/{utilities → packages/utilities/src}/three/getBox3CornerPoints.d.ts +5 -5
- package/{utilities → packages/utilities/src}/transformCameraConfiguration.d.ts +6 -6
- package/packages/utilities/src/types.d.ts +10 -0
- package/{utilities → packages/utilities/src}/workers/WorkerPool.d.ts +14 -14
- package/tools.d.ts +7 -13
- package/tools.js +252 -12
- package/tools.map +1 -1
- package/combo-camera-controls/index.d.ts +0 -4
- package/datamodels/cad/CadModelMetadataRepository.d.ts +0 -14
- package/datamodels/cad/createCadManager.d.ts +0 -13
- package/datamodels/cad/index.d.ts +0 -8
- package/datamodels/cad/rendering/primitives.d.ts +0 -7
- package/datamodels/cad/rendering/types.d.ts +0 -25
- package/datamodels/cad/sector/SimpleAndDetailedToSector3D.d.ts +0 -20
- package/datamodels/cad/sector/rxSectorUtilities.d.ts +0 -27
- package/datamodels/cad/sector/types.d.ts +0 -113
- package/datamodels/pointcloud/createPointCloudManager.d.ts +0 -10
- package/datamodels/pointcloud/index.d.ts +0 -5
- package/internals.d.ts +0 -27
- package/public/types.d.ts +0 -121
- package/utilities/Spinner.d.ts +0 -13
- package/utilities/index.d.ts +0 -13
- package/utilities/networking/CogniteClientNodeIdAndTreeIndexMapper.d.ts +0 -14
- package/utilities/networking/HttpHeadersProvider.d.ts +0 -7
- package/utilities/networking/LocalModelDataClient.d.ts +0 -23
- package/utilities/networking/types.d.ts +0 -37
- package/utilities/networking/utilities.d.ts +0 -13
- package/utilities/three/dumpRendererToImage.d.ts +0 -5
- package/utilities/three/index.d.ts +0 -6
- package/utilities/worldToViewport.d.ts +0 -11
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import { ConsumedSector } from '../../../cad-parsers';
|
|
5
|
+
import { DetermineSectorsInput, SectorLoadingSpent } from './culling/types';
|
|
6
|
+
import { SectorCuller } from './culling/SectorCuller';
|
|
7
|
+
import { ModelStateHandler } from './ModelStateHandler';
|
|
8
|
+
import { Repository } from './Repository';
|
|
9
|
+
/**
|
|
10
|
+
* Loads sector based on a given camera pose, a set of models and budget.
|
|
11
|
+
* Uses {@link SectorCuller} to determine what to load, {@link Repository} to
|
|
12
|
+
* load sectors and {@link ModelStateHandler} to keep track of what has been
|
|
13
|
+
* loaded to avoid loading data that's already available.
|
|
14
|
+
*
|
|
15
|
+
* The caller is responsible for making the result from the load operation visible
|
|
16
|
+
* on screen.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SectorLoader {
|
|
19
|
+
private readonly _modelStateHandler;
|
|
20
|
+
private readonly _sectorCuller;
|
|
21
|
+
private readonly _sectorRepository;
|
|
22
|
+
private readonly _progressCallback;
|
|
23
|
+
private readonly _collectStatisticsCallback;
|
|
24
|
+
constructor(sectorRepository: Repository, sectorCuller: SectorCuller, modelStateHandler: ModelStateHandler, collectStatisticsCallback: (spent: SectorLoadingSpent) => void, progressCallback: (sectorsLoaded: number, sectorsScheduled: number, sectorsCulled: number) => void);
|
|
25
|
+
loadSectors(input: DetermineSectorsInput): AsyncIterable<ConsumedSector>;
|
|
26
|
+
private filterSectors;
|
|
27
|
+
private startLoadingBatch;
|
|
28
|
+
}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2021 Cognite AS
|
|
3
|
-
*/
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
import { AutoDisposeGroup } from '../../../utilities
|
|
6
|
-
import { LevelOfDetail } from '
|
|
7
|
-
export declare class SectorNode extends THREE.Group {
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
get
|
|
17
|
-
get
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { AutoDisposeGroup } from '../../../utilities';
|
|
6
|
+
import { LevelOfDetail } from '../../../cad-parsers';
|
|
7
|
+
export declare class SectorNode extends THREE.Group {
|
|
8
|
+
readonly sectorPath: string;
|
|
9
|
+
readonly sectorId: number;
|
|
10
|
+
readonly bounds: THREE.Box3;
|
|
11
|
+
readonly depth: number;
|
|
12
|
+
private _group?;
|
|
13
|
+
private _lod;
|
|
14
|
+
private _updatedTimestamp;
|
|
15
|
+
constructor(sectorId: number, sectorPath: string, bounds: THREE.Box3);
|
|
16
|
+
get levelOfDetail(): LevelOfDetail;
|
|
17
|
+
get group(): THREE.Group | undefined;
|
|
18
|
+
get updatedTimestamp(): number;
|
|
19
|
+
updateGeometry(geomtryGroup: AutoDisposeGroup | undefined, levelOfDetail: LevelOfDetail): void;
|
|
20
|
+
resetGeometry(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { SectorQuads } from '@cognite/reveal-parser-worker';
|
|
6
|
+
import { SectorMetadata, InstancedMeshFile, SectorGeometry } from '../../../cad-parsers';
|
|
7
|
+
import { AutoDisposeGroup } from '../../../utilities';
|
|
8
|
+
import { CadMaterialManager } from '../material-manager/CadMaterialManager';
|
|
9
|
+
export declare class SimpleAndDetailedToSector3D {
|
|
10
|
+
private readonly materialManager;
|
|
11
|
+
constructor(materialManager: CadMaterialManager);
|
|
12
|
+
transformSimpleSector(modelIdentifier: string, sector: SectorMetadata, geometry: SectorQuads, geometryClipBox: THREE.Box3 | null): Promise<{
|
|
13
|
+
sectorMeshes: AutoDisposeGroup;
|
|
14
|
+
instancedMeshes: InstancedMeshFile[];
|
|
15
|
+
}>;
|
|
16
|
+
transformDetailedSector(modelIdentifier: string, sector: SectorMetadata, geometry: SectorGeometry, geometryClipBox: THREE.Box3 | null): Promise<{
|
|
17
|
+
sectorMeshes: AutoDisposeGroup;
|
|
18
|
+
instancedMeshes: InstancedMeshFile[];
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2021 Cognite AS
|
|
3
|
-
*/
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { OccludingGeometryProvider } from './OccludingGeometryProvider';
|
|
10
|
-
/**
|
|
11
|
-
* Options for creating GpuBasedSectorCuller.
|
|
12
|
-
*/
|
|
13
|
-
export declare type ByVisibilityGpuSectorCullerOptions = {
|
|
14
|
-
/**
|
|
15
|
-
* Renderer used to determine what sector to load.
|
|
16
|
-
*/
|
|
17
|
-
renderer: THREE.WebGLRenderer;
|
|
18
|
-
/**
|
|
19
|
-
* Optional callback for determining the cost of a sector. The default unit of the cost
|
|
20
|
-
* function is bytes downloaded.
|
|
21
|
-
*/
|
|
22
|
-
determineSectorCost?: DetermineSectorCostDelegate;
|
|
23
|
-
/**
|
|
24
|
-
* Use a custom coverage utility to determine how "visible" each sector is.
|
|
25
|
-
*/
|
|
26
|
-
coverageUtil: OrderSectorsByVisibilityCoverage;
|
|
27
|
-
/**
|
|
28
|
-
* Logging function for debugging.
|
|
29
|
-
*/
|
|
30
|
-
logCallback?: (message?: any, ...optionalParameters: any[]) => void;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* SectorCuller that uses the GPU to determine an approximation
|
|
34
|
-
* of how "visible" each sector is to get a priority for each sector
|
|
35
|
-
* and loads sectors based on priority within a budget.
|
|
36
|
-
*/
|
|
37
|
-
export declare class ByVisibilityGpuSectorCuller implements SectorCuller {
|
|
38
|
-
private readonly options;
|
|
39
|
-
private readonly takenSectors;
|
|
40
|
-
constructor(options: ByVisibilityGpuSectorCullerOptions);
|
|
41
|
-
dispose(): void;
|
|
42
|
-
determineSectors(input: DetermineSectorsInput): {
|
|
43
|
-
wantedSectors: WantedSector[];
|
|
44
|
-
|
|
45
|
-
};
|
|
46
|
-
filterSectorsToLoad(input: DetermineSectorsInput, wantedSectors: WantedSector[]): Promise<WantedSector[]>;
|
|
47
|
-
private update;
|
|
48
|
-
private addHighDetailsForNearSectors;
|
|
49
|
-
private testForClippingOcclusion;
|
|
50
|
-
private markSectorsAsDetailed;
|
|
51
|
-
private log;
|
|
52
|
-
}
|
|
53
|
-
export declare function createDefaultSectorCuller(renderer: THREE.WebGLRenderer, occludingGeometryProvider: OccludingGeometryProvider): SectorCuller;
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { WantedSector } from '../../../../cad-parsers';
|
|
6
|
+
import { OrderSectorsByVisibilityCoverage } from './OrderSectorsByVisibilityCoverage';
|
|
7
|
+
import { SectorCuller } from './SectorCuller';
|
|
8
|
+
import { DetermineSectorCostDelegate, DetermineSectorsInput, SectorLoadingSpent } from './types';
|
|
9
|
+
import { OccludingGeometryProvider } from './OccludingGeometryProvider';
|
|
10
|
+
/**
|
|
11
|
+
* Options for creating GpuBasedSectorCuller.
|
|
12
|
+
*/
|
|
13
|
+
export declare type ByVisibilityGpuSectorCullerOptions = {
|
|
14
|
+
/**
|
|
15
|
+
* Renderer used to determine what sector to load.
|
|
16
|
+
*/
|
|
17
|
+
renderer: THREE.WebGLRenderer;
|
|
18
|
+
/**
|
|
19
|
+
* Optional callback for determining the cost of a sector. The default unit of the cost
|
|
20
|
+
* function is bytes downloaded.
|
|
21
|
+
*/
|
|
22
|
+
determineSectorCost?: DetermineSectorCostDelegate;
|
|
23
|
+
/**
|
|
24
|
+
* Use a custom coverage utility to determine how "visible" each sector is.
|
|
25
|
+
*/
|
|
26
|
+
coverageUtil: OrderSectorsByVisibilityCoverage;
|
|
27
|
+
/**
|
|
28
|
+
* Logging function for debugging.
|
|
29
|
+
*/
|
|
30
|
+
logCallback?: (message?: any, ...optionalParameters: any[]) => void;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* SectorCuller that uses the GPU to determine an approximation
|
|
34
|
+
* of how "visible" each sector is to get a priority for each sector
|
|
35
|
+
* and loads sectors based on priority within a budget.
|
|
36
|
+
*/
|
|
37
|
+
export declare class ByVisibilityGpuSectorCuller implements SectorCuller {
|
|
38
|
+
private readonly options;
|
|
39
|
+
private readonly takenSectors;
|
|
40
|
+
constructor(options: ByVisibilityGpuSectorCullerOptions);
|
|
41
|
+
dispose(): void;
|
|
42
|
+
determineSectors(input: DetermineSectorsInput): {
|
|
43
|
+
wantedSectors: WantedSector[];
|
|
44
|
+
spentBudget: SectorLoadingSpent;
|
|
45
|
+
};
|
|
46
|
+
filterSectorsToLoad(input: DetermineSectorsInput, wantedSectors: WantedSector[]): Promise<WantedSector[]>;
|
|
47
|
+
private update;
|
|
48
|
+
private addHighDetailsForNearSectors;
|
|
49
|
+
private testForClippingOcclusion;
|
|
50
|
+
private markSectorsAsDetailed;
|
|
51
|
+
private log;
|
|
52
|
+
}
|
|
53
|
+
export declare function createDefaultSectorCuller(renderer: THREE.WebGLRenderer, occludingGeometryProvider: OccludingGeometryProvider): SectorCuller;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2021 Cognite AS
|
|
3
|
-
*/
|
|
4
|
-
export interface OccludingGeometryProvider {
|
|
5
|
-
renderOccludingGeometry(target: THREE.WebGLRenderTarget | null, camera: THREE.PerspectiveCamera): void;
|
|
6
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
export interface OccludingGeometryProvider {
|
|
5
|
+
renderOccludingGeometry(target: THREE.WebGLRenderTarget | null, camera: THREE.PerspectiveCamera): void;
|
|
6
|
+
}
|
|
@@ -1,108 +1,107 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2021 Cognite AS
|
|
3
|
-
*/
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
import { WantedSector } from '
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
*
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
*
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
private
|
|
77
|
-
private
|
|
78
|
-
private readonly
|
|
79
|
-
private
|
|
80
|
-
private readonly
|
|
81
|
-
private
|
|
82
|
-
private readonly
|
|
83
|
-
private readonly
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
private
|
|
98
|
-
private
|
|
99
|
-
private
|
|
100
|
-
private
|
|
101
|
-
private
|
|
102
|
-
private
|
|
103
|
-
private
|
|
104
|
-
private
|
|
105
|
-
private
|
|
106
|
-
private
|
|
107
|
-
|
|
108
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { CadModelMetadata, WantedSector } from '../../../../cad-parsers';
|
|
6
|
+
import { OccludingGeometryProvider } from './OccludingGeometryProvider';
|
|
7
|
+
/**
|
|
8
|
+
* Options for OrderSectorsByVisibleCoverage.
|
|
9
|
+
*/
|
|
10
|
+
export interface OrderSectorsByVisibleCoverageOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Renderer used to render coverage.
|
|
13
|
+
*/
|
|
14
|
+
renderer: THREE.WebGLRenderer;
|
|
15
|
+
/**
|
|
16
|
+
* Initializes a render target with already loaded geometry for pre-load
|
|
17
|
+
* occlusion.
|
|
18
|
+
*/
|
|
19
|
+
occludingGeometryProvider: OccludingGeometryProvider;
|
|
20
|
+
}
|
|
21
|
+
export declare type PrioritizedSectorIdentifier = {
|
|
22
|
+
/**
|
|
23
|
+
* The CAD model that holds the sector.
|
|
24
|
+
*/
|
|
25
|
+
model: CadModelMetadata;
|
|
26
|
+
/**
|
|
27
|
+
* Sector ID contained in the model provided.
|
|
28
|
+
*/
|
|
29
|
+
sectorId: number;
|
|
30
|
+
/**
|
|
31
|
+
* A number between 0 and 1 indicating how 'important' the sector is.
|
|
32
|
+
*/
|
|
33
|
+
priority: number;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Interface for classes that estimates how visible a sector will be on screen.
|
|
37
|
+
*/
|
|
38
|
+
export interface OrderSectorsByVisibilityCoverage {
|
|
39
|
+
/**
|
|
40
|
+
* Dispose any resources that cannot be garbage collected.
|
|
41
|
+
*/
|
|
42
|
+
dispose(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Specifies what CAD models to estimate sector visibility for.
|
|
45
|
+
* @param models Models to estimate sector visibility for.
|
|
46
|
+
*/
|
|
47
|
+
setModels(models: CadModelMetadata[]): void;
|
|
48
|
+
/**
|
|
49
|
+
* Specify clipping planes.
|
|
50
|
+
* @param planes A list of clip planes or null to disable clipping.
|
|
51
|
+
*/
|
|
52
|
+
setClipping(planes: THREE.Plane[] | null): void;
|
|
53
|
+
/**
|
|
54
|
+
* Cull a set of sectors potentially being loaded towards already loaded geometry to determine if
|
|
55
|
+
* the sector is visible or occluded.
|
|
56
|
+
*/
|
|
57
|
+
cullOccludedSectors(camera: THREE.PerspectiveCamera, sectors: WantedSector[]): WantedSector[];
|
|
58
|
+
/**
|
|
59
|
+
* Estimates how visible the different sectors for the models added are and returns
|
|
60
|
+
* a prioritized list.
|
|
61
|
+
* @param camera The current viewpoint.
|
|
62
|
+
*/
|
|
63
|
+
orderSectorsByVisibility(camera: THREE.Camera): PrioritizedSectorIdentifier[];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Estimates sector visibility by rendering their bounds with a pattern confirming to how
|
|
67
|
+
* much of the geometry covers of the bounding box.
|
|
68
|
+
*/
|
|
69
|
+
export declare class GpuOrderSectorsByVisibilityCoverage implements OrderSectorsByVisibilityCoverage {
|
|
70
|
+
/**
|
|
71
|
+
* Factor of how big render target we use for determining visibility of sectors
|
|
72
|
+
* compared to the full render size.
|
|
73
|
+
*/
|
|
74
|
+
private static readonly CoverageRenderTargetScalingFactor;
|
|
75
|
+
private sectorIdOffset;
|
|
76
|
+
private readonly scene;
|
|
77
|
+
private readonly _renderer;
|
|
78
|
+
private readonly _alreadyLoadedProvider;
|
|
79
|
+
private _debugImageElement?;
|
|
80
|
+
private readonly renderTarget;
|
|
81
|
+
private readonly containers;
|
|
82
|
+
private readonly buffers;
|
|
83
|
+
private readonly coverageMaterial;
|
|
84
|
+
constructor(options: OrderSectorsByVisibleCoverageOptions);
|
|
85
|
+
dispose(): void;
|
|
86
|
+
get renderer(): THREE.WebGLRenderer;
|
|
87
|
+
createDebugCanvas(options?: {
|
|
88
|
+
width: number;
|
|
89
|
+
height: number;
|
|
90
|
+
}): HTMLElement;
|
|
91
|
+
setModels(models: CadModelMetadata[]): void;
|
|
92
|
+
setClipping(planes: THREE.Plane[] | null): void;
|
|
93
|
+
cullOccludedSectors(camera: THREE.PerspectiveCamera, sectors: WantedSector[]): WantedSector[];
|
|
94
|
+
orderSectorsByVisibility(camera: THREE.PerspectiveCamera): PrioritizedSectorIdentifier[];
|
|
95
|
+
private readonly _ensureBuffersCorrectSizeVars;
|
|
96
|
+
private ensureBuffersCorrectSize;
|
|
97
|
+
private renderSectors;
|
|
98
|
+
private setAllSectorsVisible;
|
|
99
|
+
private setSectorsVisibility;
|
|
100
|
+
private removeModel;
|
|
101
|
+
private deleteSectorsFromBuffers;
|
|
102
|
+
private addModel;
|
|
103
|
+
private updateModel;
|
|
104
|
+
private findSectorContainer;
|
|
105
|
+
private unpackSectorVisibility;
|
|
106
|
+
private createSectorTreeGeometry;
|
|
107
|
+
}
|
package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/SectorCuller.d.ts
RENAMED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2021 Cognite AS
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
/**
|
|
7
|
-
* Interface for implementations that are responsible for determining
|
|
8
|
-
* what sectors should be loaded (i.e. "culls" sectors).
|
|
9
|
-
*/
|
|
10
|
-
export interface SectorCuller {
|
|
11
|
-
/**
|
|
12
|
-
* Determine initial sector prioritization about what we think to load. This provides an initial guesstimate of
|
|
13
|
-
* what sectors we should load. Use {@link filterSectorsToLoad} to improve this estimate as new data is loaded.
|
|
14
|
-
* @param input
|
|
15
|
-
*/
|
|
16
|
-
determineSectors(input: DetermineSectorsInput): {
|
|
17
|
-
wantedSectors: WantedSector[];
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Evaluates if sectors provided should be loaded or not, e.g. based on geometry we have now loaded
|
|
22
|
-
* since {@link determineSectors} was called. This can be used to e.g. implement pre-load occlusion culling
|
|
23
|
-
* of sectors based on geometry that has been loaded.
|
|
24
|
-
*
|
|
25
|
-
* @param input Same input as used in {@link determineSectors}.
|
|
26
|
-
* @param wantedSectorsBatch A set of sectors from {@link determineSectors}, e.g. in batches of 5-10.
|
|
27
|
-
*/
|
|
28
|
-
filterSectorsToLoad(input: DetermineSectorsInput, wantedSectorsBatch: WantedSector[]): Promise<WantedSector[]>;
|
|
29
|
-
/**
|
|
30
|
-
* Dispose all non-GCed resoures held.
|
|
31
|
-
*/
|
|
32
|
-
dispose(): void;
|
|
33
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import { WantedSector } from '../../../../cad-parsers';
|
|
5
|
+
import { DetermineSectorsInput, SectorLoadingSpent } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Interface for implementations that are responsible for determining
|
|
8
|
+
* what sectors should be loaded (i.e. "culls" sectors).
|
|
9
|
+
*/
|
|
10
|
+
export interface SectorCuller {
|
|
11
|
+
/**
|
|
12
|
+
* Determine initial sector prioritization about what we think to load. This provides an initial guesstimate of
|
|
13
|
+
* what sectors we should load. Use {@link filterSectorsToLoad} to improve this estimate as new data is loaded.
|
|
14
|
+
* @param input
|
|
15
|
+
*/
|
|
16
|
+
determineSectors(input: DetermineSectorsInput): {
|
|
17
|
+
wantedSectors: WantedSector[];
|
|
18
|
+
spentBudget: SectorLoadingSpent;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Evaluates if sectors provided should be loaded or not, e.g. based on geometry we have now loaded
|
|
22
|
+
* since {@link determineSectors} was called. This can be used to e.g. implement pre-load occlusion culling
|
|
23
|
+
* of sectors based on geometry that has been loaded.
|
|
24
|
+
*
|
|
25
|
+
* @param input Same input as used in {@link determineSectors}.
|
|
26
|
+
* @param wantedSectorsBatch A set of sectors from {@link determineSectors}, e.g. in batches of 5-10.
|
|
27
|
+
*/
|
|
28
|
+
filterSectorsToLoad(input: DetermineSectorsInput, wantedSectorsBatch: WantedSector[]): Promise<WantedSector[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Dispose all non-GCed resoures held.
|
|
31
|
+
*/
|
|
32
|
+
dispose(): void;
|
|
33
|
+
}
|
package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/TakenSectorTree.d.ts
RENAMED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2021 Cognite AS
|
|
3
|
-
*/
|
|
4
|
-
import { SectorMetadata } from '
|
|
5
|
-
import { PrioritizedWantedSector, DetermineSectorCostDelegate, SectorCost } from './types';
|
|
6
|
-
export declare class TakenSectorTree {
|
|
7
|
-
get totalCost(): SectorCost;
|
|
8
|
-
private readonly sectors;
|
|
9
|
-
private readonly determineSectorCost;
|
|
10
|
-
private _totalCost;
|
|
11
|
-
constructor(sectorRoot: SectorMetadata, determineSectorCost: DetermineSectorCostDelegate);
|
|
12
|
-
determineWantedSectorCount(): number;
|
|
13
|
-
toWantedSectors(
|
|
14
|
-
markSectorDetailed(sectorId: number, priority: number): void;
|
|
15
|
-
/**
|
|
16
|
-
* Replaces a Simple sector by marking all its non-detailed children as Simple and
|
|
17
|
-
* marking the sector itself Detailed.
|
|
18
|
-
*/
|
|
19
|
-
private replaceSimpleWithDetailed;
|
|
20
|
-
private markAllDiscardedChildrenAsSimple;
|
|
21
|
-
private setSectorLod;
|
|
22
|
-
private setSectorPriority;
|
|
23
|
-
private getSectorLod;
|
|
24
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import { SectorMetadata } from '../../../../cad-parsers';
|
|
5
|
+
import { PrioritizedWantedSector, DetermineSectorCostDelegate, SectorCost } from './types';
|
|
6
|
+
export declare class TakenSectorTree {
|
|
7
|
+
get totalCost(): SectorCost;
|
|
8
|
+
private readonly sectors;
|
|
9
|
+
private readonly determineSectorCost;
|
|
10
|
+
private _totalCost;
|
|
11
|
+
constructor(sectorRoot: SectorMetadata, determineSectorCost: DetermineSectorCostDelegate);
|
|
12
|
+
determineWantedSectorCount(): number;
|
|
13
|
+
toWantedSectors(modelIdentifier: string, modelBaseUrl: string, geometryClipBox: THREE.Box3 | null): PrioritizedWantedSector[];
|
|
14
|
+
markSectorDetailed(sectorId: number, priority: number): void;
|
|
15
|
+
/**
|
|
16
|
+
* Replaces a Simple sector by marking all its non-detailed children as Simple and
|
|
17
|
+
* marking the sector itself Detailed.
|
|
18
|
+
*/
|
|
19
|
+
private replaceSimpleWithDetailed;
|
|
20
|
+
private markAllDiscardedChildrenAsSimple;
|
|
21
|
+
private setSectorLod;
|
|
22
|
+
private setSectorPriority;
|
|
23
|
+
private getSectorLod;
|
|
24
|
+
}
|