@mappedin/react-sdk 6.0.1-beta.24 → 6.0.1-beta.25

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.
@@ -18,7 +18,9 @@
18
18
  // ../react/@packages/internal/shave-text/shave-text
19
19
  // ../react/@tweenjs/tween.js
20
20
  // ../react/@turf/turf
21
+ // ../react/troika-three-text
21
22
  // ../react/@packages/internal/quad-tree
23
+ // ../react/@mappedin/core-sdk/src/components/text3d
22
24
  // ../react/minisearch
23
25
  // ../react/three/addons/loaders/GLTFLoader.js
24
26
  // ../react/@mapbox/point-geometry
@@ -62,8 +64,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
62
64
  import type { Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
63
65
  import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack, OperationHours, SiblingGroup, LocationState } from '@mappedin/mvf';
64
66
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
65
- import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/react-sdk/geojson/src';
66
- import { enableTestMode } from '@mappedin/react-sdk/geojson/src';
67
+ export type { Text3D as Text3DApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
68
+ import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, MapViewState } from '@mappedin/react-sdk/geojson/src';
69
+ import { enableTestMode, preloadFont } from '@mappedin/react-sdk/geojson/src';
67
70
  export type { PubSub } from '@packages/internal/common/pubsub';
68
71
  import type { TMappedinMapLibreOverlayEvents } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
69
72
  import { MappedinMapLibreOverlay } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
@@ -316,12 +319,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
316
319
  * @deprecated Use {@link show3dMap} instead.
317
320
  */
318
321
  export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
319
- export { parseMVF, unzipMVF, enableTestMode };
320
- export type { MapView, MapData, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, };
322
+ export { parseMVF, unzipMVF, enableTestMode, preloadFont };
323
+ export type { MapView, MapData, MapViewState, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, };
321
324
  export type * from 'geojson';
322
325
  export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TCameraFocusOnTarget, TFocusable, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, } from '@mappedin/react-sdk/mappedin-js/src/types';
323
326
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
324
- export type { Label, Marker, Path, Shape, CameraTransform, Model, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
327
+ export type { Label, Marker, Path, Shape, CameraTransform, Model, Image, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
328
+ export type { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
325
329
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
326
330
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
327
331
  export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image as ImageData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Facade, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
@@ -909,7 +913,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
909
913
  declare module '@mappedin/react-sdk/mappedin-js/src/events' {
910
914
  import type { ClickPayload } from '@mappedin/core-sdk';
911
915
  import type { TStackedMapsEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
912
- import type { Coordinate, Floor, MapObject, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
916
+ import type { Coordinate, Facade, Floor, MapObject, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
913
917
  import type { Label, Marker, Model, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
914
918
  import type { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
915
919
  import type { TBlueDotEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot';
@@ -953,6 +957,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
953
957
  * Details about the pointer event which triggered the interaction.
954
958
  */
955
959
  pointerEvent: ClickPayload['pointerEvent'];
960
+ /**
961
+ * The interactive facades which the user interaction passed through.
962
+ */
963
+ facades: Facade[];
956
964
  };
957
965
  export type THoverPayload = Omit<TClickPayload, 'pointerEvent'>;
958
966
  /**
@@ -1314,20 +1322,22 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1314
1322
  }
1315
1323
 
1316
1324
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1317
- import type { RendererCore, WatermarkUpdateOptions } from '@mappedin/core-sdk';
1325
+ import type { RendererCore, WatermarkUpdateOptions } from '@mappedin/react-sdk/geojson/src';
1318
1326
  import { PubSub } from '@packages/internal/common';
1319
1327
  import { type TEvents, type TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
1320
1328
  import type { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
1321
1329
  import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
1322
1330
  import type { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
1323
1331
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
1324
- import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1325
- import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates } from '@mappedin/react-sdk/mappedin-js/src/types';
1326
- import type { Label, Marker, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1332
+ import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1333
+ import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState } from '@mappedin/react-sdk/mappedin-js/src/types';
1334
+ import type { Label, Marker, Image, Shape, Text3D as Text3DView } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1327
1335
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1328
1336
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1329
1337
  import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1330
1338
  import type { InspectorOption } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspector';
1339
+ import { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
1340
+ import type { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
1331
1341
  /**
1332
1342
  * The MapView class is the main class for rendering and interacting with the map.
1333
1343
  *
@@ -1345,6 +1355,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1345
1355
  * Controls for the map's labels.
1346
1356
  */
1347
1357
  Labels: Labels;
1358
+ /**
1359
+ * @experimental
1360
+ * Controls for the map's 3D texts.
1361
+ */
1362
+ Text3D: Text3D;
1348
1363
  /**
1349
1364
  * Controls for the map's markers.
1350
1365
  */
@@ -1422,8 +1437,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1422
1437
  * // Update the color of a space to red.
1423
1438
  * map.updateState(space, { color: 'red' });
1424
1439
  */
1425
- updateState<T extends Space | MapObject | Label | Marker | Shape | Door | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1440
+ updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1426
1441
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1442
+ /**
1443
+ * Update global state of the MapView
1444
+ */
1445
+ updateGlobalState(update: UpdateGlobalState): void;
1446
+ /**
1447
+ * Get global state of the MapView
1448
+ */
1449
+ getGlobalState(): GlobalState;
1427
1450
  update: () => void;
1428
1451
  /**
1429
1452
  * Retrieves the map data for the current map.
@@ -1482,7 +1505,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1482
1505
  * @hidden
1483
1506
  */
1484
1507
  updateWatermark(options: WatermarkUpdateOptions): void;
1485
- getState<T extends Space | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T> | undefined;
1508
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
1486
1509
  setHoverColor(c: string): void;
1487
1510
  getHoverColor(): string | undefined;
1488
1511
  /**
@@ -1601,6 +1624,88 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1601
1624
  * Enable debug interface. Learn more about the debug interface in the [Debug Mode Guide](https://developer.mappedin.com/web-sdk/getting-started#debug-mode).
1602
1625
  */
1603
1626
  enableDebug(opitons?: InspectorOption): Promise<void>;
1627
+ /**
1628
+ * @experimental
1629
+ * @internal
1630
+ */
1631
+ Debug: Debug;
1632
+ }
1633
+ }
1634
+
1635
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d' {
1636
+ import { Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1637
+ import type { TAddText3DOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
1638
+ import type { CurrentMapGetter } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/types';
1639
+ import { Text3D as Text3DView } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1640
+ export class Text3D {
1641
+ #private;
1642
+ /**
1643
+ * @internal
1644
+ */
1645
+ constructor({ currentMapGetter }: {
1646
+ currentMapGetter: CurrentMapGetter;
1647
+ });
1648
+ /**
1649
+ * Creates polygon labels for all spaces.
1650
+ *
1651
+ * @param options - Configuration options for text label creation
1652
+ * @returns An array of Text3DView instances representing the created labels. If the space is already labeled, the designated Text3D instance will be returned.
1653
+ *
1654
+ * @example
1655
+ * ```typescript
1656
+ * const labels = mapView.Text3D.labelAll({
1657
+ * // optional configuration options
1658
+ * });
1659
+ * ```
1660
+ */
1661
+ labelAll(options?: TAddText3DOptions): Text3DView[];
1662
+ /**
1663
+ * Creates a 3D text label for a given space.
1664
+ *
1665
+ * @param target - The target space or enterprise space to label.
1666
+ * @param content - The content of the label. If not provided, target.name will be used
1667
+ * @param options={} - Configuration options for the text label creation.
1668
+ * @returns An array of Text3DView instances representing the created labels.
1669
+ *
1670
+ * @throws {Error} If the target is not a Space.
1671
+ *
1672
+ * @example
1673
+ * ```typescript
1674
+ * const labels = mapView.Text3D.label(space, "Label Content", { fontSize: 12 });
1675
+ * ```
1676
+ */
1677
+ label(target: Space, content?: string, options?: TAddText3DOptions): Text3DView | undefined;
1678
+ /**
1679
+ * Removes one or more Text3D labels from the map
1680
+ *
1681
+ * @param target - Can be either:
1682
+ * - A single Text3DView instance
1683
+ * - An array of Text3DView instances
1684
+ * - A string ID of the Text3DView to remove
1685
+ *
1686
+ * @example
1687
+ * ```typescript
1688
+ * // Remove single text label
1689
+ * mapView.Text3D.remove(text);
1690
+ *
1691
+ * // Remove multiple text labels
1692
+ * mapView.Text3D.remove([text, text]);
1693
+ *
1694
+ * // Remove by ID
1695
+ * mapView.Text3D.remove("text3d-123");
1696
+ * ```
1697
+ */
1698
+ remove(text3dView: Text3DView): void;
1699
+ remove(id: string): void;
1700
+ /**
1701
+ * Removes all Text3D labels from the current map
1702
+ *
1703
+ * @example
1704
+ * ```typescript
1705
+ * mapView.Text3D.removeAll();
1706
+ * ```
1707
+ */
1708
+ removeAll(): void;
1604
1709
  }
1605
1710
  }
1606
1711
 
@@ -1620,20 +1725,26 @@ declare module '@mappedin/react-sdk/geojson/src' {
1620
1725
  import { mountSceneGraphVisualizer } from '@mappedin/react-sdk/geojson/examples/src/utils/scene-graph-visualizer';
1621
1726
  import '../../packages/outdoor-context-v4/css/maplibre-gl.css';
1622
1727
  import type { CollisionRankingTier } from '@mappedin/react-sdk/geojson/src/utils/collision-ranking-tier';
1728
+ export type { Text3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
1729
+ export { TEXT3D_STYLE_UPDATE_PROPS } from '@mappedin/react-sdk/geojson/src/entities/utils';
1623
1730
  export { Navigator } from '@mappedin/react-sdk/packages/geojson-navigator';
1624
1731
  export { interpolate, debounce } from '@mappedin/react-sdk/geojson/src/utils';
1625
1732
  export { MAPPEDIN_LAYER_ID } from '@mappedin/react-sdk/geojson/src/utils/constants';
1733
+ export type { DebugState, Debug } from '@mappedin/react-sdk/geojson/src/utils/debug';
1626
1734
  /**
1627
1735
  * Enable test mode for the renderer. This will disable the WebGLRenderer and WebGL1Renderer and replace them with a dummy object
1628
1736
  * so you can run tests against it
1629
1737
  */
1630
- export { enableTestMode } from '@mappedin/react-sdk/geojson/src/services/renderer';
1738
+ export { enableTestMode } from '@mappedin/react-sdk/geojson/src/services/test-mode';
1631
1739
  export { mountSceneGraphVisualizer };
1632
1740
  export type { EntityId, EntityState, LineStyle, PaintStyle, ModelStyle, ModelProperties, Shading } from '@mappedin/react-sdk/geojson/src/types';
1633
1741
  export type * from 'geojson';
1634
1742
  export type { WatermarkUpdateOptions, WatermarkOptions, WatermarkPosition } from '@mappedin/react-sdk/geojson/src/systems/watermark/system';
1743
+ export { preloadFont } from '@mappedin/react-sdk/geojson/src/systems/text3d/system';
1635
1744
  export type { GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter';
1636
1745
  export type { AttributionControlOptions, AttributionPosition } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1746
+ export type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
1747
+ export type { AddText3DOptions, InitializeText3DState, UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
1637
1748
  export { ATTRIBUTION_POSITIONS } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1638
1749
  export { ANIMATION_TWEENS } from '@mappedin/react-sdk/geojson/src/camera';
1639
1750
  export type { AddPathOptions, AddMarkerOptions, AddLabelOptions, AnimateToOptions, FocusOnOptions, MapViewState, MarkerState, PathState, GroupContainerState, GeometryGroupState, ShapeState, CustomGeometryBuilder, LabelState, GeometryState, ModelState, EasingCurve, Camera, InsetPadding, InsetPaddingOption, Position, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload, CollisionRankingTier, LabelAppearance, RendererCore, };
@@ -1715,9 +1826,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1715
1826
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1716
1827
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1717
1828
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node, Area, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1718
- import type { Label, Marker, Model, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1829
+ import type { Label, Marker, Model, Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1719
1830
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1720
- import type { InsetPaddingOption, Position } from '@mappedin/core-sdk';
1831
+ import type { InsetPaddingOption, Position, UpdatableText3DState, Text3DState, AddText3DOptions } from '@mappedin/react-sdk/geojson/src';
1721
1832
  export type DeepRequired<T> = Required<{
1722
1833
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1723
1834
  }>;
@@ -1855,6 +1966,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1855
1966
  * Visibility of the walls.
1856
1967
  */
1857
1968
  visible: boolean;
1969
+ /**
1970
+ * Height of the walls.
1971
+ */
1972
+ height?: number;
1973
+ /**
1974
+ * Opacity of the walls.
1975
+ */
1976
+ opacity?: number;
1858
1977
  };
1859
1978
  export type TDoorsState = {
1860
1979
  type: 'doors';
@@ -1999,9 +2118,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1999
2118
  /**
2000
2119
  * The type for updating the state of map elements (colors, texts, etc.).
2001
2120
  */
2002
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS ? Partial<TDoorsState> : T extends Door ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Door ? Partial<TGeometryState> : T extends string ? Record<string, any> : never;
2121
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends string ? Record<string, any> : never;
2003
2122
  export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
2004
- export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
2123
+ export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
2005
2124
  /**
2006
2125
  * Options for {@link Camera} animations on the map.
2007
2126
  */
@@ -2474,6 +2593,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2474
2593
  */
2475
2594
  url: string;
2476
2595
  };
2596
+ /**
2597
+ * @interface
2598
+ */
2599
+ export type TAddText3DOptions = AddText3DOptions;
2477
2600
  /**
2478
2601
  * Options for controlling the behavior of an {@link Image}.
2479
2602
  */
@@ -2687,6 +2810,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2687
2810
  language: Language;
2688
2811
  localePack: ParsedMVFLocalePack;
2689
2812
  };
2813
+ export type GlobalState = {
2814
+ text3d: {
2815
+ /**
2816
+ * hover color of the text3d
2817
+ */
2818
+ hoverColor: string;
2819
+ };
2820
+ geometry: {
2821
+ /**
2822
+ * hover color of the geometries
2823
+ */
2824
+ hoverColor: string;
2825
+ };
2826
+ };
2827
+ export type UpdateGlobalState = DeepPartial<GlobalState>;
2690
2828
  }
2691
2829
 
2692
2830
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
@@ -2976,6 +3114,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects' {
2976
3114
  export { Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
2977
3115
  export { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
2978
3116
  export { Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape';
3117
+ export { Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d';
3118
+ }
3119
+
3120
+ declare module '@mappedin/react-sdk/mappedin-js/src/debug' {
3121
+ import type { RendererCore } from '@mappedin/core-sdk';
3122
+ export class Debug {
3123
+ state: RendererCore['Debug']['state'];
3124
+ constructor(core: RendererCore);
3125
+ update: RendererCore['Debug']['update'];
3126
+ }
2979
3127
  }
2980
3128
 
2981
3129
  declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
@@ -4120,6 +4268,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4120
4268
  * @internal
4121
4269
  */
4122
4270
  readonly __type = "space";
4271
+ getMvfData(): import("@mappedin/mvf").Feature<import("@mappedin/mvf").Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, import("@mappedin/mvf").SpaceProperties>;
4123
4272
  /**
4124
4273
  * Checks if the provided instance is of type Space.
4125
4274
  *
@@ -5286,6 +5435,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspec
5286
5435
  export type InspectorOption = Partial<InspectorState>;
5287
5436
  }
5288
5437
 
5438
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/types' {
5439
+ import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
5440
+ export type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
5441
+ }
5442
+
5289
5443
  declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5290
5444
  import './marker.scss';
5291
5445
  import { Vector2 } from 'three';
@@ -5349,14 +5503,14 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5349
5503
  }, "strip", z.ZodTypeAny, {
5350
5504
  interactive?: boolean | "pointer-events-auto" | undefined;
5351
5505
  id?: string | undefined;
5352
- anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5353
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5506
+ anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5507
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5354
5508
  dynamicResize?: boolean | undefined;
5355
5509
  }, {
5356
5510
  interactive?: boolean | "pointer-events-auto" | undefined;
5357
5511
  id?: string | undefined;
5358
- anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5359
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5512
+ anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5513
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5360
5514
  dynamicResize?: boolean | undefined;
5361
5515
  }>;
5362
5516
  export function validateMarker(coordinate: Position, contentHTML: string, options: AddMarkerOptions): void;
@@ -5447,7 +5601,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5447
5601
 
5448
5602
  declare module '@mappedin/react-sdk/geojson/src/components/path' {
5449
5603
  import { Vector3 } from 'three';
5450
- import type { Mesh, BufferGeometry } from 'three';
5604
+ import type { BufferGeometry, LineSegments } from 'three';
5451
5605
  import type { EntityId, Position } from '@mappedin/react-sdk/geojson/src/types';
5452
5606
  import type { PathMaterial, PatMeshContainer } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
5453
5607
  import type { FeatureCollection, Point } from 'geojson';
@@ -5626,7 +5780,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/path' {
5626
5780
  mesh: PatMeshContainer;
5627
5781
  material?: PathMaterial;
5628
5782
  geometry?: BufferGeometry;
5629
- outline?: Mesh;
5783
+ outline?: LineSegments;
5630
5784
  feature: FeatureCollection<Point, PathProperties>;
5631
5785
  options: AddPathOptions;
5632
5786
  nearRadius: number;
@@ -5742,6 +5896,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5742
5896
  foregroundColor?: string | undefined;
5743
5897
  backgroundColor?: string | undefined;
5744
5898
  } | undefined;
5899
+ margin?: number | undefined;
5745
5900
  marker?: {
5746
5901
  size?: number | undefined;
5747
5902
  foregroundColor?: {
@@ -5753,7 +5908,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5753
5908
  inactive?: string | undefined;
5754
5909
  } | undefined;
5755
5910
  } | undefined;
5756
- margin?: number | undefined;
5757
5911
  }, {
5758
5912
  text?: {
5759
5913
  size?: number | undefined;
@@ -5763,6 +5917,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5763
5917
  foregroundColor?: string | undefined;
5764
5918
  backgroundColor?: string | undefined;
5765
5919
  } | undefined;
5920
+ margin?: number | undefined;
5766
5921
  marker?: {
5767
5922
  size?: number | undefined;
5768
5923
  foregroundColor?: {
@@ -5774,11 +5929,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5774
5929
  inactive?: string | undefined;
5775
5930
  } | undefined;
5776
5931
  } | undefined;
5777
- margin?: number | undefined;
5778
5932
  }>>;
5779
5933
  }, "strip", z.ZodTypeAny, {
5780
5934
  interactive?: boolean | undefined;
5781
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5935
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5782
5936
  appearance?: {
5783
5937
  text?: {
5784
5938
  size?: number | undefined;
@@ -5788,6 +5942,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5788
5942
  foregroundColor?: string | undefined;
5789
5943
  backgroundColor?: string | undefined;
5790
5944
  } | undefined;
5945
+ margin?: number | undefined;
5791
5946
  marker?: {
5792
5947
  size?: number | undefined;
5793
5948
  foregroundColor?: {
@@ -5799,11 +5954,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5799
5954
  inactive?: string | undefined;
5800
5955
  } | undefined;
5801
5956
  } | undefined;
5802
- margin?: number | undefined;
5803
5957
  } | undefined;
5804
5958
  }, {
5805
5959
  interactive?: boolean | undefined;
5806
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5960
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5807
5961
  appearance?: {
5808
5962
  text?: {
5809
5963
  size?: number | undefined;
@@ -5813,6 +5967,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5813
5967
  foregroundColor?: string | undefined;
5814
5968
  backgroundColor?: string | undefined;
5815
5969
  } | undefined;
5970
+ margin?: number | undefined;
5816
5971
  marker?: {
5817
5972
  size?: number | undefined;
5818
5973
  foregroundColor?: {
@@ -5824,7 +5979,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5824
5979
  inactive?: string | undefined;
5825
5980
  } | undefined;
5826
5981
  } | undefined;
5827
- margin?: number | undefined;
5828
5982
  } | undefined;
5829
5983
  }>;
5830
5984
  export function validateLabel(coordinate: Position, text: string, options: AddLabelOptions): void;
@@ -6171,9 +6325,12 @@ declare module '@mappedin/react-sdk/geojson/src/entities/group-container' {
6171
6325
  import type { StackComponent } from '@mappedin/react-sdk/geojson/src/components/stack';
6172
6326
  import type { MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
6173
6327
  import type { LabelState } from '@mappedin/react-sdk/geojson/src/components/label';
6328
+ import type { Geometry3DTypes } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
6174
6329
  import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
6175
6330
  import type { PathState } from '@mappedin/react-sdk/geojson/src/components/path';
6176
6331
  import type { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
6332
+ import type { BatchedText } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
6333
+ import type { EntityTypes } from '@mappedin/react-sdk/geojson/src/renderer';
6177
6334
  export enum GroupContainerComponents {
6178
6335
  Stack = 0,
6179
6336
  Interaction = 1
@@ -6200,7 +6357,8 @@ declare module '@mappedin/react-sdk/geojson/src/entities/group-container' {
6200
6357
  };
6201
6358
  export class GroupContainerObject3D extends Object3D {
6202
6359
  childrenIds: Set<string | number>;
6203
- readonly type = "group-container";
6360
+ children: (GroupContainerObject3D | GeometryGroupObject3D | BatchedText | Geometry2D['object3d'] | NonNullable<Geometry3D['object3d']>)[];
6361
+ readonly type: "group-container";
6204
6362
  userData: {
6205
6363
  entityId: string | number;
6206
6364
  entities2D: Set<string | number>;
@@ -6208,8 +6366,8 @@ declare module '@mappedin/react-sdk/geojson/src/entities/group-container' {
6208
6366
  };
6209
6367
  components: [StackComponent?, InteractionComponent?];
6210
6368
  constructor(id: string);
6211
- addEntity(entityGroupOrContainer: GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | Geometry3D): void;
6212
- removeEntity(entityGroupOrContainer: GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | Geometry3D): void;
6369
+ addEntity(entityGroupOrContainer: GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | Geometry3DTypes): void;
6370
+ removeEntity(entityGroupOrContainer: EntityTypes): void;
6213
6371
  setVisible(visible: boolean): void;
6214
6372
  setAltitude(altitude: number): void;
6215
6373
  get altitude(): number;
@@ -6289,7 +6447,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry-group' {
6289
6447
  export type ChildUpdatable<T> = T extends LineStyle ? Partial<Pick<LineStyle, 'color' | 'opacity' | 'visible'>> : Partial<Pick<PaintStyle, 'color' | 'opacity' | 'visible'>>;
6290
6448
  export class GeometryGroupObject3D extends Object3D {
6291
6449
  visible: boolean;
6292
- readonly type = "geometry-group";
6450
+ readonly type: "geometry-group";
6293
6451
  components: [GeometryGroupStyleComponent];
6294
6452
  userData: {
6295
6453
  entityId: string | number;
@@ -6320,7 +6478,8 @@ declare module '@mappedin/react-sdk/geojson/src/types/geometry' {
6320
6478
  }
6321
6479
 
6322
6480
  declare module '@mappedin/react-sdk/geojson/src/types' {
6323
- import { Mesh, Object3D, InstancedMesh, Camera } from 'three';
6481
+ import type { Camera } from 'three';
6482
+ import { Mesh, Object3D, InstancedMesh } from 'three';
6324
6483
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
6325
6484
  import type { Position } from '@mappedin/react-sdk/geojson/src/types/geometry';
6326
6485
  import type { GeometryState } from '@mappedin/react-sdk/geojson/src/components/mesh';
@@ -6332,13 +6491,14 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6332
6491
  import type { MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
6333
6492
  import type { ImageState } from '@mappedin/react-sdk/geojson/src/components/image';
6334
6493
  import type { ShapeState } from '@mappedin/react-sdk/geojson/src/components/custom';
6335
- import type { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities';
6336
6494
  import type { Group as TweenGroup } from '@tweenjs/tween.js';
6337
- import { MaterialSide } from '@mappedin/react-sdk/geojson/src/components/style';
6495
+ import type { MaterialSide } from '@mappedin/react-sdk/geojson/src/components/styles';
6496
+ import type { Geometry3DTypes } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
6497
+ import type { Text3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
6338
6498
  /**
6339
6499
  * The state of an entity, which can be a geometry, geometry group, group container, path, model, label, or marker.
6340
6500
  */
6341
- export type EntityState = GeometryState | GeometryGroupState | GroupContainerState | PathState | ModelState | LabelState | MarkerState | ImageState | ShapeState;
6501
+ export type EntityState = GeometryState | GeometryGroupState | GroupContainerState | PathState | ModelState | LabelState | MarkerState | ImageState | Text3DState | ShapeState;
6342
6502
  /**
6343
6503
  * A wrapper object that contains the ID and type of an entity. This is returned when adding entities to the scene, and can be used
6344
6504
  * to `getState` and `setState` of the entity.
@@ -6605,14 +6765,18 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6605
6765
  export type MapEventPayload<EventName extends keyof MapEvent> = MapEvent[EventName] extends {
6606
6766
  data: null;
6607
6767
  } ? MapEvent[EventName]['data'] : MapEvent[EventName];
6608
- export type Geometry3DTypes = Geometry3D | GeometryGroupObject3D | GroupContainerObject3D;
6768
+ /**
6769
+ * All entities in 3D
6770
+ */
6771
+ export type All3DTypes = Geometry3DTypes | GeometryGroupObject3D | GroupContainerObject3D;
6609
6772
  export type RendererState = {
6610
- geometry3DMap: Map<string | number, Geometry3DTypes>;
6773
+ geometry3DMap: Map<string | number, All3DTypes>;
6611
6774
  geometry2DMap: Map<string | number, Geometry2D>;
6612
6775
  geometry2DIdsInScene: Set<Geometry2D['id']>;
6613
- geometry3DIdsInScene: Set<Geometry3DTypes['id']>;
6776
+ geometry3DIdsInScene: Set<All3DTypes['id']>;
6614
6777
  entityScene: GroupContainerObject3D;
6615
6778
  hoverColor: string;
6779
+ text3dHoverColor: string;
6616
6780
  center?: Position;
6617
6781
  insetsPadding: InsetPadding;
6618
6782
  shouldMeasureCanvas: boolean;
@@ -6626,10 +6790,14 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6626
6790
  tweenGroup: TweenGroup;
6627
6791
  cameraObject: Camera;
6628
6792
  };
6793
+ /**
6794
+ * All of the entities in the scene
6795
+ */
6796
+ export type EntityTypes = Geometry3DTypes | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D;
6629
6797
  }
6630
6798
 
6631
6799
  declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6632
- import type { Texture, BufferGeometry, LineSegments, Mesh, Object3D } from 'three';
6800
+ import type { Texture, BufferGeometry, LineSegments, Mesh } from 'three';
6633
6801
  import { BatchedMesh, Color, Vector3 } from 'three';
6634
6802
  import type { BatchedStandardMaterial } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/batched-material';
6635
6803
  import type { Position } from '@mappedin/react-sdk/geojson/src/types';
@@ -6637,7 +6805,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6637
6805
  import type { BBox } from '@turf/turf';
6638
6806
  import { type ImageProperties } from '@mappedin/react-sdk/geojson/src/components/image';
6639
6807
  import { type BaseTextAreaProperties } from '@mappedin/mvf';
6808
+ import type { Text } from 'troika-three-text';
6640
6809
  export class EntityBatchedMesh extends BatchedMesh {
6810
+ type: "entityBatchedMesh";
6641
6811
  userData: {
6642
6812
  entities: {
6643
6813
  [key: number]: string | number;
@@ -6646,6 +6816,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6646
6816
  };
6647
6817
  }
6648
6818
  export type MeshComponentProperties = {
6819
+ id: string;
6649
6820
  image?: ImageProperties & {
6650
6821
  position: GeoJsonPosition;
6651
6822
  path: string;
@@ -6725,6 +6896,14 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6725
6896
  * The top texture URL of the geometry
6726
6897
  */
6727
6898
  topTexture?: string;
6899
+ /**
6900
+ * Whether the geometry is currently in hover state or not
6901
+ */
6902
+ hovered: boolean;
6903
+ /**
6904
+ * The render order of the geometry
6905
+ */
6906
+ renderOrder?: number;
6728
6907
  };
6729
6908
  export class MeshComponent {
6730
6909
  #private;
@@ -6732,7 +6911,11 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6732
6911
  focusMesh?: Mesh;
6733
6912
  outline?: LineSegments;
6734
6913
  imageMesh?: Mesh;
6735
- textAreaMesh?: Object3D;
6914
+ /**
6915
+ * holds a pointer to space label text if the polygon has label active.
6916
+ */
6917
+ textMesh?: Text;
6918
+ textEntityId?: string;
6736
6919
  readonly type = "geometry";
6737
6920
  dirty: boolean;
6738
6921
  detached: boolean;
@@ -6744,7 +6927,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6744
6927
  constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>);
6745
6928
  get visible(): boolean;
6746
6929
  set visible(visible: boolean);
6747
- setOpacity(opacity: number): void;
6930
+ get renderOrder(): number;
6931
+ set renderOrder(value: number);
6748
6932
  focusable: boolean;
6749
6933
  color: Color;
6750
6934
  topColor: Color;
@@ -7073,9 +7257,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7073
7257
  outline?: LineSegments;
7074
7258
  geometry?: Object3D;
7075
7259
  material?: BatchedStandardMaterial;
7076
- feature: Feature<Point>;
7260
+ feature: Feature<Point, ModelProperties>;
7077
7261
  instanceIndex?: number;
7078
- constructor(feature: Feature<Point>);
7262
+ constructor(feature: Feature<Point, ModelProperties>);
7079
7263
  visible: boolean;
7080
7264
  setOpacity(): void;
7081
7265
  color: Color;
@@ -7094,14 +7278,14 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7094
7278
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7095
7279
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7096
7280
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
7281
+ import { Renderer } from '@mappedin/react-sdk/geojson/src/services/renderer';
7097
7282
  import { CollisionSystem } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
7098
7283
  import { InteractionSystem } from '@mappedin/react-sdk/geojson/src/systems/interactions';
7099
- import { ZoomInterpolationSystem } from '@mappedin/react-sdk/geojson/src/systems/zoom-interpolation/zoom-interpolation';
7100
7284
  import type { AddMarkerOptions, MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
7101
7285
  import type { GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter';
7102
7286
  import { ExporterSystem } from '@mappedin/react-sdk/geojson/src/systems/exporter';
7103
7287
  import type { AddLabelOptions, LabelState } from '@mappedin/react-sdk/geojson/src/components/label';
7104
- import type { LineStyle, PaintStyle, RendererCoreOptions, Position, ModelProperties, ModelStyle, EntityState, EntityId, MapEvent, MapEventPayload, RendererState } from '@mappedin/react-sdk/geojson/src/types';
7288
+ import type { LineStyle, PaintStyle, RendererCoreOptions, Position, ModelProperties, ModelStyle, EntityState, EntityId, MapEvent, MapEventPayload, RendererState, EntityTypes } from '@mappedin/react-sdk/geojson/src/types';
7105
7289
  import { MeshCreationAndOptimizationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/system';
7106
7290
  import { DOMVisibilitySystem } from '@mappedin/react-sdk/geojson/src/systems/dom-visiblity/system';
7107
7291
  import { TwoDProjectionSystem } from '@mappedin/react-sdk/geojson/src/systems/2d-projection/system';
@@ -7131,11 +7315,13 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7131
7315
  import { OutdoorLayers } from '@mappedin/react-sdk/geojson/src/systems/outdoor-layers/system';
7132
7316
  import { PathSystem } from '@mappedin/react-sdk/geojson/src/systems/path';
7133
7317
  import { type ImageProperties, type ImageState, type ImageStyle } from '@mappedin/react-sdk/geojson/src/components/image';
7318
+ import type { AddText3DOptions, Text3DState, UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
7134
7319
  import { MeshDetachmentSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system';
7135
7320
  import { MeshModificationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system';
7136
7321
  import { PreRenderSystem } from '@mappedin/react-sdk/geojson/src/systems/pre-render/system';
7137
- import { PolygonLabelSystem } from '@mappedin/react-sdk/geojson/src/systems/polygon-label/system';
7322
+ import { Text3DSystem } from '@mappedin/react-sdk/geojson/src/systems/text3d/system';
7138
7323
  import { Group as TweenGroup } from '@tweenjs/tween.js';
7324
+ import { Debug } from '@mappedin/react-sdk/geojson/src/utils/debug';
7139
7325
  export type * from '@mappedin/react-sdk/geojson/src/types';
7140
7326
  export const raycaster: Raycaster;
7141
7327
  /**
@@ -7155,7 +7341,6 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7155
7341
  panBoundsSystem: PanBoundsSystem;
7156
7342
  collisionSystem: CollisionSystem;
7157
7343
  interactionSystem: InteractionSystem;
7158
- zoomInterpolationSystem: ZoomInterpolationSystem;
7159
7344
  meshOptimizationSystem: MeshCreationAndOptimizationSystem;
7160
7345
  domVisiblitySystem: DOMVisibilitySystem;
7161
7346
  domMutationSystem: DOMResizeSystem;
@@ -7178,16 +7363,18 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7178
7363
  meshDetachmentSystem: MeshDetachmentSystem;
7179
7364
  meshModificationSystem: MeshModificationSystem;
7180
7365
  preRenderSystem: PreRenderSystem;
7181
- polygonLabelSystem: PolygonLabelSystem;
7366
+ text3DSystem: Text3DSystem;
7182
7367
  };
7183
7368
  export type MapViewState = {
7184
7369
  readonly type: 'map-view';
7185
- hoverColor?: string;
7370
+ hoverColor: string;
7371
+ text3dHoverColor: string;
7186
7372
  };
7187
7373
  class Core extends PubSub<MapEvent> {
7188
7374
  #private;
7189
7375
  options: Omit<RendererCoreOptions, 'outdoorView'>;
7190
7376
  container: HTMLElement;
7377
+ Debug: Debug;
7191
7378
  /**
7192
7379
  * The view camera is used for projecting both the outdoor map and our scene
7193
7380
  */
@@ -7246,6 +7433,31 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7246
7433
  * Add an HTML Marker at a GeoJSON coordinate.
7247
7434
  */
7248
7435
  addMarker2D(coordinate: Position, contentHTML: string, options?: AddMarkerOptions, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<MarkerState> | undefined;
7436
+ /**
7437
+ * Labels an existing 3D geometry with a text area.
7438
+ *
7439
+ * @param meshGeometryId - The ID of the target 3D geometry to label.
7440
+ * @param content - The text content to display.
7441
+ * @param options - Additional options for adding the text label, including:
7442
+ * - parentId: Optional ID of the parent container.
7443
+ * - appearance: Optional appearance settings for the text label.
7444
+ *
7445
+ * @returns An object containing the ID and type of the created or existing text label, or undefined if labeling failed. If geometry is already labeld, the same text id will be returned
7446
+ *
7447
+ * @example
7448
+ * ```typescript
7449
+ * const label = renderer.labelText3D('geometry123', 'Hello World', { parentId: 'parent456', appearance: { color: 'red' } });
7450
+ * if (label) {
7451
+ * console.log(`Label created with ID: ${label.id}`);
7452
+ * }
7453
+ *
7454
+ */
7455
+ labelText3D(meshGeometryId: string, content: string, options?: AddText3DOptions & {
7456
+ parentId?: string;
7457
+ }): {
7458
+ id: string | number;
7459
+ type: "text3d";
7460
+ } | undefined;
7249
7461
  /**
7250
7462
  * Add a 2D label at a GeoJSON coordinate.
7251
7463
  */
@@ -7264,6 +7476,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7264
7476
  * Remove an entity from the renderer and release associated resources.
7265
7477
  */
7266
7478
  remove(object: string | number): void;
7479
+ remove(object: EntityTypes): void;
7267
7480
  /**
7268
7481
  * Show collision boxes for 2D entities for debugging
7269
7482
  */
@@ -7288,13 +7501,13 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7288
7501
  * Get the current state of the map view, or any entity that was added, regardless of whether it is visible in the scene
7289
7502
  */
7290
7503
  getState(): MapViewState;
7291
- getState<T extends EntityId<EntityState>>(geometryOrGeometryId: T): T extends EntityId<LabelState> ? LabelState : T extends EntityId<GeometryState> ? GeometryState : T extends EntityId<MarkerState> ? MarkerState : T extends EntityId<GeometryGroupState> ? GeometryGroupState : T extends EntityId<GroupContainerState> ? GroupContainerState : T extends EntityId<ModelState> ? ModelState : T extends EntityId<PathState> ? PathState : T extends EntityId<ShapeState> ? ShapeState : T extends EntityId<ImageState> ? ImageState : EntityState;
7504
+ getState<T extends EntityId<EntityState>>(geometryOrGeometryId: T): T extends EntityId<LabelState> ? LabelState : T extends EntityId<GeometryState> ? GeometryState : T extends EntityId<MarkerState> ? MarkerState : T extends EntityId<GeometryGroupState> ? GeometryGroupState : T extends EntityId<GroupContainerState> ? GroupContainerState : T extends EntityId<ModelState> ? ModelState : T extends EntityId<PathState> ? PathState : T extends EntityId<ShapeState> ? ShapeState : T extends EntityId<ImageState> ? ImageState : T extends EntityId<Text3DState> ? Text3DState : EntityState;
7292
7505
  getState(geometryOrGeometryId?: Record<string | number, any> | string | number): EntityState;
7293
7506
  getState<T extends EntityState>(geometryOrGeometryId: T['id']): T extends LabelState ? LabelState : T extends GeometryState ? GeometryState : T extends MarkerState ? MarkerState : T extends GeometryGroupState ? GeometryGroupState : T extends GroupContainerState ? GroupContainerState : T extends ModelState ? ModelState : T extends PathState ? PathState : T extends ShapeState ? ShapeState : T extends ImageState ? ImageState : EntityState;
7294
7507
  /**
7295
7508
  * Set the state of the map view or any entity that was added, regardless of whether it is visible in the scene.
7296
7509
  */
7297
- setState(object: Partial<MapViewState>): void;
7510
+ setState(object: Partial<Omit<MapViewState, 'type'>>): void;
7298
7511
  setState<T extends EntityId<LabelState>>(object: T | T['id'], state: Partial<LabelState>): void;
7299
7512
  setState<T extends EntityId<MarkerState>>(object: T | T['id'], state: Partial<MarkerState>): void;
7300
7513
  setState<T extends EntityId<GeometryGroupState>>(object: T | T['id'], state: Partial<GeometryGroupState>): void;
@@ -7304,6 +7517,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7304
7517
  setState<T extends EntityId<PathState>>(object: T | T['id'], state: PathUpdateState): void;
7305
7518
  setState<T extends EntityId<ModelState>>(object: T | T['id'], state: Partial<ModelState>): void;
7306
7519
  setState<T extends EntityId<ImageState>>(object: T | T['id'], state: Partial<ImageState>): void;
7520
+ setState<T extends EntityId<Text3DState>>(object: T | T['id'], state: Partial<UpdatableText3DState>): void;
7307
7521
  setState<T extends EntityState>(object: T | T['id'], state: Partial<T>): void;
7308
7522
  /**
7309
7523
  * Project a screen coordinate to a geographic coordinate
@@ -7346,6 +7560,10 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7346
7560
  * Returns the background color of the renderer. Only applies to "standalone mode"
7347
7561
  */
7348
7562
  get backgroundColor(): import("three").Color;
7563
+ /**
7564
+ * internal
7565
+ */
7566
+ getThreeRenderer(): Renderer;
7349
7567
  /**
7350
7568
  * Returns the current scale of the map in metres per pixel.
7351
7569
  */
@@ -7379,13 +7597,13 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7379
7597
  * The render happens in an animation frame, not matter how frequently it is called
7380
7598
  * @method render
7381
7599
  */
7382
- render: () => void;
7600
+ render: () => Promise<any> | undefined;
7383
7601
  /**
7384
7602
  * Perform a synchronous render of the scene. This bypasses the animation frame and renders immediately.
7385
7603
  *
7386
7604
  * Note: Only use this if you have an animation frame setup elsewhere
7387
7605
  */
7388
- renderSync: () => void;
7606
+ renderSync: () => Promise<any>;
7389
7607
  /**
7390
7608
  * @internal for testing
7391
7609
  */
@@ -7643,19 +7861,462 @@ declare module '@mappedin/react-sdk/geojson/src/utils/collision-ranking-tier' {
7643
7861
  export function convertNumberToCollisionRankingTier(rank: number): CollisionRankingTier;
7644
7862
  }
7645
7863
 
7864
+ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
7865
+ import type { Position } from '@mappedin/react-sdk/geojson/src/types';
7866
+ import { z } from 'zod';
7867
+ import type { Feature, Point } from 'geojson';
7868
+ import { Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
7869
+ import type { BatchedText, Text } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
7870
+ import type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
7871
+ import type { MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
7872
+ import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7873
+ /**
7874
+ * State representing an Text3D
7875
+ */
7876
+ export type Text3DState = {
7877
+ readonly id: string | number;
7878
+ readonly type: 'text3d';
7879
+ /**
7880
+ * The position of the Text3D in [lon, lat, altitude]
7881
+ */
7882
+ readonly position: Position;
7883
+ /**
7884
+ * Whether the Text3D is visible
7885
+ */
7886
+ visible: boolean;
7887
+ /**
7888
+ * Attempt to keep the Text3D facing the camera as much as possible
7889
+ */
7890
+ flipToFaceCamera: boolean;
7891
+ /**
7892
+ * Content of the text3d
7893
+ */
7894
+ content: string;
7895
+ } & Text3DStyle;
7896
+ export const text3DStateSchema: z.ZodObject<{
7897
+ visible: z.ZodBoolean;
7898
+ color: z.ZodString;
7899
+ flipToFaceCamera: z.ZodBoolean;
7900
+ font: z.ZodOptional<z.ZodString>;
7901
+ fontSize: z.ZodNumber;
7902
+ margin: z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
7903
+ outlineColor: z.ZodString;
7904
+ outlineOpacity: z.ZodNumber;
7905
+ outlineBlur: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7906
+ outlineWidth: z.ZodNumber;
7907
+ outlineOffsetX: z.ZodNumber;
7908
+ outlineOffsetY: z.ZodNumber;
7909
+ strokeWidth: z.ZodNumber;
7910
+ maxWidth: z.ZodOptional<z.ZodNumber>;
7911
+ maxHeight: z.ZodOptional<z.ZodNumber>;
7912
+ strokeOpacity: z.ZodNumber;
7913
+ strokeColor: z.ZodString;
7914
+ fillOpacity: z.ZodNumber;
7915
+ hoverColor: z.ZodOptional<z.ZodString>;
7916
+ id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
7917
+ type: z.ZodLiteral<"text3d">;
7918
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
7919
+ content: z.ZodString;
7920
+ }, "strip", z.ZodTypeAny, {
7921
+ type: "text3d";
7922
+ id: string | number;
7923
+ color: string;
7924
+ position: [number, number, number];
7925
+ visible: boolean;
7926
+ flipToFaceCamera: boolean;
7927
+ fontSize: number;
7928
+ margin: number | [number, number, number, number];
7929
+ outlineColor: string;
7930
+ outlineOpacity: number;
7931
+ outlineBlur: string | number;
7932
+ outlineWidth: number;
7933
+ outlineOffsetX: number;
7934
+ outlineOffsetY: number;
7935
+ strokeWidth: number;
7936
+ strokeOpacity: number;
7937
+ strokeColor: string;
7938
+ fillOpacity: number;
7939
+ content: string;
7940
+ maxWidth?: number | undefined;
7941
+ font?: string | undefined;
7942
+ maxHeight?: number | undefined;
7943
+ hoverColor?: string | undefined;
7944
+ }, {
7945
+ type: "text3d";
7946
+ id: string | number;
7947
+ color: string;
7948
+ position: [number, number, number];
7949
+ visible: boolean;
7950
+ flipToFaceCamera: boolean;
7951
+ fontSize: number;
7952
+ margin: number | [number, number, number, number];
7953
+ outlineColor: string;
7954
+ outlineOpacity: number;
7955
+ outlineBlur: string | number;
7956
+ outlineWidth: number;
7957
+ outlineOffsetX: number;
7958
+ outlineOffsetY: number;
7959
+ strokeWidth: number;
7960
+ strokeOpacity: number;
7961
+ strokeColor: string;
7962
+ fillOpacity: number;
7963
+ content: string;
7964
+ maxWidth?: number | undefined;
7965
+ font?: string | undefined;
7966
+ maxHeight?: number | undefined;
7967
+ hoverColor?: string | undefined;
7968
+ }>;
7969
+ /**
7970
+ * @interface
7971
+ */
7972
+ export type InitializeText3DState = Partial<Omit<Text3DState, 'id' | 'type'>>;
7973
+ export const initializeText3DStateSchema: z.ZodObject<Omit<{
7974
+ visible: z.ZodOptional<z.ZodBoolean>;
7975
+ color: z.ZodOptional<z.ZodString>;
7976
+ flipToFaceCamera: z.ZodOptional<z.ZodBoolean>;
7977
+ font: z.ZodOptional<z.ZodOptional<z.ZodString>>;
7978
+ fontSize: z.ZodOptional<z.ZodNumber>;
7979
+ margin: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
7980
+ outlineColor: z.ZodOptional<z.ZodString>;
7981
+ outlineOpacity: z.ZodOptional<z.ZodNumber>;
7982
+ outlineBlur: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
7983
+ outlineWidth: z.ZodOptional<z.ZodNumber>;
7984
+ outlineOffsetX: z.ZodOptional<z.ZodNumber>;
7985
+ outlineOffsetY: z.ZodOptional<z.ZodNumber>;
7986
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
7987
+ maxWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
7988
+ maxHeight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
7989
+ strokeOpacity: z.ZodOptional<z.ZodNumber>;
7990
+ strokeColor: z.ZodOptional<z.ZodString>;
7991
+ fillOpacity: z.ZodOptional<z.ZodNumber>;
7992
+ hoverColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
7993
+ id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
7994
+ type: z.ZodOptional<z.ZodLiteral<"text3d">>;
7995
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
7996
+ content: z.ZodOptional<z.ZodString>;
7997
+ }, "type" | "id">, "strict", z.ZodTypeAny, {
7998
+ maxWidth?: number | undefined;
7999
+ color?: string | undefined;
8000
+ position?: [number, number, number] | undefined;
8001
+ visible?: boolean | undefined;
8002
+ flipToFaceCamera?: boolean | undefined;
8003
+ font?: string | undefined;
8004
+ fontSize?: number | undefined;
8005
+ margin?: number | [number, number, number, number] | undefined;
8006
+ outlineColor?: string | undefined;
8007
+ outlineOpacity?: number | undefined;
8008
+ outlineBlur?: string | number | undefined;
8009
+ outlineWidth?: number | undefined;
8010
+ outlineOffsetX?: number | undefined;
8011
+ outlineOffsetY?: number | undefined;
8012
+ strokeWidth?: number | undefined;
8013
+ maxHeight?: number | undefined;
8014
+ strokeOpacity?: number | undefined;
8015
+ strokeColor?: string | undefined;
8016
+ fillOpacity?: number | undefined;
8017
+ hoverColor?: string | undefined;
8018
+ content?: string | undefined;
8019
+ }, {
8020
+ maxWidth?: number | undefined;
8021
+ color?: string | undefined;
8022
+ position?: [number, number, number] | undefined;
8023
+ visible?: boolean | undefined;
8024
+ flipToFaceCamera?: boolean | undefined;
8025
+ font?: string | undefined;
8026
+ fontSize?: number | undefined;
8027
+ margin?: number | [number, number, number, number] | undefined;
8028
+ outlineColor?: string | undefined;
8029
+ outlineOpacity?: number | undefined;
8030
+ outlineBlur?: string | number | undefined;
8031
+ outlineWidth?: number | undefined;
8032
+ outlineOffsetX?: number | undefined;
8033
+ outlineOffsetY?: number | undefined;
8034
+ strokeWidth?: number | undefined;
8035
+ maxHeight?: number | undefined;
8036
+ strokeOpacity?: number | undefined;
8037
+ strokeColor?: string | undefined;
8038
+ fillOpacity?: number | undefined;
8039
+ hoverColor?: string | undefined;
8040
+ content?: string | undefined;
8041
+ }>;
8042
+ /**
8043
+ * At this moment updating text margin is not supported
8044
+ * Margin and content update are not handled at the moment.
8045
+ * @interface
8046
+ */
8047
+ export type UpdatableText3DState = Omit<InitializeText3DState, 'margin' | 'position' | 'content'>;
8048
+ export const updateText3DStateSchema: z.ZodObject<Omit<Omit<{
8049
+ visible: z.ZodOptional<z.ZodBoolean>;
8050
+ color: z.ZodOptional<z.ZodString>;
8051
+ flipToFaceCamera: z.ZodOptional<z.ZodBoolean>;
8052
+ font: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8053
+ fontSize: z.ZodOptional<z.ZodNumber>;
8054
+ margin: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
8055
+ outlineColor: z.ZodOptional<z.ZodString>;
8056
+ outlineOpacity: z.ZodOptional<z.ZodNumber>;
8057
+ outlineBlur: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
8058
+ outlineWidth: z.ZodOptional<z.ZodNumber>;
8059
+ outlineOffsetX: z.ZodOptional<z.ZodNumber>;
8060
+ outlineOffsetY: z.ZodOptional<z.ZodNumber>;
8061
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
8062
+ maxWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8063
+ maxHeight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8064
+ strokeOpacity: z.ZodOptional<z.ZodNumber>;
8065
+ strokeColor: z.ZodOptional<z.ZodString>;
8066
+ fillOpacity: z.ZodOptional<z.ZodNumber>;
8067
+ hoverColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8068
+ id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
8069
+ type: z.ZodOptional<z.ZodLiteral<"text3d">>;
8070
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
8071
+ content: z.ZodOptional<z.ZodString>;
8072
+ }, "type" | "id">, "maxWidth" | "position" | "margin" | "maxHeight" | "content">, "strict", z.ZodTypeAny, {
8073
+ color?: string | undefined;
8074
+ visible?: boolean | undefined;
8075
+ flipToFaceCamera?: boolean | undefined;
8076
+ font?: string | undefined;
8077
+ fontSize?: number | undefined;
8078
+ outlineColor?: string | undefined;
8079
+ outlineOpacity?: number | undefined;
8080
+ outlineBlur?: string | number | undefined;
8081
+ outlineWidth?: number | undefined;
8082
+ outlineOffsetX?: number | undefined;
8083
+ outlineOffsetY?: number | undefined;
8084
+ strokeWidth?: number | undefined;
8085
+ strokeOpacity?: number | undefined;
8086
+ strokeColor?: string | undefined;
8087
+ fillOpacity?: number | undefined;
8088
+ hoverColor?: string | undefined;
8089
+ }, {
8090
+ color?: string | undefined;
8091
+ visible?: boolean | undefined;
8092
+ flipToFaceCamera?: boolean | undefined;
8093
+ font?: string | undefined;
8094
+ fontSize?: number | undefined;
8095
+ outlineColor?: string | undefined;
8096
+ outlineOpacity?: number | undefined;
8097
+ outlineBlur?: string | number | undefined;
8098
+ outlineWidth?: number | undefined;
8099
+ outlineOffsetX?: number | undefined;
8100
+ outlineOffsetY?: number | undefined;
8101
+ strokeWidth?: number | undefined;
8102
+ strokeOpacity?: number | undefined;
8103
+ strokeColor?: string | undefined;
8104
+ fillOpacity?: number | undefined;
8105
+ hoverColor?: string | undefined;
8106
+ }>;
8107
+ export type Text3DProperties = {
8108
+ id: string;
8109
+ content: string;
8110
+ textArea?: MeshComponentProperties['textArea'];
8111
+ };
8112
+ export type AddText3DOptions = {
8113
+ appearance?: Partial<InitializeText3DState>;
8114
+ };
8115
+ export const addText3DOptionsSchema: z.ZodObject<{
8116
+ appearance: z.ZodOptional<z.ZodObject<Omit<{
8117
+ visible: z.ZodOptional<z.ZodBoolean>;
8118
+ color: z.ZodOptional<z.ZodString>;
8119
+ flipToFaceCamera: z.ZodOptional<z.ZodBoolean>;
8120
+ font: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8121
+ fontSize: z.ZodOptional<z.ZodNumber>;
8122
+ margin: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
8123
+ outlineColor: z.ZodOptional<z.ZodString>;
8124
+ outlineOpacity: z.ZodOptional<z.ZodNumber>;
8125
+ outlineBlur: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
8126
+ outlineWidth: z.ZodOptional<z.ZodNumber>;
8127
+ outlineOffsetX: z.ZodOptional<z.ZodNumber>;
8128
+ outlineOffsetY: z.ZodOptional<z.ZodNumber>;
8129
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
8130
+ maxWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8131
+ maxHeight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8132
+ strokeOpacity: z.ZodOptional<z.ZodNumber>;
8133
+ strokeColor: z.ZodOptional<z.ZodString>;
8134
+ fillOpacity: z.ZodOptional<z.ZodNumber>;
8135
+ hoverColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8136
+ id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
8137
+ type: z.ZodOptional<z.ZodLiteral<"text3d">>;
8138
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
8139
+ content: z.ZodOptional<z.ZodString>;
8140
+ }, "type" | "id">, "strict", z.ZodTypeAny, {
8141
+ maxWidth?: number | undefined;
8142
+ color?: string | undefined;
8143
+ position?: [number, number, number] | undefined;
8144
+ visible?: boolean | undefined;
8145
+ flipToFaceCamera?: boolean | undefined;
8146
+ font?: string | undefined;
8147
+ fontSize?: number | undefined;
8148
+ margin?: number | [number, number, number, number] | undefined;
8149
+ outlineColor?: string | undefined;
8150
+ outlineOpacity?: number | undefined;
8151
+ outlineBlur?: string | number | undefined;
8152
+ outlineWidth?: number | undefined;
8153
+ outlineOffsetX?: number | undefined;
8154
+ outlineOffsetY?: number | undefined;
8155
+ strokeWidth?: number | undefined;
8156
+ maxHeight?: number | undefined;
8157
+ strokeOpacity?: number | undefined;
8158
+ strokeColor?: string | undefined;
8159
+ fillOpacity?: number | undefined;
8160
+ hoverColor?: string | undefined;
8161
+ content?: string | undefined;
8162
+ }, {
8163
+ maxWidth?: number | undefined;
8164
+ color?: string | undefined;
8165
+ position?: [number, number, number] | undefined;
8166
+ visible?: boolean | undefined;
8167
+ flipToFaceCamera?: boolean | undefined;
8168
+ font?: string | undefined;
8169
+ fontSize?: number | undefined;
8170
+ margin?: number | [number, number, number, number] | undefined;
8171
+ outlineColor?: string | undefined;
8172
+ outlineOpacity?: number | undefined;
8173
+ outlineBlur?: string | number | undefined;
8174
+ outlineWidth?: number | undefined;
8175
+ outlineOffsetX?: number | undefined;
8176
+ outlineOffsetY?: number | undefined;
8177
+ strokeWidth?: number | undefined;
8178
+ maxHeight?: number | undefined;
8179
+ strokeOpacity?: number | undefined;
8180
+ strokeColor?: string | undefined;
8181
+ fillOpacity?: number | undefined;
8182
+ hoverColor?: string | undefined;
8183
+ content?: string | undefined;
8184
+ }>>;
8185
+ parentId: z.ZodOptional<z.ZodString>;
8186
+ }, "strict", z.ZodTypeAny, {
8187
+ parentId?: string | undefined;
8188
+ appearance?: {
8189
+ maxWidth?: number | undefined;
8190
+ color?: string | undefined;
8191
+ position?: [number, number, number] | undefined;
8192
+ visible?: boolean | undefined;
8193
+ flipToFaceCamera?: boolean | undefined;
8194
+ font?: string | undefined;
8195
+ fontSize?: number | undefined;
8196
+ margin?: number | [number, number, number, number] | undefined;
8197
+ outlineColor?: string | undefined;
8198
+ outlineOpacity?: number | undefined;
8199
+ outlineBlur?: string | number | undefined;
8200
+ outlineWidth?: number | undefined;
8201
+ outlineOffsetX?: number | undefined;
8202
+ outlineOffsetY?: number | undefined;
8203
+ strokeWidth?: number | undefined;
8204
+ maxHeight?: number | undefined;
8205
+ strokeOpacity?: number | undefined;
8206
+ strokeColor?: string | undefined;
8207
+ fillOpacity?: number | undefined;
8208
+ hoverColor?: string | undefined;
8209
+ content?: string | undefined;
8210
+ } | undefined;
8211
+ }, {
8212
+ parentId?: string | undefined;
8213
+ appearance?: {
8214
+ maxWidth?: number | undefined;
8215
+ color?: string | undefined;
8216
+ position?: [number, number, number] | undefined;
8217
+ visible?: boolean | undefined;
8218
+ flipToFaceCamera?: boolean | undefined;
8219
+ font?: string | undefined;
8220
+ fontSize?: number | undefined;
8221
+ margin?: number | [number, number, number, number] | undefined;
8222
+ outlineColor?: string | undefined;
8223
+ outlineOpacity?: number | undefined;
8224
+ outlineBlur?: string | number | undefined;
8225
+ outlineWidth?: number | undefined;
8226
+ outlineOffsetX?: number | undefined;
8227
+ outlineOffsetY?: number | undefined;
8228
+ strokeWidth?: number | undefined;
8229
+ maxHeight?: number | undefined;
8230
+ strokeOpacity?: number | undefined;
8231
+ strokeColor?: string | undefined;
8232
+ fillOpacity?: number | undefined;
8233
+ hoverColor?: string | undefined;
8234
+ content?: string | undefined;
8235
+ } | undefined;
8236
+ }>;
8237
+ export class Text3DComponent {
8238
+ mesh: Geometry3DObject3D;
8239
+ textMesh?: Text;
8240
+ readonly type = "text3d";
8241
+ feature: Feature<Point, Text3DProperties>;
8242
+ constructor(feature: Feature<Point, Text3DProperties>);
8243
+ get visible(): boolean;
8244
+ set visible(visible: boolean);
8245
+ parent?: GroupContainerObject3D;
8246
+ batchedText?: BatchedText;
8247
+ /**
8248
+ * if this Text3DComponent is a polygon label, populate this id with the polygon entity id
8249
+ * This id is used to prevent drawing text for the same polygon.
8250
+ */
8251
+ polygonEntityId?: string;
8252
+ }
8253
+ }
8254
+
8255
+ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
8256
+ import type { CollisionRankingTier, GeometryState, LabelState, RendererCore } from '@mappedin/react-sdk/geojson/src';
8257
+ import { type MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
8258
+ import type { PathUpdateState } from '@mappedin/react-sdk/geojson/src/components/path';
8259
+ import type { EntityTypes, All3DTypes, Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8260
+ import type { KeysOfUnion } from '@mappedin/react-sdk/geojson/src/utils';
8261
+ import { GeometryGroupObject3D, type GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
8262
+ import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8263
+ import type { Geometry3DTypes, TextGeometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8264
+ import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8265
+ import { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
8266
+ import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
8267
+ import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
8268
+ import { type Text3DState, type UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
8269
+ export function updateInteractivity(entity: All3DTypes | Geometry2D, update: boolean | undefined, state: RendererState): boolean;
8270
+ export function updateGroupColor(entity: GeometryGroupObject3D, state: RendererState, update: Partial<Pick<GeometryGroupState, 'color' | 'topColor'>>): boolean | undefined;
8271
+ export function updateGroupShading(entity: GeometryGroupObject3D, update?: GeometryGroupState['shading']): boolean;
8272
+ export function updateImageProps(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
8273
+ export function updateHeight(entity: Geometry3D | GeometryGroupObject3D, state: RendererState, update?: number): boolean;
8274
+ export function updateColor(entity: Geometry3DTypes | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
8275
+ export function updatePosition(entity: EntityTypes, update: Position | undefined, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): void;
8276
+ export function updateParent(entity: EntityTypes, update: GroupContainerObject3D | undefined): boolean;
8277
+ export function updateEnabled(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: boolean | undefined): void;
8278
+ export function updateMarker(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<MarkerState> | undefined, state: RendererState): boolean;
8279
+ export function updateRank(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: CollisionRankingTier | undefined): boolean;
8280
+ export function updateLabel(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<LabelState> | undefined, state: RendererState): void;
8281
+ export function updateHoverColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: string): void;
8282
+ /** Sets a geometry to be in hovered state, until manually unset or the user interacts with it. */
8283
+ export function updateHovered(entity: Geometry3D, update?: boolean): boolean;
8284
+ export function updateFlipImageToFaceCamera(entity: EntityTypes, update?: boolean): void;
8285
+ export function updateVisibility(entity: EntityTypes, update?: boolean): boolean;
8286
+ export function updateOpacity(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, state: RendererState, update?: number): boolean;
8287
+ export function updateGroupTexture(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Pick<GeometryGroupStyleComponent, 'texture' | 'topTexture'>): void;
8288
+ export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
8289
+ export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
8290
+ export function updateAltitude(entity: EntityTypes, update?: number): boolean;
8291
+ export function updateOutline(entity: All3DTypes, update?: boolean): boolean;
8292
+ export function updateFocusable(entity: Geometry3D, update?: boolean): boolean;
8293
+ export function updateIndividualGeometryRenderOrder(entity: Geometry3D, update?: number): boolean;
8294
+ export function handlePathUpdate(geometry: Geometry3DTypes, update: PathUpdateState): void;
8295
+ export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
8296
+ export function assetGeometryIsText3D(geometry: Geometry3DTypes): asserts geometry is TextGeometry3D;
8297
+ /**
8298
+ * @internal
8299
+ */
8300
+ export const TEXT3D_STYLE_UPDATE_PROPS: KeysOfUnion<UpdatableText3DState>[];
8301
+ /**
8302
+ * Handle state update of the text3d geometry.
8303
+ */
8304
+ export function handleText3DUpdate(geometry: TextGeometry3D, update: Partial<Text3DState>): void;
8305
+ }
8306
+
7646
8307
  declare module '@mappedin/react-sdk/packages/geojson-navigator' {
7647
8308
  export * from '@mappedin/react-sdk/packages/geojson-navigator/src';
7648
8309
  }
7649
8310
 
7650
8311
  declare module '@mappedin/react-sdk/geojson/src/utils' {
7651
- import type { Box3, Camera as THREECamera } from 'three';
8312
+ import type { Box3, Object3D, Camera as THREECamera } from 'three';
7652
8313
  import { Box2 } from 'three';
7653
8314
  import { MercatorCoordinate } from '@mappedin/react-sdk/packages/outdoor-context-v4';
7654
8315
  import type { CustomLayerInterface } from '@mappedin/react-sdk/packages/outdoor-context-v4';
7655
8316
  import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
7656
8317
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7657
8318
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
7658
- import type { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8319
+ import type { Geometry3DTypes } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
7659
8320
  import type { Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
7660
8321
  import type { Camera } from '@mappedin/react-sdk/geojson/src/camera';
7661
8322
  export function cartesianToGeographic(centerLat: number, centerLon: number, x: number, y: number): {
@@ -7666,7 +8327,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
7666
8327
  x: number;
7667
8328
  y: number;
7668
8329
  };
7669
- export const populateGeometry3DIdsInScene: (tree: any, entities: RendererState["geometry3DIdsInScene"]) => Set<string | number>;
8330
+ export const populateGeometry3DIdsInScene: (tree: GroupContainerObject3D["children"][0] | Object3D, entities: RendererState["geometry3DIdsInScene"]) => Set<string | number>;
7670
8331
  export const populateGeometry2DIdsInScene: (tree: any, entities: Set<Geometry2D["id"]>) => Set<string | number>;
7671
8332
  export function convertMapLibreStylePaintProps(paint: any): {
7672
8333
  color: any;
@@ -7722,7 +8383,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
7722
8383
  * so OR = CO * tan(F/2)
7723
8384
  */
7724
8385
  export function getProjectionScaleFactor(FOV: number, canvasHeight: number, zoom: number): number;
7725
- export function getGeometryByGeometryId(state: RendererState, geometryOrGeometryId?: string | number | Record<string, any>): Geometry3D | GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | undefined;
8386
+ export function getGeometryByGeometryId(state: RendererState, geometryOrGeometryId?: string | number | Record<string, any>): Geometry3DTypes | GeometryGroupObject3D | GroupContainerObject3D | Geometry2D | undefined;
7726
8387
  export function getBoundingBoxCenter(bbox: Position[]): [number, number];
7727
8388
  export { getCornersOfBoundingBox } from '@mappedin/react-sdk/geojson/src/utils/bounding-box';
7728
8389
  export function isFiniteBox(box: Box2 | Box3): boolean;
@@ -7731,6 +8392,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
7731
8392
  export { shouldDisableOffscreenCanvas } from '@mappedin/react-sdk/geojson/src/utils/browser';
7732
8393
  export { noop, pick, isEmpty, type KeysOfUnion } from '@mappedin/react-sdk/geojson/src/utils/fp';
7733
8394
  export { transformRequest } from '@mappedin/react-sdk/geojson/src/utils/tranform-request';
8395
+ export { normalizeAngle } from '@mappedin/react-sdk/geojson/src/utils/math';
7734
8396
  }
7735
8397
 
7736
8398
  declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
@@ -7741,56 +8403,26 @@ declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
7741
8403
  }
7742
8404
  }
7743
8405
 
7744
- declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
7745
- import type { Scene, Camera } from 'three';
7746
- import { Color, WebGL1Renderer, WebGLRenderer } from 'three';
7747
- export function enableTestMode(): void;
7748
- export type TRendererOptions = {
7749
- alpha: boolean;
7750
- onWebGLRendererError: (e: Error) => void;
7751
- xRayPath: boolean;
8406
+ declare module '@mappedin/react-sdk/geojson/src/utils/debug' {
8407
+ import type Core from '@mappedin/react-sdk/geojson/src/renderer';
8408
+ const DEFAULT_DEBUG_STATE: {
8409
+ showPolygonLabelTextAreaMesh: boolean;
7752
8410
  };
7753
- export class Renderer {
7754
- backgroundAlpha: number;
7755
- backgroundColor: Color;
7756
- width: number;
7757
- height: number;
7758
- options: TRendererOptions;
7759
- renderer?: WebGLRenderer | WebGL1Renderer;
7760
- constructor(renderOptions: any, targetWebGLVersion?: number);
7761
- /**
7762
- * Dispose of the renderer and its buffers.
7763
- */
7764
- destroy(): void;
7765
- /**
7766
- * Re-render the scene, depending on which parts of the scene have been
7767
- * invalidated.
7768
- *
7769
- * @method render
7770
- * @param renderTarget {null or WebGLRenderTarget}
7771
- * @param scene {Scene}
7772
- * @param sceneCamera {Camera}
7773
- */
7774
- render(scene: Scene, sceneCamera: Camera): void;
7775
- clear(): void;
7776
- /**
7777
- * Set the size of the renderer, composer, and all its internal buffers.
7778
- *
7779
- * @method setBufferSize
7780
- * @param width {number}
7781
- * @param height {number}
7782
- */
7783
- setBufferSize(width: number, height: number): void;
7784
- /**
7785
- * Set the color and opacity that will be drawn behind the scene.
7786
- *
7787
- * @method setBackgroundColor
7788
- * @param color {Color}
7789
- * @param alpha {number}
7790
- */
7791
- setBackgroundColor(color: any, alpha: any): void;
7792
- domElement(): HTMLCanvasElement | undefined;
8411
+ export type DebugState = typeof DEFAULT_DEBUG_STATE;
8412
+ export class Debug {
8413
+ state: {
8414
+ showPolygonLabelTextAreaMesh: boolean;
8415
+ };
8416
+ core: Core;
8417
+ constructor(core: Core);
8418
+ update(updateState: Partial<DebugState>): void;
7793
8419
  }
8420
+ export {};
8421
+ }
8422
+
8423
+ declare module '@mappedin/react-sdk/geojson/src/services/test-mode' {
8424
+ export function enableTestMode(): void;
8425
+ export function isTestMode(): boolean;
7794
8426
  }
7795
8427
 
7796
8428
  declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
@@ -7878,9 +8510,39 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
7878
8510
  }
7879
8511
  }
7880
8512
 
7881
- declare module '@mappedin/react-sdk/geojson/src/systems/exporter' {
7882
- export { ExporterSystem, type GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter/exporter';
7883
- }
8513
+ declare module '@mappedin/react-sdk/geojson/src/systems/text3d/system' {
8514
+ import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8515
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
8516
+ import { PubSub } from '@packages/internal/common';
8517
+ import type { BatchedText } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
8518
+ import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8519
+ import type { Text } from 'troika-three-text';
8520
+ export class Text3DSystem extends PubSub<{
8521
+ render: undefined;
8522
+ }> {
8523
+ textSet: Set<string>;
8524
+ batchedTextMap: Map<GroupContainerObject3D, Promise<BatchedText>>;
8525
+ remove(id: string): void;
8526
+ constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
8527
+ update(cameraRotationRadians: number): Promise<void[]>;
8528
+ showTextAreaMesh(): void;
8529
+ hideTextAreaMesh(): void;
8530
+ }
8531
+ /**
8532
+ * Preload fonts and optionally pre-generate the SDF textures for particular glyphs up front.
8533
+ * This is to avoid ondemand font generation can take long.
8534
+ * @param fontUrl - url of the font file served.
8535
+ * @returns A promise that resolves when the font is loaded
8536
+ *
8537
+ */
8538
+ export function preloadFont(fontUrl?: string): Promise<string>;
8539
+ export function doesBatchedTextContainsText(batchedText: BatchedText, text: Text): boolean;
8540
+ export const DEFAULT_VERTICAL_OFFSET = 0.5;
8541
+ }
8542
+
8543
+ declare module '@mappedin/react-sdk/geojson/src/systems/exporter' {
8544
+ export { ExporterSystem, type GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter/exporter';
8545
+ }
7884
8546
 
7885
8547
  declare module '@mappedin/react-sdk/geojson/src/systems/html-controls/system' {
7886
8548
  import type { Map } from '@mappedin/react-sdk/packages/outdoor-context-v4';
@@ -7917,15 +8579,21 @@ declare module '@mappedin/react-sdk/geojson/src/systems/html-controls/system' {
7917
8579
  }
7918
8580
  }
7919
8581
 
8582
+ declare module '@mappedin/react-sdk/geojson/src/components/styles' {
8583
+ export { StyleComponent, DEFAULT_COLOR, type MaterialSide } from '@mappedin/react-sdk/geojson/src/components/styles/style';
8584
+ export { Text3DStyleComponent, type Text3DStyle, DEFAULT_TEXT_STYLE } from '@mappedin/react-sdk/geojson/src/components/styles/text-style';
8585
+ }
8586
+
7920
8587
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7921
8588
  import type { Position, RendererCore, WatermarkOptions } from '@mappedin/core-sdk';
7922
8589
  import { type TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7923
8590
  import { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
7924
8591
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
7925
8592
  import type { FloorStack, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7926
- import { Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8593
+ import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7927
8594
  import type { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
7928
- import { Label, Marker, type Model, type Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8595
+ import { Label, Marker, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8596
+ import { Text3D as Text3DView, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
7929
8597
  import { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
7930
8598
  import type { TGetState, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
7931
8599
  import { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
@@ -7941,6 +8609,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7941
8609
  import { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
7942
8610
  import { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
7943
8611
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
8612
+ import { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
7944
8613
  export class GeoJsonApi {
7945
8614
  core: RendererCore;
7946
8615
  mapObjects: GeojsonApiMapObject[];
@@ -7954,6 +8623,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7954
8623
  mapView: MapView;
7955
8624
  Camera: Camera;
7956
8625
  Labels: Labels;
8626
+ Text3D: Text3D;
7957
8627
  Markers: Markers;
7958
8628
  Models: Models;
7959
8629
  Paths: Paths;
@@ -7967,7 +8637,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7967
8637
  get DynamicFocus(): import("./dynamic-focus").DynamicFocus;
7968
8638
  get StackedMaps(): import("..").StackedMaps;
7969
8639
  constructor(rendererCore: RendererCore, mapView: MapView);
7970
- updateState<T extends Space | MapObject | Label | Shape | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
8640
+ updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Door | Facade | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
7971
8641
  update: () => void;
7972
8642
  getMapDataInternal(): MapDataInternal | undefined;
7973
8643
  getMapData(): MapData | undefined;
@@ -7977,7 +8647,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7977
8647
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
7978
8648
  get currentFloorStack(): FloorStack;
7979
8649
  get currentFloor(): Floor;
7980
- getState<T extends Space | MapObject | Label | Marker | Shape | Model | Image | string>(target: T): TGetState<T> | undefined;
8650
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
7981
8651
  setHoverColor(c: string): void;
7982
8652
  getHoverColor(): string | undefined;
7983
8653
  createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
@@ -8000,16 +8670,17 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8000
8670
  import type { Position, AddLabelOptions, RendererCore, PathState, MarkerState, LineStyle, PaintStyle, EntityId } from '@mappedin/core-sdk';
8001
8671
  import { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
8002
8672
  import type { Coordinate, Directions, Floor, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
8003
- import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src/types';
8673
+ import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction, TAddText3DOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
8004
8674
  import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
8005
8675
  import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
8006
8676
  import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
8007
8677
  import type { Path, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8008
- import type { Space, Door, PointOfInterest, MapObject, Node, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8678
+ import type { Door, PointOfInterest, MapObject, Node, MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8009
8679
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
8010
8680
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
8011
8681
  import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
8012
8682
  export const FLOOR_HEIGHT = 5;
8683
+ import type { Text3DState } from '@mappedin/core-sdk/src/components/text3d';
8013
8684
  export class GeojsonApiMapObject extends PubSub<{
8014
8685
  'floor-change': {
8015
8686
  reason?: TFloorChangeReason;
@@ -8057,7 +8728,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8057
8728
  Images: {
8058
8729
  add: (target: Position, url: string, opts: TAddImageOptions & {
8059
8730
  floorId?: string;
8060
- }) => EntityId<import("../../../geojson/src/components/image").ImageState> | undefined;
8731
+ }) => EntityId<import("@mappedin/core-sdk/src/components/image").ImageState> | undefined;
8061
8732
  remove: (id: string) => void;
8062
8733
  removeAll: () => void;
8063
8734
  };
@@ -8078,6 +8749,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8078
8749
  }) => string;
8079
8750
  remove: (customGeometry: Shape) => string;
8080
8751
  };
8752
+ Text3D: {
8753
+ label: (target: Space, content?: string, options?: TAddText3DOptions) => Text3DInfo | undefined;
8754
+ labelAll: (option?: TAddText3DOptions) => Text3DInfo[];
8755
+ remove: (id: string) => string | undefined;
8756
+ };
8081
8757
  Labels: {
8082
8758
  all: ({ onCreate, }: {
8083
8759
  onCreate: (labelId: string | number, text: string, target: Space | Door | Coordinate | PointOfInterest | MapObject | Node) => void;
@@ -8099,6 +8775,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8099
8775
  };
8100
8776
  constructor(id: string, mapDataInternal: MapDataInternal | undefined, options: TShow3DMapOptions | undefined, api: GeoJsonApi);
8101
8777
  }
8778
+ export type Text3DInfo = {
8779
+ target: Space;
8780
+ textInfo: EntityId<Text3DState>;
8781
+ };
8102
8782
  }
8103
8783
 
8104
8784
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
@@ -8346,6 +9026,39 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape' {
8346
9026
  }
8347
9027
  }
8348
9028
 
9029
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d' {
9030
+ import type { Space, EnterpriseLocation } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9031
+ /**
9032
+ * Class representing an Text3D on the {@link MapView}.
9033
+ */
9034
+ export class Text3D {
9035
+ /**
9036
+ * The text3d's id
9037
+ */
9038
+ readonly id: string;
9039
+ /**
9040
+ * @internal
9041
+ */
9042
+ constructor(id: string, target: Space | EnterpriseLocation);
9043
+ /**
9044
+ * The text3d's target
9045
+ */
9046
+ readonly target: Space | EnterpriseLocation;
9047
+ /**
9048
+ * @internal
9049
+ */
9050
+ static readonly __type = "Text3D";
9051
+ readonly __type = "Text3D";
9052
+ /**
9053
+ * Checks if the provided instance is of type Text3D
9054
+ *
9055
+ * @param instance The instance to check.
9056
+ * @returns {boolean} True if the instance is a text3d, false otherwise.
9057
+ */
9058
+ static is(instance: object): instance is Text3D;
9059
+ }
9060
+ }
9061
+
8349
9062
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
8350
9063
  import type { TCameraAnimationOptions, TCameraFocusOnTarget, TCameraTarget, TFocusOnOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
8351
9064
  import type { InsetPadding, RendererCore } from '@mappedin/core-sdk';
@@ -8666,7 +9379,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers' {
8666
9379
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
8667
9380
  import type { TAddModelOptions, TAddModel } from '@mappedin/react-sdk/mappedin-js/src/types';
8668
9381
  import { Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8669
- import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
9382
+ import type { CurrentMapGetter } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/types';
8670
9383
  /**
8671
9384
  * Adding 3D models to a map can be a great way to represent landmarks to help users find key locations. They could also be used to show the location of assets or represent furniture to provide a rich indoor layout.
8672
9385
 
@@ -8685,7 +9398,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
8685
9398
  /**
8686
9399
  * @internal
8687
9400
  */
8688
- get currentMap(): GeojsonApiMapObject | undefined;
9401
+ get currentMap(): import("./map-object").GeojsonApiMapObject | undefined;
8689
9402
  /**
8690
9403
  * @internal
8691
9404
  */
@@ -8727,8 +9440,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
8727
9440
  */
8728
9441
  removeAll(): Model[];
8729
9442
  }
8730
- type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
8731
- export {};
8732
9443
  }
8733
9444
 
8734
9445
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths' {
@@ -9921,20 +10632,24 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
9921
10632
  import type { MeshComponent } from '@mappedin/react-sdk/geojson/src/components/mesh';
9922
10633
  import type { ModelComponent } from '@mappedin/react-sdk/geojson/src/components/model';
9923
10634
  import type { PathComponent } from '@mappedin/react-sdk/geojson/src/components/path';
9924
- import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/style';
10635
+ import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
9925
10636
  import type { ImageComponent } from '@mappedin/react-sdk/geojson/src/components/image';
9926
10637
  import type { CustomGeometryComponent } from '@mappedin/react-sdk/geojson/src/components/custom';
9927
10638
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
9928
10639
  import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10640
+ import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
10641
+ import type { Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
9929
10642
  export enum Geometry3DComponents {
9930
10643
  Mesh = 0,
9931
10644
  Style = 1,
9932
10645
  Interaction = 2
9933
10646
  }
10647
+ type Geometry3DObjectTypes = 'geometry' | 'path' | 'model' | 'custom-geometry' | 'image' | 'text3d';
9934
10648
  export class Geometry3DObject3D extends Object3D {
10649
+ type: Geometry3DObjectTypes;
9935
10650
  userData: {
9936
10651
  entityId: string;
9937
- type: 'geometry' | 'path' | 'model' | 'custom-geometry' | 'image';
10652
+ type: Geometry3DObjectTypes;
9938
10653
  };
9939
10654
  }
9940
10655
  export type PathMaterial = ShaderMaterial & {
@@ -9944,15 +10659,23 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
9944
10659
  export class PatMeshContainer extends Geometry3DObject3D {
9945
10660
  children: [PathMesh, PathMesh];
9946
10661
  }
9947
- export type MeshComponentTypes = MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | ImageComponent;
9948
- export class Geometry3D {
10662
+ export type MeshComponentTypes = MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | Text3DComponent | ImageComponent;
10663
+ type MappedComponentType<M> = M extends MeshComponent ? 'geometry' : M extends PathComponent ? 'path' : M extends ModelComponent ? 'model' : M extends CustomGeometryComponent ? 'custom-geometry' : M extends ImageComponent ? 'image' : M extends Text3DComponent ? 'text3d' : never;
10664
+ export class Geometry3D<M extends MeshComponentTypes = MeshComponent, S extends StyleComponent | Text3DStyleComponent = StyleComponent, I extends InteractionComponent = InteractionComponent, T extends MappedComponentType<M> = MappedComponentType<M>> {
9949
10665
  id: string | number;
9950
- components: [MeshComponentTypes, StyleComponent, InteractionComponent?];
9951
- get object3d(): Geometry3DObject3D | PatMeshContainer | import("../components/mesh").EntityBatchedMesh | undefined;
10666
+ components: [M, S, I?];
10667
+ get object3d(): M["mesh"];
9952
10668
  get parent(): GroupContainerObject3D | GeometryGroupObject3D | null;
9953
- get type(): 'geometry' | 'path' | 'model' | 'custom-geometry' | 'image';
9954
- constructor(meshComponent: MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | ImageComponent, styleComponent: StyleComponent);
9955
- }
10669
+ get type(): T;
10670
+ constructor(meshComponent: M, styleComponent: S);
10671
+ }
10672
+ export type TextGeometry3D = Geometry3D<Text3DComponent, Text3DStyleComponent, InteractionComponent, 'text3d'>;
10673
+ export type CustomGeometry3D = Geometry3D<CustomGeometryComponent, StyleComponent, InteractionComponent, 'custom-geometry'>;
10674
+ export type ModelGeometry3D = Geometry3D<ModelComponent, StyleComponent, InteractionComponent, 'model'>;
10675
+ export type PathGeometry3D = Geometry3D<PathComponent, StyleComponent, InteractionComponent, 'path'>;
10676
+ export type ImageGeometry3D = Geometry3D<ImageComponent, StyleComponent, InteractionComponent, 'image'>;
10677
+ export type MeshGeometry3D = Geometry3D<MeshComponent, StyleComponent, InteractionComponent, 'geometry'>;
10678
+ export type Geometry3DTypes = TextGeometry3D | CustomGeometry3D | PathGeometry3D | ImageGeometry3D | MeshGeometry3D | ModelGeometry3D;
9956
10679
  export interface PathUniforms {
9957
10680
  vertexes: {
9958
10681
  type: 'f';
@@ -10035,6 +10758,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
10035
10758
  value: number;
10036
10759
  };
10037
10760
  }
10761
+ export {};
10038
10762
  }
10039
10763
 
10040
10764
  declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
@@ -10048,6 +10772,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
10048
10772
  Interaction = 1
10049
10773
  }
10050
10774
  export class Geometry2DObject3D extends Object3D {
10775
+ readonly type: "geometry2dObject3d";
10051
10776
  }
10052
10777
  export class Geometry2D {
10053
10778
  id: string | number;
@@ -10076,17 +10801,44 @@ declare module '@mappedin/react-sdk/geojson/src/components/stack' {
10076
10801
 
10077
10802
  declare module '@mappedin/react-sdk/geojson/src/components/interaction' {
10078
10803
  export class InteractionComponent {
10079
- hover: boolean;
10804
+ hover: boolean | 'user-interaction';
10080
10805
  dirty: boolean;
10081
10806
  }
10082
10807
  }
10083
10808
 
10809
+ declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
10810
+ import { type Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
10811
+ import { Text, BatchedText } from 'troika-three-text';
10812
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
10813
+ import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
10814
+ export function createTroikaText(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
10815
+ text: Text;
10816
+ } | undefined>;
10817
+ export { BatchedText, Text };
10818
+ /**
10819
+ * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
10820
+ */
10821
+ export type ModuleType = {
10822
+ createTroikaText: typeof createTroikaText;
10823
+ preloadFont: typeof preloadFont;
10824
+ BatchedText: typeof BatchedText;
10825
+ };
10826
+ /**
10827
+ * Preloads a font from the given URL. Enable developer to preload font way before scene is ready
10828
+ *
10829
+ * @param fontUrl - The URL of the font to preload. When undefined, default font (Roboto) is loaded
10830
+ * @returns A promise that resolves when the font is successfully preloaded, or rejects with an error if the font cannot be loaded.
10831
+ */
10832
+ export function preloadFont(fontUrl?: string): Promise<string>;
10833
+ }
10834
+
10084
10835
  declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style' {
10085
10836
  import { type Shading } from '@mappedin/react-sdk/geojson/src/types';
10086
10837
  type GeometryGroupStyle = {
10087
10838
  color: string;
10088
10839
  topColor?: string;
10089
10840
  opacity: number;
10841
+ height?: number;
10090
10842
  shading?: Shading;
10091
10843
  outline: boolean;
10092
10844
  texture?: string;
@@ -10097,6 +10849,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style'
10097
10849
  color: string;
10098
10850
  topColor?: string;
10099
10851
  opacity: number;
10852
+ height?: number;
10100
10853
  outline: boolean;
10101
10854
  texture?: string;
10102
10855
  topTexture?: string;
@@ -10243,68 +10996,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/image' {
10243
10996
  }
10244
10997
  }
10245
10998
 
10246
- declare module '@mappedin/react-sdk/geojson/src/entities' {
10247
- export { updateInteractivity } from '@mappedin/react-sdk/geojson/src/entities/utils';
10248
- export { Geometry2D, Geometry2DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
10249
- export { Geometry3D, Geometry3DComponents, type PathMesh, type PatMeshContainer, type PathMaterial, } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
10250
- }
10251
-
10252
- declare module '@mappedin/react-sdk/geojson/src/components/style' {
10253
- import type { LineStyle } from '@mappedin/react-sdk/geojson/src/renderer';
10254
- export const DEFAULT_COLOR = "#ffffff";
10255
- export const DEFAULT_HEIGHT = 0.1;
10256
- /**
10257
- * Determines how a material is rendered, back face, front face or both (default)
10258
- */
10259
- export type MaterialSide = 'back' | 'front' | 'double';
10260
- type Style = {
10261
- color: string;
10262
- width: number;
10263
- opacity: number;
10264
- visible: boolean;
10265
- height: number;
10266
- altitude: number;
10267
- join: LineStyle['join'];
10268
- cap: LineStyle['cap'];
10269
- topColor?: string;
10270
- texture?: string;
10271
- topTexture?: string;
10272
- outline: boolean;
10273
- showImage: boolean;
10274
- showTextLabel: boolean;
10275
- flipImageToFaceCamera: boolean;
10276
- flipTextToFaceCamera: boolean;
10277
- url?: string;
10278
- side?: MaterialSide;
10279
- };
10280
- export class StyleComponent implements Style {
10281
- initialColor: string;
10282
- color: string;
10283
- topColor?: string;
10284
- topTexture?: string;
10285
- texture?: string;
10286
- hoverColor?: string;
10287
- dirty: boolean;
10288
- visible: boolean;
10289
- opacity: number;
10290
- width: number;
10291
- height: number;
10292
- initialHeight: number;
10293
- altitude: number;
10294
- join: LineStyle['join'];
10295
- cap: LineStyle['cap'];
10296
- outline: boolean;
10297
- showImage: boolean;
10298
- showTextLabel: boolean;
10299
- flipImageToFaceCamera: boolean;
10300
- flipTextToFaceCamera: boolean;
10301
- url?: string;
10302
- side: MaterialSide;
10303
- constructor(style?: Partial<Style>);
10304
- }
10305
- export {};
10306
- }
10307
-
10308
10999
  declare module '@mappedin/react-sdk/geojson/src/types/options' {
10309
11000
  import type { Position } from '@mappedin/react-sdk/geojson/src/types/geometry';
10310
11001
  import type { Map as MapLibreMap } from '@mappedin/react-sdk/packages/outdoor-context-v4';
@@ -10433,38 +11124,71 @@ declare module '@mappedin/react-sdk/packages/common/pubsub' {
10433
11124
  }
10434
11125
  }
10435
11126
 
10436
- declare module '@mappedin/react-sdk/geojson/src/systems/interactions' {
10437
- export { InteractionSystem } from '@mappedin/react-sdk/geojson/src/systems/interactions/system';
10438
- }
10439
-
10440
- declare module '@mappedin/react-sdk/geojson/src/systems/zoom-interpolation/zoom-interpolation' {
10441
- import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
10442
- import LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
10443
- import type { MarkerComponent } from '@mappedin/react-sdk/geojson/src/components/marker';
10444
- import { MeshComponent } from '@mappedin/react-sdk/geojson/src/components/mesh';
10445
- type SomeEvent = {
10446
- 'invalidate:2d': undefined;
11127
+ declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
11128
+ import type { Scene, Camera } from 'three';
11129
+ import { Color, WebGL1Renderer, WebGLRenderer } from 'three';
11130
+ export type TRendererOptions = {
11131
+ alpha: boolean;
11132
+ onWebGLRendererError: (e: Error) => void;
11133
+ xRayPath: boolean;
10447
11134
  };
10448
- export class ZoomInterpolationSystem extends PubSub<SomeEvent, keyof SomeEvent> {
10449
- constructor();
10450
- interpolators: Map<any, any>;
10451
- addEntity3D(meshComponent: MeshComponent, interpolateProps: any): void;
10452
- addEntity2D(uiComponent: MarkerComponent | LabelComponent, interpolateProps: any): void;
10453
- addAny(id: string, interpolateFn: any): void;
10454
- update: (zoomLevel: number) => void;
10455
- destroy(): void;
11135
+ export class Renderer {
11136
+ backgroundAlpha: number;
11137
+ backgroundColor: Color;
11138
+ width: number;
11139
+ height: number;
11140
+ options: TRendererOptions;
11141
+ renderer?: WebGLRenderer | WebGL1Renderer;
11142
+ constructor(renderOptions: any, targetWebGLVersion?: number);
11143
+ /**
11144
+ * Dispose of the renderer and its buffers.
11145
+ */
11146
+ destroy(): void;
11147
+ /**
11148
+ * Re-render the scene, depending on which parts of the scene have been
11149
+ * invalidated.
11150
+ *
11151
+ * @method render
11152
+ * @param renderTarget {null or WebGLRenderTarget}
11153
+ * @param scene {Scene}
11154
+ * @param sceneCamera {Camera}
11155
+ */
11156
+ render(scene: Scene, sceneCamera: Camera): void;
11157
+ clear(): void;
11158
+ /**
11159
+ * Set the size of the renderer, composer, and all its internal buffers.
11160
+ *
11161
+ * @method setBufferSize
11162
+ * @param width {number}
11163
+ * @param height {number}
11164
+ */
11165
+ setBufferSize(width: number, height: number): void;
11166
+ /**
11167
+ * Set the color and opacity that will be drawn behind the scene.
11168
+ *
11169
+ * @method setBackgroundColor
11170
+ * @param color {Color}
11171
+ * @param alpha {number}
11172
+ */
11173
+ setBackgroundColor(color: any, alpha: any): void;
11174
+ domElement(): HTMLCanvasElement | undefined;
10456
11175
  }
10457
- export {};
11176
+ }
11177
+
11178
+ declare module '@mappedin/react-sdk/geojson/src/systems/interactions' {
11179
+ export { InteractionSystem } from '@mappedin/react-sdk/geojson/src/systems/interactions/system';
10458
11180
  }
10459
11181
 
10460
11182
  declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/system' {
10461
11183
  import type { BufferGeometry } from 'three';
10462
11184
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10463
11185
  import { Geometry3D, Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
10464
- import { type MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
11186
+ import { MeshComponent, type MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
11187
+ import { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
10465
11188
  import type { Feature, LineString, MultiPolygon, Point, Polygon } from 'geojson';
10466
11189
  import type { LineStyle, ModelProperties, ModelStyle, PaintStyle } from '@mappedin/react-sdk/geojson/src/types';
10467
11190
  import type { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
11191
+ import type { ModelGeometry3D } from '@mappedin/react-sdk/geojson/src/entities';
10468
11192
  import { PubSub } from '@packages/internal/common';
10469
11193
  export class MeshCreationAndOptimizationSystem extends PubSub<{
10470
11194
  'model-loaded': void;
@@ -10474,8 +11198,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
10474
11198
  loader?: GLTFLoader;
10475
11199
  constructor(state: RendererState, convertTo3DMapPosition: any);
10476
11200
  getGLTFLoader(): Promise<void>;
10477
- createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D;
10478
- createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: ModelStyle): Geometry3D;
11201
+ createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D<MeshComponent, StyleComponent, import("../../components/interaction").InteractionComponent, "geometry">;
11202
+ createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: ModelStyle): ModelGeometry3D;
10479
11203
  populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry): void;
10480
11204
  populateModelGroup(entities: Set<string | number>, url: string, tree: any): Promise<Geometry3DObject3D>;
10481
11205
  populateEntityGroup(entities: Set<string | number>): Set<string | number>;
@@ -10559,9 +11283,9 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-draw/system' {
10559
11283
  declare module '@mappedin/react-sdk/geojson/src/systems/draw/system' {
10560
11284
  import { PubSub } from '@packages/internal/common';
10561
11285
  import { MeshComponent } from '@mappedin/react-sdk/geojson/src/components/mesh';
10562
- import { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/style';
11286
+ import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
10563
11287
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10564
- import { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
11288
+ import type { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
10565
11289
  import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
10566
11290
  export class DrawSystem extends PubSub<{
10567
11291
  'texture-loaded': void;
@@ -10608,7 +11332,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/render/system' {
10608
11332
  constructor(renderer: Renderer, state: RendererState, mode: RendererCore['mode'], scene: Scene, cameraObject: PerspectiveCamera, viewCamera: Camera, systems: Systems);
10609
11333
  twoDdirty: boolean;
10610
11334
  threeDdirty: boolean;
10611
- update: (sync?: boolean) => void;
11335
+ update: (sync?: boolean) => Promise<any>;
10612
11336
  destroy(): void;
10613
11337
  }
10614
11338
  }
@@ -10924,7 +11648,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/path' {
10924
11648
  }
10925
11649
 
10926
11650
  declare module '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system' {
10927
- import { type Geometry3DTypes, type RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
11651
+ import { type All3DTypes, type RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10928
11652
  /**
10929
11653
  * This system is responsible for updating the opacity of the mesh, which results in the mesh
10930
11654
  * being detached from the parent's optimized geometry group and rendered as a separate mesh.
@@ -10934,16 +11658,13 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system'
10934
11658
  rendererState: RendererState;
10935
11659
  dirty: boolean;
10936
11660
  constructor(rendererState: RendererState);
10937
- updateOne(geometry: Geometry3DTypes | undefined): void;
11661
+ updateOne(geometry: All3DTypes | undefined): void;
10938
11662
  update(): void;
10939
11663
  }
10940
11664
  }
10941
11665
 
10942
11666
  declare module '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system' {
10943
- import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities';
10944
- import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10945
- import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
10946
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
11667
+ import type { EntityTypes, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10947
11668
  /**
10948
11669
  * Any physical changes to geometry should go in here. This includes height changes, etc.
10949
11670
  * This is to ensure that physical changes apply before any other systems need to do their work,
@@ -10956,7 +11677,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system
10956
11677
  rendererState: RendererState;
10957
11678
  dirty: boolean;
10958
11679
  constructor(rendererState: RendererState);
10959
- updateOne(entity: Geometry3D | GeometryGroupObject3D | GroupContainerObject3D | undefined): void;
11680
+ updateOne(entity?: EntityTypes): void;
10960
11681
  update(): void;
10961
11682
  cleanup(): void;
10962
11683
  }
@@ -10975,14 +11696,58 @@ declare module '@mappedin/react-sdk/geojson/src/systems/pre-render/system' {
10975
11696
  }
10976
11697
  }
10977
11698
 
10978
- declare module '@mappedin/react-sdk/geojson/src/systems/polygon-label/system' {
10979
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10980
- import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
10981
- export const DEFAULT_VERTICAL_OFFSET = 0.01;
10982
- export class PolygonLabelSystem {
10983
- constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
10984
- update(cameraRotationRadians: number): void;
11699
+ declare module '@mappedin/react-sdk/geojson/src/components/styles/style' {
11700
+ import type { LineStyle } from '@mappedin/react-sdk/geojson/src/renderer';
11701
+ export const DEFAULT_COLOR = "#ffffff";
11702
+ export const DEFAULT_HEIGHT = 0.1;
11703
+ /**
11704
+ * Determines how a material is rendered, back face, front face or both (default)
11705
+ */
11706
+ export type MaterialSide = 'back' | 'front' | 'double';
11707
+ type Style = {
11708
+ color: string;
11709
+ width: number;
11710
+ opacity: number;
11711
+ visible: boolean;
11712
+ height: number;
11713
+ altitude: number;
11714
+ join: LineStyle['join'];
11715
+ cap: LineStyle['cap'];
11716
+ topColor?: string;
11717
+ texture?: string;
11718
+ topTexture?: string;
11719
+ outline: boolean;
11720
+ showImage: boolean;
11721
+ flipImageToFaceCamera: boolean;
11722
+ url?: string;
11723
+ side?: MaterialSide;
11724
+ renderOrder?: number;
11725
+ };
11726
+ export class StyleComponent implements Style {
11727
+ initialColor: string;
11728
+ color: string;
11729
+ topColor?: string;
11730
+ topTexture?: string;
11731
+ texture?: string;
11732
+ hoverColor?: string;
11733
+ dirty: boolean;
11734
+ visible: boolean;
11735
+ opacity: number;
11736
+ width: number;
11737
+ height: number;
11738
+ initialHeight: number;
11739
+ altitude: number;
11740
+ join: LineStyle['join'];
11741
+ cap: LineStyle['cap'];
11742
+ outline: boolean;
11743
+ showImage: boolean;
11744
+ flipImageToFaceCamera: boolean;
11745
+ url?: string;
11746
+ side: MaterialSide;
11747
+ renderOrder: number;
11748
+ constructor(style?: Partial<Style>);
10985
11749
  }
11750
+ export {};
10986
11751
  }
10987
11752
 
10988
11753
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src' {
@@ -11077,6 +11842,17 @@ declare module '@mappedin/react-sdk/geojson/src/utils/tranform-request' {
11077
11842
  };
11078
11843
  }
11079
11844
 
11845
+ declare module '@mappedin/react-sdk/geojson/src/utils/math' {
11846
+ export function normalizeAngle(angle: number): number;
11847
+ }
11848
+
11849
+ declare module '@mappedin/react-sdk/geojson/src/entities' {
11850
+ export { updateInteractivity } from '@mappedin/react-sdk/geojson/src/entities/utils';
11851
+ export { Geometry2D, Geometry2DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
11852
+ export { Geometry3D, Geometry3DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
11853
+ export type { PathMesh, PatMeshContainer, PathMaterial, Geometry3DTypes, ImageGeometry3D, TextGeometry3D, ModelGeometry3D, CustomGeometry3D, MeshGeometry3D, } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
11854
+ }
11855
+
11080
11856
  declare module '@mappedin/react-sdk/geojson/src/systems/exporter/exporter' {
11081
11857
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
11082
11858
  export type GLTFExportOptions = {
@@ -11107,6 +11883,155 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter/exporter' {
11107
11883
  }
11108
11884
  }
11109
11885
 
11886
+ declare module '@mappedin/react-sdk/geojson/src/components/styles/text-style' {
11887
+ /**
11888
+ * avoid storying default values on the text style to save space
11889
+ */
11890
+ export class Text3DStyleComponent implements Partial<Text3DStyle> {
11891
+ visible?: boolean;
11892
+ altitude?: number;
11893
+ color?: string;
11894
+ dirty: boolean;
11895
+ maxWidth?: number;
11896
+ maxHeight?: number;
11897
+ hoverByPolygon?: boolean;
11898
+ flipToFaceCamera?: boolean | undefined;
11899
+ font?: string;
11900
+ fillOpacity?: number;
11901
+ fontSize?: number;
11902
+ margin?: number;
11903
+ outlineWidth?: number;
11904
+ outlineBlur?: number | string;
11905
+ outlineOffsetX?: number;
11906
+ strokeColor?: string;
11907
+ strokeOpacity?: number;
11908
+ strokeWidth?: number;
11909
+ hoverColor?: string | undefined;
11910
+ outlineOffsetY?: number;
11911
+ outlineColor?: string;
11912
+ outlineOpacity?: number;
11913
+ constructor(initialState?: Partial<Text3DStyle>);
11914
+ /**
11915
+ * Put together a json ignore all the undefined fields.
11916
+ * This is helpful when we Object.assign(instance, json) to update the instance.
11917
+ */
11918
+ getState(includeDirty?: boolean): Partial<Text3DStyle>;
11919
+ }
11920
+ /**
11921
+ * Not directly storing default values on the text style to save space
11922
+ * TODO: lookign at text style spec from maplibre. we can also support:
11923
+ * letterSpacing?: number;
11924
+ * lineHeight: number;
11925
+ * anchor: number; => .anchorX & .anchorY
11926
+ * justify: nubmer; => .textAlign
11927
+ * tarnsform: string;
11928
+ * offset: number;
11929
+ */
11930
+ export const DEFAULT_TEXT_STYLE: Readonly<Text3DStyle>;
11931
+ export type Text3DStyle = {
11932
+ /**
11933
+ * Controls the visibility of the text element.
11934
+ * @default true
11935
+ */
11936
+ visible: boolean;
11937
+ /**
11938
+ * The color of the text. Will change to hoverColor when the associated polygon is hovered.
11939
+ * Accepts any CSS color string.
11940
+ * @default 'black'
11941
+ */
11942
+ color: string;
11943
+ /**
11944
+ * When true, the text will flip to face the camera while maintaining its position.
11945
+ * @default true
11946
+ */
11947
+ flipToFaceCamera: boolean;
11948
+ /**
11949
+ * URL to a custom font file (.ttf, .otf, .woff).
11950
+ * Falls back to Roboto if undefined.
11951
+ */
11952
+ font: string | undefined;
11953
+ /**
11954
+ * The size of the text in meters. Will be automatically adjusted if it exceeds
11955
+ * the text area bounds.
11956
+ */
11957
+ fontSize: number;
11958
+ /**
11959
+ * Padding between the text and its bounding box, in meters.
11960
+ * Can be specified as either:
11961
+ * - A single number for uniform padding on all sides
11962
+ * - An array of 4 numbers [top, right, bottom, left] for individual side padding
11963
+ * @default [0.2, 1, 0.2, 1.5]
11964
+ */
11965
+ margin: number | [number, number, number, number];
11966
+ /**
11967
+ * Color of the text outline.
11968
+ * Accepts any CSS color string.
11969
+ * @default 'black'
11970
+ */
11971
+ outlineColor: string;
11972
+ /**
11973
+ * Opacity of the text outline.
11974
+ * Accepts values between 0 and 1.
11975
+ * @default 1
11976
+ */
11977
+ outlineOpacity: number;
11978
+ /**
11979
+ * Blur radius for the text outline.
11980
+ * Can be a number in pixels or a string with units.
11981
+ */
11982
+ outlineBlur: number | string;
11983
+ /**
11984
+ * Width of the text outline effect in pixels.
11985
+ */
11986
+ outlineWidth: number;
11987
+ /**
11988
+ * Horizontal offset of the outline effect from the text, in pixels.
11989
+ */
11990
+ outlineOffsetX: number;
11991
+ /**
11992
+ * Vertical offset of the outline effect from the text, in pixels.
11993
+ */
11994
+ outlineOffsetY: number;
11995
+ /**
11996
+ * Width of the inner stroke of each text glyph.
11997
+ * @default 0
11998
+ */
11999
+ strokeWidth: number;
12000
+ /**
12001
+ * Maximum width constraint for the text area in meters.
12002
+ * Overrides default text field constraints when set.
12003
+ */
12004
+ maxWidth: number | undefined;
12005
+ /**
12006
+ * Maximum height constraint for the text area in meters.
12007
+ * Overrides default text field constraints when set.
12008
+ */
12009
+ maxHeight: number | undefined;
12010
+ /**
12011
+ * Opacity of the text stroke when strokeWidth > 0.
12012
+ * @default 1
12013
+ */
12014
+ strokeOpacity: number;
12015
+ /**
12016
+ * Color of the text stroke when strokeWidth > 0.
12017
+ * Accepts any CSS color string.
12018
+ * @default 'black'
12019
+ */
12020
+ strokeColor: string;
12021
+ /**
12022
+ * Opacity of the text fill, independent of stroke and outline opacity.
12023
+ * Set to 0 to show only stroke/outline.
12024
+ * Accepts values between 0 and 1.
12025
+ */
12026
+ fillOpacity: number;
12027
+ /**
12028
+ * Color to display when text is hovered.
12029
+ * Falls back to global hover color if undefined.
12030
+ */
12031
+ hoverColor: string | undefined;
12032
+ };
12033
+ }
12034
+
11110
12035
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
11111
12036
  import type { Polygon, MultiPolygon, FloorProperties as MVFFloor, ParsedMVF, Feature } from '@mappedin/mvf';
11112
12037
  import type { RendererCore } from '@mappedin/core-sdk';
@@ -11145,7 +12070,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
11145
12070
  import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle } from '@mappedin/core-sdk';
11146
12071
  import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/react-sdk/mappedin-js/src';
11147
12072
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/react-sdk/mappedin-js/src/types';
11148
- import type { Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
12073
+ import type { Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
11149
12074
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
11150
12075
  import type { Tween } from '@tweenjs/tween.js';
11151
12076
  export function convertCoordinateToPosition(coord: Coordinate): Position;
@@ -11174,7 +12099,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
11174
12099
  };
11175
12100
  export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Point | LineString | Polygon, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
11176
12101
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
11177
- export const getTargetID: <T extends Space | Shape | MapObject | Label | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
12102
+ export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
11178
12103
  export function tweenToPromise(tween: Tween): Promise<void>;
11179
12104
  export function unique<T>(array: T[]): T[];
11180
12105
  }
@@ -11238,42 +12163,6 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-proc
11238
12163
  };
11239
12164
  }
11240
12165
 
11241
- declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
11242
- import type { CollisionRankingTier, GeometryState, LabelState, RendererCore } from '@mappedin/react-sdk/geojson/src';
11243
- import { type MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
11244
- import type { PathUpdateState } from '@mappedin/react-sdk/geojson/src/components/path';
11245
- import type { Geometry3DTypes, Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
11246
- import { GeometryGroupObject3D, type GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
11247
- import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
11248
- import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
11249
- import { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
11250
- import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/style';
11251
- import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
11252
- export function updateInteractivity(entity: Geometry3DTypes | Geometry2D, update: boolean | undefined, state: RendererState): boolean;
11253
- export function updateGroupColor(entity: GeometryGroupObject3D, state: RendererState, update: Partial<Pick<GeometryGroupState, 'color' | 'topColor'>>): boolean | undefined;
11254
- export function updateGroupShading(entity: GeometryGroupObject3D, update?: GeometryGroupState['shading']): boolean;
11255
- export function updateImageProps(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
11256
- export function updateHeight(entity: Geometry3D | GeometryGroupObject3D, state: RendererState, update?: number): boolean;
11257
- export function updateColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
11258
- export function updatePosition(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Position | undefined, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): void;
11259
- export function updateParent(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: GroupContainerObject3D | undefined): boolean;
11260
- export function updateEnabled(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: boolean | undefined): void;
11261
- export function updateMarker(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<MarkerState> | undefined, state: RendererState): boolean;
11262
- export function updateRank(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: CollisionRankingTier | undefined): boolean;
11263
- export function updateLabel(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<LabelState> | undefined, state: RendererState): void;
11264
- export function updateHoverColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: string): void;
11265
- export function updateFlipImageToFaceCamera(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): void;
11266
- export function updateVisibility(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): boolean;
11267
- export function updateOpacity(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, state: RendererState, update?: number): boolean;
11268
- export function updateGroupTexture(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Pick<GeometryGroupStyleComponent, 'texture' | 'topTexture'>): void;
11269
- export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
11270
- export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
11271
- export function updateAltitude(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: number): boolean;
11272
- export function updateOutline(entity: Geometry3DTypes, update?: boolean): boolean;
11273
- export function handlePathUpdate(geometry: Geometry3D, update: PathUpdateState): void;
11274
- export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
11275
- }
11276
-
11277
12166
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
11278
12167
  import type { PerspectiveCamera, Vector3, Object3D, Mesh } from 'three';
11279
12168
  import { Raycaster } from 'three';