@cognite/reveal 3.1.0 → 4.0.0-dev.20221025

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 (393) hide show
  1. package/4ecf80bd209836dc884c.worker.js.LICENSE.txt +24 -0
  2. package/README.md +34 -1
  3. package/eptBinaryDecoder.worker.map +1 -1
  4. package/extensions/datasource.d.ts +9 -9
  5. package/extensions/datasource.js +2 -26
  6. package/{core/src/public/migration/RenderController.d.ts → extensions/datasource.js.LICENSE.txt} +3 -4
  7. package/extensions/datasource.map +1 -1
  8. package/index.d.ts +16 -13
  9. package/index.js +2 -576
  10. package/index.js.LICENSE.txt +19 -0
  11. package/index.map +1 -1
  12. package/package.json +9 -9
  13. package/packages/360-images/index.d.ts +6 -0
  14. package/packages/360-images/src/Image360Entity.d.ts +44 -0
  15. package/packages/360-images/src/Image360EntityFactory.d.ts +13 -0
  16. package/packages/360-images/src/Image360Facade.d.ts +20 -0
  17. package/packages/360-images/src/Image360Icon.d.ts +16 -0
  18. package/packages/api/index.d.ts +11 -0
  19. package/packages/api/src/api-helpers/Image360ApiHelper.d.ts +28 -0
  20. package/{core → packages/api}/src/public/RevealManager.d.ts +51 -52
  21. package/{core → packages/api}/src/public/createRevealManager.d.ts +24 -24
  22. package/{core → packages/api}/src/public/migration/Cognite3DViewer.d.ts +534 -498
  23. package/{core → packages/api}/src/public/migration/renderOptionsHelpers.d.ts +36 -29
  24. package/{core → packages/api}/src/public/migration/types.d.ts +182 -171
  25. package/{core → packages/api}/src/public/types.d.ts +32 -30
  26. package/{core → packages/api}/src/storage/RevealManagerHelper.d.ts +61 -60
  27. package/{core → packages/api}/src/utilities/Spinner.d.ts +27 -27
  28. package/{core → packages/api}/src/utilities/ViewStateHelper.d.ts +49 -49
  29. package/{core → packages/api}/src/utilities/reflection.d.ts +7 -7
  30. package/packages/cad-geometry-loaders/index.d.ts +9 -10
  31. package/packages/cad-geometry-loaders/src/CadLoadingHints.d.ts +11 -11
  32. package/packages/cad-geometry-loaders/src/CadManager.d.ts +46 -46
  33. package/packages/cad-geometry-loaders/src/CadModelBudget.d.ts +21 -21
  34. package/packages/cad-geometry-loaders/src/CadModelUpdateHandler.d.ts +44 -44
  35. package/packages/cad-geometry-loaders/src/InternalRevealCadOptions.d.ts +7 -13
  36. package/packages/cad-geometry-loaders/src/createCadManager.d.ts +10 -10
  37. package/packages/cad-geometry-loaders/src/sector/ModelStateHandler.d.ts +12 -12
  38. package/packages/cad-geometry-loaders/src/sector/SectorDownloadScheduler.d.ts +22 -22
  39. package/packages/cad-geometry-loaders/src/sector/SectorLoader.d.ts +31 -32
  40. package/packages/cad-geometry-loaders/src/sector/culling/ByScreenSizeSectorCuller.d.ts +23 -23
  41. package/packages/cad-geometry-loaders/src/sector/culling/SectorCuller.d.ts +33 -33
  42. package/packages/cad-geometry-loaders/src/sector/culling/WeightFunctionsHelper.d.ts +51 -50
  43. package/packages/cad-geometry-loaders/src/sector/culling/computeNdcAreaOfBox.d.ts +12 -12
  44. package/packages/cad-geometry-loaders/src/sector/culling/computeSectorCost.d.ts +6 -7
  45. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenSectorMapBase.d.ts +11 -11
  46. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenV9SectorMap.d.ts +20 -20
  47. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/index.d.ts +4 -5
  48. package/packages/cad-geometry-loaders/src/sector/culling/transformBoxToNDC.d.ts +5 -5
  49. package/packages/cad-geometry-loaders/src/sector/culling/types.d.ts +83 -83
  50. package/packages/cad-geometry-loaders/src/sector/rxSectorUtilities.d.ts +12 -12
  51. package/packages/cad-geometry-loaders/src/utilities/PromiseUtils.d.ts +28 -28
  52. package/packages/cad-model/index.d.ts +9 -9
  53. package/packages/cad-model/src/CadModelFactory.d.ts +16 -17
  54. package/packages/cad-model/src/batching/GeometryBatchingManager.d.ts +31 -31
  55. package/packages/cad-model/src/picking/PickingHandler.d.ts +36 -35
  56. package/packages/cad-model/src/picking/readPixelsFromTargetAsync.d.ts +17 -0
  57. package/packages/cad-model/src/types.d.ts +59 -59
  58. package/packages/cad-model/src/utilities/BoundingBoxClipper.d.ts +23 -23
  59. package/packages/cad-model/src/utilities/NodeIdAndTreeIndexMaps.d.ts +4 -4
  60. package/packages/cad-model/src/utilities/callActionWithIndicesAsync.d.ts +4 -4
  61. package/packages/cad-model/src/wrappers/CadNode.d.ts +47 -54
  62. package/packages/cad-model/src/wrappers/Cognite3DModel.d.ts +337 -337
  63. package/packages/cad-parsers/index.d.ts +15 -20
  64. package/packages/cad-parsers/src/cad/LevelOfDetail.d.ts +8 -8
  65. package/packages/cad-parsers/src/cad/filterPrimitivesCommon.d.ts +5 -5
  66. package/packages/cad-parsers/src/cad/filterPrimitivesV9.d.ts +6 -6
  67. package/packages/cad-parsers/src/cad/types.d.ts +44 -56
  68. package/packages/cad-parsers/src/metadata/CadMetadataParser.d.ts +7 -7
  69. package/packages/cad-parsers/src/metadata/CadModelClipper.d.ts +10 -10
  70. package/packages/cad-parsers/src/metadata/CadModelMetadata.d.ts +54 -54
  71. package/packages/cad-parsers/src/metadata/CadModelMetadataRepository.d.ts +16 -16
  72. package/packages/cad-parsers/src/metadata/parsers/CadMetadataParserGltf.d.ts +8 -8
  73. package/packages/cad-parsers/src/metadata/parsers/types.d.ts +62 -62
  74. package/packages/cad-parsers/src/metadata/types.d.ts +52 -53
  75. package/packages/cad-parsers/src/sector/RootSectorNode.d.ts +13 -13
  76. package/packages/cad-parsers/src/sector/SectorNode.d.ts +22 -22
  77. package/packages/cad-parsers/src/utilities/SectorScene.d.ts +23 -23
  78. package/packages/cad-parsers/src/utilities/SectorSceneFactory.d.ts +9 -9
  79. package/packages/cad-parsers/src/utilities/computeBoundingBoxFromAttributes.d.ts +14 -10
  80. package/packages/cad-parsers/src/utilities/types.d.ts +71 -71
  81. package/packages/cad-styling/index.d.ts +21 -20
  82. package/packages/cad-styling/src/AssetNodeCollection.d.ts +47 -47
  83. package/packages/cad-styling/src/CdfModelNodeCollectionDataProvider.d.ts +26 -26
  84. package/packages/cad-styling/src/CdfNodeCollectionBase.d.ts +20 -0
  85. package/packages/cad-styling/src/CombineNodeCollectionBase.d.ts +34 -34
  86. package/packages/cad-styling/src/IntersectionNodeCollection.d.ts +20 -20
  87. package/packages/cad-styling/src/InvertedNodeCollection.d.ts +27 -27
  88. package/packages/cad-styling/src/NodeAppearance.d.ts +85 -85
  89. package/packages/cad-styling/src/NodeAppearanceProvider.d.ts +38 -38
  90. package/packages/cad-styling/src/NodeCollection.d.ts +31 -26
  91. package/packages/cad-styling/src/NodeCollectionDeserializer.d.ts +21 -26
  92. package/packages/cad-styling/src/NodeIdNodeCollection.d.ts +30 -0
  93. package/packages/cad-styling/src/PopulateIndexSetFromPagedResponseHelper.d.ts +30 -30
  94. package/packages/cad-styling/src/PropertyFilterNodeCollection.d.ts +45 -57
  95. package/packages/cad-styling/src/SerializedNodeCollection.d.ts +8 -8
  96. package/packages/cad-styling/src/SinglePropertyFilterNodeCollection.d.ts +41 -53
  97. package/packages/cad-styling/src/TreeIndexNodeCollection.d.ts +42 -40
  98. package/packages/cad-styling/src/UnionNodeCollection.d.ts +19 -19
  99. package/packages/cad-styling/src/prioritized/AreaCollection.d.ts +39 -39
  100. package/packages/cad-styling/src/prioritized/BoxClusterer.d.ts +29 -29
  101. package/packages/cad-styling/src/prioritized/ClusteredAreaCollection.d.ts +17 -17
  102. package/packages/cad-styling/src/prioritized/EmptyAreaCollection.d.ts +18 -18
  103. package/packages/cad-styling/src/prioritized/types.d.ts +7 -7
  104. package/packages/camera-manager/index.d.ts +10 -8
  105. package/packages/camera-manager/src/CameraManager.d.ts +78 -74
  106. package/packages/camera-manager/src/CameraManagerHelper.d.ts +42 -42
  107. package/packages/camera-manager/src/ComboControls.d.ts +110 -112
  108. package/packages/camera-manager/src/DefaultCameraManager.d.ts +150 -136
  109. package/packages/camera-manager/src/Keyboard.d.ts +19 -17
  110. package/packages/camera-manager/src/ProxyCameraManager.d.ts +25 -0
  111. package/packages/camera-manager/src/StationaryCameraManager.d.ts +27 -0
  112. package/packages/camera-manager/src/types.d.ts +66 -66
  113. package/packages/data-providers/index.d.ts +21 -0
  114. package/packages/data-providers/src/Image360Provider.d.ts +6 -0
  115. package/packages/data-providers/src/ModelDataProvider.d.ts +21 -0
  116. package/packages/{modeldata-api → data-providers}/src/ModelIdentifier.d.ts +12 -12
  117. package/packages/{modeldata-api → data-providers}/src/ModelMetadataProvider.d.ts +18 -18
  118. package/packages/data-providers/src/PointCloudStylableObjectProvider.d.ts +8 -0
  119. package/packages/data-providers/src/image-360-data-providers/Cdf360ImageEventProvider.d.ts +16 -0
  120. package/packages/data-providers/src/image-360-data-providers/Local360ImageProvider.d.ts +8 -0
  121. package/packages/{modeldata-api/src → data-providers/src/metadata-providers}/CdfModelMetadataProvider.d.ts +20 -20
  122. package/packages/{modeldata-api/src → data-providers/src/metadata-providers}/LocalModelMetadataProvider.d.ts +16 -16
  123. package/packages/{modeldata-api/src → data-providers/src/model-data-providers}/CdfModelDataProvider.d.ts +16 -16
  124. package/packages/{modeldata-api/src → data-providers/src/model-data-providers}/LocalModelDataProvider.d.ts +8 -8
  125. package/packages/{modeldata-api/src → data-providers/src/model-identifiers}/CdfModelIdentifier.d.ts +15 -15
  126. package/packages/{modeldata-api/src → data-providers/src/model-identifiers}/LocalModelIdentifier.d.ts +14 -14
  127. package/packages/data-providers/src/pointcloud-stylable-object-providers/CdfPointCloudStylableObjectProvider.d.ts +14 -0
  128. package/packages/data-providers/src/pointcloud-stylable-object-providers/DummyPointCloudStylableObjectProvider.d.ts +9 -0
  129. package/packages/data-providers/src/pointcloud-stylable-object-providers/StylableObject.d.ts +12 -0
  130. package/packages/data-providers/src/pointcloud-stylable-object-providers/cdfAnnotationsToObjects.d.ts +5 -0
  131. package/packages/data-providers/src/pointcloud-stylable-object-providers/types.d.ts +19 -0
  132. package/packages/data-providers/src/types.d.ts +44 -0
  133. package/packages/{modeldata-api/src → data-providers/src/utilities}/applyDefaultModelTransformation.d.ts +6 -6
  134. package/packages/{modeldata-api/src/utilities.d.ts → data-providers/src/utilities/fetchWithStatusCheck.d.ts} +5 -7
  135. package/packages/data-source/index.d.ts +6 -6
  136. package/packages/data-source/src/CdfDataSource.d.ts +19 -19
  137. package/packages/data-source/src/DataSource.d.ts +25 -25
  138. package/packages/data-source/src/LocalDataSource.d.ts +15 -15
  139. package/packages/logger/index.d.ts +5 -5
  140. package/packages/logger/src/Log.d.ts +5 -5
  141. package/packages/metrics/index.d.ts +4 -4
  142. package/packages/metrics/src/MetricsLogger.d.ts +34 -21
  143. package/packages/metrics/src/types.d.ts +7 -7
  144. package/packages/model-base/index.d.ts +7 -7
  145. package/packages/model-base/src/CogniteModelBase.d.ts +17 -17
  146. package/packages/model-base/src/MetadataRepository.d.ts +7 -7
  147. package/packages/model-base/src/SupportedModelTypes.d.ts +4 -4
  148. package/packages/model-base/src/types.d.ts +36 -36
  149. package/packages/nodes-api/index.d.ts +6 -6
  150. package/packages/nodes-api/src/NodesApiClient.d.ts +50 -50
  151. package/packages/nodes-api/src/NodesCdfClient.d.ts +24 -24
  152. package/packages/nodes-api/src/NodesLocalClient.d.ts +30 -30
  153. package/packages/nodes-api/src/types.d.ts +10 -10
  154. package/packages/pointcloud-styling/index.d.ts +7 -0
  155. package/packages/pointcloud-styling/src/AnnotationIdPointCloudObjectCollection.d.ts +13 -0
  156. package/packages/pointcloud-styling/src/PointCloudAppearance.d.ts +10 -0
  157. package/packages/pointcloud-styling/src/PointCloudObjectCollection.d.ts +23 -0
  158. package/packages/pointcloud-styling/src/StyledPointCloudObjectCollection.d.ts +13 -0
  159. package/packages/pointclouds/index.d.ts +18 -15
  160. package/packages/pointclouds/src/CognitePointCloudModel.d.ts +182 -131
  161. package/packages/pointclouds/src/PointCloudBudget.d.ts +14 -14
  162. package/packages/pointclouds/src/PointCloudFactory.d.ts +18 -13
  163. package/packages/pointclouds/src/PointCloudIntersection.d.ts +30 -26
  164. package/packages/pointclouds/src/PointCloudManager.d.ts +38 -37
  165. package/packages/pointclouds/src/PointCloudMetadata.d.ts +15 -14
  166. package/packages/pointclouds/src/PointCloudMetadataRepository.d.ts +14 -14
  167. package/packages/pointclouds/src/PointCloudNode.d.ts +78 -69
  168. package/packages/pointclouds/src/{picking.d.ts → PointCloudPickingHandler.d.ts} +40 -29
  169. package/packages/pointclouds/src/PotreeGroupWrapper.d.ts +46 -46
  170. package/packages/pointclouds/src/PotreeNodeWrapper.d.ts +52 -36
  171. package/packages/pointclouds/src/PotreePnextLoader.d.ts +4 -4
  172. package/packages/pointclouds/src/classificationsProviders/IPointClassificationsProvider.d.ts +8 -0
  173. package/packages/pointclouds/src/classificationsProviders/LocalPointClassificationsProvider.d.ts +9 -0
  174. package/packages/pointclouds/src/classificationsProviders/UrlPointClassificationsProvider.d.ts +12 -0
  175. package/packages/pointclouds/src/constants.d.ts +5 -0
  176. package/packages/pointclouds/src/createPointCloudManager.d.ts +9 -7
  177. package/packages/pointclouds/src/decomposeStylableObjects.d.ts +5 -0
  178. package/packages/pointclouds/src/potree-three-loader/Potree.d.ts +38 -46
  179. package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometry.d.ts +10 -10
  180. package/packages/pointclouds/src/potree-three-loader/geometry/IPointCloudTreeGeometryNode.d.ts +11 -11
  181. package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometry.d.ts +45 -50
  182. package/packages/pointclouds/src/potree-three-loader/geometry/PointCloudEptGeometryNode.d.ts +64 -63
  183. package/packages/pointclouds/src/potree-three-loader/geometry/translationUtils.d.ts +7 -7
  184. package/packages/pointclouds/src/potree-three-loader/index.d.ts +9 -10
  185. package/packages/pointclouds/src/potree-three-loader/loading/ClassificationInfo.d.ts +15 -0
  186. package/packages/pointclouds/src/potree-three-loader/loading/EptBinaryLoader.d.ts +15 -12
  187. package/packages/pointclouds/src/potree-three-loader/loading/EptJson.d.ts +25 -0
  188. package/packages/pointclouds/src/potree-three-loader/loading/EptLoader.d.ts +5 -5
  189. package/packages/pointclouds/src/potree-three-loader/loading/ILoader.d.ts +4 -4
  190. package/packages/pointclouds/src/potree-three-loader/loading/globalLoadingCounter.d.ts +5 -5
  191. package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNode.d.ts +7 -7
  192. package/packages/pointclouds/src/potree-three-loader/tree/IPointCloudTreeNodeBase.d.ts +18 -18
  193. package/packages/pointclouds/src/potree-three-loader/tree/PointAttributes.d.ts +52 -52
  194. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctree.d.ts +48 -48
  195. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreeNode.d.ts +27 -27
  196. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePicker.d.ts +14 -11
  197. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePickerHelper.d.ts +57 -57
  198. package/packages/pointclouds/src/potree-three-loader/tree/PointCloudTree.d.ts +6 -6
  199. package/packages/pointclouds/src/potree-three-loader/types/IPotree.d.ts +11 -11
  200. package/packages/pointclouds/src/potree-three-loader/types/IVisibilityUpdateResult.d.ts +18 -18
  201. package/packages/pointclouds/src/potree-three-loader/types/type-predicates.d.ts +6 -6
  202. package/packages/pointclouds/src/potree-three-loader/types/types.d.ts +14 -14
  203. package/packages/pointclouds/src/potree-three-loader/utils/BinaryHeap.d.ts +11 -11
  204. package/packages/pointclouds/src/potree-three-loader/utils/WorkerPool.d.ts +31 -31
  205. package/packages/pointclouds/src/potree-three-loader/utils/async-blocking-queue.d.ts +8 -8
  206. package/packages/pointclouds/src/potree-three-loader/utils/bounds.d.ts +6 -6
  207. package/packages/pointclouds/src/potree-three-loader/utils/box3-helper.d.ts +13 -13
  208. package/packages/pointclouds/src/potree-three-loader/utils/createObjectIdMaps.d.ts +6 -0
  209. package/packages/pointclouds/src/potree-three-loader/utils/lru.d.ts +32 -32
  210. package/packages/pointclouds/src/potree-three-loader/utils/utils.d.ts +12 -8
  211. package/packages/pointclouds/src/potree-three-loader/version.d.ts +9 -9
  212. package/packages/pointclouds/src/potree-three-loader/workers/assignPointsToObjectsWithWasm.d.ts +5 -0
  213. package/packages/pointclouds/src/potree-three-loader/workers/eptBinaryDecoder.worker.d.ts +7 -18
  214. package/packages/pointclouds/src/potree-three-loader/workers/parseEpt.d.ts +4 -0
  215. package/packages/pointclouds/src/potree-three-loader/workers/types.d.ts +33 -0
  216. package/packages/pointclouds/src/types.d.ts +84 -84
  217. package/packages/pointclouds/wasm/index.d.ts +18 -0
  218. package/packages/rendering/index.d.ts +22 -17
  219. package/packages/rendering/src/CadMaterialManager.d.ts +39 -39
  220. package/packages/rendering/src/PointCloudMaterialManager.d.ts +19 -0
  221. package/packages/rendering/src/RenderPass.d.ts +15 -15
  222. package/packages/rendering/src/RenderPipelineExecutor.d.ts +13 -12
  223. package/packages/rendering/src/RenderPipelineProvider.d.ts +15 -15
  224. package/packages/rendering/src/pipeline-executors/BasicPipelineExecutor.d.ts +22 -11
  225. package/packages/rendering/src/pointcloud-rendering/PointCloudMaterial.d.ts +121 -0
  226. package/packages/rendering/src/pointcloud-rendering/PointCloudObjectAppearanceTexture.d.ts +30 -0
  227. package/packages/rendering/src/pointcloud-rendering/PointCloudObjectIdMaps.d.ts +7 -0
  228. package/packages/rendering/src/pointcloud-rendering/classification.d.ts +2 -0
  229. package/packages/rendering/src/pointcloud-rendering/constants.d.ts +17 -0
  230. package/packages/rendering/src/pointcloud-rendering/enums.d.ts +24 -0
  231. package/packages/{pointclouds/src/potree-three-loader/rendering → rendering/src/pointcloud-rendering}/gradients/SpectralGradient.d.ts +2 -2
  232. package/packages/rendering/src/pointcloud-rendering/index.d.ts +8 -0
  233. package/packages/rendering/src/pointcloud-rendering/texture-generation.d.ts +8 -0
  234. package/packages/{pointclouds/src/potree-three-loader/rendering → rendering/src/pointcloud-rendering}/types.d.ts +18 -10
  235. package/packages/rendering/src/render-passes/GeometryPass.d.ts +16 -16
  236. package/packages/rendering/src/render-passes/PointCloudEffectsPass.d.ts +11 -0
  237. package/packages/rendering/src/render-passes/PostProcessingPass.d.ts +22 -24
  238. package/packages/rendering/src/render-passes/SSAOPass.d.ts +14 -14
  239. package/packages/rendering/src/render-passes/types.d.ts +68 -31
  240. package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderModePipelineProvider.d.ts +23 -23
  241. package/packages/rendering/src/render-pipeline-providers/CadGeometryRenderPipelineProvider.d.ts +25 -25
  242. package/packages/rendering/src/render-pipeline-providers/DefaultRenderPipelineProvider.d.ts +38 -34
  243. package/packages/rendering/src/render-pipeline-providers/PointCloudRenderPipelineProvider.d.ts +25 -0
  244. package/packages/rendering/src/render-pipeline-providers/types.d.ts +23 -19
  245. package/packages/rendering/src/rendering/NodeAppearanceTextureBuilder.d.ts +51 -51
  246. package/packages/rendering/src/rendering/RenderMode.d.ts +15 -15
  247. package/packages/rendering/src/rendering/matCapTextureData.d.ts +5 -5
  248. package/packages/rendering/src/rendering/materials.d.ts +23 -23
  249. package/packages/rendering/src/rendering/shaders.d.ts +104 -87
  250. package/packages/rendering/src/rendering/types.d.ts +88 -76
  251. package/packages/rendering/src/transform/NodeTransformProvider.d.ts +13 -13
  252. package/packages/rendering/src/transform/NodeTransformTextureBuilder.d.ts +24 -23
  253. package/packages/rendering/src/transform/TransformOverrideBuffer.d.ts +21 -21
  254. package/packages/rendering/src/utilities/renderUtilities.d.ts +31 -26
  255. package/packages/rendering/src/utilities/types.d.ts +26 -26
  256. package/packages/sector-loader/index.d.ts +5 -6
  257. package/packages/sector-loader/src/GltfSectorLoader.d.ts +12 -12
  258. package/packages/sector-loader/src/GltfSectorRepository.d.ts +19 -19
  259. package/packages/sector-loader/src/SectorRepository.d.ts +10 -10
  260. package/packages/sector-parser/index.d.ts +5 -5
  261. package/packages/sector-parser/src/DracoDecoderHelper.d.ts +32 -32
  262. package/packages/sector-parser/src/GltfSectorParser.d.ts +19 -19
  263. package/packages/sector-parser/src/constants.d.ts +6 -6
  264. package/packages/sector-parser/src/lib/draco_decoder_gltf.d.ts +5 -0
  265. package/packages/sector-parser/src/reveal-glb-parser/GlbMetadataParser.d.ts +14 -14
  266. package/packages/sector-parser/src/reveal-glb-parser/primitiveGeometries.d.ts +12 -12
  267. package/packages/sector-parser/src/types.d.ts +106 -106
  268. package/packages/tools/index.d.ts +15 -15
  269. package/packages/tools/src/AxisView/AxisViewTool.d.ts +31 -31
  270. package/packages/tools/src/AxisView/types.d.ts +98 -98
  271. package/packages/tools/src/Cognite3DViewerToolBase.d.ts +25 -25
  272. package/packages/tools/src/DebugCameraTool.d.ts +20 -20
  273. package/packages/tools/src/ExplodedViewTool.d.ts +12 -12
  274. package/packages/tools/src/HtmlOverlay/BucketGrid2D.d.ts +28 -28
  275. package/packages/tools/src/HtmlOverlay/HtmlOverlayTool.d.ts +166 -160
  276. package/packages/tools/src/Measurement/MeasurementLabels.d.ts +18 -0
  277. package/packages/tools/src/Measurement/MeasurementLine.d.ts +44 -0
  278. package/packages/tools/src/Measurement/MeasurementManager.d.ts +66 -0
  279. package/packages/tools/src/Measurement/MeasurementTool.d.ts +183 -0
  280. package/packages/tools/src/Measurement/types.d.ts +38 -0
  281. package/packages/tools/src/Timeline/Keyframe.d.ts +39 -39
  282. package/packages/tools/src/Timeline/TimelineTool.d.ts +79 -79
  283. package/packages/tools/src/Timeline/types.d.ts +13 -13
  284. package/packages/tools/src/types.d.ts +4 -4
  285. package/packages/utilities/index.d.ts +39 -36
  286. package/packages/utilities/src/CameraConfiguration.d.ts +10 -10
  287. package/packages/utilities/src/DeferredPromise.d.ts +17 -17
  288. package/packages/utilities/src/IndexSet.d.ts +1 -1
  289. package/packages/utilities/src/NumericRange.d.ts +22 -22
  290. package/packages/utilities/src/RandomColors.d.ts +34 -34
  291. package/packages/utilities/src/SceneHandler.d.ts +28 -21
  292. package/packages/utilities/src/WebGLRendererStateHelper.d.ts +29 -27
  293. package/packages/utilities/src/assertNever.d.ts +7 -7
  294. package/packages/utilities/src/cache/MemoryRequestCache.d.ts +24 -24
  295. package/packages/utilities/src/cache/MostFrequentlyUsedCache.d.ts +19 -19
  296. package/packages/utilities/src/cache/RequestCache.d.ts +13 -13
  297. package/packages/utilities/src/calculateVolumeOfMesh.d.ts +4 -4
  298. package/packages/utilities/src/counterMap.d.ts +5 -5
  299. package/packages/utilities/src/datastructures/DynamicDefragmentedBuffer.d.ts +33 -33
  300. package/packages/utilities/src/determinePowerOfTwoDimensions.d.ts +11 -11
  301. package/packages/utilities/src/device.d.ts +10 -10
  302. package/packages/utilities/src/disposeAttributeArrayOnUpload.d.ts +17 -17
  303. package/packages/utilities/src/events/EventTrigger.d.ts +13 -13
  304. package/packages/utilities/src/events/InputHandler.d.ts +30 -30
  305. package/packages/utilities/src/events/clickOrTouchEventOffset.d.ts +13 -13
  306. package/packages/utilities/src/events/index.d.ts +7 -7
  307. package/packages/utilities/src/events/types.d.ts +40 -27
  308. package/packages/utilities/src/indexset/IndexSet.d.ts +26 -26
  309. package/packages/utilities/src/indexset/IntermediateIndexNode.d.ts +26 -26
  310. package/packages/utilities/src/indexset/LeafIndexNode.d.ts +16 -16
  311. package/packages/utilities/src/isMobileOrTablet.d.ts +5 -5
  312. package/packages/utilities/src/linalg.d.ts +11 -0
  313. package/packages/utilities/src/objectTraversal.d.ts +8 -8
  314. package/packages/utilities/src/shapes/Box.d.ts +12 -0
  315. package/packages/utilities/src/shapes/CompositeShape.d.ts +13 -0
  316. package/packages/utilities/src/shapes/Cylinder.d.ts +14 -0
  317. package/packages/utilities/src/shapes/ISerializableShape.d.ts +11 -0
  318. package/packages/utilities/src/shapes/IShape.d.ts +9 -0
  319. package/packages/utilities/src/shapes/SerializableBox.d.ts +8 -0
  320. package/packages/utilities/src/shapes/SerializableCompositeShape.d.ts +7 -0
  321. package/packages/utilities/src/shapes/SerializableCylinder.d.ts +10 -0
  322. package/packages/utilities/src/shapes/index.d.ts +11 -0
  323. package/packages/utilities/src/three/AutoDisposeGroup.d.ts +17 -17
  324. package/packages/utilities/src/three/BoundingBoxLOD.d.ts +27 -27
  325. package/packages/utilities/src/three/createDistinctColors.d.ts +5 -0
  326. package/packages/utilities/src/three/createFullScreenTriangleGeometry.d.ts +5 -5
  327. package/packages/utilities/src/three/fitCameraToBoundingBox.d.ts +15 -0
  328. package/packages/utilities/src/three/fromThreeVector3.d.ts +5 -0
  329. package/packages/utilities/src/three/isBox3OnPositiveSideOfPlane.d.ts +10 -10
  330. package/packages/utilities/src/three/toThreeBox3.d.ts +6 -6
  331. package/packages/utilities/src/three/unionBoxes.d.ts +5 -5
  332. package/packages/utilities/src/three/visitBox3CornerPoints.d.ts +12 -12
  333. package/packages/utilities/src/transformCameraConfiguration.d.ts +6 -6
  334. package/packages/utilities/src/types.d.ts +11 -11
  335. package/packages/utilities/src/workers/workerize-transferable/index.d.ts +7 -0
  336. package/packages/utilities/src/workers/workerize-transferable/message-types.d.ts +4 -0
  337. package/packages/utilities/src/workers/workerize-transferable/on-main.d.ts +13 -0
  338. package/packages/utilities/src/workers/workerize-transferable/on-worker.d.ts +14 -0
  339. package/packages/utilities/src/workers/workerize-transferable/util.d.ts +10 -0
  340. package/packages/utilities/src/worldToViewport.d.ts +34 -30
  341. package/tools.d.ts +7 -7
  342. package/tools.js +2 -280
  343. package/tools.js.LICENSE.txt +7 -0
  344. package/tools.map +1 -1
  345. package/core/cad.d.ts +0 -4
  346. package/core/index.d.ts +0 -6
  347. package/core/src/index.d.ts +0 -13
  348. package/core/src/internals.d.ts +0 -10
  349. package/core/src/public/migration/NotSupportedInMigrationWrapperError.d.ts +0 -11
  350. package/core/src/utilities/index.d.ts +0 -6
  351. package/core/utilities.d.ts +0 -4
  352. package/packages/cad-geometry-loaders/src/sector/culling/ByVisibilityGpuSectorCuller.d.ts +0 -51
  353. package/packages/cad-geometry-loaders/src/sector/culling/OrderSectorsByVisibilityCoverage.d.ts +0 -106
  354. package/packages/cad-geometry-loaders/src/sector/culling/RenderAlreadyLoadedGeometryProvider.d.ts +0 -11
  355. package/packages/cad-geometry-loaders/src/sector/culling/createV8SectorCuller.d.ts +0 -7
  356. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenV8SectorMap.d.ts +0 -17
  357. package/packages/cad-geometry-loaders/src/sector/culling/takensectors/TakenV8SectorTree.d.ts +0 -24
  358. package/packages/cad-geometry-loaders/src/utilities/rxOperations.d.ts +0 -6
  359. package/packages/cad-model/src/batching/InstancedMeshManager.d.ts +0 -20
  360. package/packages/cad-parsers/src/cad/CadSectorParser.d.ts +0 -15
  361. package/packages/cad-parsers/src/cad/filterInstanceMesh.d.ts +0 -6
  362. package/packages/cad-parsers/src/cad/filterPrimitivesV8.d.ts +0 -9
  363. package/packages/cad-parsers/src/cad/primitiveGeometries.d.ts +0 -30
  364. package/packages/cad-parsers/src/cad/triangleMeshes.d.ts +0 -6
  365. package/packages/cad-parsers/src/metadata/parsers/CadMetadataParserV8.d.ts +0 -6
  366. package/packages/cad-parsers/src/utilities/float32BufferToMatrix.d.ts +0 -12
  367. package/packages/modeldata-api/index.d.ts +0 -12
  368. package/packages/modeldata-api/src/types.d.ts +0 -43
  369. package/packages/pointclouds/src/createPointClassKey.d.ts +0 -5
  370. package/packages/pointclouds/src/potree-three-loader/rendering/PointCloudMaterial.d.ts +0 -203
  371. package/packages/pointclouds/src/potree-three-loader/rendering/classification.d.ts +0 -2
  372. package/packages/pointclouds/src/potree-three-loader/rendering/clipping.d.ts +0 -12
  373. package/packages/pointclouds/src/potree-three-loader/rendering/constants.d.ts +0 -14
  374. package/packages/pointclouds/src/potree-three-loader/rendering/enums.d.ts +0 -46
  375. package/packages/pointclouds/src/potree-three-loader/rendering/features.d.ts +0 -6
  376. package/packages/pointclouds/src/potree-three-loader/rendering/index.d.ts +0 -5
  377. package/packages/pointclouds/src/potree-three-loader/rendering/texture-generation.d.ts +0 -5
  378. package/packages/pointclouds/src/potree-three-loader/utils/math.d.ts +0 -1
  379. package/packages/rendering/src/rendering/createSimpleGeometryMesh.d.ts +0 -6
  380. package/packages/rendering/src/rendering/primitives.d.ts +0 -12
  381. package/packages/sector-loader/src/V8SectorRepository.d.ts +0 -26
  382. package/packages/sector-loader/src/v8/SimpleAndDetailedToSector3D.d.ts +0 -20
  383. package/packages/sector-loader/src/v8/arrays.d.ts +0 -5
  384. package/packages/sector-loader/src/v8/groupMeshesByNumber.d.ts +0 -8
  385. package/packages/sector-loader/src/v8/sectorUtilities.d.ts +0 -16
  386. package/packages/tools/src/DebugLoadedSectorsTool.d.ts +0 -23
  387. package/packages/tools/src/Geomap/Geomap.d.ts +0 -17
  388. package/packages/tools/src/Geomap/GeomapTool.d.ts +0 -23
  389. package/packages/tools/src/Geomap/MapConfig.d.ts +0 -195
  390. package/packages/utilities/src/networking/isTheSameDomain.d.ts +0 -11
  391. package/packages/utilities/src/packFloat.d.ts +0 -6
  392. package/packages/utilities/src/revealEnv.d.ts +0 -10
  393. package/packages/utilities/src/workers/WorkerPool.d.ts +0 -14
@@ -1,498 +1,534 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import * as THREE from 'three';
5
- import { PointerEventDelegate, SceneRenderedDelegate, DisposedDelegate } from '../../../../packages/utilities';
6
- import { Cognite3DModel } from '../../../../packages/cad-model';
7
- import { PointCloudBudget, CognitePointCloudModel } from '../../../../packages/pointclouds';
8
- import { AddModelOptions, Cognite3DViewerOptions, Intersection, CadModelBudget } from './types';
9
- import { IntersectionFromPixelOptions } from '../..';
10
- import { ViewerState } from '../../utilities/ViewStateHelper';
11
- import { CameraManager, CameraChangeDelegate } from '../../../../packages/camera-manager';
12
- import { SupportedModelTypes, CogniteModelBase } from '../../../../packages/model-base';
13
- /**
14
- * @example
15
- * ```js
16
- * const viewer = new Cognite3DViewer({
17
- * noBackground: true,
18
- * sdk: CogniteClient({...})
19
- * });
20
- * ```
21
- * @module @cognite/reveal
22
- */
23
- export declare class Cognite3DViewer {
24
- private get canvas();
25
- /**
26
- * For now it just always returns true.
27
- * @see Https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext#Browser_compatibility.
28
- */
29
- static isBrowserSupported(): true;
30
- /**
31
- * The DOM element the viewer will insert its rendering canvas into.
32
- * The DOM element can be specified in the options when the viewer is created.
33
- * If not specified, the DOM element will be created automatically.
34
- * The DOM element cannot be changed after the viewer has been created.
35
- */
36
- get domElement(): HTMLElement;
37
- /**
38
- * Returns the renderer used to produce images from 3D geometry.
39
- */
40
- get renderer(): THREE.WebGLRenderer;
41
- private readonly _cdfSdkClient;
42
- private readonly _dataSource;
43
- private readonly camera;
44
- private readonly _sceneHandler;
45
- private readonly _cameraManager;
46
- private readonly _subscription;
47
- private readonly _revealManagerHelper;
48
- private readonly _domElement;
49
- private readonly _renderer;
50
- private readonly _pickingHandler;
51
- private readonly _boundAnimate;
52
- private readonly _events;
53
- private readonly _mouseHandler;
54
- private readonly _models;
55
- private readonly _extraObjects;
56
- private isDisposed;
57
- private readonly renderController;
58
- private latestRequestId;
59
- private readonly clock;
60
- private _clippingNeedsUpdate;
61
- private readonly spinner;
62
- private get revealManager();
63
- /**
64
- * Reusable buffers used by functions in Cognite3dViewer to avoid allocations.
65
- */
66
- private readonly _updateNearAndFarPlaneBuffers;
67
- /**
68
- * Gets the current budget for downloading geometry for CAD models. Note that this
69
- * budget is shared between all added CAD models and not a per-model budget.
70
- */
71
- get cadBudget(): CadModelBudget;
72
- /**
73
- * Sets the current budget for downloading geometry for CAD models. Note that this
74
- * budget is shared between all added CAD models and not a per-model budget.
75
- */
76
- set cadBudget(budget: CadModelBudget);
77
- /**
78
- * Returns the point cloud budget. The budget is shared between all loaded
79
- * point cloud models.
80
- */
81
- get pointCloudBudget(): PointCloudBudget;
82
- /**
83
- * Sets the point cloud budget. The budget is shared between all loaded
84
- * point cloud models.
85
- */
86
- set pointCloudBudget(budget: PointCloudBudget);
87
- /**
88
- * Gets a list of models currently added to the viewer.
89
- */
90
- get models(): CogniteModelBase[];
91
- constructor(options: Cognite3DViewerOptions);
92
- /**
93
- * Returns reveal version installed.
94
- */
95
- getVersion(): string;
96
- /**
97
- * Sets the log level. Used for debugging.
98
- * Defaults to 'none' (which is identical to 'silent').
99
- * @param level
100
- */
101
- setLogLevel(level: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent' | 'none'): void;
102
- /**
103
- * Dispose of WebGL resources. Can be used to free up memory when the viewer is no longer in use.
104
- * @see {@link https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects}
105
- * ```ts
106
- * // Viewer is no longer in use, free up memory
107
- * viewer.dispose();
108
- * ```.
109
- */
110
- dispose(): void;
111
- /**
112
- * Triggered when the viewer is disposed. Listeners should clean up any
113
- * resources held and remove the reference to the viewer.
114
- */
115
- on(event: 'disposed', callback: DisposedDelegate): void;
116
- /**
117
- * @example
118
- * ```js
119
- * const onClick = (event) => { console.log(event.offsetX, event.offsetY) };
120
- * viewer.on('click', onClick);
121
- * ```
122
- */
123
- on(event: 'click' | 'hover', callback: PointerEventDelegate): void;
124
- /**
125
- * @example
126
- * ```js
127
- * viewer.on('cameraChange', (position, target) => {
128
- * console.log('Camera changed: ', position, target);
129
- * });
130
- * ```
131
- */
132
- on(event: 'cameraChange', callback: CameraChangeDelegate): void;
133
- /**
134
- * Event that is triggered immediatly after the scene has been rendered.
135
- * @param event Metadata about the rendering frame.
136
- * @param callback Callback to trigger when the event occurs.
137
- */
138
- on(event: 'sceneRendered', callback: SceneRenderedDelegate): void;
139
- /**
140
- * @example
141
- * ```js
142
- * viewer.off('click', onClick);
143
- * ```
144
- */
145
- off(event: 'click' | 'hover', callback: PointerEventDelegate): void;
146
- /**
147
- * @example
148
- * ```js
149
- * viewer.off('cameraChange', onCameraChange);
150
- * ```
151
- */
152
- off(event: 'cameraChange', callback: CameraChangeDelegate): void;
153
- /**
154
- * @example
155
- * ```js
156
- * viewer.off('sceneRendered', updateStats);
157
- * ```
158
- */
159
- off(event: 'sceneRendered', callback: SceneRenderedDelegate): void;
160
- /**
161
- * @example
162
- * ```js
163
- * viewer.off('disposed', clearAll);
164
- * ```
165
- */
166
- off(event: 'disposed', callback: DisposedDelegate): void;
167
- get cameraManager(): CameraManager;
168
- /**
169
- * Gets the current viewer state which includes the camera pose as well as applied styling.
170
- * @returns JSON object containing viewer state.
171
- */
172
- getViewState(): ViewerState;
173
- /**
174
- * Restores camera settings from the state provided, and clears all current styled
175
- * node collections and applies the `state` object.
176
- * @param state Viewer state retrieved from {@link Cognite3DViewer.getViewState}.
177
- */
178
- setViewState(state: ViewerState): Promise<void>;
179
- /**
180
- * Add a new model to the viewer.
181
- * Call {@link Cognite3DViewer.fitCameraToModel} to see the model after the model has loaded.
182
- * @param options
183
- * @example
184
- * ```js
185
- * const options = {
186
- * modelId: 'COGNITE_3D_MODEL_ID',
187
- * revisionId: 'COGNITE_3D_REVISION_ID',
188
- * };
189
- * viewer.addModel(options).then(model => {
190
- * viewer.fitCameraToModel(model, 0);
191
- * });
192
- * ```
193
- */
194
- addModel(options: AddModelOptions): Promise<Cognite3DModel | CognitePointCloudModel>;
195
- /**
196
- * Add a new CAD 3D model to the viewer.
197
- * Call {@link Cognite3DViewer.fitCameraToModel} to see the model after the model has loaded.
198
- * @param options
199
- * @example
200
- * ```js
201
- * const options = {
202
- * modelId: 'COGNITE_3D_MODEL_ID',
203
- * revisionId: 'COGNITE_3D_REVISION_ID',
204
- * };
205
- * viewer.addCadModel(options).then(model => {
206
- * viewer.fitCameraToModel(model, 0);
207
- * });
208
- * ```
209
- */
210
- addCadModel(options: AddModelOptions): Promise<Cognite3DModel>;
211
- /**
212
- * Add a new pointcloud 3D model to the viewer.
213
- * Call {@link Cognite3DViewer.fitCameraToModel} to see the model after the model has loaded.
214
- * @param options
215
- * @example
216
- * ```js
217
- * const options = {
218
- * modelId: 'COGNITE_3D_MODEL_ID',
219
- * revisionId: 'COGNITE_3D_REVISION_ID',
220
- * };
221
- * viewer.addPointCloudModel(options).then(model => {
222
- * viewer.fitCameraToModel(model, 0);
223
- * });
224
- * ```
225
- */
226
- addPointCloudModel(options: AddModelOptions): Promise<CognitePointCloudModel>;
227
- /**
228
- * Removes a model that was previously added using {@link Cognite3DViewer.addModel},
229
- * {@link Cognite3DViewer.addCadModel} or {@link Cognite3DViewer.addPointCloudModel}
230
- * .
231
- * @param model
232
- */
233
- removeModel(model: CogniteModelBase): void;
234
- /**
235
- * Use to determine of which type the model is.
236
- *
237
- * @param modelId The model's id.
238
- * @param revisionId The model's revision id.
239
- *
240
- * @returns Empty string if type is not supported.
241
- * @example
242
- * ```typescript
243
- * const viewer = new Cognite3DViewer(...);
244
- * const type = await viewer.determineModelType(options.modelId, options.revisionId)
245
- * let model: Cognite3DModel | CognitePointCloudModel
246
- * switch (type) {
247
- * case 'cad':
248
- * model = await viewer.addCadModel(options);
249
- * break;
250
- * case 'pointcloud':
251
- * model = await viewer.addPointCloudModel(options);
252
- * break;
253
- * default:
254
- * throw new Error('Model is not supported');
255
- * }
256
- * viewer.fitCameraToModel(model);
257
- * ```
258
- */
259
- determineModelType(modelId: number, revisionId: number): Promise<SupportedModelTypes | ''>;
260
- /**
261
- * Add a THREE.Object3D to the viewer.
262
- * @param object
263
- * @example
264
- * ```js
265
- * const sphere = new THREE.Mesh(
266
- * new THREE.SphereBufferGeometry(),
267
- * new THREE.MeshBasicMaterial()
268
- * );
269
- * viewer.addObject3D(sphere);
270
- * ```
271
- */
272
- addObject3D(object: THREE.Object3D): void;
273
- /**
274
- * Remove a THREE.Object3D from the viewer.
275
- * @param object
276
- * @example
277
- * ```js
278
- * const sphere = new THREE.Mesh(new THREE.SphereBufferGeometry(), new THREE.MeshBasicMaterial());
279
- * viewer.addObject3D(sphere);
280
- * viewer.removeObject3D(sphere);
281
- * ```
282
- */
283
- removeObject3D(object: THREE.Object3D): void;
284
- /**
285
- * Sets the color used as the clear color of the renderer.
286
- * @param color
287
- */
288
- setBackgroundColor(color: THREE.Color): void;
289
- /**
290
- * Sets per-pixel clipping planes. Pixels behind any of the planes will be sliced away.
291
- * @param clippingPlanes The planes to use for clipping.
292
- * @example
293
- * ```js
294
- * // Hide pixels with values less than 0 in the x direction
295
- * const plane = new THREE.Plane(new THREE.Vector3(1, 0, 0), 0);
296
- * viewer.setClippingPlanes([plane]);
297
- * ```
298
- * ```js
299
- * // Hide pixels with values greater than 20 in the x direction
300
- * const plane = new THREE.Plane(new THREE.Vector3(-1, 0, 0), 20);
301
- * viewer.setClippingPlanes([plane]);
302
- * ```
303
- * ```js
304
- * // Hide pixels with values less than 0 in the x direction or greater than 0 in the y direction
305
- * const xPlane = new THREE.Plane(new THREE.Vector3(1, 0, 0), 0);
306
- * const yPlane = new THREE.Plane(new THREE.Vector3(0, -1, 0), 0);
307
- * viewer.setClippingPlanes([xPlane, yPlane]);
308
- * ```
309
- * ```js
310
- * // Hide pixels behind an arbitrary, non axis-aligned plane
311
- * const plane = new THREE.Plane(new THREE.Vector3(1.5, 20, -19), 20);
312
- * viewer.setClippingPlanes([plane]);
313
- * ```
314
- * ```js
315
- * // Disable clipping planes
316
- * viewer.setClippingPlanes([]);
317
- * ```
318
- */
319
- setClippingPlanes(clippingPlanes: THREE.Plane[]): void;
320
- /**
321
- * Returns the current active clipping planes.
322
- */
323
- getClippingPlanes(): THREE.Plane[];
324
- /**
325
- * @obvious
326
- * @returns The THREE.Camera used for rendering.
327
- */
328
- getCamera(): THREE.PerspectiveCamera;
329
- /**
330
- * @obvious
331
- * @returns The THREE.Scene used for rendering.
332
- */
333
- getScene(): THREE.Scene;
334
- /**
335
- * Attempts to load the camera settings from the settings stored for the
336
- * provided model. See {@link https://docs.cognite.com/api/v1/#operation/get3DRevision}
337
- * and {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions} for
338
- * information on how this setting is retrieved and stored. This setting can
339
- * also be changed through the 3D models management interface in Cognite Fusion.
340
- * If no camera configuration is stored in CDF, {@link Cognite3DViewer.fitCameraToModel}
341
- * is used as a fallback.
342
- * @param model The model to load camera settings from.
343
- */
344
- loadCameraFromModel(model: CogniteModelBase): void;
345
- /**
346
- * Move camera to a place where the 3D model is visible.
347
- * It uses the bounding box of the 3D model and calls {@link Cognite3DViewer.fitCameraToBoundingBox}.
348
- * @param model The 3D model.
349
- * @param duration The duration of the animation moving the camera. Set this to 0 (zero) to disable animation.
350
- * @example
351
- * ```js
352
- * // Fit camera to model
353
- * viewer.fitCameraToModel(model);
354
- * ```
355
- * ```js
356
- * // Fit camera to model over 500 milliseconds
357
- * viewer.fitCameraToModel(model, 500);
358
- * ```
359
- * ```js
360
- * // Fit camera to model instantly
361
- * viewer.fitCameraToModel(model, 0);
362
- * ```
363
- */
364
- fitCameraToModel(model: CogniteModelBase, duration?: number): void;
365
- /**
366
- * Move camera to a place where the content of a bounding box is visible to the camera.
367
- * @param box The bounding box in world space.
368
- * @param duration The duration of the animation moving the camera. Set this to 0 (zero) to disable animation.
369
- * @param radiusFactor The ratio of the distance from camera to center of box and radius of the box.
370
- * @example
371
- * ```js
372
- * // Fit camera to bounding box over 500 milliseconds
373
- * viewer.fitCameraToBoundingBox(boundingBox, 500);
374
- * ```
375
- * ```js
376
- * // Fit camera to bounding box instantaneously
377
- * viewer.fitCameraToBoundingBox(boundingBox, 0);
378
- * ```
379
- * ```js
380
- * // Place the camera closer to the bounding box
381
- * viewer.fitCameraToBoundingBox(boundingBox, 500, 2);
382
- * ```
383
- */
384
- fitCameraToBoundingBox(box: THREE.Box3, duration?: number, radiusFactor?: number): void;
385
- /**
386
- * Typically used when you perform some changes and can't see them unless you move camera.
387
- */
388
- requestRedraw(): void;
389
- /**
390
- * Convert a point in world space to its coordinates in the canvas. This can be used to place HTML objects near 3D objects on top of the 3D viewer.
391
- * @see {@link https://www.w3schools.com/graphics/canvas_coordinates.asp https://www.w3schools.com/graphics/canvas_coordinates.asp}.
392
- * @param point World space coordinate.
393
- * @param normalize Optional. If true, coordinates are normalized into [0,1]. If false, the values are in the range [0, <canvas_size>).
394
- * @returns Returns 2D coordinates if the point is visible on screen, or `null` if object is outside screen.
395
- * @example
396
- * ```js
397
- * const boundingBoxCenter = new THREE.Vector3();
398
- * // Find center of bounding box in world space
399
- * model.getBoundingBox(nodeId).getCenter(boundingBoxCenter);
400
- * // Screen coordinates of that point
401
- * const screenCoordinates = viewer.worldToScreen(boundingBoxCenter);
402
- * ```
403
- * ```js
404
- * const boundingBoxCenter = new THREE.Vector3();
405
- * // Find center of bounding box in world space
406
- * model.getBoundingBox(nodeId).getCenter(boundingBoxCenter);
407
- * // Screen coordinates of that point normalized in the range [0,1]
408
- * const screenCoordinates = viewer.worldToScreen(boundingBoxCenter, true);
409
- * ```
410
- * ```js
411
- * const boundingBoxCenter = new THREE.Vector3();
412
- * // Find center of bounding box in world space
413
- * model.getBoundingBox(nodeId).getCenter(boundingBoxCenter);
414
- * // Screen coordinates of that point
415
- * const screenCoordinates = viewer.worldToScreen(boundingBoxCenter);
416
- * if (screenCoordinates == null) {
417
- * // Object not visible on screen
418
- * } else {
419
- * // Object is visible on screen
420
- * }
421
- * ```
422
- */
423
- worldToScreen(point: THREE.Vector3, normalize?: boolean): THREE.Vector2 | null;
424
- /**
425
- * Take screenshot from the current camera position.
426
- * @param width Width of the final image. Default is current canvas size.
427
- * @param height Height of the final image. Default is current canvas size.
428
- * @returns A {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URL} of the image ('image/png').
429
- * @example
430
- * ```js
431
- * // Take a screenshot with custom resolution
432
- * const url = await viewer.getScreenshot(1920, 1080);
433
- * ```
434
- * ```js
435
- * // Add a screenshot with resolution of the canvas to the page
436
- * const url = await viewer.getScreenshot();
437
- * const image = document.createElement('img');
438
- * image.src = url;
439
- * document.body.appendChild(url);
440
- * ```
441
- */
442
- getScreenshot(width?: number, height?: number): Promise<string>;
443
- /**
444
- * Raycasting model(s) for finding where the ray intersects with the model.
445
- * @param offsetX X coordinate in pixels (relative to the domElement).
446
- * @param offsetY Y coordinate in pixels (relative to the domElement).
447
- * @param options Options to control the behavior of the intersection operation. Optional (new in 1.3.0).
448
- * @returns A promise that if there was an intersection then return the intersection object - otherwise it
449
- * returns `null` if there were no intersections.
450
- * @see {@link https://en.wikipedia.org/wiki/Ray_casting}.
451
- *
452
- * @example For CAD model
453
- * ```js
454
- * const offsetX = 50 // pixels from the left
455
- * const offsetY = 100 // pixels from the top
456
- * const intersection = await viewer.getIntersectionFromPixel(offsetX, offsetY);
457
- * if (intersection) // it was a hit
458
- * console.log(
459
- * 'You hit model ', intersection.model,
460
- * ' at the node with tree index ', intersection.treeIndex,
461
- * ' at this exact point ', intersection.point
462
- * );
463
- * ```
464
- *
465
- * @example For point cloud
466
- * ```js
467
- * const offsetX = 50 // pixels from the left
468
- * const offsetY = 100 // pixels from the top
469
- * const intersection = await viewer.getIntersectionFromPixel(offsetX, offsetY);
470
- * if (intersection) // it was a hit
471
- * console.log(
472
- * 'You hit model ', intersection.model,
473
- * ' at the point index ', intersection.pointIndex,
474
- * ' at this exact point ', intersection.point
475
- * );
476
- * ```
477
- */
478
- getIntersectionFromPixel(offsetX: number, offsetY: number): Promise<null | Intersection>;
479
- /**
480
- * @deprecated Since 3.1 options argument have no effect.
481
- * */
482
- getIntersectionFromPixel(offsetX: number, offsetY: number, options: IntersectionFromPixelOptions): Promise<null | Intersection>;
483
- /** @private */
484
- private getModels;
485
- /**
486
- * Creates a helper for managing viewer state.
487
- */
488
- private createViewStateHelper;
489
- /** @private */
490
- private animate;
491
- /** @private */
492
- private modelIntersectionCallback;
493
- /** @private */
494
- private recalculateBoundingBox;
495
- /** @private */
496
- private resizeIfNecessary;
497
- private readonly startPointerEventListeners;
498
- }
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ import { PointerEventDelegate, SceneRenderedDelegate, DisposedDelegate, BeforeSceneRenderedDelegate } from '../../../../utilities';
6
+ import { Cognite3DModel } from '../../../../cad-model';
7
+ import { PointCloudBudget, CognitePointCloudModel } from '../../../../pointclouds';
8
+ import { AddImage360Options, AddModelOptions, Cognite3DViewerOptions, Intersection, CadModelBudget } from './types';
9
+ import { ViewerState } from '../../utilities/ViewStateHelper';
10
+ import { CameraManager, CameraChangeDelegate } from '../../../../camera-manager';
11
+ import { SupportedModelTypes, CogniteModelBase } from '../../../../model-base';
12
+ import { Image360Entity } from '../../../../360-images';
13
+ /**
14
+ * @example
15
+ * ```js
16
+ * const viewer = new Cognite3DViewer({
17
+ * noBackground: true,
18
+ * sdk: CogniteClient({...})
19
+ * });
20
+ * ```
21
+ * @module @cognite/reveal
22
+ */
23
+ export declare class Cognite3DViewer {
24
+ private readonly _domElementResizeObserver;
25
+ private readonly _image360ApiHelper;
26
+ private get canvas();
27
+ /**
28
+ * The DOM element the viewer will insert its rendering canvas into.
29
+ * The DOM element can be specified in the options when the viewer is created.
30
+ * If not specified, the DOM element will be created automatically.
31
+ * The DOM element cannot be changed after the viewer has been created.
32
+ */
33
+ get domElement(): HTMLElement;
34
+ /**
35
+ * Returns the renderer used to produce images from 3D geometry.
36
+ */
37
+ get renderer(): THREE.WebGLRenderer;
38
+ private readonly _cdfSdkClient;
39
+ private readonly _dataSource;
40
+ private readonly _sceneHandler;
41
+ private readonly _activeCameraManager;
42
+ private readonly _subscription;
43
+ private readonly _revealManagerHelper;
44
+ private readonly _domElement;
45
+ private readonly _renderer;
46
+ private readonly _pickingHandler;
47
+ private readonly _pointCloudPickingHandler;
48
+ private readonly _boundAnimate;
49
+ private readonly _events;
50
+ private readonly _mouseHandler;
51
+ private readonly _models;
52
+ private readonly _extraObjects;
53
+ private isDisposed;
54
+ private latestRequestId;
55
+ private readonly clock;
56
+ private _clippingNeedsUpdate;
57
+ private readonly spinner;
58
+ private get revealManager();
59
+ /**
60
+ * Reusable buffers used by functions in Cognite3dViewer to avoid allocations.
61
+ */
62
+ private readonly _updateNearAndFarPlaneBuffers;
63
+ /**
64
+ * Gets the current budget for downloading geometry for CAD models. Note that this
65
+ * budget is shared between all added CAD models and not a per-model budget.
66
+ */
67
+ get cadBudget(): CadModelBudget;
68
+ /**
69
+ * Sets the current budget for downloading geometry for CAD models. Note that this
70
+ * budget is shared between all added CAD models and not a per-model budget.
71
+ */
72
+ set cadBudget(budget: CadModelBudget);
73
+ /**
74
+ * Returns the point cloud budget. The budget is shared between all loaded
75
+ * point cloud models.
76
+ */
77
+ get pointCloudBudget(): PointCloudBudget;
78
+ /**
79
+ * Sets the point cloud budget. The budget is shared between all loaded
80
+ * point cloud models.
81
+ */
82
+ set pointCloudBudget(budget: PointCloudBudget);
83
+ /**
84
+ * Gets a list of models currently added to the viewer.
85
+ */
86
+ get models(): CogniteModelBase[];
87
+ constructor(options: Cognite3DViewerOptions);
88
+ /**
89
+ * Returns reveal version installed.
90
+ */
91
+ getVersion(): string;
92
+ /**
93
+ * Sets the log level. Used for debugging.
94
+ * Defaults to 'none' (which is identical to 'silent').
95
+ * @param level
96
+ */
97
+ setLogLevel(level: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent' | 'none'): void;
98
+ /**
99
+ * Dispose of WebGL resources. Can be used to free up memory when the viewer is no longer in use.
100
+ * @see {@link https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects}
101
+ * ```ts
102
+ * // Viewer is no longer in use, free up memory
103
+ * viewer.dispose();
104
+ * ```.
105
+ */
106
+ dispose(): void;
107
+ /**
108
+ * Triggered when the viewer is disposed. Listeners should clean up any
109
+ * resources held and remove the reference to the viewer.
110
+ */
111
+ on(event: 'disposed', callback: DisposedDelegate): void;
112
+ /**
113
+ * @example
114
+ * ```js
115
+ * const onClick = (event) => { console.log(event.offsetX, event.offsetY) };
116
+ * viewer.on('click', onClick);
117
+ * ```
118
+ */
119
+ on(event: 'click' | 'hover', callback: PointerEventDelegate): void;
120
+ /**
121
+ * @example
122
+ * ```js
123
+ * viewer.on('cameraChange', (position, target) => {
124
+ * console.log('Camera changed: ', position, target);
125
+ * });
126
+ * ```
127
+ */
128
+ on(event: 'cameraChange', callback: CameraChangeDelegate): void;
129
+ /**
130
+ * Event that is triggered immediately before the scene is rendered.
131
+ * @param event Metadata about the rendering frame.
132
+ * @param callback Callback to trigger when event occurs.
133
+ */
134
+ on(event: 'beforeSceneRendered', callback: BeforeSceneRenderedDelegate): void;
135
+ /**
136
+ * Event that is triggered immediately after the scene has been rendered.
137
+ * @param event Metadata about the rendering frame.
138
+ * @param callback Callback to trigger when the event occurs.
139
+ */
140
+ on(event: 'sceneRendered', callback: SceneRenderedDelegate): void;
141
+ /**
142
+ * @example
143
+ * ```js
144
+ * viewer.off('click', onClick);
145
+ * ```
146
+ */
147
+ off(event: 'click' | 'hover', callback: PointerEventDelegate): void;
148
+ /**
149
+ * @example
150
+ * ```js
151
+ * viewer.off('cameraChange', onCameraChange);
152
+ * ```
153
+ */
154
+ off(event: 'cameraChange', callback: CameraChangeDelegate): void;
155
+ /**
156
+ * Unsubscribe the 'beforeSceneRendered'-event previously subscribed with {@link on}.
157
+ */
158
+ off(event: 'beforeSceneRendered', callback: BeforeSceneRenderedDelegate): void;
159
+ /**
160
+ * @example
161
+ * ```js
162
+ * viewer.off('sceneRendered', updateStats);
163
+ * ```
164
+ */
165
+ off(event: 'sceneRendered', callback: SceneRenderedDelegate): void;
166
+ /**
167
+ * @example
168
+ * ```js
169
+ * viewer.off('disposed', clearAll);
170
+ * ```
171
+ */
172
+ off(event: 'disposed', callback: DisposedDelegate): void;
173
+ get cameraManager(): CameraManager;
174
+ /**
175
+ * Sets the active camera manager instance for current Cognite3Dviewer.
176
+ * @param cameraManager Camera manager instance.
177
+ * @param preserveCameraState Whether to set current camera state to new camera manager.
178
+ */
179
+ setCameraManager(cameraManager: CameraManager, preserveCameraState?: boolean): void;
180
+ /**
181
+ * Gets the current viewer state which includes the camera pose as well as applied styling.
182
+ * @returns JSON object containing viewer state.
183
+ */
184
+ getViewState(): ViewerState;
185
+ /**
186
+ * Restores camera settings from the state provided, and clears all current styled
187
+ * node collections and applies the `state` object.
188
+ * @param state Viewer state retrieved from {@link Cognite3DViewer.getViewState}.
189
+ */
190
+ setViewState(state: ViewerState): Promise<void>;
191
+ /**
192
+ * Add a new model to the viewer.
193
+ * Call {@link Cognite3DViewer.fitCameraToModel} to see the model after the model has loaded.
194
+ * @param options
195
+ * @example
196
+ * ```js
197
+ * const options = {
198
+ * modelId: 'COGNITE_3D_MODEL_ID',
199
+ * revisionId: 'COGNITE_3D_REVISION_ID',
200
+ * };
201
+ * viewer.addModel(options).then(model => {
202
+ * viewer.fitCameraToModel(model, 0);
203
+ * });
204
+ * ```
205
+ */
206
+ addModel(options: AddModelOptions): Promise<Cognite3DModel | CognitePointCloudModel>;
207
+ /**
208
+ * Add a new CAD 3D model to the viewer.
209
+ * Call {@link Cognite3DViewer.fitCameraToModel} to see the model after the model has loaded.
210
+ * @param options
211
+ * @example
212
+ * ```js
213
+ * const options = {
214
+ * modelId: 'COGNITE_3D_MODEL_ID',
215
+ * revisionId: 'COGNITE_3D_REVISION_ID',
216
+ * };
217
+ * viewer.addCadModel(options).then(model => {
218
+ * viewer.fitCameraToModel(model, 0);
219
+ * });
220
+ * ```
221
+ */
222
+ addCadModel(options: AddModelOptions): Promise<Cognite3DModel>;
223
+ /**
224
+ * Add a new pointcloud 3D model to the viewer.
225
+ * Call {@link Cognite3DViewer.fitCameraToModel} to see the model after the model has loaded.
226
+ * @param options
227
+ * @example
228
+ * ```js
229
+ * const options = {
230
+ * modelId: 'COGNITE_3D_MODEL_ID',
231
+ * revisionId: 'COGNITE_3D_REVISION_ID',
232
+ * };
233
+ * viewer.addPointCloudModel(options).then(model => {
234
+ * viewer.fitCameraToModel(model, 0);
235
+ * });
236
+ * ```
237
+ */
238
+ addPointCloudModel(options: AddModelOptions): Promise<CognitePointCloudModel>;
239
+ /**
240
+ * Adds a set of 360 images to the scene from the /events API in Cognite Data Fusion.
241
+ * @param datasource The CDF data source which holds the references to the 360 image sets.
242
+ * @param eventFilter The metadata filter to apply when querying events that contains the 360 images.
243
+ * @param add360ImageOptions Options for behaviours when adding 360 images.
244
+ * @example
245
+ * ```js
246
+ * const eventFilter = { site_id: "12345" };
247
+ * await viewer.add360ImageSet(eventFilter);
248
+ * ```
249
+ */
250
+ add360ImageSet(datasource: 'events', eventFilter: {
251
+ [key: string]: string;
252
+ }, add360ImageOptions?: AddImage360Options): Promise<Image360Entity[]>;
253
+ /**
254
+ * Enter visualization of a 360 image.
255
+ * @param image360
256
+ */
257
+ enter360Image(image360: Image360Entity): Promise<void>;
258
+ /**
259
+ * Exit visualization of the 360 image.
260
+ */
261
+ exit360Image(): void;
262
+ /**
263
+ * Removes a model that was previously added using {@link Cognite3DViewer.addModel},
264
+ * {@link Cognite3DViewer.addCadModel} or {@link Cognite3DViewer.addPointCloudModel}
265
+ * .
266
+ * @param model
267
+ */
268
+ removeModel(model: CogniteModelBase): void;
269
+ /**
270
+ * Use to determine of which type the model is.
271
+ *
272
+ * @param modelId The model's id.
273
+ * @param revisionId The model's revision id.
274
+ *
275
+ * @returns Empty string if type is not supported.
276
+ * @example
277
+ * ```typescript
278
+ * const viewer = new Cognite3DViewer(...);
279
+ * const type = await viewer.determineModelType(options.modelId, options.revisionId)
280
+ * let model: Cognite3DModel | CognitePointCloudModel
281
+ * switch (type) {
282
+ * case 'cad':
283
+ * model = await viewer.addCadModel(options);
284
+ * break;
285
+ * case 'pointcloud':
286
+ * model = await viewer.addPointCloudModel(options);
287
+ * break;
288
+ * default:
289
+ * throw new Error('Model is not supported');
290
+ * }
291
+ * viewer.fitCameraToModel(model);
292
+ * ```
293
+ */
294
+ determineModelType(modelId: number, revisionId: number): Promise<SupportedModelTypes | ''>;
295
+ /**
296
+ * Add a THREE.Object3D to the viewer.
297
+ * @param object
298
+ * @example
299
+ * ```js
300
+ * const sphere = new THREE.Mesh(
301
+ * new THREE.SphereGeometry(),
302
+ * new THREE.MeshBasicMaterial()
303
+ * );
304
+ * viewer.addObject3D(sphere);
305
+ * ```
306
+ */
307
+ addObject3D(object: THREE.Object3D): void;
308
+ /**
309
+ * Remove a THREE.Object3D from the viewer.
310
+ * @param object
311
+ * @example
312
+ * ```js
313
+ * const sphere = new THREE.Mesh(new THREE.SphereGeometry(), new THREE.MeshBasicMaterial());
314
+ * viewer.addObject3D(sphere);
315
+ * viewer.removeObject3D(sphere);
316
+ * ```
317
+ */
318
+ removeObject3D(object: THREE.Object3D): void;
319
+ /**
320
+ * Sets the color used as the clear color of the renderer.
321
+ * @param color
322
+ */
323
+ setBackgroundColor(color: THREE.Color): void;
324
+ /**
325
+ * Sets per-pixel clipping planes. Pixels behind any of the planes will be sliced away.
326
+ * @param clippingPlanes The planes to use for clipping.
327
+ * @example
328
+ * ```js
329
+ * // Hide pixels with values less than 0 in the x direction
330
+ * const plane = new THREE.Plane(new THREE.Vector3(1, 0, 0), 0);
331
+ * viewer.setClippingPlanes([plane]);
332
+ * ```
333
+ * ```js
334
+ * // Hide pixels with values greater than 20 in the x direction
335
+ * const plane = new THREE.Plane(new THREE.Vector3(-1, 0, 0), 20);
336
+ * viewer.setClippingPlanes([plane]);
337
+ * ```
338
+ * ```js
339
+ * // Hide pixels with values less than 0 in the x direction or greater than 0 in the y direction
340
+ * const xPlane = new THREE.Plane(new THREE.Vector3(1, 0, 0), 0);
341
+ * const yPlane = new THREE.Plane(new THREE.Vector3(0, -1, 0), 0);
342
+ * viewer.setClippingPlanes([xPlane, yPlane]);
343
+ * ```
344
+ * ```js
345
+ * // Hide pixels behind an arbitrary, non axis-aligned plane
346
+ * const plane = new THREE.Plane(new THREE.Vector3(1.5, 20, -19), 20);
347
+ * viewer.setClippingPlanes([plane]);
348
+ * ```
349
+ * ```js
350
+ * // Disable clipping planes
351
+ * viewer.setClippingPlanes([]);
352
+ * ```
353
+ */
354
+ setClippingPlanes(clippingPlanes: THREE.Plane[]): void;
355
+ /**
356
+ * Returns the current active clipping planes.
357
+ */
358
+ getClippingPlanes(): THREE.Plane[];
359
+ /**
360
+ * @obvious
361
+ * @returns The THREE.Camera used for rendering.
362
+ */
363
+ getCamera(): THREE.PerspectiveCamera;
364
+ /**
365
+ * @obvious
366
+ * @returns The THREE.Scene used for rendering.
367
+ */
368
+ getScene(): THREE.Scene;
369
+ /**
370
+ * Attempts to load the camera settings from the settings stored for the
371
+ * provided model. See {@link https://docs.cognite.com/api/v1/#operation/get3DRevision}
372
+ * and {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions} for
373
+ * information on how this setting is retrieved and stored. This setting can
374
+ * also be changed through the 3D models management interface in Cognite Fusion.
375
+ * If no camera configuration is stored in CDF, {@link Cognite3DViewer.fitCameraToModel}
376
+ * is used as a fallback.
377
+ * @param model The model to load camera settings from.
378
+ */
379
+ loadCameraFromModel(model: CogniteModelBase): void;
380
+ /**
381
+ * Move camera to a place where the 3D model is visible.
382
+ * It uses the bounding box of the 3D model and calls {@link Cognite3DViewer.fitCameraToBoundingBox}.
383
+ * @param model The 3D model.
384
+ * @param duration The duration of the animation moving the camera. Set this to 0 (zero) to disable animation.
385
+ * @example
386
+ * ```js
387
+ * // Fit camera to model
388
+ * viewer.fitCameraToModel(model);
389
+ * ```
390
+ * ```js
391
+ * // Fit camera to model over 500 milliseconds
392
+ * viewer.fitCameraToModel(model, 500);
393
+ * ```
394
+ * ```js
395
+ * // Fit camera to model instantly
396
+ * viewer.fitCameraToModel(model, 0);
397
+ * ```
398
+ */
399
+ fitCameraToModel(model: CogniteModelBase, duration?: number): void;
400
+ /**
401
+ * Move camera to a place where the content of a bounding box is visible to the camera.
402
+ * @param box The bounding box in world space.
403
+ * @param duration The duration of the animation moving the camera. Set this to 0 (zero) to disable animation.
404
+ * @param radiusFactor The ratio of the distance from camera to center of box and radius of the box.
405
+ * @example
406
+ * ```js
407
+ * // Fit camera to bounding box over 500 milliseconds
408
+ * viewer.fitCameraToBoundingBox(boundingBox, 500);
409
+ * ```
410
+ * ```js
411
+ * // Fit camera to bounding box instantaneously
412
+ * viewer.fitCameraToBoundingBox(boundingBox, 0);
413
+ * ```
414
+ * ```js
415
+ * // Place the camera closer to the bounding box
416
+ * viewer.fitCameraToBoundingBox(boundingBox, 500, 2);
417
+ * ```
418
+ */
419
+ fitCameraToBoundingBox(box: THREE.Box3, duration?: number, radiusFactor?: number): void;
420
+ /**
421
+ * Typically used when you perform some changes and can't see them unless you move camera.
422
+ */
423
+ requestRedraw(): void;
424
+ /**
425
+ * Convert a point in world space to its coordinates in the canvas. This can be used to place HTML objects near 3D objects on top of the 3D viewer.
426
+ * @see {@link https://www.w3schools.com/graphics/canvas_coordinates.asp https://www.w3schools.com/graphics/canvas_coordinates.asp}.
427
+ * @param point World space coordinate.
428
+ * @param normalize Optional. If true, coordinates are normalized into [0,1]. If false, the values are in the range [0, <canvas_size>).
429
+ * @returns Returns 2D coordinates if the point is visible on screen, or `null` if object is outside screen.
430
+ * @example
431
+ * ```js
432
+ * const boundingBoxCenter = new THREE.Vector3();
433
+ * // Find center of bounding box in world space
434
+ * model.getBoundingBox(nodeId).getCenter(boundingBoxCenter);
435
+ * // Screen coordinates of that point
436
+ * const screenCoordinates = viewer.worldToScreen(boundingBoxCenter);
437
+ * ```
438
+ * ```js
439
+ * const boundingBoxCenter = new THREE.Vector3();
440
+ * // Find center of bounding box in world space
441
+ * model.getBoundingBox(nodeId).getCenter(boundingBoxCenter);
442
+ * // Screen coordinates of that point normalized in the range [0,1]
443
+ * const screenCoordinates = viewer.worldToScreen(boundingBoxCenter, true);
444
+ * ```
445
+ * ```js
446
+ * const boundingBoxCenter = new THREE.Vector3();
447
+ * // Find center of bounding box in world space
448
+ * model.getBoundingBox(nodeId).getCenter(boundingBoxCenter);
449
+ * // Screen coordinates of that point
450
+ * const screenCoordinates = viewer.worldToScreen(boundingBoxCenter);
451
+ * if (screenCoordinates == null) {
452
+ * // Object not visible on screen
453
+ * } else {
454
+ * // Object is visible on screen
455
+ * }
456
+ * ```
457
+ */
458
+ worldToScreen(point: THREE.Vector3, normalize?: boolean): THREE.Vector2 | null;
459
+ /**
460
+ * Take screenshot from the current camera position.
461
+ * @param width Width of the final image. Default is current canvas size.
462
+ * @param height Height of the final image. Default is current canvas size.
463
+ * @returns A {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URL} of the image ('image/png').
464
+ * @example
465
+ * ```js
466
+ * // Take a screenshot with custom resolution
467
+ * const url = await viewer.getScreenshot(1920, 1080);
468
+ * ```
469
+ * ```js
470
+ * // Add a screenshot with resolution of the canvas to the page
471
+ * const url = await viewer.getScreenshot();
472
+ * const image = document.createElement('img');
473
+ * image.src = url;
474
+ * document.body.appendChild(url);
475
+ * ```
476
+ */
477
+ getScreenshot(width?: number, height?: number): Promise<string>;
478
+ /**
479
+ * Raycasting model(s) for finding where the ray intersects with the model.
480
+ * @param offsetX X coordinate in pixels (relative to the domElement).
481
+ * @param offsetY Y coordinate in pixels (relative to the domElement).
482
+ * @returns A promise that if there was an intersection then return the intersection object - otherwise it
483
+ * returns `null` if there were no intersections.
484
+ * @see {@link https://en.wikipedia.org/wiki/Ray_casting}.
485
+ *
486
+ * @example For CAD model
487
+ * ```js
488
+ * const offsetX = 50 // pixels from the left
489
+ * const offsetY = 100 // pixels from the top
490
+ * const intersection = await viewer.getIntersectionFromPixel(offsetX, offsetY);
491
+ * if (intersection) // it was a hit
492
+ * console.log(
493
+ * 'You hit model ', intersection.model,
494
+ * ' at the node with tree index ', intersection.treeIndex,
495
+ * ' at this exact point ', intersection.point
496
+ * );
497
+ * ```
498
+ *
499
+ * @example For point cloud
500
+ * ```js
501
+ * const offsetX = 50 // pixels from the left
502
+ * const offsetY = 100 // pixels from the top
503
+ * const intersection = await viewer.getIntersectionFromPixel(offsetX, offsetY);
504
+ * if (intersection) // it was a hit
505
+ * console.log(
506
+ * 'You hit model ', intersection.model,
507
+ * ' at the point index ', intersection.pointIndex,
508
+ * ' at this exact point ', intersection.point
509
+ * );
510
+ * ```
511
+ */
512
+ getIntersectionFromPixel(offsetX: number, offsetY: number): Promise<null | Intersection>;
513
+ /** @private */
514
+ private getModels;
515
+ /**
516
+ * Creates a helper for managing viewer state.
517
+ */
518
+ private createViewStateHelper;
519
+ /** @private */
520
+ private animate;
521
+ /** @private */
522
+ private intersectModels;
523
+ /**
524
+ * Callback used by DefaultCameraManager to do model intersection. Made synchronous to avoid
525
+ * input lag when zooming in and out. Default implementation is async. See PR #2405 for more info.
526
+ * @private
527
+ */
528
+ private modelIntersectionCallback;
529
+ /** @private */
530
+ private recalculateBoundingBox;
531
+ /** @private */
532
+ private setupDomElementResizeListener;
533
+ private readonly startPointerEventListeners;
534
+ }