Skip to content
Last updated

API / geotoolkit3d / scene / curtain / PlaneCurtain / PlaneCurtain

Class: PlaneCurtain

curtain.PlaneCurtain.PlaneCurtain

The PlaneCurtain is an implementation of a 3D Curtain object made of Planes. A Curtain is a vertical geometry defined by a series of horizontal points coordinates. These points define a path in the X and Y axes, and the vertical size of the curtain is then defined by the user.<br>

This implementation represent the curtain geometry using multiple geotoolkit3d/scene/plane/Plane This enable powerful features such as intersections between the curtain and 3D objects (such as ReservoirGrids, Surfaces).<br>

Because each Plane will handle its own canvas and texture for drawing intersections, it is highly recommended to leave the decimation option enabled for performance reasons.<br>

This object provide these additional features over handling your own Planes:<ul> <li>Automatic and customizable Curtain path decimation</li> <li>Plane creation and handling</li> <li>Intersection handling (resizing Curtain if needed)</li> <li>Curtain shading</li> </ul>

Hierarchy

Implements

Table of contents

Constructors
  • [new PlaneCurtain(options)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit3d.scene-3.curtain.planecurtain.planecurtain.md#new planecurtain(options))
Methods

Contents

Constructors

new PlaneCurtain(options)

• new PlaneCurtain(options)

Parameters

Name Type
optionsOptions

Overrides

Object3D.constructor

Methods

add

▸ add(object): PlaneCurtain

Adds object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap&gt; | Object3D<Object3DEventMap&gt;[]object

Returns

PlaneCurtain

this

Inherited from

Object3D.add


afterRender

▸ afterRender(scene, camera, plot, renderer): PlaneCurtain

This function is called after rendering and can update this object's content.<br> <br> It should not trigger any invalidateObject though.<br> 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.<br> <br> This will be executed after the transformations simplification.<br> <br>

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

PlaneCurtain

Inherited from

Object3D.afterRender


beforeRender

▸ beforeRender(scene, camera, plot, renderer): PlaneCurtain

This function is called prior to rendering and can update this object's content.<br> <br> It should not trigger any invalidateObject though.<br> 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.<br> <br> This will be executed after the transformations simplification.<br> <br>

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

PlaneCurtain

Inherited from

Object3D.beforeRender


dispose

▸ dispose(): void

Dispose object

Returns

void

Inherited from

Object3D.dispose


generateIntersection

▸ generateIntersection(object, options?): void

Generate or update an intersection between this curtain and the provided mesh object. Supported objects include ReservoirGrids and Surfaces.

Parameters

Name Type Description
objectObject3Dthe mesh object to intersect.
Optional optionsPlaneMeshIntersectionOptionsthe options for the intersection.

Returns

void


getClassName

▸ getClassName(): string

Returns

string

Implementation of

IIntersectableMesh.getClassName

Inherited from

Object3D.getClassName


getColorProvider

▸ getColorProvider(): RgbaColor | ColorProvider

Return the color provider of the intersectable.

Returns

RgbaColor | ColorProvider

Implementation of

IIntersectableMesh.getColorProvider


getHighlightedObjects

▸ getHighlightedObjects(): Plane[]

Get selected planes in the PlaneCurtain that will generate a highlight

Returns

Plane[]

Implementation of

ICustomHighlight.getHighlightedObjects


getMesh

▸ getMesh(): Mesh<BufferGeometry<NormalBufferAttributes&gt;, Material | Material[], Object3DEventMap&gt;

Return the mesh to be intersected.

Returns

Mesh<BufferGeometry<NormalBufferAttributes&gt;, Material | Material[], Object3DEventMap&gt;

Implementation of

IIntersectableMesh.getMesh


getMeshBoundingBox

▸ getMeshBoundingBox(target): void

Return the bounding box of the mesh.<br> The bounding box should be calculated directly from the mesh's geometry vertex positions, representing the bounding box. The box coordinates must be in the local coordinate space of the mesh returned by getMesh method.

Parameters

Name Type Description
targetBox3result

Returns

void

Implementation of

IIntersectableMesh.getMeshBoundingBox


getOptions

▸ getOptions(): Required<CommonOptions&gt;

Get options

Returns

Required<CommonOptions&gt;

options object

Overrides

Object3D.getOptions


getPlanes

▸ getPlanes(): Plane[]

Returns an array that contains all the planes

Returns

Plane[]


getTriangle

▸ getTriangle(triangleIndex, target): void

Return the triangle data at given index.<br> Vertices coordinates must be in the local coordinate space of the mesh returned by getMesh method.

Parameters

Name Type Description
triangleIndexnumberthe index of the triangle
targetTriangleDataresult

Returns

void

Implementation of

IIntersectableMesh.getTriangle


getTriangleCount

▸ getTriangleCount(): number

Return the number of triangle.

Returns

number

Implementation of

IIntersectableMesh.getTriangleCount


getVisible

▸ getVisible(): boolean

Get visible

Returns

boolean

true, if object is visible

Inherited from

Object3D.getVisible


invalidateObject

▸ invalidateObject<T&gt;(event?): PlaneCurtain

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

Type parameters

Name
T

Parameters

Name Type Description
Optional eventEvent<T&gt;The event to fire

Returns

PlaneCurtain

Inherited from

Object3D.invalidateObject


isDisposed

▸ isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

Object3D.isDisposed


isSelectable

▸ isSelectable(): boolean

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

Returns

boolean

Inherited from

Object3D.isSelectable


notify

▸ notify(type, source, args?): PlaneCurtain

  • Notify listeners. Parent nodes will also be notified if they are instances of geotoolkit3d.scene.Object3D

Parameters

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

Returns

PlaneCurtain

this

Inherited from

Object3D.notify


off

▸ off(type?, callback?): PlaneCurtain

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

PlaneCurtain

this

Inherited from

Object3D.off

▸ off<E&gt;(type, callback): PlaneCurtain

Type parameters

NameType
Eextends string

Parameters

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

Returns

PlaneCurtain

Inherited from

Object3D.off


on

▸ on(type, callback, options?): PlaneCurtain

Attach listener on event that will be called whenever the specified event is delivered to the target <p> If the callback function is already in the list of event listeners for this target, the function is not added a second time. </p> <p> 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. </p>

Parameters

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

Returns

PlaneCurtain

this

Inherited from

Object3D.on

▸ on<E&gt;(type, callback, options?): PlaneCurtain

Type parameters

NameType
Eextends string

Parameters

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

Returns

PlaneCurtain

Inherited from

Object3D.on


onStatsUpdated

▸ onStatsUpdated(metrics): PlaneCurtain

This function is called when the plot has updated performance metric.<br> It will be called every set number of frames.<br> 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

PlaneCurtain

Inherited from

Object3D.onStatsUpdated


onVisibilityChanged

▸ Protected onVisibilityChanged(): void

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

Returns

void

Inherited from

Object3D.onVisibilityChanged


remove

▸ remove(object): PlaneCurtain

Removes object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap&gt; | Object3D<Object3DEventMap&gt;[]object

Returns

PlaneCurtain

this

Inherited from

Object3D.remove


removeIntersection

▸ removeIntersection(object): void

Remove the intersection between this curtain and the given object.

Parameters

Name Type Description
objectObject3Dthe object to remove the intersection of.

Returns

void


setIntersectionProperties

▸ setIntersectionProperties(object, options): void

Update an intersection property without recomputing the intersection coordinates.

Parameters

Name Type Description
objectObject3Dthe mesh object to update the intersection of.
optionsPlaneMeshIntersectionOptionsthe options for the intersection.

Returns

void


setOptions

▸ setOptions(options?): PlaneCurtain

Set options

Parameters

Name Type Description
Optional optionsPartial<CommonOptions&gt;options object

Returns

PlaneCurtain

this

Overrides

Object3D.setOptions


setPosition

▸ setPosition(position): PlaneCurtain

Set Object's local position.

Parameters

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

Returns

PlaneCurtain

this

Inherited from

Object3D.setPosition


setRotation

▸ setRotation(x, y, z, order?): PlaneCurtain

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

Parameters

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

Returns

PlaneCurtain

this

Inherited from

Object3D.setRotation


setSelectable

▸ setSelectable(selectable): void

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

Parameters

Name Type Description
selectablebooleanif can be selected

Returns

void

Inherited from

Object3D.setSelectable


setVisible

▸ setVisible(visible, silent?): PlaneCurtain

Set visible

Parameters

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

Returns

PlaneCurtain

this

Inherited from

Object3D.setVisible


updateObject

▸ updateObject(scene, camera): PlaneCurtain

This function is called prior to rendering and can update this object's content.<br> <br> It should not trigger any invalidateObject though.<br> 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.<br> <br> This will be executed before the transformations simplification.<br> <br>

See

Plot for more details on the render steps

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera

Returns

PlaneCurtain

Inherited from

Object3D.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

Object3D.useOwnHighlight


getClassName

▸ Static getClassName(): string

Returns

string

Inherited from

Object3D.getClassName


register

▸ Static register(): void

Register object for special processing through a callback function<br>

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

Object3D.register