API / geotoolkit3d / scene / 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.
↳
Plane
Constructors
Methods
Methods
▸ add(object): Plane
Adds object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ 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
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | Camera | The camera used for this render phase. |
plot | Plot | The 3D plot |
renderer | WebGLRenderer | The renderer |
▸ 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
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | Camera | The camera used for this render phase. |
plot | Plot | The 3D plot |
renderer | WebGLRenderer | The renderer |
▸ dispose(): void
Dispose object
void
▸ 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.
Box3
bbox
▸ getClassName(): string
string
IOverlayableObject.getClassName
▸ 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| Name | Type | Description |
|---|---|---|
index | number | Index of the plane quad, from 0 to 3. |
Optional target | Vector3 | Optional point Vector3, will be updated and returned if provided. |
Vector3
▸ getHighlightedObjects(): Plane | Plane[]
Get selected plane or planes that will generate a highlight
ICustomHighlight.getHighlightedObjects
▸ getImageTexture(): Texture
Returns the texture of the plane base image, if any.
Texture
texture
▸ getImageTextureDimension(vec2?): Vector2
Returns the dimension of the plane base image texture, if any.
| Name | Type | Description |
|---|---|---|
Optional vec2 | Vector2 | (optional) the Vector2 to hold the dimension, to avoid creating new object. |
Vector2
dimension in Vector2
▸ 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| Name | Type | Description |
|---|---|---|
index | number | Index of the plane quad, from 0 to 3. |
Optional target | Vector3 | Optional point Vector3, will be updated and returned if provided. |
Vector3
IOverlayableObject.getLocalCorner
▸ getMesh(): Mesh<BufferGeometry<NormalBufferAttributes>, Material | Material[], Object3DEventMap>
Return the plane mesh.
Mesh<BufferGeometry<NormalBufferAttributes>, Material | Material[], Object3DEventMap>
▸ getOptions(): Required<Options>
Get options
Required<Options>
options object
Returns the overlay of this plane, if any.
▸ getOverlayTexture(): CanvasTexture
Returns the texture of the plane overlay, if any.
CanvasTexture
texture
▸ getOverlayTextureBounds(): Rect
Returns the overlay texture boundaries of this plane, in pixels.
IOverlayableObject.getOverlayTextureBounds
AbstractPanel.getOverlayTextureBounds
▸ getOverlayTextureDimension(vec2?): Vector2
Returns the dimension of the plane overlay texture, if any.
| Name | Type | Description |
|---|---|---|
Optional vec2 | Vector2 | (optional) the Vector2 to hold the dimension, to avoid creating new object. |
Vector2
dimension in Vector2
▸ getVisible(): boolean
Get visible
boolean
true, if object is visible
▸ 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.
| Name |
|---|
T |
| Name | Type | Description |
|---|---|---|
Optional event | Event<T> | The event to fire |
AbstractPanel.invalidateObject
▸ isDisposed(): boolean
Returns whether this object has been disposed
boolean
▸ isSelectable(): boolean
Return if this object can be picked/selected (see RendererPicking).
boolean
▸ notify(type, source, args?): Plane
Notify listeners
| Name | Type | Description |
|---|---|---|
type | string | event types |
source | any | of the event |
Optional args | any | arguments of the event |
this
▸ 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.
| Name | Type | Description |
|---|---|---|
Optional type | string | type of the event |
Optional callback | EventListener | function to be called |
this
▸ off<E>(type, callback): Plane
| Name | Type |
|---|---|
E | extends string |
▸ 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.
| Name | Type | Description |
|---|---|---|
type | string | type of event or property |
callback | EventListener | to be called |
Optional options | Options | options of subscription |
this
▸ on<E>(type, callback, options?): Plane
| Name | Type |
|---|---|
E | extends string |
| Name | Type |
|---|---|
type | E |
callback | (eventType: E, sender: Plane, args: EventMap[E]) => void |
Optional options | Options |
▸ 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.
| Name | Type | Description |
|---|---|---|
metrics | PerformanceMetrics | The performance metrics. |
▸ Protected onVisibilityChanged(): void
This method is called if visibility is changed. Send event Events.VisibilityChanged
void
AbstractPanel.onVisibilityChanged
▸ remove(object): Plane
Removes object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ setOptions(options?): Plane
Set this Plane options
| Name | Type |
|---|---|
Optional options | OptionsBase |
▸ setOverlay(overlayGroup): void
Used for intersection API
void
▸ setPosition(position): Plane
Set Object's local position.
| Name | Type | Description |
|---|---|---|
position | Object | local position |
Optional position.x | number | |
Optional position.y | number | |
Optional position.z | number |
this
▸ setRotation(x, y, z, order?): Plane
Set Object's local rotation (Euler angles), in radians.
| Name | Type | Description |
|---|---|---|
x | number | x angle |
y | number | y angle |
z | number | z angle |
Optional order | EulerOrder | euler order |
this
▸ setSelectable(selectable): void
Set if this object can be picked/selected (see RendererPicking).
| Name | Type | Description |
|---|---|---|
selectable | boolean | if can be selected |
void
▸ setVisible(visible, silent?): Plane
Set visible
| Name | Type | Description |
|---|---|---|
visible | boolean | true, if object is visible |
Optional silent | boolean | true, if object shouldn't be invalidated |
this
▸ 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
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | Camera | The camera |
▸ 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.
boolean
▸ Static getClassName(): string
string
▸ 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.
void