Last updated

API / geotoolkit3d / scene / plane / Plane / Plane

Class: Plane

plane.Plane.Plane

Plane is a 3D "quad" rectangle which can be used to draw and display 2D toolkit shapes.
The rendering options of the shapes are fully customizable (background fillstyle, size, scale).

The Plane shape/geometry can be defined by various ways:

  • by defining 3 points of the rectangle.
  • by passing down a THREE.js PlaneGeometry.
  • by defining the rectangle width/height then rotating/translating the object.

Additionally, a Texture can be used as a background to the plane render.
The main advantage is that this texture resolution can be different from the overlay resolution, to avoid stretching and full control over the quality and scale.

Hierarchy

Implements

Table of contents

Constructors
Methods

Contents

Constructors

new Plane(options)

new Plane(options?)

Parameters

Name Type
Optional optionsOptions

Overrides

AbstractPanel.constructor

Methods

add

add(object): Plane

Adds object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap> | Object3D<Object3DEventMap>[]object

Returns

Plane

this

Inherited from

AbstractPanel.add


afterRender

afterRender(scene, camera, plot, renderer): Plane

This function is called after rendering and can update this object's content.

It should not trigger any invalidateObject though.
Note that it is not necessary nor recommended to explicitly call afterRender on this object's children as beforeRender will be called on all nodes present in the scene.

This will be executed after the transformations simplification.

See

Plot for more details on the render steps

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera used for this render phase.
plotPlotThe 3D plot
rendererWebGLRendererThe renderer

Returns

Plane

Inherited from

AbstractPanel.afterRender


beforeRender

beforeRender(scene, camera, plot, renderer): Plane

This function is called prior to rendering and can update this object's content.

It should not trigger any invalidateObject though.
Note that it is not necessary nor recommended to explicitly call beforeRender on this object's children as beforeRender will be called on all nodes present in the scene.

This will be executed after the transformations simplification.

See

Plot for more details on the render steps

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera used for this render phase.
plotPlotThe 3D plot
rendererWebGLRendererThe renderer

Returns

Plane

Inherited from

AbstractPanel.beforeRender


dispose

dispose(): void

Dispose object

Returns

void

Inherited from

AbstractPanel.dispose


getBoundingBox

getBoundingBox(): Box3

Returns the bounding box in the plane local coordinates.
This bounding box differs from the one obtained via getMeshBoundingBox.
It is defined in the Plane's local space, whereas the other is computed directly from the mesh geometry in the mesh's local space.

Returns

Box3

bbox


getClassName

getClassName(): string

Returns

string

Implementation of

IOverlayableObject.getClassName

Inherited from

AbstractPanel.getClassName


getCorner

getCorner(index, target?): Vector3

Return the world position of a specific corner of this plane quad.
If this plane (or a parent object) has been moved/rotated since the last render, please call Plane.updateWorldMatrix(true, true) first for correct results.

Example

The indices represent the 4 corners of the quad like so:
0---1
|   |
2---3

Parameters

Name Type Description
indexnumberIndex of the plane quad, from 0 to 3.
Optional targetVector3Optional point Vector3, will be updated and returned if provided.

Returns

Vector3

Implementation of

IOverlayableObject.getCorner

Overrides

AbstractPanel.getCorner


getHighlightedObjects

getHighlightedObjects(): Plane | Plane[]

Get selected plane or planes that will generate a highlight

Returns

Plane | Plane[]

Implementation of

ICustomHighlight.getHighlightedObjects


getImageTexture

getImageTexture(): Texture

Returns the texture of the plane base image, if any.

Returns

Texture

texture


getImageTextureDimension

getImageTextureDimension(vec2?): Vector2

Returns the dimension of the plane base image texture, if any.

Parameters

Name Type Description
Optional vec2Vector2(optional) the Vector2 to hold the dimension, to avoid creating new object.

Returns

Vector2

dimension in Vector2


getLocalCorner

getLocalCorner(index, target?): Vector3

Return the local position of a specific corner of this plane quad. This method is mainly used for intersection purposes.
For coordinates calculation accuracy purpose, local plane coordinates might not match the provided coordinates at construction time.
For this reason, it is recommended to users to instead use getCorner, which apply all parent's matrix transformations.

Example

The indices represent the 4 corners of the quad like so:
0---1
|   |
2---3

Parameters

Name Type Description
indexnumberIndex of the plane quad, from 0 to 3.
Optional targetVector3Optional point Vector3, will be updated and returned if provided.

Returns

Vector3

Implementation of

IOverlayableObject.getLocalCorner

Overrides

AbstractPanel.getLocalCorner


getMesh

getMesh(): Mesh<BufferGeometry<NormalBufferAttributes>, Material | Material[], Object3DEventMap>

Return the plane mesh.

Returns

Mesh<BufferGeometry<NormalBufferAttributes>, Material | Material[], Object3DEventMap>

Implementation of

IOverlayableObject.getMesh

Overrides

AbstractPanel.getMesh


getOptions

getOptions(): Required<Options>

Get options

Returns

Required<Options>

options object

Inherited from

AbstractPanel.getOptions


getOverlay

getOverlay(): Group<Node>

Returns the overlay of this plane, if any.

Returns

Group<Node>

Implementation of

IOverlayableObject.getOverlay

Overrides

AbstractPanel.getOverlay


getOverlayTexture

getOverlayTexture(): CanvasTexture

Returns the texture of the plane overlay, if any.

Returns

CanvasTexture

texture


getOverlayTextureBounds

getOverlayTextureBounds(): Rect

Returns the overlay texture boundaries of this plane, in pixels.

Returns

Rect

Implementation of

IOverlayableObject.getOverlayTextureBounds

Overrides

AbstractPanel.getOverlayTextureBounds


getOverlayTextureDimension

getOverlayTextureDimension(vec2?): Vector2

Returns the dimension of the plane overlay texture, if any.

Parameters

Name Type Description
Optional vec2Vector2(optional) the Vector2 to hold the dimension, to avoid creating new object.

Returns

Vector2

dimension in Vector2


getVisible

getVisible(): boolean

Get visible

Returns

boolean

true, if object is visible

Inherited from

AbstractPanel.getVisible


invalidateObject

invalidateObject<T>(event?): Plane

Notifies this object and its parent that this object has been invalidated.
If this object is in a Plot, it will be marked as dirty and will trigger a rendering cycle.

Type parameters

Name
T

Parameters

Name Type Description
Optional eventEvent<T>The event to fire

Returns

Plane

Inherited from

AbstractPanel.invalidateObject


isDisposed

isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

AbstractPanel.isDisposed


isSelectable

isSelectable(): boolean

Return if this object can be picked/selected (see RendererPicking).

Returns

boolean

Inherited from

AbstractPanel.isSelectable


notify

notify(type, source, args?): Plane

Notify listeners

Parameters

Name Type Description
typestringevent types
sourceanyof the event
Optional argsanyarguments of the event

Returns

Plane

this

Inherited from

AbstractPanel.notify


off

off(type?, callback?): Plane

Detach listener on event. Calling .off() with no arguments removes all attached listeners. Calling .off(type) with no callback removes all attached listeners for specific type.

Parameters

Name Type Description
Optional typestringtype of the event
Optional callbackEventListenerfunction to be called

Returns

Plane

this

Inherited from

AbstractPanel.off

off<E>(type, callback): Plane

Type parameters

NameType
Eextends string

Parameters

Name Type
typeE
callback(eventType: E, sender: Plane, args: EventMap[E]) => void

Returns

Plane

Inherited from

AbstractPanel.off


on

on(type, callback, options?): Plane

Attach listener on event that will be called whenever the specified event is delivered to the target

If the callback function is already in the list of event listeners for this target, the function is not added a second time.

If a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an "on" call, the second function will also be added to the list of event listeners for that target.

Parameters

Name Type Description
typestringtype of event or property
callbackEventListenerto be called
Optional optionsOptionsoptions of subscription

Returns

Plane

this

Inherited from

AbstractPanel.on

on<E>(type, callback, options?): Plane

Type parameters

NameType
Eextends string

Parameters

Name Type
typeE
callback(eventType: E, sender: Plane, args: EventMap[E]) => void
Optional optionsOptions

Returns

Plane

Inherited from

AbstractPanel.on


onStatsUpdated

onStatsUpdated(metrics): Plane

This function is called when the plot has updated performance metric.
It will be called every set number of frames.
The number of frame is customizable in the plot options advancedrendering.performancemetrics.updateframeperiod and is 100 by default.

Parameters

Name Type Description
metricsPerformanceMetricsThe performance metrics.

Returns

Plane

Inherited from

AbstractPanel.onStatsUpdated


onVisibilityChanged

Protected onVisibilityChanged(): void

This method is called if visibility is changed. Send event Events.VisibilityChanged

Returns

void

Inherited from

AbstractPanel.onVisibilityChanged


remove

remove(object): Plane

Removes object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap> | Object3D<Object3DEventMap>[]object

Returns

Plane

this

Inherited from

AbstractPanel.remove


setOptions

setOptions(options?): Plane

Set this Plane options

Parameters

Name Type
Optional optionsOptionsBase

Returns

Plane

Overrides

AbstractPanel.setOptions


setOverlay

setOverlay(overlayGroup): void

Used for intersection API

Parameters

Name Type
overlayGroupGroup<Node>

Returns

void

Implementation of

IOverlayableObject.setOverlay

Overrides

AbstractPanel.setOverlay


setPosition

setPosition(position): Plane

Set Object's local position.

Parameters

Name Type Description
positionObjectlocal position
Optional position.xnumber
Optional position.ynumber
Optional position.znumber

Returns

Plane

this

Inherited from

AbstractPanel.setPosition


setRotation

setRotation(x, y, z, order?): Plane

Set Object's local rotation (Euler angles), in radians.

Parameters

Name Type Description
xnumberx angle
ynumbery angle
znumberz angle
Optional orderEulerOrdereuler order

Returns

Plane

this

Inherited from

AbstractPanel.setRotation


setSelectable

setSelectable(selectable): void

Set if this object can be picked/selected (see RendererPicking).

Parameters

Name Type Description
selectablebooleanif can be selected

Returns

void

Inherited from

AbstractPanel.setSelectable


setVisible

setVisible(visible, silent?): Plane

Set visible

Parameters

Name Type Description
visiblebooleantrue, if object is visible
Optional silentbooleantrue, if object shouldn't be invalidated

Returns

Plane

this

Inherited from

AbstractPanel.setVisible


updateObject

updateObject(scene, camera): Plane

This function is called prior to rendering and can update this object's content.

It should not trigger any invalidateObject though.
Note that it is not necessary nor recommended to explicitly call updateObject on this object's children as updateObject will be called on all nodes present in the scene.

This will be executed before the transformations simplification.

See

Plot for more details on the render steps

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera

Returns

Plane

Inherited from

AbstractPanel.updateObject


useOwnHighlight

useOwnHighlight(): boolean

Returns true if this object make its own highlight effect (like geotoolkit3d.scene.reservoir.hexahedral.ReservoirGrid) This is to prevent unnecessary executions of the costly highlight passes.

Returns

boolean

Inherited from

AbstractPanel.useOwnHighlight


getClassName

Static getClassName(): string

Returns

string

Inherited from

AbstractPanel.getClassName


register

Static register(): void

Register object for special processing through a callback function

Example

geotoolkit3d.util.ObjectProcessor.getDefaultInstance().registerObject(this.getClassName(), callback);

Deprecated

since 5.0, to allow custom object highlighting, please instead make your Object implement the interface geotoolkit3d/scene/ICustomHighlight.

Returns

void

Inherited from

AbstractPanel.register