@cognite/reveal 2.2.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/core/cad.d.ts +4 -4
  2. package/core/index.d.ts +7 -7
  3. package/core/src/datamodels/base/SupportedModelTypes.d.ts +4 -4
  4. package/core/src/datamodels/base/index.d.ts +6 -6
  5. package/core/src/datamodels/base/types.d.ts +14 -14
  6. package/core/src/datamodels/cad/CadManager.d.ts +45 -45
  7. package/core/src/datamodels/cad/CadModelFactory.d.ts +7 -7
  8. package/core/src/datamodels/cad/CadModelSectorLoadStatistics.d.ts +38 -38
  9. package/core/src/datamodels/cad/createCadManager.d.ts +9 -9
  10. package/core/src/datamodels/cad/picking.d.ts +28 -28
  11. package/core/src/datamodels/cad/rendering/RenderAlreadyLoadedGeometryProvider.d.ts +10 -10
  12. package/core/src/datamodels/cad/sector/CadModelClipper.d.ts +10 -10
  13. package/core/src/datamodels/cad/styling/AssetNodeCollection.d.ts +38 -38
  14. package/core/src/datamodels/cad/styling/InvertedNodeCollection.d.ts +24 -24
  15. package/core/src/datamodels/cad/styling/NodeCollectionDeserializer.d.ts +26 -26
  16. package/core/src/datamodels/cad/styling/PopulateIndexSetFromPagedResponseHelper.d.ts +24 -24
  17. package/core/src/datamodels/cad/styling/PropertyFilterNodeCollection.d.ts +54 -54
  18. package/core/src/datamodels/cad/styling/SinglePropertyFilterNodeCollection.d.ts +50 -50
  19. package/core/src/datamodels/cad/styling/index.d.ts +8 -8
  20. package/core/src/datamodels/pointcloud/PointCloudFactory.d.ts +9 -9
  21. package/core/src/datamodels/pointcloud/PointCloudManager.d.ts +26 -26
  22. package/core/src/datamodels/pointcloud/PointCloudMetadata.d.ts +11 -11
  23. package/core/src/datamodels/pointcloud/PointCloudMetadataRepository.d.ts +13 -13
  24. package/core/src/datamodels/pointcloud/PointCloudNode.d.ts +62 -62
  25. package/core/src/datamodels/pointcloud/PotreeGroupWrapper.d.ts +39 -39
  26. package/core/src/datamodels/pointcloud/PotreeNodeWrapper.d.ts +38 -38
  27. package/core/src/datamodels/pointcloud/createPointCloudManager.d.ts +6 -6
  28. package/core/src/datamodels/pointcloud/index.d.ts +5 -5
  29. package/core/src/datamodels/pointcloud/picking.d.ts +29 -29
  30. package/core/src/datamodels/pointcloud/types.d.ts +114 -114
  31. package/core/src/index.d.ts +19 -19
  32. package/core/src/internals.d.ts +15 -15
  33. package/core/src/migration.d.ts +8 -8
  34. package/core/src/public/RevealManager.d.ts +64 -64
  35. package/core/src/public/createRevealManager.d.ts +23 -23
  36. package/core/src/public/migration/Cognite3DModel.d.ts +339 -339
  37. package/core/src/public/migration/Cognite3DViewer.d.ts +566 -611
  38. package/core/src/public/migration/CogniteModelBase.d.ts +17 -17
  39. package/core/src/public/migration/CognitePointCloudModel.d.ts +121 -121
  40. package/core/src/public/migration/NodeIdAndTreeIndexMaps.d.ts +4 -4
  41. package/core/src/public/migration/NotSupportedInMigrationWrapperError.d.ts +11 -11
  42. package/core/src/public/migration/RenderController.d.ts +4 -4
  43. package/core/src/public/migration/types.d.ts +290 -290
  44. package/core/src/public/types.d.ts +46 -46
  45. package/core/src/storage/RevealManagerHelper.d.ts +58 -58
  46. package/core/src/utilities/BoundingBoxClipper.d.ts +23 -23
  47. package/core/src/utilities/Spinner.d.ts +27 -27
  48. package/core/src/utilities/ViewStateHelper.d.ts +37 -33
  49. package/core/src/utilities/callActionWithIndicesAsync.d.ts +4 -4
  50. package/core/src/utilities/index.d.ts +8 -8
  51. package/core/src/utilities/reflection.d.ts +7 -7
  52. package/core/src/utilities/worldToViewport.d.ts +30 -30
  53. package/core/utilities.d.ts +4 -4
  54. package/extensions/datasource.d.ts +9 -9
  55. package/extensions/datasource.js +6 -6
  56. package/extensions/datasource.map +1 -1
  57. package/index.d.ts +9 -8
  58. package/index.js +101 -91
  59. package/index.map +1 -1
  60. package/package.json +2 -2
  61. package/packages/cad-geometry-loaders/index.d.ts +14 -14
  62. package/packages/cad-geometry-loaders/src/CadLoadingHints.d.ts +11 -11
  63. package/packages/cad-geometry-loaders/src/CadModelSectorBudget.d.ts +26 -26
  64. package/packages/cad-geometry-loaders/src/CadModelUpdateHandler.d.ts +44 -44
  65. package/packages/cad-geometry-loaders/src/sector/CachedRepository.d.ts +25 -25
  66. package/packages/cad-geometry-loaders/src/sector/ModelStateHandler.d.ts +12 -12
  67. package/packages/cad-geometry-loaders/src/sector/Repository.d.ts +9 -9
  68. package/packages/cad-geometry-loaders/src/sector/SectorLoader.d.ts +28 -28
  69. package/packages/cad-geometry-loaders/src/sector/SimpleAndDetailedToSector3D.d.ts +20 -20
  70. package/packages/cad-geometry-loaders/src/sector/culling/ByVisibilityGpuSectorCuller.d.ts +53 -53
  71. package/packages/cad-geometry-loaders/src/sector/culling/OccludingGeometryProvider.d.ts +6 -6
  72. package/packages/cad-geometry-loaders/src/sector/culling/OrderSectorsByVisibilityCoverage.d.ts +107 -107
  73. package/packages/cad-geometry-loaders/src/sector/culling/SectorCuller.d.ts +33 -33
  74. package/packages/cad-geometry-loaders/src/sector/culling/TakenSectorTree.d.ts +24 -24
  75. package/packages/cad-geometry-loaders/src/sector/culling/types.d.ts +71 -71
  76. package/packages/cad-geometry-loaders/src/sector/rxSectorUtilities.d.ts +12 -12
  77. package/packages/cad-geometry-loaders/src/sector/sectorUtilities.d.ts +20 -20
  78. package/packages/cad-geometry-loaders/src/utilities/PromiseUtils.d.ts +18 -18
  79. package/packages/cad-geometry-loaders/src/utilities/arrays.d.ts +5 -5
  80. package/packages/cad-geometry-loaders/src/utilities/groupMeshesByNumber.d.ts +8 -8
  81. package/packages/cad-geometry-loaders/src/utilities/rxOperations.d.ts +6 -6
  82. package/packages/cad-geometry-loaders/src/utilities/types.d.ts +25 -25
  83. package/packages/cad-parsers/index.d.ts +21 -21
  84. package/packages/cad-parsers/src/cad/CadSectorParser.d.ts +15 -15
  85. package/packages/cad-parsers/src/cad/LevelOfDetail.d.ts +8 -8
  86. package/packages/cad-parsers/src/cad/filterInstanceMesh.d.ts +6 -6
  87. package/packages/cad-parsers/src/cad/filterPrimitives.d.ts +9 -9
  88. package/packages/cad-parsers/src/cad/primitiveGeometries.d.ts +31 -31
  89. package/packages/cad-parsers/src/cad/triangleMeshes.d.ts +6 -6
  90. package/packages/cad-parsers/src/cad/types.d.ts +56 -56
  91. package/packages/cad-parsers/src/metadata/CadMetadataParser.d.ts +7 -7
  92. package/packages/cad-parsers/src/metadata/CadModelMetadata.d.ts +44 -44
  93. package/packages/cad-parsers/src/metadata/CadModelMetadataRepository.d.ts +16 -16
  94. package/packages/cad-parsers/src/metadata/MetadataRepository.d.ts +7 -7
  95. package/packages/cad-parsers/src/metadata/parsers/CadMetadataParserV8.d.ts +51 -51
  96. package/packages/cad-parsers/src/metadata/types.d.ts +41 -41
  97. package/packages/cad-parsers/src/sector/RootSectorNode.d.ts +12 -12
  98. package/packages/cad-parsers/src/sector/SectorNode.d.ts +21 -21
  99. package/packages/cad-parsers/src/utilities/SectorScene.d.ts +21 -21
  100. package/packages/cad-parsers/src/utilities/SectorSceneFactory.d.ts +9 -9
  101. package/packages/cad-parsers/src/utilities/computeBoundingBoxFromAttributes.d.ts +9 -9
  102. package/packages/cad-parsers/src/utilities/float32BufferToMatrix.d.ts +12 -12
  103. package/packages/cad-parsers/src/utilities/types.d.ts +48 -48
  104. package/packages/cad-styling/index.d.ts +9 -9
  105. package/packages/cad-styling/src/CombineNodeCollectionBase.d.ts +31 -31
  106. package/packages/cad-styling/src/IntersectionNodeCollection.d.ts +15 -15
  107. package/packages/cad-styling/src/NodeAppearance.d.ts +62 -62
  108. package/packages/cad-styling/src/NodeAppearanceProvider.d.ts +33 -33
  109. package/packages/cad-styling/src/NodeCollectionBase.d.ts +47 -47
  110. package/packages/cad-styling/src/TreeIndexNodeCollection.d.ts +23 -23
  111. package/packages/cad-styling/src/UnionNodeCollection.d.ts +15 -15
  112. package/packages/camera-manager/index.d.ts +6 -4
  113. package/packages/camera-manager/src/CameraManager.d.ts +85 -0
  114. package/packages/camera-manager/src/ComboControls.d.ts +102 -100
  115. package/packages/camera-manager/src/Keyboard.d.ts +17 -17
  116. package/packages/camera-manager/src/types.d.ts +64 -0
  117. package/packages/data-source/index.d.ts +6 -6
  118. package/packages/data-source/src/CdfDataSource.d.ts +19 -19
  119. package/packages/data-source/src/DataSource.d.ts +26 -26
  120. package/packages/data-source/src/LocalDataSource.d.ts +15 -15
  121. package/packages/logger/index.d.ts +5 -5
  122. package/packages/logger/src/Log.d.ts +5 -5
  123. package/packages/metrics/index.d.ts +5 -5
  124. package/packages/metrics/src/MetricsLogger.d.ts +21 -21
  125. package/packages/metrics/src/types.d.ts +7 -7
  126. package/packages/modeldata-api/index.d.ts +13 -13
  127. package/packages/modeldata-api/src/CdfModelDataProvider.d.ts +17 -15
  128. package/packages/modeldata-api/src/CdfModelIdentifier.d.ts +17 -17
  129. package/packages/modeldata-api/src/CdfModelMetadataProvider.d.ts +19 -19
  130. package/packages/modeldata-api/src/CdfModelOutputsProvider.d.ts +15 -15
  131. package/packages/modeldata-api/src/LocalModelDataProvider.d.ts +10 -10
  132. package/packages/modeldata-api/src/LocalModelIdentifier.d.ts +14 -14
  133. package/packages/modeldata-api/src/LocalModelMetadataProvider.d.ts +14 -14
  134. package/packages/modeldata-api/src/Model3DOutputList.d.ts +17 -17
  135. package/packages/modeldata-api/src/ModelIdentifier.d.ts +12 -12
  136. package/packages/modeldata-api/src/ModelMetadataProvider.d.ts +17 -17
  137. package/packages/modeldata-api/src/applyDefaultModelTransformation.d.ts +6 -6
  138. package/packages/modeldata-api/src/types.d.ts +41 -41
  139. package/packages/modeldata-api/src/utilities.d.ts +7 -7
  140. package/packages/nodes-api/index.d.ts +6 -6
  141. package/packages/nodes-api/src/NodesApiClient.d.ts +52 -52
  142. package/packages/nodes-api/src/NodesCdfClient.d.ts +24 -24
  143. package/packages/nodes-api/src/NodesLocalClient.d.ts +30 -30
  144. package/packages/nodes-api/src/types.d.ts +10 -10
  145. package/packages/rendering/index.d.ts +17 -17
  146. package/packages/rendering/src/CadMaterialManager.d.ts +37 -37
  147. package/packages/rendering/src/InstancedMeshManager.d.ts +20 -20
  148. package/packages/rendering/src/cameraconfig.d.ts +12 -12
  149. package/packages/rendering/src/rendering/EffectRenderManager.d.ts +99 -99
  150. package/packages/rendering/src/rendering/NodeAppearanceTextureBuilder.d.ts +51 -51
  151. package/packages/rendering/src/rendering/RenderMode.d.ts +15 -15
  152. package/packages/rendering/src/rendering/createSimpleGeometryMesh.d.ts +6 -6
  153. package/packages/rendering/src/rendering/matCapTextureData.d.ts +5 -5
  154. package/packages/rendering/src/rendering/materials.d.ts +23 -23
  155. package/packages/rendering/src/rendering/primitives.d.ts +12 -12
  156. package/packages/rendering/src/rendering/shaders.d.ts +101 -101
  157. package/packages/rendering/src/rendering/types.d.ts +76 -76
  158. package/packages/rendering/src/sector/CadNode.d.ts +54 -54
  159. package/packages/rendering/src/transform/NodeTransformProvider.d.ts +13 -13
  160. package/packages/rendering/src/transform/NodeTransformTextureBuilder.d.ts +23 -23
  161. package/packages/rendering/src/transform/TransformOverrideBuffer.d.ts +21 -21
  162. package/packages/rendering/src/utilities/types.d.ts +26 -26
  163. package/packages/tools/index.d.ts +15 -15
  164. package/packages/tools/src/AxisView/AxisViewTool.d.ts +32 -32
  165. package/packages/tools/src/AxisView/types.d.ts +98 -98
  166. package/packages/tools/src/Cognite3DViewerToolBase.d.ts +25 -25
  167. package/packages/tools/src/DebugCameraTool.d.ts +20 -20
  168. package/packages/tools/src/DebugLoadedSectorsTool.d.ts +23 -23
  169. package/packages/tools/src/ExplodedViewTool.d.ts +12 -12
  170. package/packages/tools/src/Geomap/Geomap.d.ts +17 -17
  171. package/packages/tools/src/Geomap/GeomapTool.d.ts +24 -24
  172. package/packages/tools/src/Geomap/MapConfig.d.ts +195 -195
  173. package/packages/tools/src/HtmlOverlay/BucketGrid2D.d.ts +28 -28
  174. package/packages/tools/src/HtmlOverlay/HtmlOverlayTool.d.ts +159 -159
  175. package/packages/tools/src/Timeline/Keyframe.d.ts +38 -38
  176. package/packages/tools/src/Timeline/TimelineTool.d.ts +79 -79
  177. package/packages/tools/src/Timeline/types.d.ts +13 -13
  178. package/packages/tools/src/types.d.ts +4 -4
  179. package/packages/utilities/index.d.ts +24 -24
  180. package/packages/utilities/src/CameraConfiguration.d.ts +10 -10
  181. package/packages/utilities/src/IndexSet.d.ts +1 -1
  182. package/packages/utilities/src/NumericRange.d.ts +22 -22
  183. package/packages/utilities/src/RandomColors.d.ts +34 -34
  184. package/packages/utilities/src/WebGLRendererStateHelper.d.ts +15 -15
  185. package/packages/utilities/src/assertNever.d.ts +7 -7
  186. package/packages/utilities/src/cache/MemoryRequestCache.d.ts +22 -22
  187. package/packages/utilities/src/cache/MostFrequentlyUsedCache.d.ts +19 -19
  188. package/packages/utilities/src/cache/RequestCache.d.ts +13 -13
  189. package/packages/utilities/src/datastructures/DynamicDefragmentedBuffer.d.ts +22 -22
  190. package/packages/utilities/src/determinePowerOfTwoDimensions.d.ts +11 -11
  191. package/packages/utilities/src/disposeAttributeArrayOnUpload.d.ts +17 -17
  192. package/packages/utilities/src/events/EventTrigger.d.ts +13 -13
  193. package/packages/utilities/src/events/InputHandler.d.ts +34 -0
  194. package/packages/utilities/src/events/clickOrTouchEventOffset.d.ts +13 -13
  195. package/packages/utilities/src/events/index.d.ts +6 -5
  196. package/packages/utilities/src/indexset/IndexSet.d.ts +26 -26
  197. package/packages/utilities/src/indexset/IntermediateIndexNode.d.ts +26 -26
  198. package/packages/utilities/src/indexset/LeafIndexNode.d.ts +16 -16
  199. package/packages/utilities/src/isMobileOrTablet.d.ts +4 -4
  200. package/packages/utilities/src/networking/isTheSameDomain.d.ts +11 -11
  201. package/packages/utilities/src/objectTraversal.d.ts +8 -8
  202. package/packages/utilities/src/packFloat.d.ts +6 -6
  203. package/packages/utilities/src/revealEnv.d.ts +10 -10
  204. package/packages/utilities/src/three/AutoDisposeGroup.d.ts +17 -17
  205. package/packages/utilities/src/three/BoundingBoxLOD.d.ts +27 -27
  206. package/packages/utilities/src/three/getBox3CornerPoints.d.ts +5 -5
  207. package/packages/utilities/src/transformCameraConfiguration.d.ts +6 -6
  208. package/packages/utilities/src/types.d.ts +10 -10
  209. package/packages/utilities/src/workers/WorkerPool.d.ts +14 -14
  210. package/tools.d.ts +7 -7
  211. package/tools.js +62 -58
  212. package/tools.map +1 -1
@@ -1,159 +1,159 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import * as THREE from 'three';
5
- import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
- import { Cognite3DViewer } from '../../../../core';
7
- /**
8
- * Callback that is triggered whenever the 2D position of an overlay is updated
9
- * in {@link HtmlOverlayTool}.
10
- */
11
- export declare type HtmlOverlayPositionUpdatedDelegate = (element: HTMLElement, position2D: THREE.Vector2, position3D: THREE.Vector3, distanceToCamera: number, userData: any) => void;
12
- /**
13
- * Callback that is triggered when a set of overlays are clustered together in
14
- * {@link HtmlOverlayTool}.
15
- */
16
- export declare type HtmlOverlayCreateClusterDelegate = (overlayElements: {
17
- htmlElement: HTMLElement;
18
- userData: any;
19
- }[]) => HTMLElement;
20
- /**
21
- * Options for an overlay added using {@link HtmlOverlayTool.add}.
22
- */
23
- export declare type HtmlOverlayOptions = {
24
- /**
25
- * Callback that is triggered whenever the position of the overlay is updated. Optional.
26
- */
27
- positionUpdatedCallback?: HtmlOverlayPositionUpdatedDelegate;
28
- /**
29
- * Optional user specified data that is provided to the {@link HtmlOverlayCreateClusterDelegate} and
30
- * {@link HtmlOverlayPositionUpdatedDelegate}.
31
- */
32
- userData?: any;
33
- };
34
- /**
35
- * Controls how close overlay elements are clustered together.
36
- */
37
- export declare type HtmlOverlayToolClusteringOptions = {
38
- /**
39
- * Currently only 'overlapInScreenSpace' is supported. In this mode,
40
- * overlays are clustered together into a single element as defined by
41
- * the {@link createClusterElementCallback} and hidden when they overlap
42
- * in screen space. The composite element is placed at the midpoint of
43
- * all clustered elements.
44
- *
45
- * Clustered elements are faded in/out using CSS styling `transition`,
46
- * `opacity` and `visibility`.
47
- */
48
- mode: 'overlapInScreenSpace';
49
- /**
50
- * Callback that is triggered when a set of overlays are clustered together
51
- * to create a "composite" element as a placeholder for the clustered elements.
52
- * Note that this callback will be triggered every frame for each cluster so it
53
- * must be performant.
54
- */
55
- createClusterElementCallback: HtmlOverlayCreateClusterDelegate;
56
- };
57
- export declare type HtmlOverlayToolOptions = {
58
- clusteringOptions?: HtmlOverlayToolClusteringOptions;
59
- };
60
- /**
61
- * Manages HTMLoverlays for {@see Cognite3DViewer}. Attaches HTML elements to a
62
- * 3D position and updates its position/visibility as user moves the camera. This is
63
- * useful to create HTML overlays to highlight information about key positions in the 3D model.
64
- *
65
- * Attached elements *must* have CSS style 'position: absolute'. It's also recommended
66
- * in most cases to have styles 'pointer-events: none' and 'touch-action: none' to avoid
67
- * interfering with 3D navigation. Consider also applying 'transform: translate(-50%, -50%)'
68
- * to anchor the center of the element rather than the top-left corner. In some cases the
69
- * `zIndex`-attribute is necessary for the element to appear on top of the viewer.
70
- *
71
- * @example
72
- * ```js
73
- * const el = document.createElement('div');
74
- * el.style.position = 'absolute'; // Required!
75
- * // Anchor to center of element
76
- * el.style.transform = 'translate(-50%, -50%)';
77
- * // Avoid being target for events
78
- * el.style.pointerEvents = 'none;
79
- * el.style.touchAction = 'none';
80
- * // Render in front of other elements
81
- * el.style.zIndex = 10;
82
- *
83
- * el.style.color = 'red';
84
- * el.innerHtml = '<h1>Overlay</h1>';
85
- *
86
- * const overlayTool = new HtmlOverlayTool(viewer);
87
- * overlayTool.add(el, new THREE.Vector3(10, 10, 10));
88
- * // ...
89
- * overlayTool.remove(el);
90
- * // or, to remove all attached elements
91
- * overlayTool.clear();
92
- *
93
- * // detach the tool from the viewer
94
- * overlayTool.dispose();
95
- * ```
96
- */
97
- export declare class HtmlOverlayTool extends Cognite3DViewerToolBase {
98
- private readonly _viewer;
99
- private readonly _options;
100
- private readonly _htmlOverlays;
101
- private readonly _compositeOverlays;
102
- private readonly _onSceneRenderedHandler;
103
- private readonly _onViewerDisposedHandler;
104
- private readonly _preallocatedVariables;
105
- private readonly scheduleUpdate;
106
- private get viewerDomElement();
107
- private get viewerCamera();
108
- private get viewerRenderer();
109
- constructor(viewer: Cognite3DViewer, options?: HtmlOverlayToolOptions);
110
- /**
111
- * Returns all added HTML elements along with their 3D positions.
112
- */
113
- get elements(): {
114
- element: HTMLElement;
115
- position3D: THREE.Vector3;
116
- }[];
117
- /**
118
- * Removes all elements and detaches from the viewer.
119
- * @override
120
- */
121
- dispose(): void;
122
- /**
123
- * Registers a HTML overlay that will be updated on rendering.
124
- *
125
- * @param htmlElement
126
- * @param position3D
127
- * @param options
128
- */
129
- add(htmlElement: HTMLElement, position3D: THREE.Vector3, options?: HtmlOverlayOptions): void;
130
- /**
131
- * Removes a overlay and removes it from the DOM.
132
- * @param htmlElement
133
- */
134
- remove(htmlElement: HTMLElement): void;
135
- /**
136
- * Removes all attached HTML overlay elements.
137
- */
138
- clear(): void;
139
- /**
140
- * Updates positions of all overlays. This is automatically managed and there
141
- * shouldn't be any reason to trigger this unless the attached elements are
142
- * modified externally.
143
- *
144
- * Calling this function often might cause degraded performance.
145
- */
146
- forceUpdate(): void;
147
- /**
148
- * Update size of new elements. This is only done once as this causes
149
- * layout to be invalidated which is an expensive operation.
150
- */
151
- private updateNewElementSizes;
152
- private commitDOMChanges;
153
- private clusterElements;
154
- private cleanupClusterElements;
155
- private clusterByOverlapInScreenSpace;
156
- private addComposite;
157
- private onSceneRendered;
158
- private onViewerDisposed;
159
- }
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import * as THREE from 'three';
5
+ import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
+ import { Cognite3DViewer } from '../../../../core';
7
+ /**
8
+ * Callback that is triggered whenever the 2D position of an overlay is updated
9
+ * in {@link HtmlOverlayTool}.
10
+ */
11
+ export declare type HtmlOverlayPositionUpdatedDelegate = (element: HTMLElement, position2D: THREE.Vector2, position3D: THREE.Vector3, distanceToCamera: number, userData: any) => void;
12
+ /**
13
+ * Callback that is triggered when a set of overlays are clustered together in
14
+ * {@link HtmlOverlayTool}.
15
+ */
16
+ export declare type HtmlOverlayCreateClusterDelegate = (overlayElements: {
17
+ htmlElement: HTMLElement;
18
+ userData: any;
19
+ }[]) => HTMLElement;
20
+ /**
21
+ * Options for an overlay added using {@link HtmlOverlayTool.add}.
22
+ */
23
+ export declare type HtmlOverlayOptions = {
24
+ /**
25
+ * Callback that is triggered whenever the position of the overlay is updated. Optional.
26
+ */
27
+ positionUpdatedCallback?: HtmlOverlayPositionUpdatedDelegate;
28
+ /**
29
+ * Optional user specified data that is provided to the {@link HtmlOverlayCreateClusterDelegate} and
30
+ * {@link HtmlOverlayPositionUpdatedDelegate}.
31
+ */
32
+ userData?: any;
33
+ };
34
+ /**
35
+ * Controls how close overlay elements are clustered together.
36
+ */
37
+ export declare type HtmlOverlayToolClusteringOptions = {
38
+ /**
39
+ * Currently only 'overlapInScreenSpace' is supported. In this mode,
40
+ * overlays are clustered together into a single element as defined by
41
+ * the {@link createClusterElementCallback} and hidden when they overlap
42
+ * in screen space. The composite element is placed at the midpoint of
43
+ * all clustered elements.
44
+ *
45
+ * Clustered elements are faded in/out using CSS styling `transition`,
46
+ * `opacity` and `visibility`.
47
+ */
48
+ mode: 'overlapInScreenSpace';
49
+ /**
50
+ * Callback that is triggered when a set of overlays are clustered together
51
+ * to create a "composite" element as a placeholder for the clustered elements.
52
+ * Note that this callback will be triggered every frame for each cluster so it
53
+ * must be performant.
54
+ */
55
+ createClusterElementCallback: HtmlOverlayCreateClusterDelegate;
56
+ };
57
+ export declare type HtmlOverlayToolOptions = {
58
+ clusteringOptions?: HtmlOverlayToolClusteringOptions;
59
+ };
60
+ /**
61
+ * Manages HTMLoverlays for {@see Cognite3DViewer}. Attaches HTML elements to a
62
+ * 3D position and updates its position/visibility as user moves the camera. This is
63
+ * useful to create HTML overlays to highlight information about key positions in the 3D model.
64
+ *
65
+ * Attached elements *must* have CSS style 'position: absolute'. It's also recommended
66
+ * in most cases to have styles 'pointer-events: none' and 'touch-action: none' to avoid
67
+ * interfering with 3D navigation. Consider also applying 'transform: translate(-50%, -50%)'
68
+ * to anchor the center of the element rather than the top-left corner. In some cases the
69
+ * `zIndex`-attribute is necessary for the element to appear on top of the viewer.
70
+ *
71
+ * @example
72
+ * ```js
73
+ * const el = document.createElement('div');
74
+ * el.style.position = 'absolute'; // Required!
75
+ * // Anchor to center of element
76
+ * el.style.transform = 'translate(-50%, -50%)';
77
+ * // Avoid being target for events
78
+ * el.style.pointerEvents = 'none;
79
+ * el.style.touchAction = 'none';
80
+ * // Render in front of other elements
81
+ * el.style.zIndex = 10;
82
+ *
83
+ * el.style.color = 'red';
84
+ * el.innerHtml = '<h1>Overlay</h1>';
85
+ *
86
+ * const overlayTool = new HtmlOverlayTool(viewer);
87
+ * overlayTool.add(el, new THREE.Vector3(10, 10, 10));
88
+ * // ...
89
+ * overlayTool.remove(el);
90
+ * // or, to remove all attached elements
91
+ * overlayTool.clear();
92
+ *
93
+ * // detach the tool from the viewer
94
+ * overlayTool.dispose();
95
+ * ```
96
+ */
97
+ export declare class HtmlOverlayTool extends Cognite3DViewerToolBase {
98
+ private readonly _viewer;
99
+ private readonly _options;
100
+ private readonly _htmlOverlays;
101
+ private readonly _compositeOverlays;
102
+ private readonly _onSceneRenderedHandler;
103
+ private readonly _onViewerDisposedHandler;
104
+ private readonly _preallocatedVariables;
105
+ private readonly scheduleUpdate;
106
+ private get viewerDomElement();
107
+ private get viewerCamera();
108
+ private get viewerRenderer();
109
+ constructor(viewer: Cognite3DViewer, options?: HtmlOverlayToolOptions);
110
+ /**
111
+ * Returns all added HTML elements along with their 3D positions.
112
+ */
113
+ get elements(): {
114
+ element: HTMLElement;
115
+ position3D: THREE.Vector3;
116
+ }[];
117
+ /**
118
+ * Removes all elements and detaches from the viewer.
119
+ * @override
120
+ */
121
+ dispose(): void;
122
+ /**
123
+ * Registers a HTML overlay that will be updated on rendering.
124
+ *
125
+ * @param htmlElement
126
+ * @param position3D
127
+ * @param options
128
+ */
129
+ add(htmlElement: HTMLElement, position3D: THREE.Vector3, options?: HtmlOverlayOptions): void;
130
+ /**
131
+ * Removes a overlay and removes it from the DOM.
132
+ * @param htmlElement
133
+ */
134
+ remove(htmlElement: HTMLElement): void;
135
+ /**
136
+ * Removes all attached HTML overlay elements.
137
+ */
138
+ clear(): void;
139
+ /**
140
+ * Updates positions of all overlays. This is automatically managed and there
141
+ * shouldn't be any reason to trigger this unless the attached elements are
142
+ * modified externally.
143
+ *
144
+ * Calling this function often might cause degraded performance.
145
+ */
146
+ forceUpdate(): void;
147
+ /**
148
+ * Update size of new elements. This is only done once as this causes
149
+ * layout to be invalidated which is an expensive operation.
150
+ */
151
+ private updateNewElementSizes;
152
+ private commitDOMChanges;
153
+ private clusterElements;
154
+ private cleanupClusterElements;
155
+ private clusterByOverlapInScreenSpace;
156
+ private addComposite;
157
+ private onSceneRendered;
158
+ private onViewerDisposed;
159
+ }
@@ -1,38 +1,38 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import { NodeCollectionBase, NodeAppearance } from '../../../../core/src';
5
- import { Cognite3DModel } from '../../../../core';
6
- /**
7
- * Timeline Key Frames contains parameters to access Nodes, Styles for the Timeline
8
- */
9
- export declare class Keyframe {
10
- private readonly _date;
11
- private readonly _model;
12
- private readonly _nodeCollectionAndAppearance;
13
- constructor(model: Cognite3DModel, date: Date);
14
- /**
15
- * Get date of the Keyframe
16
- * @returns date
17
- */
18
- getKeyframeDate(): Date;
19
- /**
20
- * Assigns the styles for the node set for the model for this Keyframe
21
- */
22
- activate(): void;
23
- /**
24
- * Removes the style for the model
25
- */
26
- deactivate(): void;
27
- /**
28
- * Add node & style to the collection
29
- * @param nodeCollection Node set to apply the Styles
30
- * @param nodeAppearance Style to assign to the node collection
31
- */
32
- assignStyledNodeCollection(nodeCollection: NodeCollectionBase, nodeAppearance: NodeAppearance): void;
33
- /**
34
- * Remove Node & Style for this keyframe's nodeCollection and nodeAppearance
35
- * @param nodeCollection Nodes to be unassign from node collection
36
- */
37
- unassignStyledNodeCollection(nodeCollection: NodeCollectionBase): void;
38
- }
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { NodeCollectionBase, NodeAppearance } from '../../../../core/src';
5
+ import { Cognite3DModel } from '../../../../core';
6
+ /**
7
+ * Timeline Key Frames contains parameters to access Nodes, Styles for the Timeline
8
+ */
9
+ export declare class Keyframe {
10
+ private readonly _date;
11
+ private readonly _model;
12
+ private readonly _nodeCollectionAndAppearance;
13
+ constructor(model: Cognite3DModel, date: Date);
14
+ /**
15
+ * Get date of the Keyframe
16
+ * @returns date
17
+ */
18
+ getKeyframeDate(): Date;
19
+ /**
20
+ * Assigns the styles for the node set for the model for this Keyframe
21
+ */
22
+ activate(): void;
23
+ /**
24
+ * Removes the style for the model
25
+ */
26
+ deactivate(): void;
27
+ /**
28
+ * Add node & style to the collection
29
+ * @param nodeCollection Node set to apply the Styles
30
+ * @param nodeAppearance Style to assign to the node collection
31
+ */
32
+ assignStyledNodeCollection(nodeCollection: NodeCollectionBase, nodeAppearance: NodeAppearance): void;
33
+ /**
34
+ * Remove Node & Style for this keyframe's nodeCollection and nodeAppearance
35
+ * @param nodeCollection Nodes to be unassign from node collection
36
+ */
37
+ unassignStyledNodeCollection(nodeCollection: NodeCollectionBase): void;
38
+ }
@@ -1,79 +1,79 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import { Cognite3DModel } from '../../../../core';
5
- import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
- import { Keyframe } from './Keyframe';
7
- import { TimelineDateUpdateDelegate } from './types';
8
- /**
9
- * Tool to applying styles to nodes based on date to play them over in Timeline
10
- */
11
- export declare class TimelineTool extends Cognite3DViewerToolBase {
12
- private readonly _model;
13
- private readonly _keyframes;
14
- private _playback;
15
- private readonly _events;
16
- constructor(cadModel: Cognite3DModel);
17
- /**
18
- * Subscribe to the Date changed event
19
- * @param event `dateChanged` event
20
- * @param listener Listen to Timeline date Update during Playback
21
- */
22
- subscribe(event: 'dateChanged', listener: TimelineDateUpdateDelegate): void;
23
- /**
24
- * Unsubscribe to the Date changed event
25
- * @param event `dateChanged` event
26
- * @param listener Remove Listen to Timeline date Update
27
- */
28
- unsubscribe(event: 'dateChanged', listener: TimelineDateUpdateDelegate): void;
29
- /**
30
- * Create Key frame for the Timeline
31
- * @param date - date value by Date.now() since January 1, 1970
32
- */
33
- createKeyframe(date: Date): Keyframe;
34
- /**
35
- * Returns the keyframe at the date given, or undefined if not found.
36
- * @param date
37
- * @returns
38
- */
39
- getKeyframeByDate(date: Date): Keyframe | undefined;
40
- /**
41
- * Removes the Keyframe from the timeline. Does nothing if the keyframe isn't part of the timeline.
42
- * @param keyframe - Keyframe to be removed from the timeline
43
- */
44
- removeKeyframe(keyframe: Keyframe): void;
45
- /**
46
- * Removes the Keyframe from the Timeline
47
- * @param date - Date of the Keyframe to be removed from the Timeline
48
- */
49
- removeKeyframeByDate(date: Date): void;
50
- /**
51
- * Starts playback of Timeline
52
- * @param startDate - Keyframe date to start the Playback of Keyframes
53
- * @param endDate - Keyframe date to stop the Playback of Keyframes
54
- * @param totalDurationInMilliSeconds - Number of milliseconds for all Keyframe within startDate & endDate to be rendered
55
- */
56
- play(startDate: Date, endDate: Date, totalDurationInMilliSeconds: number): void;
57
- /**
58
- * Stops any ongoing playback
59
- */
60
- stop(): void;
61
- /**
62
- * Pause any ongoing playback
63
- */
64
- pause(): void;
65
- /**
66
- * Resume any paused playback
67
- */
68
- resume(): void;
69
- /**
70
- * Provides all Keyframes in the Timeline
71
- * @returns All Keyframes in Timeline
72
- */
73
- getAllKeyframes(): Keyframe[];
74
- dispose(): void;
75
- /**
76
- * Sort the Timeline Keyframe by their Date
77
- */
78
- private sortKeyframesByDates;
79
- }
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { Cognite3DModel } from '../../../../core';
5
+ import { Cognite3DViewerToolBase } from '../Cognite3DViewerToolBase';
6
+ import { Keyframe } from './Keyframe';
7
+ import { TimelineDateUpdateDelegate } from './types';
8
+ /**
9
+ * Tool to applying styles to nodes based on date to play them over in Timeline
10
+ */
11
+ export declare class TimelineTool extends Cognite3DViewerToolBase {
12
+ private readonly _model;
13
+ private readonly _keyframes;
14
+ private _playback;
15
+ private readonly _events;
16
+ constructor(cadModel: Cognite3DModel);
17
+ /**
18
+ * Subscribe to the Date changed event
19
+ * @param event `dateChanged` event
20
+ * @param listener Listen to Timeline date Update during Playback
21
+ */
22
+ subscribe(event: 'dateChanged', listener: TimelineDateUpdateDelegate): void;
23
+ /**
24
+ * Unsubscribe to the Date changed event
25
+ * @param event `dateChanged` event
26
+ * @param listener Remove Listen to Timeline date Update
27
+ */
28
+ unsubscribe(event: 'dateChanged', listener: TimelineDateUpdateDelegate): void;
29
+ /**
30
+ * Create Key frame for the Timeline
31
+ * @param date - date value by Date.now() since January 1, 1970
32
+ */
33
+ createKeyframe(date: Date): Keyframe;
34
+ /**
35
+ * Returns the keyframe at the date given, or undefined if not found.
36
+ * @param date
37
+ * @returns
38
+ */
39
+ getKeyframeByDate(date: Date): Keyframe | undefined;
40
+ /**
41
+ * Removes the Keyframe from the timeline. Does nothing if the keyframe isn't part of the timeline.
42
+ * @param keyframe - Keyframe to be removed from the timeline
43
+ */
44
+ removeKeyframe(keyframe: Keyframe): void;
45
+ /**
46
+ * Removes the Keyframe from the Timeline
47
+ * @param date - Date of the Keyframe to be removed from the Timeline
48
+ */
49
+ removeKeyframeByDate(date: Date): void;
50
+ /**
51
+ * Starts playback of Timeline
52
+ * @param startDate - Keyframe date to start the Playback of Keyframes
53
+ * @param endDate - Keyframe date to stop the Playback of Keyframes
54
+ * @param totalDurationInMilliSeconds - Number of milliseconds for all Keyframe within startDate & endDate to be rendered
55
+ */
56
+ play(startDate: Date, endDate: Date, totalDurationInMilliSeconds: number): void;
57
+ /**
58
+ * Stops any ongoing playback
59
+ */
60
+ stop(): void;
61
+ /**
62
+ * Pause any ongoing playback
63
+ */
64
+ pause(): void;
65
+ /**
66
+ * Resume any paused playback
67
+ */
68
+ resume(): void;
69
+ /**
70
+ * Provides all Keyframes in the Timeline
71
+ * @returns All Keyframes in Timeline
72
+ */
73
+ getAllKeyframes(): Keyframe[];
74
+ dispose(): void;
75
+ /**
76
+ * Sort the Timeline Keyframe by their Date
77
+ */
78
+ private sortKeyframesByDates;
79
+ }
@@ -1,13 +1,13 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- import { Keyframe } from './Keyframe';
5
- /**
6
- * Delegate for Timeline Date update
7
- */
8
- export declare type TimelineDateUpdateDelegate = (event: {
9
- date: Date;
10
- activeKeyframe: Keyframe | undefined;
11
- startDate: Date;
12
- endDate: Date;
13
- }) => void;
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ import { Keyframe } from './Keyframe';
5
+ /**
6
+ * Delegate for Timeline Date update
7
+ */
8
+ export declare type TimelineDateUpdateDelegate = (event: {
9
+ date: Date;
10
+ activeKeyframe: Keyframe | undefined;
11
+ startDate: Date;
12
+ endDate: Date;
13
+ }) => void;
@@ -1,4 +1,4 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- export declare type DisposedDelegate = () => void;
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ export declare type DisposedDelegate = () => void;
@@ -1,24 +1,24 @@
1
- /*!
2
- * Copyright 2021 Cognite AS
3
- */
4
- export { traverseDepthFirst } from './src/objectTraversal';
5
- export { transformCameraConfiguration } from './src/transformCameraConfiguration';
6
- export { RandomColors } from './src/RandomColors';
7
- export { CameraConfiguration } from './src/CameraConfiguration';
8
- export { EventTrigger, clickOrTouchEventOffset } from './src/events';
9
- export { assertNever } from './src/assertNever';
10
- export { NumericRange } from './src/NumericRange';
11
- export { determinePowerOfTwoDimensions } from './src/determinePowerOfTwoDimensions';
12
- export { IndexSet } from './src/IndexSet';
13
- export { packFloatInto } from './src/packFloat';
14
- export { DynamicDefragmentedBuffer } from './src/datastructures/DynamicDefragmentedBuffer';
15
- export { AutoDisposeGroup } from './src/three/AutoDisposeGroup';
16
- export { BoundingBoxLOD } from './src/three/BoundingBoxLOD';
17
- export { getBox3CornerPoints } from './src/three/getBox3CornerPoints';
18
- export { isMobileOrTablet } from './src/isMobileOrTablet';
19
- export { WebGLRendererStateHelper } from './src/WebGLRendererStateHelper';
20
- export { WorkerPool } from './src/workers/WorkerPool';
21
- export { MemoryRequestCache } from './src/cache/MemoryRequestCache';
22
- export { MostFrequentlyUsedCache } from './src/cache/MostFrequentlyUsedCache';
23
- export { disposeAttributeArrayOnUpload } from './src/disposeAttributeArrayOnUpload';
24
- export { revealEnv } from './src/revealEnv';
1
+ /*!
2
+ * Copyright 2021 Cognite AS
3
+ */
4
+ export { traverseDepthFirst } from './src/objectTraversal';
5
+ export { transformCameraConfiguration } from './src/transformCameraConfiguration';
6
+ export { RandomColors } from './src/RandomColors';
7
+ export { CameraConfiguration } from './src/CameraConfiguration';
8
+ export { EventTrigger, clickOrTouchEventOffset, InputHandler, disposeOfAllEventListeners } from './src/events';
9
+ export { assertNever } from './src/assertNever';
10
+ export { NumericRange } from './src/NumericRange';
11
+ export { determinePowerOfTwoDimensions } from './src/determinePowerOfTwoDimensions';
12
+ export { IndexSet } from './src/IndexSet';
13
+ export { packFloatInto } from './src/packFloat';
14
+ export { DynamicDefragmentedBuffer } from './src/datastructures/DynamicDefragmentedBuffer';
15
+ export { AutoDisposeGroup } from './src/three/AutoDisposeGroup';
16
+ export { BoundingBoxLOD } from './src/three/BoundingBoxLOD';
17
+ export { getBox3CornerPoints } from './src/three/getBox3CornerPoints';
18
+ export { isMobileOrTablet } from './src/isMobileOrTablet';
19
+ export { WebGLRendererStateHelper } from './src/WebGLRendererStateHelper';
20
+ export { WorkerPool } from './src/workers/WorkerPool';
21
+ export { MemoryRequestCache } from './src/cache/MemoryRequestCache';
22
+ export { MostFrequentlyUsedCache } from './src/cache/MostFrequentlyUsedCache';
23
+ export { disposeAttributeArrayOnUpload } from './src/disposeAttributeArrayOnUpload';
24
+ export { revealEnv } from './src/revealEnv';