@cognite/reveal 4.35.3 → 4.37.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 (41) hide show
  1. package/dist/assets/eptBinaryDecoder.worker-C6kIzxA1.js.map +1 -0
  2. package/dist/index.js +12477 -12398
  3. package/dist/index.js.map +1 -1
  4. package/dist/packages/360-images/index.d.ts +7 -0
  5. package/dist/packages/360-images/src/collection/DefaultImage360Collection.d.ts +2 -2
  6. package/dist/packages/360-images/src/collection/Image360CollectionFactory.d.ts +1 -1
  7. package/dist/packages/360-images/src/entity/Image360Entity.d.ts +2 -1
  8. package/dist/packages/360-images/src/entity/Image360RevisionEntity.d.ts +2 -1
  9. package/dist/packages/{data-providers/src/image-360-data-providers → 360-images/src/providers}/Cdf360ImageAnnotationProvider.d.ts +6 -4
  10. package/dist/packages/{data-providers/src/image-360-data-providers → 360-images/src/providers}/CoreDm360ImageAnnotationProvider.d.ts +4 -3
  11. package/dist/packages/360-images/src/providers/Image360AnnotationProvider.d.ts +24 -0
  12. package/dist/packages/{data-providers/src → 360-images/src/providers}/Image360Provider.d.ts +3 -3
  13. package/dist/packages/{data-providers/src → 360-images/src/providers}/Image360ProviderCombiner.d.ts +5 -4
  14. package/dist/packages/{data-providers/src/image-360-data-providers → 360-images/src/providers}/Local360ImageProvider.d.ts +5 -4
  15. package/dist/packages/{data-providers/src/image-360-data-providers → 360-images/src/providers}/annotations.d.ts +1 -1
  16. package/dist/packages/3d-overlays/src/Overlay3DCollection.d.ts +4 -0
  17. package/dist/packages/api/src/api-helpers/Image360ApiHelper.d.ts +2 -0
  18. package/dist/packages/api/src/public/RevealManager.d.ts +1 -0
  19. package/dist/packages/api/src/public/migration/Cognite3DViewer.d.ts +2 -0
  20. package/dist/packages/cad-model/src/types.d.ts +4 -18
  21. package/dist/packages/camera-manager/src/Flexible/FlexibleCameraManager.d.ts +1 -3
  22. package/dist/packages/camera-manager/src/Flexible/GetPickedPointByPixelCoordinates.d.ts +1 -1
  23. package/dist/packages/camera-manager/src/types.d.ts +5 -0
  24. package/dist/packages/data-providers/index.d.ts +10 -10
  25. package/dist/packages/data-providers/src/DataSourceType.d.ts +2 -1
  26. package/dist/packages/data-providers/src/GeometryFilter.d.ts +18 -0
  27. package/dist/packages/{pointcloud-styling/src → data-providers/src/point-cloud-collections}/PointCloudDMVolumeCollection.d.ts +1 -1
  28. package/dist/packages/data-providers/src/types.d.ts +0 -21
  29. package/dist/packages/data-providers/src/utilities/internalAddModelOptions.d.ts +1 -1
  30. package/dist/packages/model-base/src/types.d.ts +2 -0
  31. package/dist/packages/pointcloud-styling/index.d.ts +1 -2
  32. package/dist/packages/pointcloud-styling/src/AnnotationIdPointCloudObjectCollection.d.ts +1 -1
  33. package/dist/packages/pointcloud-styling/src/utils.d.ts +1 -2
  34. package/dist/packages/pointclouds/src/PointCloudPickingHandler.d.ts +5 -0
  35. package/dist/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePicker.d.ts +17 -0
  36. package/dist/packages/pointclouds/src/potree-three-loader/tree/PointCloudOctreePickerHelper.d.ts +29 -4
  37. package/dist/packages/rendering/src/pointcloud-rendering/PointCloudMaterial.d.ts +3 -0
  38. package/dist/packages/rendering/src/pointcloud-rendering/constants.d.ts +1 -0
  39. package/package.json +7 -7
  40. package/dist/assets/eptBinaryDecoder.worker-BT7AmyFD.js.map +0 -1
  41. /package/dist/packages/{pointcloud-styling/src → data-providers/src/point-cloud-collections}/PointCloudObjectCollection.d.ts +0 -0
@@ -25,3 +25,10 @@ export { DEFAULT_IMAGE_360_OPACITY } from './src/entity/Image360VisualizationBox
25
25
  export { Image360Action } from './src/Image360Action';
26
26
  export { Image360History } from './src/Image360History';
27
27
  export { createCollectionIdString } from './src/collection/createCollectionIdString';
28
+ export type { Image360Provider, Image360ProviderMap } from './src/providers/Image360Provider';
29
+ export { getImage360ProviderFromMap } from './src/providers/Image360Provider';
30
+ export { Image360ProviderCombiner } from './src/providers/Image360ProviderCombiner';
31
+ export { Cdf360ImageAnnotationProvider } from './src/providers/Cdf360ImageAnnotationProvider';
32
+ export { CoreDm360ImageAnnotationProvider } from './src/providers/CoreDm360ImageAnnotationProvider';
33
+ export { Local360ImageProvider } from './src/providers/Local360ImageProvider';
34
+ export { getAnnotationIdKey } from './src/providers/annotations';
@@ -7,10 +7,10 @@ import { Overlay3DIcon } from '../../../3d-overlays';
7
7
  import { Image360AnnotationAppearance } from '../annotation/types';
8
8
  import { ClusterScreenInfo } from '../icons/clustering';
9
9
  import { HtmlClusterCollection } from '../icons/clustering/HtmlClusterCoordinator';
10
- import { ClassicDataSourceType, DataSourceType, DMDataSourceType, Image360FileDescriptor, Image360Provider } from '../../../data-providers';
10
+ import { ClassicDataSourceType, DataSourceType, DMDataSourceType, Image360FileDescriptor, InstanceReference } from '../../../data-providers';
11
+ import { Image360Provider } from '../providers/Image360Provider';
11
12
  import { Image360AnnotationFilter } from '../annotation/Image360AnnotationFilter';
12
13
  import { Matrix4, Ray } from 'three';
13
- import { InstanceReference } from '../../../data-providers/src/types';
14
14
  /**
15
15
  * Default implementation of {@link Image360Collection}. Used for events when entering
16
16
  * and exiting 360 image mode
@@ -4,7 +4,7 @@ import { DefaultImage360Collection } from './DefaultImage360Collection';
4
4
  import { IconsOptions } from '../icons/IconCollection';
5
5
  import { Matrix4 } from 'three';
6
6
  import { Image360AnnotationFilterOptions } from '../annotation/types';
7
- import { Image360ProviderMap } from '../../../data-providers/src/Image360Provider';
7
+ import { Image360ProviderMap } from '../providers/Image360Provider';
8
8
  export declare class Image360CollectionFactory {
9
9
  private readonly _image360ProviderMap;
10
10
  private readonly _sceneHandler;
@@ -1,5 +1,6 @@
1
1
  import { DeviceDescriptor, SceneHandler } from '../../../utilities';
2
- import { DataSourceType, Image360Provider } from '../../../data-providers';
2
+ import { DataSourceType } from '../../../data-providers';
3
+ import { Image360Provider } from '../providers/Image360Provider';
3
4
  import { Image360 } from './Image360';
4
5
  import { Historical360ImageSet, Image360RevisionId } from '../../../data-providers/src/types';
5
6
  import { Image360RevisionEntity } from './Image360RevisionEntity';
@@ -1,4 +1,5 @@
1
- import { Image360Descriptor, Image360RevisionId, DataSourceType, Image360Provider } from '../../../data-providers';
1
+ import { Image360Descriptor, Image360RevisionId, DataSourceType } from '../../../data-providers';
2
+ import { Image360Provider } from '../providers/Image360Provider';
2
3
  import { Image360Revision } from './Image360Revision';
3
4
  import { Image360VisualizationBox } from './Image360VisualizationBox';
4
5
  import { JpegType } from '../utils/JpegDataStreamParser';
@@ -1,8 +1,10 @@
1
1
  import { AnnotationModel } from '@cognite/sdk';
2
- import { FaceName, Image360AnnotationFilterDelegate, Image360AnnotationProvider, Image360AnnotationSpecifier, Image360FileDescriptor, InstanceReference } from '../types';
3
- import { ClassicDataSourceType, DataSourceType, DMDataSourceType } from '../DataSourceType';
4
- import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, DefaultImage360Collection, Image360AnnotationAssetQueryResult, Image360Entity, Image360RevisionEntity } from '../../../360-images';
5
- import { Cdf360ImageAnnotationCache } from './Cdf360ImageAnnotationCache';
2
+ import { FaceName, Image360FileDescriptor, InstanceReference, ClassicDataSourceType, DataSourceType, DMDataSourceType, Cdf360ImageAnnotationCache } from '../../../data-providers';
3
+ import { Image360AnnotationFilterDelegate, Image360AnnotationProvider, Image360AnnotationSpecifier } from './Image360AnnotationProvider';
4
+ import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, Image360AnnotationAssetQueryResult } from '../collection/Image360Collection';
5
+ import { DefaultImage360Collection } from '../collection/DefaultImage360Collection';
6
+ import { Image360Entity } from '../entity/Image360Entity';
7
+ import { Image360RevisionEntity } from '../entity/Image360RevisionEntity';
6
8
  export type RevisionFaceRelation = {
7
9
  entity: Image360Entity<ClassicDataSourceType>;
8
10
  revision: Image360RevisionEntity<ClassicDataSourceType>;
@@ -1,6 +1,7 @@
1
- import { ClassicDataSourceType, DataSourceType, DMDataSourceType } from '../DataSourceType';
2
- import { Image360AnnotationFilterDelegate, Image360AnnotationProvider, Image360AnnotationSpecifier, InstanceReference } from '../types';
3
- import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, DefaultImage360Collection, Image360AnnotationAssetQueryResult } from '../../../360-images';
1
+ import { ClassicDataSourceType, DataSourceType, DMDataSourceType, InstanceReference } from '../../../data-providers';
2
+ import { Image360AnnotationFilterDelegate, Image360AnnotationProvider, Image360AnnotationSpecifier } from './Image360AnnotationProvider';
3
+ import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, Image360AnnotationAssetQueryResult } from '../collection/Image360Collection';
4
+ import { DefaultImage360Collection } from '../collection/DefaultImage360Collection';
4
5
  import { CogniteClient } from '@cognite/sdk';
5
6
  export declare class CoreDm360ImageAnnotationProvider implements Image360AnnotationProvider<DMDataSourceType> {
6
7
  private readonly _client;
@@ -0,0 +1,24 @@
1
+ import { ClassicDataSourceType, DataSourceType, DMDataSourceType, Image360RevisionId, Image360FileDescriptor } from '../../../data-providers';
2
+ import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, Image360AnnotationAssetQueryResult } from '../collection/Image360Collection';
3
+ import { DefaultImage360Collection } from '../collection/DefaultImage360Collection';
4
+ import { Image360AnnotationInstanceReference } from '../annotation/types';
5
+ export type Image360AnnotationFilterDelegate<T extends DataSourceType> = (annotation: T['image360AnnotationType']) => boolean;
6
+ export type Image360AnnotationSpecifier<T extends DataSourceType> = {
7
+ revisionId: Image360RevisionId<T>;
8
+ fileDescriptors: Image360FileDescriptor[];
9
+ };
10
+ export interface Image360AnnotationProvider<T extends DataSourceType> {
11
+ getRelevant360ImageAnnotations(annotationSpecifier: Image360AnnotationSpecifier<T>): Promise<T['image360AnnotationType'][]>;
12
+ /**
13
+ * Resolves the mapping from internal file IDs (annotatedResourceId) to external IDs.
14
+ * This is needed to match annotations to face descriptors when descriptors use externalId.
15
+ * Optional - if not implemented, the caller should build mapping from descriptors only.
16
+ */
17
+ resolveFileIdToExternalIdMapping?(annotations: T['image360AnnotationType'][], descriptors: Image360FileDescriptor[]): Promise<Map<number, string>>;
18
+ findImageAnnotationsForInstance(instanceFilter: Image360AnnotationInstanceReference<T>, collection: DefaultImage360Collection<T>): Promise<Image360AnnotationAssetQueryResult<T>[]>;
19
+ getAllImage360AnnotationInfos(source: 'assets', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<ClassicDataSourceType>[]>;
20
+ getAllImage360AnnotationInfos(source: 'hybrid', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetHybridAnnotationImage360Info[]>;
21
+ getAllImage360AnnotationInfos(source: 'cdm', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<DMDataSourceType>[]>;
22
+ getAllImage360AnnotationInfos(source: 'all', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<DataSourceType>[]>;
23
+ getAllImage360AnnotationInfos(source: 'assets' | 'hybrid' | 'cdm' | 'all', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<ClassicDataSourceType>[] | AssetAnnotationImage360Info<DMDataSourceType>[] | AssetAnnotationImage360Info<DataSourceType>[] | AssetHybridAnnotationImage360Info[]>;
24
+ }
@@ -1,6 +1,6 @@
1
- import { Image360CollectionSourceType } from '../../360-images';
2
- import { ClassicDataSourceType, DataSourceType, DMDataSourceType } from './DataSourceType';
3
- import { Image360DescriptorProvider, Image360FileProvider, Image360AnnotationProvider } from './types';
1
+ import { Image360CollectionSourceType } from '../types';
2
+ import { ClassicDataSourceType, DataSourceType, DMDataSourceType, Image360DescriptorProvider, Image360FileProvider } from '../../../data-providers';
3
+ import { Image360AnnotationProvider } from './Image360AnnotationProvider';
4
4
  export type Image360ProviderMap = Map<Image360CollectionSourceType, Image360Provider<DMDataSourceType> | Image360Provider<ClassicDataSourceType>>;
5
5
  export declare function getImage360ProviderFromMap<T extends DataSourceType>(identifier: T['image360Identifier'], providerMap: Image360ProviderMap): Image360Provider<T>;
6
6
  export interface Image360Provider<T extends DataSourceType> extends Image360DescriptorProvider<T>, Image360FileProvider, Image360AnnotationProvider<T> {
@@ -1,8 +1,9 @@
1
1
  import { Image360Provider } from './Image360Provider';
2
- import { ClassicDataSourceType, DataSourceType, DMDataSourceType } from './DataSourceType';
3
- import { Historical360ImageSet, Image360AnnotationFilterDelegate, Image360AnnotationProvider, Image360AnnotationSpecifier, Image360DescriptorProvider, Image360Face, Image360FileDescriptor, Image360FileProvider } from './types';
4
- import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, DefaultImage360Collection, Image360AnnotationAssetQueryResult } from '../../360-images';
5
- import { Image360AnnotationInstanceReference } from '../../360-images/src/annotation/types';
2
+ import { ClassicDataSourceType, DataSourceType, DMDataSourceType, Historical360ImageSet, Image360DescriptorProvider, Image360Face, Image360FileDescriptor, Image360FileProvider } from '../../../data-providers';
3
+ import { Image360AnnotationFilterDelegate, Image360AnnotationProvider, Image360AnnotationSpecifier } from './Image360AnnotationProvider';
4
+ import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, Image360AnnotationAssetQueryResult } from '../collection/Image360Collection';
5
+ import { DefaultImage360Collection } from '../collection/DefaultImage360Collection';
6
+ import { Image360AnnotationInstanceReference } from '../annotation/types';
6
7
  export declare class Image360ProviderCombiner<T extends DataSourceType> implements Image360Provider<T> {
7
8
  private readonly _descriptorProvider;
8
9
  private readonly _fileProvider;
@@ -1,8 +1,9 @@
1
- import { Image360Provider } from '../Image360Provider';
2
- import { Historical360ImageSet, Image360AnnotationFilterDelegate, Image360AnnotationSpecifier, Image360Face, Image360FileDescriptor, InstanceReference } from '../types';
1
+ import { Image360Provider } from './Image360Provider';
2
+ import { Historical360ImageSet, Image360Face, Image360FileDescriptor, InstanceReference, ClassicDataSourceType, DataSourceType, DMDataSourceType } from '../../../data-providers';
3
+ import { Image360AnnotationFilterDelegate, Image360AnnotationSpecifier } from './Image360AnnotationProvider';
3
4
  import { CogniteInternalId, IdEither } from '@cognite/sdk';
4
- import { ClassicDataSourceType, DataSourceType, DMDataSourceType } from '../DataSourceType';
5
- import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, DefaultImage360Collection, Image360AnnotationAssetQueryResult } from '../../../360-images';
5
+ import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, Image360AnnotationAssetQueryResult } from '../collection/Image360Collection';
6
+ import { DefaultImage360Collection } from '../collection/DefaultImage360Collection';
6
7
  export declare class Local360ImageProvider implements Image360Provider<ClassicDataSourceType> {
7
8
  private readonly _modelUrl;
8
9
  constructor(modelUrl: string);
@@ -1,2 +1,2 @@
1
- import { DataSourceType } from '../DataSourceType';
1
+ import { DataSourceType } from '../../../data-providers';
2
2
  export declare function getAnnotationIdKey(annotation: DataSourceType['image360AnnotationType']): string;
@@ -17,6 +17,10 @@ export type Overlay3DCollectionOptions = {
17
17
  * The maximum display size of each icon in pixels
18
18
  */
19
19
  maxPointSize?: number;
20
+ /**
21
+ * The minimum display size of each icon in pixels
22
+ */
23
+ minPointSize?: number;
20
24
  /**
21
25
  * The default color to apply to overlay icons without a color on their own
22
26
  */
@@ -26,6 +26,7 @@ export declare class Image360ApiHelper<DataSourceT extends DataSourceType> {
26
26
  private readonly onBeforeRender;
27
27
  private readonly onKeyPressed;
28
28
  readonly onHover: (event: PointerEvent) => void;
29
+ readonly onPointerLeave: () => void;
29
30
  readonly onClick: (event: PointerEventData) => Promise<boolean>;
30
31
  private readonly updateHoverStateOnRenderHandler;
31
32
  constructor(cogniteClient: CogniteClient, sceneHandler: SceneHandler, domElement: HTMLElement, activeCameraManager: ProxyCameraManager, inputHandler: InputHandler, onBeforeSceneRendered: EventTrigger<BeforeSceneRenderedDelegate>, hasEventListeners?: boolean, iconsOptions?: IconsOptions);
@@ -77,6 +78,7 @@ export declare class Image360ApiHelper<DataSourceT extends DataSourceType> {
77
78
  */
78
79
  findBestNext360ImageEntity(clickedWorldPosition: Vector3): Image360WithCollection<DataSourceT> | undefined;
79
80
  private setHoverIconOnIntersect;
81
+ clearHoverIntersection(): void;
80
82
  private exit360ImageByTween;
81
83
  private getImageOpacity;
82
84
  }
@@ -38,6 +38,7 @@ export declare class RevealManager {
38
38
  setOutputRenderTarget(target: WebGLRenderTarget | null, autoSizeRenderTarget?: boolean): void;
39
39
  get materialManager(): CadMaterialManager;
40
40
  get needsRedraw(): boolean;
41
+ get cameraInMotion(): boolean;
41
42
  update(camera: PerspectiveCamera): void;
42
43
  get cadBudget(): CadModelBudget;
43
44
  set cadBudget(budget: CadModelBudget);
@@ -677,6 +677,7 @@ export declare class Cognite3DViewer<DataSourceT extends DataSourceType = Classi
677
677
  * @param options
678
678
  * @param options.stopOnHitting360Icon
679
679
  * @param options.predicate Check whether a CustomObject should be intersected.
680
+ * @param options.forceWindowedPick Skip point-cloud full-frame pick caching for this call.
680
681
  * @returns A promise that if there was an intersection then return the intersection object - otherwise it
681
682
  * returns `null` if there were no intersections.
682
683
  * @beta
@@ -684,6 +685,7 @@ export declare class Cognite3DViewer<DataSourceT extends DataSourceType = Classi
684
685
  getAnyIntersectionFromPixel(pixelCoords: Vector2, options?: {
685
686
  stopOnHitting360Icon?: boolean;
686
687
  predicate?: (customObject: ICustomObject) => boolean;
688
+ forceWindowedPick?: boolean;
687
689
  }): Promise<AnyIntersection<DataSourceT> | undefined>;
688
690
  /**
689
691
  * Event function to click on 360 images.
@@ -1,25 +1,11 @@
1
- import { Box3 } from 'three';
1
+ /*!
2
+ * Copyright 2022 Cognite AS
3
+ */
4
+ export type { GeometryFilter } from '../../data-providers';
2
5
  /**
3
6
  * Units supported by {@link CogniteCadModel}.
4
7
  */
5
8
  export type WellKnownUnit = 'Meters' | 'Centimeters' | 'Millimeters' | 'Micrometers' | 'Kilometers' | 'Feet' | 'Inches' | 'Yards' | 'Miles' | 'Mils' | 'Microinches';
6
- export type GeometryFilter = {
7
- /**
8
- * The bounds to load geometry within. By default this box is in CDF coordinate space which
9
- * will be transformed into coordinates relative to the model using the the model transformation
10
- * which can be specified using {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions |the CDF API},
11
- * or set in {@link https://fusion.cognite.com/ |Cognite Fusion}.
12
- * @see {@link GeometryFilter.isBoundingBoxInModelCoordinates}.
13
- */
14
- boundingBox?: Box3;
15
- /**
16
- * When set, the geometry filter `boundingBox` will be considered to be in "Reveal/ThreeJS space".
17
- * Rather than CDF space which is the default. When using Reveal space, the model transformation
18
- * which can be specified using {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions |the CDF API},
19
- * or set in {@link https://fusion.cognite.com/ |Cognite Fusion}.
20
- */
21
- isBoundingBoxInModelCoordinates?: boolean;
22
- };
23
9
  export type CadModelSectorLoadStatistics = {
24
10
  /**
25
11
  * Estimated number of bytes to download sectors.
@@ -2,12 +2,11 @@ import { PerspectiveCamera, Scene, Box3, Vector3 } from 'three';
2
2
  import { FlexibleControls } from './FlexibleControls';
3
3
  import { FlexibleControlsOptions } from './FlexibleControlsOptions';
4
4
  import { PointerEvents } from '../../../utilities';
5
- import { CameraEventDelegate, CameraManagerCallbackData, CameraManagerEventType, CameraState } from './../types';
5
+ import { CameraEventDelegate, CameraManagerEventType, CameraState, RaycastCallback } from './../types';
6
6
  import { CameraManager } from './../CameraManager';
7
7
  import { FlexibleControlsType } from './FlexibleControlsType';
8
8
  import { FlexibleControlsTypeChangeDelegate, IFlexibleCameraManager } from './IFlexibleCameraManager';
9
9
  import { FlexibleCameraEventTarget } from './FlexibleCameraEventTarget';
10
- type RaycastCallback = (x: number, y: number, pickBoundingBox: boolean) => Promise<CameraManagerCallbackData>;
11
10
  /**
12
11
  * Flexible implementation of {@link CameraManager}. The user can switch between Orbit, FirstPersion or OrbitInCenter
13
12
  * Supports automatic update of camera near and far planes and animated change of camera position and target.
@@ -79,4 +78,3 @@ export declare class FlexibleCameraManager extends PointerEvents implements IFle
79
78
  private updateControlsSensitivity;
80
79
  static as(manager: CameraManager): FlexibleCameraManager | undefined;
81
80
  }
82
- export {};
@@ -1,2 +1,2 @@
1
1
  import { Vector2, Vector3 } from 'three';
2
- export type GetPickedPointByPixelCoordinates = (position: Vector2) => Promise<Vector3>;
2
+ export type GetPickedPointByPixelCoordinates = (position: Vector2, forceWindowedPick?: boolean) => Promise<Vector3>;
@@ -54,6 +54,11 @@ export type CameraManagerCallbackData = {
54
54
  */
55
55
  pickedBoundingBox: Box3 | undefined;
56
56
  };
57
+ /**
58
+ * Callback used by camera managers to request a raycast/pick against the scene.
59
+ * @beta
60
+ */
61
+ export type RaycastCallback = (x: number, y: number, pickBoundingBox: boolean, forceWindowedPick?: boolean) => Promise<CameraManagerCallbackData>;
57
62
  /**
58
63
  * List of supported event types (adapted from https://stackoverflow.com/questions/44480644/string-union-to-string-array)
59
64
  */
@@ -5,26 +5,26 @@ export { CdfModelDataProvider } from './src/model-data-providers/CdfModelDataPro
5
5
  export { CachedModelDataProvider } from './src/model-data-providers/CachedModelDataProvider';
6
6
  export { CdfModelIdentifier } from './src/model-identifiers/CdfModelIdentifier';
7
7
  export { CdfModelMetadataProvider } from './src/metadata-providers/CdfModelMetadataProvider';
8
- export { getAnnotationIdKey } from './src/image-360-data-providers/annotations';
9
- export { Cdf360ImageAnnotationProvider } from './src/image-360-data-providers/Cdf360ImageAnnotationProvider';
10
8
  export { type Cdf360ImageAnnotationCache, createCdf360ImageAnnotationCache } from './src/image-360-data-providers/Cdf360ImageAnnotationCache';
11
9
  export { Cdf360EventDescriptorProvider } from './src/image-360-data-providers/descriptor-providers/events/Cdf360EventDescriptorProvider';
12
- export { CoreDm360ImageAnnotationProvider } from './src/image-360-data-providers/CoreDm360ImageAnnotationProvider';
13
10
  export { Cdf360CdmDescriptorProvider } from './src/image-360-data-providers/descriptor-providers/datamodels/cdm/Cdf360CdmDescriptorProvider';
14
11
  export { Cdf360ImageFileProvider } from './src/image-360-data-providers/Cdf360ImageFileProvider';
15
12
  export type { Image360DataModelIdentifier, Image360CoreDataModelIdentifier, Image360LegacyDataModelIdentifier, Image360BaseIdentifier } from './src/image-360-data-providers/descriptor-providers/datamodels/system-space/Cdf360DataModelsDescriptorProvider';
16
13
  export { Cdf360DataModelsDescriptorProvider } from './src/image-360-data-providers/descriptor-providers/datamodels/system-space/Cdf360DataModelsDescriptorProvider';
17
- export { isClassic360Identifier, isCoreDmImage360Identifier, isLegacyDM360Identifier, isFdm360ImageCollectionIdentifier, isClassicMetadata360Identifier } from './src/image-360-data-providers/shared';
14
+ export { isClassic360Identifier, isCoreDmImage360Identifier, isLegacyDM360Identifier, isFdm360ImageCollectionIdentifier, isClassicMetadata360Identifier, isSameImage360RevisionId } from './src/image-360-data-providers/shared';
15
+ export { fetchCoreDm360AnnotationsForRevision } from './src/image-360-data-providers/cdm/fetchCoreDm360AnnotationsForRevision';
16
+ export { fetchAnnotationsForInstance, type Image360AnnotationsForInstanceResult } from './src/image-360-data-providers/cdm/fetchAnnotationsForInstance';
17
+ export { fetchCoreDm360AnnotationsForCollection } from './src/image-360-data-providers/cdm/fetchCoreDm360AnnotationsForCollection';
18
18
  export type { CoreDmImage360Annotation } from './src/image-360-data-providers/cdm/types';
19
19
  export { LocalModelDataProvider } from './src/model-data-providers/LocalModelDataProvider';
20
20
  export { LocalModelIdentifier } from './src/model-identifiers/LocalModelIdentifier';
21
21
  export { DMModelIdentifier } from './src/model-identifiers/DMModelIdentifier';
22
22
  export { LocalModelMetadataProvider } from './src/metadata-providers/LocalModelMetadataProvider';
23
- export { Local360ImageProvider } from './src/image-360-data-providers/Local360ImageProvider';
24
23
  export type { ModelIdentifier } from './src/ModelIdentifier';
25
24
  export { createModelIdentifier } from './src/ModelIdentifier';
26
25
  export type { ModelMetadataProvider } from './src/ModelMetadataProvider';
27
26
  export type { ModelDataProvider } from './src/ModelDataProvider';
27
+ export type { GeometryFilter } from './src/GeometryFilter';
28
28
  export type { PointCloudObjectMetadata, PointCloudObject } from './src/pointcloud-stylable-object-providers/types';
29
29
  export type { PointCloudStylableObjectProvider } from './src/PointCloudStylableObjectProvider';
30
30
  export type { StylableObject, SerializableStylableObject } from './src/pointcloud-stylable-object-providers/StylableObject';
@@ -32,16 +32,16 @@ export { CdfPointCloudStylableObjectProvider } from './src/pointcloud-stylable-o
32
32
  export { DummyPointCloudStylableObjectProvider } from './src/pointcloud-stylable-object-providers/DummyPointCloudStylableObjectProvider';
33
33
  export { CdfPointCloudDMStylableObjectProvider } from './src/pointcloud-stylable-object-providers/pointcloud-volume-data-providers/CdfPointCloudDMStylableObjectProvider';
34
34
  export { DummyPointCloudDMStylableObjectProvider } from './src/pointcloud-stylable-object-providers/pointcloud-volume-data-providers/DummyPointCloudDMStylableObjectProvider';
35
- export type { Image360Provider, Image360ProviderMap } from './src/Image360Provider';
36
- export { getImage360ProviderFromMap } from './src/Image360Provider';
37
- export { Image360ProviderCombiner } from './src/Image360ProviderCombiner';
38
- export type { BinaryFileProvider, JsonFileProvider, SignedFileProvider, BlobOutputMetadata, Image360Descriptor, Image360FileProvider, Image360Face, Image360Texture, Image360FileDescriptor, ImageAssetLinkAnnotationInfo, ImageInstanceLinkAnnotationInfo, InstanceReference, Image360Id, Image360RevisionId, SignedFileItem } from './src/types';
35
+ export type { BinaryFileProvider, JsonFileProvider, SignedFileProvider, BlobOutputMetadata, Image360Descriptor, Image360DescriptorProvider, Image360FileProvider, Image360Face, Image360Texture, Image360FileDescriptor, ImageAssetLinkAnnotationInfo, ImageInstanceLinkAnnotationInfo, InstanceReference, Image360Id, Image360RevisionId, Historical360ImageSet, FaceName, SignedFileItem } from './src/types';
39
36
  export { File3dFormat } from './src/types';
40
37
  export { fetchDMModelIdFromRevisionId } from './src/requests/fetchDMModelIdFromRevisionId';
41
38
  export { isDMPointCloudVolumeObject, isClassicPointCloudVolumeObject, isDMPointCloudVolume, isClassicPointCloudVolume } from './src/utilities/utils';
42
39
  export { getExternalIdFromDescriptor } from './src/utilities/getExternalIdFromDescriptor';
40
+ export { getInstanceKey } from './src/utilities/instanceIds';
43
41
  export type { DataSourceType, ClassicDataSourceType, DMDataSourceType, ClassicModelIdentifierType, DMModelIdentifierType, InternalDataSourceType, LocalDataSourceType, LocalModelIdentifierType, GenericDataSourceType } from './src/DataSourceType';
44
- export { isClassicIdentifier, isDMIdentifier, isLocalIdentifier } from './src/DataSourceType';
42
+ export { isClassicIdentifier, isDMIdentifier, isLocalIdentifier, isSameDMIdentifier } from './src/DataSourceType';
45
43
  export type { LocalAddModelOptions, CommonModelOptions, InternalAddModelOptions, AddModelOptionsWithModelRevisionId } from './src/utilities/internalAddModelOptions';
46
44
  export type { MetadataWithSignedFiles } from './src/metadata-providers/types';
47
45
  export { SignedUrlRefresher, type FetchWithRefreshOptions } from './src/utilities/SignedUrlRefresh';
46
+ export { PointCloudObjectCollection, PointCloudAnnotationVolumeCollection } from './src/point-cloud-collections/PointCloudObjectCollection';
47
+ export { PointCloudDMVolumeCollection } from './src/point-cloud-collections/PointCloudDMVolumeCollection';
@@ -1,6 +1,7 @@
1
1
  import { AnnotationModel, AnnotationsAssetRef } from '@cognite/sdk';
2
2
  import { Image360DataModelIdentifier } from './image-360-data-providers/descriptor-providers/datamodels/system-space/Cdf360DataModelsDescriptorProvider';
3
- import { PointCloudAnnotationVolumeCollection, PointCloudDMVolumeCollection } from '../../pointcloud-styling';
3
+ import { PointCloudAnnotationVolumeCollection } from './point-cloud-collections/PointCloudObjectCollection';
4
+ import { PointCloudDMVolumeCollection } from './point-cloud-collections/PointCloudDMVolumeCollection';
4
5
  import { CoreDmImage360Annotation } from './image-360-data-providers/cdm/types';
5
6
  import { DMInstanceRef } from '../../utilities';
6
7
  /**
@@ -0,0 +1,18 @@
1
+ import { Box3 } from 'three';
2
+ export type GeometryFilter = {
3
+ /**
4
+ * The bounds to load geometry within. By default this box is in CDF coordinate space which
5
+ * will be transformed into coordinates relative to the model using the the model transformation
6
+ * which can be specified using {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions |the CDF API},
7
+ * or set in {@link https://fusion.cognite.com/ |Cognite Fusion}.
8
+ * @see {@link GeometryFilter.isBoundingBoxInModelCoordinates}.
9
+ */
10
+ boundingBox?: Box3;
11
+ /**
12
+ * When set, the geometry filter `boundingBox` will be considered to be in "Reveal/ThreeJS space".
13
+ * Rather than CDF space which is the default. When using Reveal space, the model transformation
14
+ * which can be specified using {@link https://docs.cognite.com/api/v1/#operation/update3DRevisions |the CDF API},
15
+ * or set in {@link https://fusion.cognite.com/ |Cognite Fusion}.
16
+ */
17
+ isBoundingBoxInModelCoordinates?: boolean;
18
+ };
@@ -1,4 +1,4 @@
1
- import { DMInstanceRef } from '../../utilities';
1
+ import { DMInstanceRef } from '../../../utilities';
2
2
  /**
3
3
  * A simple PointCloudDMVolumeCollection that consists of an explicitly provided list of data model instance.
4
4
  */
@@ -1,10 +1,8 @@
1
1
  import { AnnotationModel, AnnotationsTypesImagesAssetLink, AnnotationsTypesImagesInstanceLink, IdEither } from '@cognite/sdk';
2
2
  import { Matrix4, Texture } from 'three';
3
3
  import { ClassicDataSourceType, DataSourceType, DMDataSourceType } from './DataSourceType';
4
- import { AssetAnnotationImage360Info, AssetHybridAnnotationImage360Info, DefaultImage360Collection, Image360AnnotationAssetQueryResult, Image360AnnotationInstanceReference } from '../../360-images';
5
4
  import { DMInstanceRef } from '../../utilities';
6
5
  import { ModelIdentifier } from './ModelIdentifier';
7
- export type Image360AnnotationFilterDelegate<T extends DataSourceType> = (annotation: T['image360AnnotationType']) => boolean;
8
6
  export interface JsonFileProvider {
9
7
  /**
10
8
  * Download and parse a JSON file and return the resulting struct.
@@ -48,29 +46,10 @@ export type Image360Id<T extends DataSourceType> = Image360RevisionId<T>;
48
46
  * An ID identifiying a single Image360 revision within a collection
49
47
  */
50
48
  export type Image360RevisionId<T extends DataSourceType> = T extends DMDataSourceType ? DMInstanceRef : string;
51
- export type Image360AnnotationSpecifier<T extends DataSourceType> = {
52
- revisionId: Image360RevisionId<T>;
53
- fileDescriptors: Image360FileDescriptor[];
54
- };
55
49
  /**
56
50
  * Filter for finding linked annotations in either a classic 360 collection or a new one
57
51
  */
58
52
  export type InstanceReference<T extends DataSourceType> = T extends ClassicDataSourceType ? IdEither : DMInstanceRef;
59
- export interface Image360AnnotationProvider<T extends DataSourceType> {
60
- getRelevant360ImageAnnotations(annotationSpecifier: Image360AnnotationSpecifier<T>): Promise<T['image360AnnotationType'][]>;
61
- /**
62
- * Resolves the mapping from internal file IDs (annotatedResourceId) to external IDs.
63
- * This is needed to match annotations to face descriptors when descriptors use externalId.
64
- * Optional - if not implemented, the caller should build mapping from descriptors only.
65
- */
66
- resolveFileIdToExternalIdMapping?(annotations: T['image360AnnotationType'][], descriptors: Image360FileDescriptor[]): Promise<Map<number, string>>;
67
- findImageAnnotationsForInstance(instanceFilter: Image360AnnotationInstanceReference<T>, collection: DefaultImage360Collection<T>): Promise<Image360AnnotationAssetQueryResult<T>[]>;
68
- getAllImage360AnnotationInfos(source: 'assets', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<ClassicDataSourceType>[]>;
69
- getAllImage360AnnotationInfos(source: 'hybrid', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetHybridAnnotationImage360Info[]>;
70
- getAllImage360AnnotationInfos(source: 'cdm', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<DMDataSourceType>[]>;
71
- getAllImage360AnnotationInfos(source: 'all', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<DataSourceType>[]>;
72
- getAllImage360AnnotationInfos(source: 'assets' | 'hybrid' | 'cdm' | 'all', collection: DefaultImage360Collection<T>, annotationFilter: Image360AnnotationFilterDelegate<T>): Promise<AssetAnnotationImage360Info<ClassicDataSourceType>[] | AssetAnnotationImage360Info<DMDataSourceType>[] | AssetAnnotationImage360Info<DataSourceType>[] | AssetHybridAnnotationImage360Info[]>;
73
- }
74
53
  export interface Image360DescriptorProvider<T extends DataSourceType> {
75
54
  get360ImageDescriptors(metadataFilter: T['image360Identifier'], preMultipliedRotation: boolean): Promise<Historical360ImageSet<T>[]>;
76
55
  }
@@ -1,4 +1,4 @@
1
- import { GeometryFilter } from '../../../cad-model';
1
+ import { GeometryFilter } from '../GeometryFilter';
2
2
  import { ClassicModelIdentifierType, InternalDataSourceType, LocalModelIdentifierType } from '../DataSourceType';
3
3
  import { File3dFormat } from '../types';
4
4
  /**
@@ -5,6 +5,8 @@ export interface IntersectInput {
5
5
  clippingPlanes: Plane[];
6
6
  renderer: WebGLRenderer;
7
7
  domElement: HTMLElement;
8
+ cameraInMotion?: boolean;
9
+ forceWindowedPick?: boolean;
8
10
  }
9
11
  /**
10
12
  * State holding information about data being loaded.
@@ -4,7 +4,6 @@
4
4
  export type { CompletePointCloudAppearance, PointCloudAppearance } from './src/PointCloudAppearance';
5
5
  export { DefaultPointCloudAppearance, applyDefaultsToPointCloudAppearance } from './src/PointCloudAppearance';
6
6
  export { StyledPointCloudObjectCollection, StyledPointCloudVolumeCollection } from './src/StyledPointCloudVolumeCollection';
7
- export { PointCloudObjectCollection, PointCloudAnnotationVolumeCollection } from './src/PointCloudObjectCollection';
7
+ export { PointCloudObjectCollection, PointCloudAnnotationVolumeCollection, PointCloudDMVolumeCollection } from '../data-providers';
8
8
  export { AnnotationIdPointCloudObjectCollection } from './src/AnnotationIdPointCloudObjectCollection';
9
- export { PointCloudDMVolumeCollection } from './src/PointCloudDMVolumeCollection';
10
9
  export { isPointCloudObjectCollection, isDMInstanceRefPointCloudObjectCollection } from './src/utils';
@@ -1,4 +1,4 @@
1
- import { PointCloudAnnotationVolumeCollection } from './PointCloudObjectCollection';
1
+ import { PointCloudAnnotationVolumeCollection } from '../../data-providers';
2
2
  /**
3
3
  * A simple PointCloudAnnotationVolumeCollection that consists of an explicitly provided list of annotation IDs
4
4
  */
@@ -1,4 +1,3 @@
1
- import { PointCloudDMVolumeCollection } from './PointCloudDMVolumeCollection';
2
- import { PointCloudAnnotationVolumeCollection } from './PointCloudObjectCollection';
1
+ import { PointCloudDMVolumeCollection, PointCloudAnnotationVolumeCollection } from '../../data-providers';
3
2
  export declare function isPointCloudObjectCollection(collection: PointCloudAnnotationVolumeCollection | PointCloudDMVolumeCollection): collection is PointCloudAnnotationVolumeCollection;
4
3
  export declare function isDMInstanceRefPointCloudObjectCollection(collection: PointCloudAnnotationVolumeCollection | PointCloudDMVolumeCollection): collection is PointCloudDMVolumeCollection;
@@ -11,5 +11,10 @@ export declare class PointCloudPickingHandler {
11
11
  private static readonly PickingWindowSize;
12
12
  constructor(renderer: WebGLRenderer);
13
13
  dispose(): void;
14
+ /**
15
+ * Invalidates the picker's cached full-frame pick buffer. Must be called whenever a new
16
+ * frame of the scene is rendered.
17
+ */
18
+ invalidatePickCache(): void;
14
19
  intersectPointClouds(nodes: PointCloudNode<DataSourceType>[], input: IntersectInput): Promise<IntersectPointCloudNodeResult<DataSourceType>[]>;
15
20
  }
@@ -5,10 +5,27 @@ import { PickParams } from './PointCloudOctreePickerHelper';
5
5
  export type { PickParams };
6
6
  export declare class PointCloudOctreePicker {
7
7
  private static readonly helperVec3;
8
+ private static readonly helperVec2;
9
+ private static readonly REBUILD_HOLDOFF_MS;
8
10
  private pickState;
9
11
  private readonly _renderer;
10
12
  private readonly _pickerHelper;
13
+ private _cache;
14
+ private _invalidationCount;
15
+ private _lastInvalidatedAt;
11
16
  constructor(renderer: WebGLRenderer);
12
17
  dispose(): void;
18
+ /**
19
+ * Invalidates the cached full-frame pick buffer. Must be called whenever a new frame of the
20
+ * scene is rendered (camera, point cloud LOD, styling or clipping changes) and on resize.
21
+ */
22
+ invalidateCache(): void;
13
23
  pick(camera: Camera, ray: Ray, octrees: PointCloudOctree[], params?: Partial<PickParams>): Promise<PickPoint | null>;
24
+ private pickWindowed;
25
+ private isCacheUsable;
26
+ private buildCache;
27
+ /** Picks the smallest node-index bit width that fits every visible node, or undefined if there are no nodes or none fits. */
28
+ private computeNodeIndexBits;
29
+ private renderAndReadBackPixels;
30
+ private pickFromCache;
14
31
  }
@@ -29,6 +29,25 @@ export interface PickParams {
29
29
  * @param renterTarget The render target used for picking.
30
30
  */
31
31
  onBeforePickRender: (material: PointCloudMaterial, renterTarget: WebGLRenderTarget) => void;
32
+ /**
33
+ * Whether the camera is currently known to be in motion (e.g. during an interactive zoom/pan/
34
+ * orbit). When true, the full-frame pick cache is never rebuilt for this call, regardless of
35
+ * how long ago it was last invalidated. Confirmed by measurement: a full-frame rebuild's async
36
+ * GPU readback (tens to hundreds of ms) routinely doesn't finish before the next camera-change
37
+ * invalidates it again during continuous motion, so the rebuild is started, pays its full cost,
38
+ * gets discarded, and the caller still has to fall back to a windowed pick anyway. Falls back to
39
+ * the time-based holdoff when omitted.
40
+ */
41
+ cameraInMotion?: boolean;
42
+ /**
43
+ * Unconditionally skips the full-frame pick cache (both serving from it and rebuilding it) for
44
+ * this call, regardless of camera-motion state. Intended for callers that pick on every input
45
+ * event of a fast, continuous interaction (e.g. wheel-driven zoom-to-cursor) where even
46
+ * checking/rebuilding the cache adds latency that matters more than the cache's benefit - unlike
47
+ * `cameraInMotion`, this doesn't depend on the camera having already started moving, which
48
+ * matters because some callers pick *before* moving the camera for that same input event.
49
+ */
50
+ forceWindowedPick?: boolean;
32
51
  }
33
52
  /**
34
53
  * Helper class for PointCloudOctreePicker.
@@ -40,15 +59,21 @@ export declare class PointCloudOctreePickerHelper {
40
59
  private readonly _rendererStateHelper;
41
60
  constructor(renderer: WebGLRenderer);
42
61
  resetState(): void;
43
- prepareRender(x: number, y: number, pickWndSize: number, pickMaterial: PointCloudMaterial, pickState: IPickState): void;
44
- render(camera: Camera, pickMaterial: PointCloudMaterial, octrees: PointCloudOctree[], ray: Ray, pickState: IPickState, params: Partial<PickParams>): RenderedNode[];
62
+ prepareRender(x: number, y: number, width: number, height: number, pickMaterial: PointCloudMaterial, pickState: IPickState): void;
63
+ render(camera: Camera, pickMaterial: PointCloudMaterial, octrees: PointCloudOctree[], ray: Ray | undefined, pickState: IPickState, params: Partial<PickParams>, nodeIndexBits?: number): RenderedNode[];
45
64
  private static nodesOnRay;
46
- readPixelsAsync(x: number, y: number, pickWndSize: number, renderTarget: WebGLRenderTarget): Promise<Uint8Array>;
65
+ readPixelsAsync(x: number, y: number, width: number, height: number, renderTarget: WebGLRenderTarget, pixels?: Uint8Array): Promise<Uint8Array>;
47
66
  private static createTempNodes;
48
67
  private static updatePickMaterial;
49
68
  static updatePickRenderTarget(pickState: IPickState, width: number, height: number): void;
50
69
  private static makePickRenderTarget;
51
- static findHit(pixels: Uint8Array, pickWndSize: number, nodes: RenderedNode[], camera: Camera): PointCloudHit | null;
70
+ static computeBitSplit(nodeCount: number, maxPointsPerNode: number): number | undefined;
71
+ static decodePackedPixel(packedIndex: number, nodeIndexBits: number): {
72
+ nodeIndex: number;
73
+ pointIndex: number;
74
+ };
75
+ static findHit(pixels: Uint8Array, pickWndSize: number, nodes: RenderedNode[], camera: Camera, nodeIndexBits?: number): PointCloudHit | null;
76
+ static findHitInBuffer(ibuffer: Uint32Array, bufferWidth: number, bufferHeight: number, centerX: number, centerY: number, windowSize: number, nodes: RenderedNode[], camera: Camera, nodeIndexBits: number): PointCloudHit | null;
52
77
  static getPickPoint(hit: PointCloudHit | null, nodes: RenderedNode[]): PickPoint | null;
53
78
  static getPointPosition(nodes: RenderedNode[], pcIndex: number, pIndex: number): Vector3;
54
79
  private static addPositionToPickPoint;
@@ -23,6 +23,7 @@ export interface IPointCloudMaterialUniforms {
23
23
  level: IUniform<number>;
24
24
  maxSize: IUniform<number>;
25
25
  minSize: IUniform<number>;
26
+ nodeIndexBits: IUniform<number>;
26
27
  objectIdLUT: IUniform<Texture>;
27
28
  octreeSize: IUniform<number>;
28
29
  pcIndex: IUniform<number>;
@@ -68,6 +69,8 @@ export declare class PointCloudMaterial extends RawShaderMaterial {
68
69
  set maxSize(value: number);
69
70
  get minSize(): number;
70
71
  set minSize(value: number);
72
+ get nodeIndexBits(): number;
73
+ set nodeIndexBits(value: number);
71
74
  get octreeSize(): number;
72
75
  set octreeSize(value: number);
73
76
  get screenHeight(): number;
@@ -3,6 +3,7 @@ export declare const DEFAULT_MAX_POINT_SIZE = 10;
3
3
  export declare const DEFAULT_MIN_NODE_PIXEL_SIZE = 50;
4
4
  export declare const DEFAULT_MIN_POINT_SIZE = 1;
5
5
  export declare const DEFAULT_PICK_WINDOW_SIZE = 15;
6
+ export declare const DEFAULT_NODE_INDEX_BITS = 8;
6
7
  export declare const DEFAULT_POINT_BUDGET = 3000000;
7
8
  export declare const MAX_LOADS_TO_GPU = 15;
8
9
  export declare const MAX_NUM_NODES_LOADING = 8;