API / geotoolkit3d / gigagrid / ReservoirGrid / 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) => {
const properties = gridResult.getProperty();
const grid = new ReservoirGrid({
gridresult: gridResult,
primaryvaluename: properties[0].uid,
colorprovider: new DefaultColorProvider({values: [0, 1], colors: ['blue', 'red']})
});
plot.getRoot().add(grid);
});↳
ReservoirGrid
Constructors
- [new ReservoirGrid(options)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit3d.gigagrid.reservoirgrid.reservoirgrid.md#new reservoirgrid(options))
Methods
Methods
▸ add(object): ReservoirGrid
Adds object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ 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
| 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 |
AbstractReservoirGrid.afterRender
▸ 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
| 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 |
AbstractReservoirGrid.beforeRender
▸ dispose(): void
Dispose all event listeners, Object3D, cache
void
▸ getClassName(): string
string
AbstractReservoirGrid.getClassName
▸ getCurrentCellCount(): number
Get the current number of cells
number
cellcount
▸ getGridResult(): GigaGridResult
Get grid overall information
Grid
▸ getIJKFilter(): IJKFilter
Get IJK range filter
filter
▸ getLoadingProgress(): number
Get loading progress percentage.
number
percentage
▸ getOptions(): Required<Options> & Omit<Options, "colorprovider" | "skeleton" | "cachelimit" | "highlightmode"> & { cachelimit: number ; colorprovider?: ColorProvider ; highlightmode: HighlightMode ; skeleton: { color: string ; linewidth: number } } & Partial<SecondaryOptions>
Get the ReservoirGrid options, returned as an object
Required<Options> & Omit<Options, "colorprovider" | "skeleton" | "cachelimit" | "highlightmode"> & { cachelimit: number ; colorprovider?: ColorProvider ; highlightmode: HighlightMode ; skeleton: { color: string ; linewidth: number } } & Partial<SecondaryOptions>
AbstractReservoirGrid.getOptions
▸ getPrimaryPropertyName(): string
Get property key
string
key
▸ getPropertyFilter(): PropertyFilter
Get property filter
filter
▸ getSecondaryColorProvider(): ColorProvider
Get the secondary colorprovider if one is set
▸ getSelectedIJKIndex(): IJKIndex
Get IJK info of selected cell<br> Needs to have highlighting enabled in the Plot.
IJKIndex
▸ getTotalCellCount(): number
Get total number of cells available in the gigagrid
number
total cells in the the grid
▸ getVisible(): boolean
Get visible
boolean
true, if object is visible
AbstractReservoirGrid.getVisible
▸ hasSecondaryValue(): boolean
Functions to check if a secondary value name is provided and exist in Reservoir Data.
boolean
▸ invalidateObject<T>(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>
| Name |
|---|
T |
| Name | Type | Description |
|---|---|---|
Optional event | Event<T> | The event to fire |
AbstractReservoirGrid.invalidateObject
▸ isDisposed(): boolean
Returns whether this object has been disposed
boolean
AbstractReservoirGrid.isDisposed
▸ isSecondaryValueActive(): boolean
Return if secondary property is actively shown.
boolean
▸ isSelectable(): boolean
Return if this object can be picked/selected (see RendererPicking).<br>
boolean
AbstractReservoirGrid.isSelectable
▸ notify<E>(type, source, args?): ReservoirGrid
- Notify listeners. Parent nodes will also be notified if they are instances of geotoolkit3d.scene.Object3D
| Name | Type |
|---|---|
E | extends string |
| Name | Type | Description |
|---|---|---|
type | E | event types |
source | AbstractReservoirGrid | of the event |
Optional args | EventMap[E] | arguments of the event |
this
▸ off<E>(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.
| Name | Type |
|---|---|
E | extends string |
| Name | Type | Description |
|---|---|---|
Optional type | E | type of the event |
Optional callback | (eventType: E, sender: ReservoirGrid, args: EventMap[E]) => void | function to be called |
this
▸ on<E>(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>
| Name | Type |
|---|---|
E | extends string |
| Name | Type | Description |
|---|---|---|
type | E | type of event or property |
callback | (eventType: E, sender: ReservoirGrid, args: EventMap[E]) => void | to be called |
this
▸ 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.
| Name | Type | Description |
|---|---|---|
metrics | PerformanceMetrics | The performance metrics. |
AbstractReservoirGrid.onStatsUpdated
▸ Protected onVisibilityChanged(): void
This method is called if visibility is changed. Send event Events.VisibilityChanged
void
AbstractReservoirGrid.onVisibilityChanged
▸ remove(object): ReservoirGrid
Removes object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ removeHighlightShape(): void
Remove the current cell highlight effect on this grid.
void
AbstractReservoirGrid.removeHighlightShape
▸ 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>
| Name | Type | Description |
|---|---|---|
Optional options | OptionsBase | The options |
this
AbstractReservoirGrid.setOptions
▸ setPosition(position): ReservoirGrid
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
AbstractReservoirGrid.setPosition
▸ setPrimaryPropertyKey(name): void
Set primary property name to visualize
| Name | Type | Description |
|---|---|---|
name | string | name of the property |
void
▸ setRotation(x, y, z, order?): ReservoirGrid
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
AbstractReservoirGrid.setRotation
▸ setSelectable(selectable): void
Set if this object can be picked/selected (see RendererPicking).<br>
| Name | Type | Description |
|---|---|---|
selectable | boolean | if can be selected |
void
AbstractReservoirGrid.setSelectable
▸ setVisible(visible, silent?): ReservoirGrid
Set visible
| Name | Type | Description |
|---|---|---|
visible | boolean | true, if object is visible |
Optional silent | boolean | true, if object shouldn't be invalidated |
this
AbstractReservoirGrid.setVisible
▸ 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
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | Camera | The camera |
AbstractReservoirGrid.updateObject
▸ 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
AbstractReservoirGrid.useOwnHighlight
▸ Static getClassName(): string
string
AbstractReservoirGrid.getClassName
▸ 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.
void