@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.
Files changed (210) hide show
  1. package/README.md +81 -6
  2. package/core/cad.d.ts +5 -0
  3. package/core/index.d.ts +7 -0
  4. package/{datamodels → core/src/datamodels}/base/SupportedModelTypes.d.ts +4 -4
  5. package/{datamodels → core/src/datamodels}/base/index.d.ts +6 -6
  6. package/{datamodels → core/src/datamodels}/base/types.d.ts +14 -13
  7. package/{datamodels → core/src/datamodels}/cad/CadManager.d.ts +43 -50
  8. package/{datamodels → core/src/datamodels}/cad/CadModelFactory.d.ts +7 -11
  9. package/{datamodels → core/src/datamodels}/cad/CadModelSectorLoadStatistics.d.ts +38 -38
  10. package/core/src/datamodels/cad/createCadManager.d.ts +10 -0
  11. package/{datamodels → core/src/datamodels}/cad/picking.d.ts +28 -28
  12. package/{datamodels → core/src/datamodels}/cad/rendering/RenderAlreadyLoadedGeometryProvider.d.ts +9 -10
  13. package/{datamodels → core/src/datamodels}/cad/sector/CadModelClipper.d.ts +10 -10
  14. package/{datamodels → core/src/datamodels}/cad/styling/AssetNodeCollection.d.ts +39 -39
  15. package/{datamodels → core/src/datamodels}/cad/styling/InvertedNodeCollection.d.ts +24 -24
  16. package/{datamodels → core/src/datamodels}/cad/styling/NodeCollectionDeserializer.d.ts +26 -26
  17. package/{datamodels → core/src/datamodels}/cad/styling/PopulateIndexSetFromPagedResponseHelper.d.ts +24 -25
  18. package/{datamodels → core/src/datamodels}/cad/styling/PropertyFilterNodeCollection.d.ts +61 -61
  19. package/{datamodels → core/src/datamodels}/cad/styling/SinglePropertyFilterNodeCollection.d.ts +60 -63
  20. package/{datamodels → core/src/datamodels}/cad/styling/index.d.ts +8 -13
  21. package/{datamodels → core/src/datamodels}/pointcloud/PointCloudFactory.d.ts +9 -9
  22. package/{datamodels → core/src/datamodels}/pointcloud/PointCloudManager.d.ts +25 -22
  23. package/{datamodels → core/src/datamodels}/pointcloud/PointCloudMetadata.d.ts +11 -11
  24. package/{datamodels → core/src/datamodels}/pointcloud/PointCloudMetadataRepository.d.ts +13 -12
  25. package/{datamodels → core/src/datamodels}/pointcloud/PointCloudNode.d.ts +62 -61
  26. package/{datamodels → core/src/datamodels}/pointcloud/PotreeGroupWrapper.d.ts +39 -33
  27. package/{datamodels → core/src/datamodels}/pointcloud/PotreeNodeWrapper.d.ts +38 -38
  28. package/core/src/datamodels/pointcloud/createPointCloudManager.d.ts +8 -0
  29. package/{datamodels → core/src/datamodels}/pointcloud/picking.d.ts +29 -29
  30. package/{datamodels → core/src/datamodels}/pointcloud/types.d.ts +114 -114
  31. package/core/src/index.d.ts +19 -0
  32. package/{migration.d.ts → core/src/migration.d.ts} +8 -8
  33. package/{public → core/src/public}/RevealManager.d.ts +61 -62
  34. package/{public → core/src/public}/createRevealManager.d.ts +24 -24
  35. package/{public → core/src/public}/migration/Cognite3DModel.d.ts +323 -297
  36. package/{public → core/src/public}/migration/Cognite3DViewer.d.ts +545 -535
  37. package/{public → core/src/public}/migration/CogniteModelBase.d.ts +17 -17
  38. package/{public → core/src/public}/migration/CognitePointCloudModel.d.ts +121 -127
  39. package/{public → core/src/public}/migration/NodeIdAndTreeIndexMaps.d.ts +4 -4
  40. package/{public → core/src/public}/migration/NotSupportedInMigrationWrapperError.d.ts +11 -11
  41. package/{public → core/src/public}/migration/RenderController.d.ts +4 -4
  42. package/core/src/public/migration/RevealManagerHelper.d.ts +58 -0
  43. package/{public → core/src/public}/migration/types.d.ts +240 -222
  44. package/core/src/public/types.d.ts +45 -0
  45. package/{utilities → core/src/utilities}/BoundingBoxClipper.d.ts +23 -26
  46. package/core/src/utilities/Spinner.d.ts +28 -0
  47. package/{utilities → core/src/utilities}/ViewStateHelper.d.ts +33 -33
  48. package/{utilities → core/src/utilities}/callActionWithIndicesAsync.d.ts +4 -4
  49. package/core/src/utilities/index.d.ts +8 -0
  50. package/{utilities → core/src/utilities}/reflection.d.ts +7 -13
  51. package/core/src/utilities/worldToViewport.d.ts +31 -0
  52. package/{utilities/events/clickOrTouchEventOffset.d.ts → core/utilities.d.ts} +4 -4
  53. package/index.d.ts +8 -20
  54. package/index.js +176 -121
  55. package/index.map +1 -1
  56. package/package.json +47 -120
  57. package/packages/cad-geometry-loaders/index.d.ts +20 -0
  58. package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadLoadingHints.d.ts +11 -11
  59. package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadModelSectorBudget.d.ts +26 -21
  60. package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadModelUpdateHandler.d.ts +44 -42
  61. package/{datamodels/cad → packages/cad-geometry-loaders/src}/CadNode.d.ts +54 -59
  62. package/{datamodels/cad → packages/cad-geometry-loaders/src}/InstancedMeshManager.d.ts +20 -20
  63. package/{datamodels/cad → packages/cad-geometry-loaders/src}/cameraconfig.d.ts +12 -12
  64. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/CadMaterialManager.d.ts +37 -39
  65. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/EffectRenderManager.d.ts +83 -83
  66. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/createSimpleGeometryMesh.d.ts +6 -6
  67. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/filterInstanceMesh.d.ts +6 -6
  68. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/rendering/triangleMeshes.d.ts +6 -6
  69. package/packages/cad-geometry-loaders/src/material-manager/rendering/types.d.ts +76 -0
  70. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/NodeAppearanceTextureBuilder.d.ts +50 -51
  71. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/NodeTransformProvider.d.ts +13 -13
  72. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/NodeTransformTextureBuilder.d.ts +23 -23
  73. package/{datamodels/cad → packages/cad-geometry-loaders/src/material-manager}/styling/TransformOverrideBuffer.d.ts +21 -21
  74. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/CachedRepository.d.ts +25 -26
  75. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/ModelStateHandler.d.ts +12 -12
  76. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/Repository.d.ts +9 -9
  77. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/RootSectorNode.d.ts +12 -12
  78. package/packages/cad-geometry-loaders/src/sector/SectorLoader.d.ts +28 -0
  79. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/SectorNode.d.ts +21 -20
  80. package/packages/cad-geometry-loaders/src/sector/SimpleAndDetailedToSector3D.d.ts +20 -0
  81. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/ByVisibilityGpuSectorCuller.d.ts +53 -53
  82. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/OccludingGeometryProvider.d.ts +6 -6
  83. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/OrderSectorsByVisibilityCoverage.d.ts +107 -108
  84. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/SectorCuller.d.ts +33 -33
  85. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/TakenSectorTree.d.ts +24 -24
  86. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/culling/types.d.ts +71 -68
  87. package/packages/cad-geometry-loaders/src/sector/rxSectorUtilities.d.ts +12 -0
  88. package/{datamodels/cad → packages/cad-geometry-loaders/src}/sector/sectorUtilities.d.ts +19 -20
  89. package/packages/cad-geometry-loaders/src/utilities/PromiseUtils.d.ts +18 -0
  90. package/{utilities → packages/cad-geometry-loaders/src/utilities}/arrays.d.ts +5 -5
  91. package/{datamodels/cad/rendering → packages/cad-geometry-loaders/src/utilities}/float32BufferToMatrix.d.ts +12 -12
  92. package/{datamodels/cad/sector → packages/cad-geometry-loaders/src/utilities}/groupMeshesByNumber.d.ts +8 -8
  93. package/{utilities → packages/cad-geometry-loaders/src/utilities}/rxOperations.d.ts +5 -7
  94. package/{utilities → packages/cad-geometry-loaders/src/utilities}/types.d.ts +48 -67
  95. package/packages/cad-parsers/index.d.ts +20 -0
  96. package/{datamodels/cad/sector → packages/cad-parsers/src/cad}/CadSectorParser.d.ts +15 -16
  97. package/{datamodels/cad/sector → packages/cad-parsers/src/cad}/LevelOfDetail.d.ts +8 -8
  98. package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/RenderMode.d.ts +15 -15
  99. package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/computeBoundingBoxFromAttributes.d.ts +9 -9
  100. package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/filterPrimitives.d.ts +9 -9
  101. package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/matCapTextureData.d.ts +5 -5
  102. package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/materials.d.ts +23 -23
  103. package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/primitiveGeometries.d.ts +31 -31
  104. package/packages/cad-parsers/src/cad/primitives.d.ts +12 -0
  105. package/{datamodels/cad/rendering → packages/cad-parsers/src/cad}/shaders.d.ts +101 -101
  106. package/packages/cad-parsers/src/cad/types.d.ts +56 -0
  107. package/{datamodels/cad/parsers → packages/cad-parsers/src/metadata}/CadMetadataParser.d.ts +7 -7
  108. package/{datamodels/cad → packages/cad-parsers/src/metadata}/CadModelMetadata.d.ts +44 -36
  109. package/packages/cad-parsers/src/metadata/CadModelMetadataRepository.d.ts +16 -0
  110. package/{datamodels/base → packages/cad-parsers/src/metadata}/MetadataRepository.d.ts +6 -6
  111. package/{datamodels/cad → packages/cad-parsers/src/metadata}/parsers/CadMetadataParserV8.d.ts +51 -50
  112. package/packages/cad-parsers/src/metadata/types.d.ts +41 -0
  113. package/{datamodels/cad/sector → packages/cad-parsers/src/utilities}/SectorScene.d.ts +21 -21
  114. package/packages/cad-parsers/src/utilities/SectorSceneFactory.d.ts +12 -0
  115. package/packages/cad-parsers/src/utilities/types.d.ts +48 -0
  116. package/packages/cad-styling/index.d.ts +9 -0
  117. package/{datamodels/cad/styling → packages/cad-styling/src}/CombineNodeCollectionBase.d.ts +31 -31
  118. package/{datamodels/cad/styling → packages/cad-styling/src}/IntersectionNodeCollection.d.ts +15 -15
  119. package/{datamodels/cad → packages/cad-styling/src}/NodeAppearance.d.ts +62 -66
  120. package/{datamodels/cad/styling → packages/cad-styling/src}/NodeAppearanceProvider.d.ts +29 -29
  121. package/{datamodels/cad/styling → packages/cad-styling/src}/NodeCollectionBase.d.ts +47 -47
  122. package/{datamodels/cad/styling → packages/cad-styling/src}/TreeIndexNodeCollection.d.ts +23 -24
  123. package/{datamodels/cad/styling → packages/cad-styling/src}/UnionNodeCollection.d.ts +15 -15
  124. package/packages/camera-manager/index.d.ts +4 -0
  125. package/{combo-camera-controls → packages/camera-manager/src}/ComboControls.d.ts +83 -83
  126. package/{combo-camera-controls → packages/camera-manager/src}/Keyboard.d.ts +14 -14
  127. package/packages/logger/index.d.ts +5 -0
  128. package/packages/logger/src/Log.d.ts +5 -0
  129. package/packages/modeldata-api/index.d.ts +8 -0
  130. package/packages/modeldata-api/src/CdfModelDataClient.d.ts +17 -0
  131. package/{utilities/networking/CdfModelDataClient.d.ts → packages/modeldata-api/src/CdfModelMetadataProvider.d.ts} +36 -45
  132. package/packages/modeldata-api/src/LocalModelDataClient.d.ts +10 -0
  133. package/packages/modeldata-api/src/LocalModelMetadataProvider.d.ts +19 -0
  134. package/{utilities/networking → packages/modeldata-api/src}/Model3DOutputList.d.ts +17 -18
  135. package/{utilities/networking → packages/modeldata-api/src}/applyDefaultModelTransformation.d.ts +6 -6
  136. package/packages/modeldata-api/src/types.d.ts +55 -0
  137. package/packages/modeldata-api/src/utilities.d.ts +7 -0
  138. package/packages/nodes-api/index.d.ts +7 -0
  139. package/packages/nodes-api/src/NodesApiClient.d.ts +43 -0
  140. package/packages/nodes-api/src/NodesCdfClient.d.ts +19 -0
  141. package/packages/nodes-api/src/NodesLocalClient.d.ts +25 -0
  142. package/packages/nodes-api/src/types.d.ts +14 -0
  143. package/packages/tools/index.d.ts +12 -0
  144. package/{tools → packages/tools/src}/AxisView/AxisViewTool.d.ts +32 -32
  145. package/{tools → packages/tools/src}/AxisView/types.d.ts +98 -98
  146. package/{tools → packages/tools/src}/Cognite3DViewerToolBase.d.ts +25 -25
  147. package/{tools → packages/tools/src}/DebugCameraTool.d.ts +20 -20
  148. package/{tools → packages/tools/src}/DebugLoadedSectorsTool.d.ts +23 -22
  149. package/{tools → packages/tools/src}/ExplodedViewTool.d.ts +12 -12
  150. package/packages/tools/src/Geomap/Geomap.d.ts +14 -0
  151. package/packages/tools/src/Geomap/GeomapTool.d.ts +21 -0
  152. package/packages/tools/src/Geomap/MapConfig.d.ts +195 -0
  153. package/{tools → packages/tools/src}/HtmlOverlayTool.d.ts +88 -88
  154. package/packages/tools/src/types.d.ts +4 -0
  155. package/packages/utilities/index.d.ts +24 -0
  156. package/packages/utilities/src/CameraConfiguration.d.ts +10 -0
  157. package/{utilities → packages/utilities/src}/IndexSet.d.ts +1 -1
  158. package/{utilities → packages/utilities/src}/NumericRange.d.ts +21 -21
  159. package/{utilities → packages/utilities/src}/WebGLRendererStateHelper.d.ts +15 -15
  160. package/{utilities → packages/utilities/src}/assertNever.d.ts +7 -7
  161. package/{utilities → packages/utilities/src}/cache/MemoryRequestCache.d.ts +22 -22
  162. package/{utilities → packages/utilities/src/cache}/MostFrequentlyUsedCache.d.ts +19 -19
  163. package/{utilities → packages/utilities/src}/cache/RequestCache.d.ts +13 -13
  164. package/{utilities → packages/utilities/src}/datastructures/DynamicDefragmentedBuffer.d.ts +22 -22
  165. package/{utilities → packages/utilities/src}/determinePowerOfTwoDimensions.d.ts +11 -11
  166. package/{utilities → packages/utilities/src}/disposeAttributeArrayOnUpload.d.ts +17 -17
  167. package/{utilities → packages/utilities/src}/events/EventTrigger.d.ts +13 -13
  168. package/packages/utilities/src/events/clickOrTouchEventOffset.d.ts +13 -0
  169. package/{utilities → packages/utilities/src}/events/index.d.ts +5 -5
  170. package/{utilities → packages/utilities/src}/indexset/IndexSet.d.ts +26 -26
  171. package/{utilities → packages/utilities/src}/indexset/IntermediateIndexNode.d.ts +26 -26
  172. package/{utilities → packages/utilities/src}/indexset/LeafIndexNode.d.ts +16 -16
  173. package/{utilities → packages/utilities/src}/isMobileOrTablet.d.ts +4 -4
  174. package/{utilities → packages/utilities/src}/metrics.d.ts +15 -15
  175. package/{utilities → packages/utilities/src}/networking/isTheSameDomain.d.ts +11 -11
  176. package/{utilities → packages/utilities/src}/objectTraversal.d.ts +8 -8
  177. package/{utilities → packages/utilities/src}/packFloat.d.ts +6 -6
  178. package/{revealEnv.d.ts → packages/utilities/src/revealEnv.d.ts} +10 -10
  179. package/{utilities → packages/utilities/src}/three/AutoDisposeGroup.d.ts +17 -17
  180. package/packages/utilities/src/three/BoundingBoxLOD.d.ts +27 -0
  181. package/{utilities → packages/utilities/src}/three/getBox3CornerPoints.d.ts +5 -5
  182. package/{utilities → packages/utilities/src}/transformCameraConfiguration.d.ts +6 -6
  183. package/packages/utilities/src/types.d.ts +10 -0
  184. package/{utilities → packages/utilities/src}/workers/WorkerPool.d.ts +14 -14
  185. package/tools.d.ts +7 -13
  186. package/tools.js +252 -12
  187. package/tools.map +1 -1
  188. package/combo-camera-controls/index.d.ts +0 -4
  189. package/datamodels/cad/CadModelMetadataRepository.d.ts +0 -14
  190. package/datamodels/cad/createCadManager.d.ts +0 -13
  191. package/datamodels/cad/index.d.ts +0 -8
  192. package/datamodels/cad/rendering/primitives.d.ts +0 -7
  193. package/datamodels/cad/rendering/types.d.ts +0 -25
  194. package/datamodels/cad/sector/SimpleAndDetailedToSector3D.d.ts +0 -20
  195. package/datamodels/cad/sector/rxSectorUtilities.d.ts +0 -27
  196. package/datamodels/cad/sector/types.d.ts +0 -113
  197. package/datamodels/pointcloud/createPointCloudManager.d.ts +0 -10
  198. package/datamodels/pointcloud/index.d.ts +0 -5
  199. package/internals.d.ts +0 -27
  200. package/public/types.d.ts +0 -121
  201. package/utilities/Spinner.d.ts +0 -13
  202. package/utilities/index.d.ts +0 -13
  203. package/utilities/networking/CogniteClientNodeIdAndTreeIndexMapper.d.ts +0 -14
  204. package/utilities/networking/HttpHeadersProvider.d.ts +0 -7
  205. package/utilities/networking/LocalModelDataClient.d.ts +0 -23
  206. package/utilities/networking/types.d.ts +0 -37
  207. package/utilities/networking/utilities.d.ts +0 -13
  208. package/utilities/three/dumpRendererToImage.d.ts +0 -5
  209. package/utilities/three/index.d.ts +0 -6
  210. 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/three';
6
- import { LevelOfDetail } from './LevelOfDetail';
7
- export declare class SectorNode extends THREE.Group {
8
- readonly sectorId: number;
9
- readonly bounds: THREE.Box3;
10
- readonly depth: number;
11
- private _group?;
12
- private _lod;
13
- private _updatedTimestamp;
14
- constructor(sectorId: number, sectorPath: string, bounds: THREE.Box3);
15
- get levelOfDetail(): LevelOfDetail;
16
- get group(): THREE.Group | undefined;
17
- get updatedTimestamp(): number;
18
- updateGeometry(geomtryGroup: AutoDisposeGroup | undefined, levelOfDetail: LevelOfDetail): void;
19
- resetGeometry(): void;
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 { OrderSectorsByVisibilityCoverage } from './OrderSectorsByVisibilityCoverage';
6
- import { SectorCuller } from './SectorCuller';
7
- import { DetermineSectorCostDelegate, DetermineSectorsInput, SectorLoadingSpendage } from './types';
8
- import { WantedSector } 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
- spendage: SectorLoadingSpendage;
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 '../types';
6
- import { CadModelMetadata } from '../../CadModelMetadata';
7
- import { OccludingGeometryProvider } from './OccludingGeometryProvider';
8
- /**
9
- * Options for OrderSectorsByVisibleCoverage.
10
- */
11
- export interface OrderSectorsByVisibleCoverageOptions {
12
- /**
13
- * Renderer used to render coverage.
14
- */
15
- renderer: THREE.WebGLRenderer;
16
- /**
17
- * Initializes a render target with already loaded geometry for pre-load
18
- * occlusion.
19
- */
20
- occludingGeometryProvider: OccludingGeometryProvider;
21
- }
22
- export declare type PrioritizedSectorIdentifier = {
23
- /**
24
- * The CAD model that holds the sector.
25
- */
26
- model: CadModelMetadata;
27
- /**
28
- * Sector ID contained in the model provided.
29
- */
30
- sectorId: number;
31
- /**
32
- * A number between 0 and 1 indicating how 'important' the sector is.
33
- */
34
- priority: number;
35
- };
36
- /**
37
- * Interface for classes that estimates how visible a sector will be on screen.
38
- */
39
- export interface OrderSectorsByVisibilityCoverage {
40
- /**
41
- * Dispose any resources that cannot be garbage collected.
42
- */
43
- dispose(): void;
44
- /**
45
- * Specifies what CAD models to estimate sector visibility for.
46
- * @param models Models to estimate sector visibility for.
47
- */
48
- setModels(models: CadModelMetadata[]): void;
49
- /**
50
- * Specify clipping planes.
51
- * @param planes A list of clip planes or null to disable clipping.
52
- * @param clipIntersection When true, intersection clipping is enabled.
53
- */
54
- setClipping(planes: THREE.Plane[] | null, clipIntersection: boolean): void;
55
- /**
56
- * Cull a set of sectors potentially being loaded towards already loaded geometry to determine if
57
- * the sector is visible or occluded.
58
- */
59
- cullOccludedSectors(camera: THREE.PerspectiveCamera, sectors: WantedSector[]): WantedSector[];
60
- /**
61
- * Estimates how visible the different sectors for the models added are and returns
62
- * a prioritized list.
63
- * @param camera The current viewpoint.
64
- */
65
- orderSectorsByVisibility(camera: THREE.Camera): PrioritizedSectorIdentifier[];
66
- }
67
- /**
68
- * Estimates sector visibility by rendering their bounds with a pattern confirming to how
69
- * much of the geometry covers of the bounding box.
70
- */
71
- export declare class GpuOrderSectorsByVisibilityCoverage implements OrderSectorsByVisibilityCoverage {
72
- /**
73
- * Factor of how big render target we use for determining visibility of sectors
74
- * compared to the full render size.
75
- */
76
- private static readonly CoverageRenderTargetScalingFactor;
77
- private sectorIdOffset;
78
- private readonly scene;
79
- private readonly _renderer;
80
- private readonly _alreadyLoadedProvider;
81
- private _debugImageElement?;
82
- private readonly renderTarget;
83
- private readonly containers;
84
- private readonly buffers;
85
- private readonly coverageMaterial;
86
- constructor(options: OrderSectorsByVisibleCoverageOptions);
87
- dispose(): void;
88
- get renderer(): THREE.WebGLRenderer;
89
- createDebugCanvas(options?: {
90
- width: number;
91
- height: number;
92
- }): HTMLElement;
93
- setModels(models: CadModelMetadata[]): void;
94
- setClipping(planes: THREE.Plane[] | null, clipIntersection: boolean): void;
95
- cullOccludedSectors(camera: THREE.PerspectiveCamera, sectors: WantedSector[]): WantedSector[];
96
- orderSectorsByVisibility(camera: THREE.PerspectiveCamera): PrioritizedSectorIdentifier[];
97
- private readonly _ensureBuffersCorrectSizeVars;
98
- private ensureBuffersCorrectSize;
99
- private renderSectors;
100
- private setAllSectorsVisible;
101
- private setSectorsVisibility;
102
- private removeModel;
103
- private addModel;
104
- private updateModel;
105
- private findSectorContainer;
106
- private unpackSectorVisibility;
107
- private createSectorTreeGeometry;
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
+ }
@@ -1,33 +1,33 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import { DetermineSectorsInput, SectorLoadingSpendage } from './types';
5
- import { WantedSector } 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
- spendage: SectorLoadingSpendage;
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
+ }
@@ -1,24 +1,24 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import { SectorMetadata } from '../types';
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(modelBlobUrl: 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
- }
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
+ }