Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface AbstractViewInterface

Base interface for 3D views.

The view provides a layer mechanism to plug in modules that add 3D objects to the view. Layers can define events that are called on various occasions, e.g., when the user changes the current location or moves the mouse. Layers are responsible for managing the Three.JS objects below their scene node. To simplify user input handling, meshes added to the scene can define handlers for events like clicks, mouse over, mouse out, dragging, etc.

This interface provides a mechanism to render-on-demand, i.e., only when scene contents changed. Whenever the scene or objects are modified (e.g. by a layer), a call to invalidateScene causes the scene to be rendered. invalidateScene can be called repeatedly, however rendering will only occur at a fixed rate.

For tweening, the view provides the methods watchTween and forgetTween. As long as tweens are watched by the view, the rendering loop will stay active. To use this mechanism, call watchTween when you start it and forgetTween when it completes.

Hierarchy

Index

Properties

active

active: boolean

Whether this view will be rendered, invalidates scene when true.

scene

scene: Scene

Object that contains items that will be rendered in the view. For more information ThreeJS.Scene

Methods

addToScene

  • Adds a scene layer to the 3D view. Note: see the example on how to add a custom data layer in the 'Developer Guide' section.

    Parameters

    Returns void

centerOn

  • centerOn(position: Vector3, frustumDepth?: number): void
  • Center all viewports on the specified location

    Parameters

    • position: Vector3

      Position to center view on

    • Optional frustumDepth: number

      Adjust the frustum size of orthographic cameras so that far - near = frustumDepth

    Returns void

closeContextMenu

  • closeContextMenu(): void
  • Close context menu

    Returns void

createSceneGroup

  • createSceneGroup(): Object3D<Event>
  • Creates a new scene group object

    Returns Object3D<Event>

createWatchedTween

  • createWatchedTween<T>(object: T, group?: false | Group): Tween<T>
  • Create a tween that is added to the watch list when started and removed from the watch list when it completes or when it is stopped.

    As long as at least one tween is watched, the view will render at a fixed frame rate.

    Type parameters

    • T

    Parameters

    • object: T

      The object to tween. This is passed on to the Tween constructor.

    • Optional group: false | Group

      The tween group. This is passed on to the Tween constructor.

    Returns Tween<T>

    The tween with onStart(), onStop() and onComplete() callbacks installed.

forgetTween

  • forgetTween(tween: Tween<unknown>): void
  • Remove a tween from the watch list. Call this from tween's

    onComplete()
    and

    onStop()
    methods.

    Parameters

    • tween: Tween<unknown>

      Tween to remove

    Returns void

getCamera

  • getCamera(): Camera
  • note

    If there are multiple viewports, this shall return the camera for the default one

    Returns Camera

    The camera used to render the view

getDefaultViewport

getLastMousePosition

getObjectsUnderCursor

  • Find 3D objects under the mouse cursor.

    note

    This method is viewport-aware and takes care of the extra transformation.

    Parameters

    Returns Intersection<Object3D<Event>>[]

    Intersections with mouse cursor

getPositionOnGroundPlane

  • getPositionOnGroundPlane(x: number, y: number, z: number, viewport?: ViewportInterface): Vector3
  • Get 3D position of specified screen coordinates assuming a ground plane at given height

    note

    This method is viewport-aware and takes care of the extra transformation.

    note

    Unprojects the screen coordinates and intersects the ray with a plane with normal (0,0,1) at specified height in order to get the 3D point coordinates on the plane.

    note

    If z is undefined, the plane is assumed to be 1 unit away from the camera position in the direction the camera is facing.

    Parameters

    • x: number

      Screen X coordinate

    • y: number

      Screen Y coordinate

    • z: number

      Z coordinate of ground plane. Can be undefined.

    • Optional viewport: ViewportInterface

      Viewport to use (optional)

    Returns Vector3

    3D position of mouse or gesture event on the plane (or null)

getScreenshot

  • Takes a screenshot of the view.

    Parameters

    • Optional mimeType: string

      MIME type of the returned data, defaults to image/jpeg.

    • Optional quality: number

      Image quality that will be passed on to the HTMLCanvasElement.toDataURL method.

    Returns ScreenshotDataInterface

    Data of the screenshot, including info about its dimensions.

invalidateScene

  • invalidateScene(callback?: () => void): void
  • Invalidates the scene so that it is rendered. Call this method whenever things happen that modify the appearance of the scene (e.g. a texture download finishes).

    Parameters

    • Optional callback: () => void

      callback to be run after scene has been rendered

        • (): void
        • Returns void

    Returns void

unprojectEvent

  • unprojectEvent(event: MouseEvent, z?: number): Vector3
  • Unproject screen-space coordinates given as input event.

    note

    This method is viewport-aware and takes care of the extra transformation.

    Parameters

    • event: MouseEvent

      Hammer.JS event data

    • Optional z: number

      Z coordinate in screen-space (defaults to 1 if not provided)

    Returns Vector3

    Unprojected coordinates (local coordinates)

unprojectScreenCoordinates

  • unprojectScreenCoordinates(x: number, y: number, z?: number, viewport?: ViewportInterface): Vector3
  • Unproject screen-space coordinates (relative to the viewport, i.e. (0,0) is the upper left corner of the rendering DIV).

    Parameters

    • x: number

      X coordinate in screen-space

    • y: number

      Y coordinate in screen-space

    • Optional z: number

      Z coordinate in screen-space (defaults to 1 if not provided)

    • Optional viewport: ViewportInterface

      The viewport to use for unprojection

    Returns Vector3

    Unprojected coordinates (local coordinates)

watchTween

  • watchTween(tween: Tween<unknown>): void
  • Add a tween to the watch list. Call this when you start a tween. As long as at least one tween is watched, the view will render at a fixed frame rate.

    Parameters

    • tween: Tween<unknown>

      Tween to watch

    Returns void

Generated using TypeDoc