Skip to main content

CoordinateTracker <Tracked3D>

CoordinateTracker contains methods for tracking a screen space coordinate from a 3D position.

Index

Constructors

constructor

  • Constructor


    Type parameters

    Parameters

    • bimApi: BimCoreApi

      BIM Core API.

    • recalculate2DEachFrame: boolean = false

      If true then it updates the 2D positions for each tracked 3D coordinate at the end of each frame.

    Returns CoordinateTracker<Tracked3D>

Properties

publicreadonlyonUpdateObservable

onUpdateObservable: Observable<TrackCoordinate2D<Tracked3D>> = ...

Called when a tracked 3D coordinate changes its 2D position (when camera is manipulated). Same as onUpdate but using a Observable instead.

Accessors

publicsize

  • get size(): number
  • Number of items currently being tracked.


    Returns number

Methods

publicclear

  • clear(): void
  • Removes all tracked coordinates from the tracker.


    Returns void

publicdispose

  • dispose(): void
  • Disposes the coordinate tracker.


    Returns void

publicentries

  • entries(): IterableIterator<[unknown, Tracked3D]>
  • Allows iteration of all entities that are tracked (and their ids)


    Returns IterableIterator<[unknown, Tracked3D]>

    collection of all tracked entities and their id.

publicforceRecalculation

  • forceRecalculation(): void
  • Immediately force a recalculation of all 2D coordinates


    Returns void

publicget

  • Attempt to get a currently tracked object by id.


    Parameters

    • id: unknown

      Id of tracked object.

    Returns undefined | TrackCoordinate2D<Tracked3D>

    Tracked object if it exists. Otherwise undefined

publiconUpdate

  • Register a callback which will be called when the active camera moves. It is called once for each coordinate registered by track.


    Parameters

    • callback: (coordinate: TrackCoordinate2D<Tracked3D>) => void

      Callback to trigger when an active camera moves.

    Returns void

publictrack

  • track(coordinate: Tracked3D, id?: unknown): unknown
  • This method takes a coordinate in 3D to track screen space position when the camera moves. When method is called notifyObservers and _callback are immediately raised for the passed coordinate. Same coordinate can be passed multiple times (with same id) but it will only be added once. However notifyObservers and _callback will still be immediately raised and report 2D coordinates data even if coordinate is already tracked.


    Parameters

    • coordinate: Tracked3D

      Coordinate to track.

    • optionalid: unknown

      Optional. If not specified an id will be generated

    Returns unknown

    id of tracked coordinate.

publictrackOnce

  • trackOnce(coordinate: Tracked3D, id: unknown): undefined | TrackCoordinate2D<Tracked3D>
  • Gets 2D coordinate of a 3D coordinate once.


    Parameters

    • coordinate: Tracked3D

      3D coordinate to get 2D coordinate from

    • id: unknown

      Identifier for 3D coordinate.

    Returns undefined | TrackCoordinate2D<Tracked3D>

publicuntrack

  • untrack(id: unknown): undefined | Tracked3D
  • Stops tracking of a 3D coordinate.


    Parameters

    • id: unknown

      Id of 3D coordinate to stop tracking

    Returns undefined | Tracked3D

    Object that was untracked. If there is no such object then undefined.