Skip to content

API / geotoolkit3d / gigagrid / ReservoirGrid / ReservoirGrid

Class: ReservoirGrid

gigagrid.ReservoirGrid.ReservoirGrid

Main 3D visual for GigaGrid reservoirs, controlling octree traversal, LOD resolution switching, and incremental loading of cell geometry and properties.<br>

Frontend usage typically starts with HttpDataSource (or another AbstractDataSource) to load GigaGridResult, then creates this object and adds it to a Plot scene. After construction, the grid automatically requests node, cell, and property data from the same data source as the view changes.

Configure filtering, coloring, cache size, and maximum resolution through ReservoirGrid.Options. Server route and binary payload formats are documented on HttpDataSource.

See the Carnac3D/ReservoirGrid/GigaGridWithBackend tutorial for a complete end-to-end example.

Example

import {HttpDataSource} from '@int/geotoolkit3d/gigagrid/data/HttpDataSource';
import {ReservoirGrid} from '@int/geotoolkit3d/gigagrid/ReservoirGrid';
import {DefaultColorProvider} from '@int/geotoolkit/util/DefaultColorProvider';

const dataSource = new HttpDataSource({
schema: 'http',
host: 'localhost',
port: 3001,
basepath: '',
file: 'myReservoir'
});
dataSource.load().then((gridResult) =&gt; {
const properties = gridResult.getProperty();
const grid = new ReservoirGrid({
gridresult: gridResult,
primaryvaluename: properties&#91;0&#93;.uid,
colorprovider: new DefaultColorProvider({values: &#91;0, 1&#93;, colors: &#91;'blue', 'red'&#93;})
});
plot.getRoot().add(grid);
});

Hierarchy

Table of contents

Constructors
  • [new ReservoirGrid(options)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit3d.gigagrid.reservoirgrid.reservoirgrid.md#new reservoirgrid(options))
Methods

Contents

Constructors

new ReservoirGrid(options)

• new ReservoirGrid(options)

Parameters

Name Type
optionsOptions

Overrides

AbstractReservoirGrid.constructor

Methods

add

▸ add(object): ReservoirGrid

Adds object as child of this object.

Parameters

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

Returns

ReservoirGrid

this

Inherited from

AbstractReservoirGrid.add


afterRender

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

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

ReservoirGrid

Inherited from

AbstractReservoirGrid.afterRender


beforeRender

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

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

ReservoirGrid

Inherited from

AbstractReservoirGrid.beforeRender


dispose

▸ dispose(): void

Dispose all event listeners, Object3D, cache

Returns

void

Overrides

AbstractReservoirGrid.dispose


getClassName

▸ getClassName(): string

Returns

string

Inherited from

AbstractReservoirGrid.getClassName


getCurrentCellCount

▸ getCurrentCellCount(): number

Get the current number of cells

Returns

number

cellcount


getGridResult

▸ getGridResult(): GigaGridResult

Get grid overall information

Returns

GigaGridResult

Grid


getIJKFilter

▸ getIJKFilter(): IJKFilter

Get IJK range filter

Returns

IJKFilter

filter


getLoadingProgress

▸ getLoadingProgress(): number

Get loading progress percentage.

Returns

number

percentage


getOptions

▸ getOptions(): Required<Options&gt; & Omit<Options, "colorprovider" | "skeleton" | "cachelimit" | "highlightmode"&gt; & { cachelimit: number ; colorprovider?: ColorProvider ; highlightmode: HighlightMode ; skeleton: { color: string ; linewidth: number } } & Partial<SecondaryOptions&gt;

Get the ReservoirGrid options, returned as an object

Returns

Required<Options&gt; & Omit<Options, "colorprovider" | "skeleton" | "cachelimit" | "highlightmode"&gt; & { cachelimit: number ; colorprovider?: ColorProvider ; highlightmode: HighlightMode ; skeleton: { color: string ; linewidth: number } } & Partial<SecondaryOptions&gt;

Overrides

AbstractReservoirGrid.getOptions


getPrimaryPropertyName

▸ getPrimaryPropertyName(): string

Get property key

Returns

string

key


getPropertyFilter

▸ getPropertyFilter(): PropertyFilter

Get property filter

Returns

PropertyFilter

filter


getSecondaryColorProvider

▸ getSecondaryColorProvider(): ColorProvider

Get the secondary colorprovider if one is set

Returns

ColorProvider


getSelectedIJKIndex

▸ getSelectedIJKIndex(): IJKIndex

Get IJK info of selected cell<br> Needs to have highlighting enabled in the Plot.

Returns

IJKIndex

IJKIndex


getTotalCellCount

▸ getTotalCellCount(): number

Get total number of cells available in the gigagrid

Returns

number

total cells in the the grid


getVisible

▸ getVisible(): boolean

Get visible

Returns

boolean

true, if object is visible

Inherited from

AbstractReservoirGrid.getVisible


hasSecondaryValue

▸ hasSecondaryValue(): boolean

Functions to check if a secondary value name is provided and exist in Reservoir Data.

Returns

boolean


invalidateObject

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

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

ReservoirGrid

Inherited from

AbstractReservoirGrid.invalidateObject


isDisposed

▸ isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

AbstractReservoirGrid.isDisposed


isSecondaryValueActive

▸ isSecondaryValueActive(): boolean

Return if secondary property is actively shown.

Returns

boolean


isSelectable

▸ isSelectable(): boolean

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

Returns

boolean

Inherited from

AbstractReservoirGrid.isSelectable


notify

▸ notify<E&gt;(type, source, args?): ReservoirGrid

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

Type parameters

NameType
Eextends string

Parameters

Name Type Description
typeEevent types
sourceAbstractReservoirGridof the event
Optional argsEventMap[E]arguments of the event

Returns

ReservoirGrid

this

Inherited from

AbstractReservoirGrid.notify


off

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

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.

Type parameters

NameType
Eextends string

Parameters

Name Type Description
Optional typeEtype of the event
Optional callback(eventType: E, sender: ReservoirGrid, args: EventMap[E]) => voidfunction to be called

Returns

ReservoirGrid

this

Inherited from

AbstractReservoirGrid.off


on

▸ on<E&gt;(type, callback): ReservoirGrid

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>

Type parameters

NameType
Eextends string

Parameters

Name Type Description
typeEtype of event or property
callback(eventType: E, sender: ReservoirGrid, args: EventMap[E]) => voidto be called

Returns

ReservoirGrid

this

Inherited from

AbstractReservoirGrid.on


onStatsUpdated

▸ onStatsUpdated(metrics): ReservoirGrid

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

ReservoirGrid

Inherited from

AbstractReservoirGrid.onStatsUpdated


onVisibilityChanged

▸ Protected onVisibilityChanged(): void

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

Returns

void

Inherited from

AbstractReservoirGrid.onVisibilityChanged


remove

▸ remove(object): ReservoirGrid

Removes object as child of this object.

Parameters

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

Returns

ReservoirGrid

this

Inherited from

AbstractReservoirGrid.remove


removeHighlightShape

▸ removeHighlightShape(): void

Remove the current cell highlight effect on this grid.

Returns

void

Overrides

AbstractReservoirGrid.removeHighlightShape


setOptions

▸ setOptions(options?): ReservoirGrid

Set options, the given json will be merged with the object's state so that only the given options will be changes.<br>

Parameters

Name Type Description
Optional optionsOptionsBaseThe options

Returns

ReservoirGrid

this

Overrides

AbstractReservoirGrid.setOptions


setPosition

▸ setPosition(position): ReservoirGrid

Set Object's local position.

Parameters

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

Returns

ReservoirGrid

this

Inherited from

AbstractReservoirGrid.setPosition


setPrimaryPropertyKey

▸ setPrimaryPropertyKey(name): void

Set primary property name to visualize

Parameters

Name Type Description
namestringname of the property

Returns

void


setRotation

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

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

Parameters

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

Returns

ReservoirGrid

this

Inherited from

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

AbstractReservoirGrid.setSelectable


setVisible

▸ setVisible(visible, silent?): ReservoirGrid

Set visible

Parameters

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

Returns

ReservoirGrid

this

Inherited from

AbstractReservoirGrid.setVisible


updateObject

▸ updateObject(scene, camera): ReservoirGrid

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

ReservoirGrid

Inherited from

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

AbstractReservoirGrid.useOwnHighlight


getClassName

▸ Static getClassName(): string

Returns

string

Inherited from

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

AbstractReservoirGrid.register