[API](/solutions/geotoolkit/geotoolkit_js/apis/readme) / [geotoolkit3d](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d) / [scene](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3) / [reservoir](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoir) / [hexahedral](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#hexahedral) / [ReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid) / ReservoirGrid

# Class: ReservoirGrid

[hexahedral](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#hexahedral).[ReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid).ReservoirGrid

A 3D Reservoir object.<br>

This object represents the 3D visualization of a reservoir grid with an optional attribute used for coloring.<br>
The reservoir cell's geometry and values is defined by the given ReservoirData, and the cell visibility is determined by user-defined filters.

The skeleton (outline) is drawn simultaneously as the cell in the GPU fragment stage, so it doesn't need extra CPU/memory resources.<br>

The default DisplayMode is showing mesh, skeleton, but not horizons.<br>

Note: ReservoirGrid works with transparent colors, but for correct visualization occlusion will be switched off.
So performance in case of transparent colors will be worse than with only opaque colors.

## Hierarchy

- [`AbstractReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid)
↳ **`ReservoirGrid`**


## Implements

- [`IIntersectablePolyhedron`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron)


## Table of contents

Constructors
- [new ReservoirGrid(options)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid.md#new reservoirgrid(options))


Properties
| [ADDITIONAL_PROPERTY_SIZE](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#additional_property_size) | [ESTIMATE_RAM_PER_CELL](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#estimate_ram_per_cell) | [ESTIMATE_RAM_PER_CELL_INTERSECTION](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#estimate_ram_per_cell_intersection) |
|  --- | --- | --- |
| [ESTIMATE_VRAM_PER_CELL](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#estimate_vram_per_cell) | [MAX_VALUES_PER_ELEMENT](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#max_values_per_element) |


Methods
| [add](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#add) | [afterRender](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#afterrender) | [beforeRender](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#beforerender) |
|  --- | --- | --- |
| [deleteAdditionalCellData](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#deleteadditionalcelldata) | [dispose](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#dispose) | [getBoundingBox](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getboundingbox) |
| [getCellGeometry](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getcellgeometry) | [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getclassname) | [getColorProvider](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getcolorprovider) |
| [getData](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getdata) | [getFilteredCellsCount](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getfilteredcellscount) | [getFilteredCellsVolume](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getfilteredcellsvolume) |
| [getFilteredReservoirData](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getfilteredreservoirdata) | [getHighlightedObjects](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#gethighlightedobjects) | [getMesh](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getmesh) |
| [getOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getoptions) | [getPolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getpolyhedron) | [getPolyhedronCount](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getpolyhedroncount) |
| [getPolyhedronsBoundingBox](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getpolyhedronsboundingbox) | [getReservoirFullVolume](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getreservoirfullvolume) | [getSecondaryColorProvider](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getsecondarycolorprovider) |
| [getSelectedIJKIndex](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getselectedijkindex) | [getVisible](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getvisible) | [hasSecondaryValue](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#hassecondaryvalue) |
| [highlightCellByIJK](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#highlightcellbyijk) | [highlightCellByIndex](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#highlightcellbyindex) | [invalidateObject](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#invalidateobject) |
| [isCellIndexFilteredOut](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#iscellindexfilteredout) | [isDisposed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#isdisposed) | [isIJKValidInFilter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#isijkvalidinfilter) |
| [isPolyhedronIndexFilteredOut](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#ispolyhedronindexfilteredout) | [isSecondaryValueActive](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#issecondaryvalueactive) | [isSelectable](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#isselectable) |
| [isSelected](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#isselected) | [isValueValidInFilter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#isvaluevalidinfilter) | [notify](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#notify) |
| [off](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#off) | [on](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#on) | [onStatsUpdated](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#onstatsupdated) |
| [onVisibilityChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#onvisibilitychanged) | [remove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#remove) | [removeHighlightShape](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#removehighlightshape) |
| [setCellsValues](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#setcellsvalues) | [setData](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#setdata) | [setOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#setoptions) |
| [setPosition](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#setposition) | [setRotation](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#setrotation) | [setSelectable](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#setselectable) |
| [setVisible](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#setvisible) | [updateCellFilter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#updatecellfilter) | [updateObject](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#updateobject) |
| [useOwnHighlight](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#useownhighlight) | [estimateMemoryCapabilities](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#estimatememorycapabilities) | [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#getclassname-1) |
| [register](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid#register) |


## Contents

Constructors
#### new ReservoirGrid(options)

• **new ReservoirGrid**(`options`)

#### Parameters

| Name  | Type  |
|  --- | --- |
| `options` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid#options) |


#### Overrides

AbstractReservoirGrid.constructor

Properties
#### ADDITIONAL_PROPERTY_SIZE

▪ `Static` **ADDITIONAL_PROPERTY_SIZE**: `number`

#### ESTIMATE_RAM_PER_CELL

▪ `Static` **ESTIMATE_RAM_PER_CELL**: `number`

#### ESTIMATE_RAM_PER_CELL_INTERSECTION

▪ `Static` **ESTIMATE_RAM_PER_CELL_INTERSECTION**: `number`

#### ESTIMATE_VRAM_PER_CELL

▪ `Static` **ESTIMATE_VRAM_PER_CELL**: `number`

#### MAX_VALUES_PER_ELEMENT

▪ `Static` **MAX_VALUES_PER_ELEMENT**: `number`

Methods
#### add

▸ **add**(`object`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Adds object as child of this object.

#### Parameters

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


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[add](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#add)

#### afterRender

▸ **afterRender**(`scene`, `camera`, `plot`, `renderer`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.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](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot) for more details on the render steps

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `scene` | `Scene` | The scene |
| `camera` | `Camera` | The camera used for this render phase. |
| `plot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot) | The 3D plot |
| `renderer` | `WebGLRenderer` | The renderer |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[afterRender](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#afterrender)

#### beforeRender

▸ **beforeRender**(`scene`, `camera`, `plot`, `renderer`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.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](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot) for more details on the render steps

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `scene` | `Scene` | The scene |
| `camera` | `Camera` | The camera used for this render phase. |
| `plot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot) | The 3D plot |
| `renderer` | `WebGLRenderer` | The renderer |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[beforeRender](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#beforerender)

#### deleteAdditionalCellData

▸ **deleteAdditionalCellData**(`name`): `void`

Delete a previously defined additional cell data.<br>

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `name` | `string` | The name of the additional data to delete. |


#### Returns

`void`

#### dispose

▸ **dispose**(): `void`

Dispose this reservoir visual, along its ReservoirData.

#### Returns

`void`

#### Overrides

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[dispose](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#dispose)

#### getBoundingBox

▸ **getBoundingBox**(): `Box3`

Get the bounding box of this Reservoir Grid (in local coordinates).

#### Returns

`Box3`

bbox

#### getCellGeometry

▸ **getCellGeometry**(`ijk`, `scale`, `plot?`): `BufferGeometry`<`NormalBufferAttributes`&gt;

Build a cell geometry from an existing cell index ijk, that overlaps the aforesaid cell depending on the value
entered for the scale parameter. Scale is the percentage of overlapping.<br>
The ijk array is the index of the cell in the reservoir: <br>
For example, if i=0, j= 4 and z=2, the array will be<br>
[ 0, 4, 2 ]<br>
If plot is specified, the Geometry will be adapted in "business" coordinates else it will be in local coordinates<br>
Business coordinates are obtained using [Helper.localToBusiness](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.helper.helper#localtobusiness)

#### Parameters

| Name  | Type  |
|  --- | --- |
| `ijk` | `number`[] | [`IJKIndex`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.ijkindex.ijkindex) |
| `scale` | `number` |
| `Optional` `plot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot) |


#### Returns

`BufferGeometry`<`NormalBufferAttributes`&gt;

#### getClassName

▸ **getClassName**(): `string`

#### Returns

`string`

#### Implementation of

[IIntersectablePolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron#getclassname)

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#getclassname)

#### getColorProvider

▸ **getColorProvider**(): [`ColorProvider`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.colorprovider.colorprovider)

Return the color provider of the intersectable.

#### Returns

[`ColorProvider`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.colorprovider.colorprovider)

#### Implementation of

[IIntersectablePolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron).[getColorProvider](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron#getcolorprovider)

#### getData

▸ **getData**(): [`ReservoirData`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.data-8.reservoir-1.hexahedral.reservoirdata.reservoirdata)

Get the reservoir data, holding the cells positions and values.

#### Returns

[`ReservoirData`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.data-8.reservoir-1.hexahedral.reservoirdata.reservoirdata)

data

#### getFilteredCellsCount

▸ **getFilteredCellsCount**(): `number`

Return the number of cells resulting from the user's filter.

#### Returns

`number`

#### getFilteredCellsVolume

▸ **getFilteredCellsVolume**(): `number`

Return the volume occupied by the remaining cells resulting from the user's filter.<br>
Each cell volume is computed based on the cell's xyz corner coordinates.<br>
The unit of the volume measurement is based on the unit used in cells coordinates, to user discretion.
(ex: if cells coordinates are in meters, then the volume will be in cubic meters. If feet, then cubic feet, and so on.)

#### Returns

`number`

the total filtered cells volume.

#### getFilteredReservoirData

▸ **getFilteredReservoirData**(): [`ReservoirData`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.data-8.reservoir-1.hexahedral.reservoirdata.reservoirdata)

Return a new instance of ReservoirData resulting from the user's filter, the cells that are filtered in (are displayed),
based on IJK filter, value filter, and the user filter.
If no cell is currently visible, null will be returned instead as no ReservoirData can be created.

#### Returns

[`ReservoirData`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.data-8.reservoir-1.hexahedral.reservoirdata.reservoirdata)

#### getHighlightedObjects

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

Get the selected cell geometry. Used in highlighting logic.

**`Deprecated`**

since 5.0, was not meant to be public. To retrieve the currently selected cell, please use getCellGeometry instead.

#### Returns

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

#### getMesh

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

Return the mesh representing the polyhderons to be intersected.

#### Returns

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

#### Implementation of

[IIntersectablePolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron).[getMesh](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron#getmesh)

#### getOptions

▸ **getOptions**(): [`OptionsBaseOut`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid#optionsbaseout)

Get this Reservoir Grid options.

#### Returns

[`OptionsBaseOut`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid#optionsbaseout)

#### Overrides

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[getOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#getoptions)

#### getPolyhedron

▸ **getPolyhedron**(`polyhedronIndex`, `target`): `void`

Return the polyhedron 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  |
|  --- | --- | --- |
| `polyhedronIndex` | `number` | the index of the polyhedron |
| `target` | [`PolyhedronCellData`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.util-5#iintersectablepolyhedron#polyhedroncelldata) | result |


#### Returns

`void`

#### Implementation of

[IIntersectablePolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron).[getPolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron#getpolyhedron)

#### getPolyhedronCount

▸ **getPolyhedronCount**(): `number`

Return the total number of Polyhedrons contained by this object.

#### Returns

`number`

#### Implementation of

[IIntersectablePolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron).[getPolyhedronCount](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron#getpolyhedroncount)

#### getPolyhedronsBoundingBox

▸ **getPolyhedronsBoundingBox**(`target`): `void`

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

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `target` | `Box3` | result |


#### Returns

`void`

#### Implementation of

[IIntersectablePolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron).[getPolyhedronsBoundingBox](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron#getpolyhedronsboundingbox)

#### getReservoirFullVolume

▸ **getReservoirFullVolume**(): `number`

Returns the total volume of this reservoir.<br>
Computed by the sum of the volume of every cell, filters are ignored.<br>
The unit of the volume measurement is based on the unit used in cells coordinates, to user discretion.
(ex: if cells coordinates are in meters, then the volume will be in cubic meters. If feet, then cubic feet, and so on.)

#### Returns

`number`

#### getSecondaryColorProvider

▸ **getSecondaryColorProvider**(): [`ColorProvider`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.colorprovider.colorprovider)

Get the secondary colorprovider if one is set

#### Returns

[`ColorProvider`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.colorprovider.colorprovider)

#### getSelectedIJKIndex

▸ **getSelectedIJKIndex**(): [`IJKIndex`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.ijkindex.ijkindex)

Get IJK info of selected/highlighted cell.
Needs to have highlighting enabled in the Plot.

#### Returns

[`IJKIndex`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.ijkindex.ijkindex)

IJKIndex

#### getVisible

▸ **getVisible**(): `boolean`

Get visible

#### Returns

`boolean`

true, if object is visible

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[getVisible](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#getvisible)

#### hasSecondaryValue

▸ **hasSecondaryValue**(): `boolean`

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

#### Returns

`boolean`

#### highlightCellByIJK

▸ **highlightCellByIJK**(`ijk?`): `boolean`

Highlight the designated cell ijk in the format [i, j, k].<br>
Set the argument to null to remove the current cell highlight.<br>
Only one cell can be highlighted at the same time.
Cells highlighted using this method will not be automatically removed by selection tools, unless another cell
from this reservoir is selected.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `ijk` | `number`[] | the cell ijk position to highlight, or null to remove previous highlight. |


#### Returns

`boolean`

true if the cell ijk is valid, false if the given ijk match no cell. Null/no value is valid and returns true.

#### highlightCellByIndex

▸ **highlightCellByIndex**(`index?`): `boolean`

Highlight the designated cell index. Set the index to null to remove the current cell highlight.
Return true on success, false if the index is not valid.<br>
Only one cell can be highlighted at the same time.
Cells highlighted using this method will not be automatically removed by selection tools, unless another cell
from this reservoir is selected.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `index` | `number` | the cell index to highlight, or null to remove previous highlight. |


#### Returns

`boolean`

true if the cell index is valid, false if the index is out of bounds. Null/no value is valid and returns true.

#### invalidateObject

▸ **invalidateObject**<`T`&gt;(`event?`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.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` `event` | [`Event`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.event.event)<`T`&gt; | The event to fire |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[invalidateObject](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#invalidateobject)

#### isCellIndexFilteredOut

▸ **isCellIndexFilteredOut**(`index`): `boolean`

Return true if the cell of the given index is filtered out (is not displayed), based on both IJK filter, value filter, and the user filter.

#### Parameters

| Name  | Type  |
|  --- | --- |
| `index` | `number` |


#### Returns

`boolean`

#### isDisposed

▸ **isDisposed**(): `boolean`

Returns whether this object has been disposed

#### Returns

`boolean`

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[isDisposed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#isdisposed)

#### isIJKValidInFilter

▸ **isIJKValidInFilter**(`ijk`): `boolean`

Return true if the given IJK is valid by the IJK filter of ReservoirGrid, false if is filtered out.

#### Parameters

| Name  | Type  |
|  --- | --- |
| `ijk` | `number`[] | [`IJKIndex`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.ijkindex.ijkindex) |


#### Returns

`boolean`

#### isPolyhedronIndexFilteredOut

▸ **isPolyhedronIndexFilteredOut**(`polyhedronIndex`): `boolean`

Return if the polyhedron at given index is filtered out.<br>
Polyhedron objects like ReservoirGrid can contain multiple polyhedrons, which can be filtered out by user settings. <br>
This method allow to express whether this specific polyhedron is filtered out (and should be excluded from intersection).

#### Parameters

| Name  | Type  |
|  --- | --- |
| `polyhedronIndex` | `number` |


#### Returns

`boolean`

true if filtered out, otherwise false

#### Implementation of

[IIntersectablePolyhedron](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron).[isPolyhedronIndexFilteredOut](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.util-5.intersection.iintersectablepolyhedron.iintersectablepolyhedron#ispolyhedronindexfilteredout)

#### 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](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[isSelectable](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#isselectable)

#### isSelected

▸ **isSelected**(): `boolean`

Check if any cell is selected.

#### Returns

`boolean`

true if a cell is selected, otherwise false.

#### isValueValidInFilter

▸ **isValueValidInFilter**(`value`): `boolean`

Return true if the given value is bounded by the value filter of this ReservoirGrid, false if the value is filtered out.<br>
Also return false if the value is not a number or equal to the defined nullvalue.

#### Parameters

| Name  | Type  |
|  --- | --- |
| `value` | `number` |


#### Returns

`boolean`

#### notify

▸ **notify**<`E`&gt;(`type`, `source`, `args?`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

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


#### Type parameters

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `E` | event types |
| `source` | [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid) | of the event |
| `Optional` `args` | [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#abstractreservoirgrid#eventmap)[`E`] | arguments of the event |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Overrides

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[notify](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#notify)

#### off

▸ **off**<`E`&gt;(`type?`, `callback?`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.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

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `type` | `E` | type of the event |
| `Optional` `callback` | (`eventType`: `E`, `sender`: [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid), `args`: [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#abstractreservoirgrid#eventmap)[`E`]) => `void` | function to be called |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[off](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#off)

#### on

▸ **on**<`E`&gt;(`type`, `callback`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.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

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `E` | type of event or property |
| `callback` | (`eventType`: `E`, `sender`: [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid), `args`: [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#abstractreservoirgrid#eventmap)[`E`]) => `void` | to be called |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[on](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#on)

#### onStatsUpdated

▸ **onStatsUpdated**(`metrics`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.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  |
|  --- | --- | --- |
| `metrics` | [`PerformanceMetrics`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.plot.plot#performancemetrics) | The performance metrics. |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[onStatsUpdated](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#onstatsupdated)

#### onVisibilityChanged

▸ `Protected` **onVisibilityChanged**(): `void`

This method is called if visibility is changed.  Send event [Events.VisibilityChanged](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#object3d#events#visibilitychanged)

#### Returns

`void`

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[onVisibilityChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#onvisibilitychanged)

#### remove

▸ **remove**(`object`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Removes object as child of this object.

#### Parameters

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


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[remove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#remove)

#### removeHighlightShape

▸ **removeHighlightShape**(): `void`

Remove the current cell highlight effect on this grid.

#### Returns

`void`

#### Overrides

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[removeHighlightShape](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#removehighlightshape)

#### setCellsValues

▸ **setCellsValues**(`cellsValues`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Change the cells values, and/or define additional cell data.<br>
Changing cell values will change the active cells properties used with the colormap, and reset the "value" filter.<br>
Additional cell data are named properties that can be then used in a custom filter function.<br>
To remove additional cell data, please use ReservoirGrid.deleteAdditionalCellData.

#### Parameters

| Name  | Type  |
|  --- | --- |
| `cellsValues` | [`CellsValues`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.data-8#reservoirdata#cellsvalues) |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### setData

▸ **setData**(`data`): `void`

Set new Reservoir cell data

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `data` | [`ReservoirData`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.data-8.reservoir-1.hexahedral.reservoirdata.reservoirdata) | new ReservoirData object to be set |


#### Returns

`void`

#### setOptions

▸ **setOptions**(`options`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Set this Reservoir Grid options.<br>
Changing position data using setOptions is not allowed, as it is more expensive than creating a new Reservoir Grid.

#### Parameters

| Name  | Type  |
|  --- | --- |
| `options` | [`OptionsBase`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid#optionsbase) |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### Overrides

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[setOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#setoptions)

#### setPosition

▸ **setPosition**(`position`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Set Object's local position.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `position` | `Object` | local position |
| `Optional` `position.x` | `number` | - 
 |
| `Optional` `position.y` | `number` | - 
 |
| `Optional` `position.z` | `number` | - 
 |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[setPosition](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#setposition)

#### setRotation

▸ **setRotation**(`x`, `y`, `z`, `order?`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Set Object's local rotation ([Euler angles](https://en.wikipedia.org/wiki/Euler_angles)), in radians.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | x angle |
| `y` | `number` | y angle |
| `z` | `number` | z angle |
| `Optional` `order` | `EulerOrder` | euler order |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[setRotation](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#setrotation)

#### setSelectable

▸ **setSelectable**(`selectable`): `void`

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

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `selectable` | `boolean` | if can be selected |


#### Returns

`void`

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[setSelectable](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#setselectable)

#### setVisible

▸ **setVisible**(`visible`, `silent?`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Set visible

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `visible` | `boolean` | true, if object is visible |
| `Optional` `silent` | `boolean` | true, if object shouldn't be invalidated |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

this

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[setVisible](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#setvisible)

#### updateCellFilter

▸ **updateCellFilter**(): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

Rebuild reservoir geometry depending on filters.<br>
Calling ReservoirGrid.setOptions() also rebuilds the reservoir.<br>
The main use of this updateCellFilter() function is to update the reservoir when the custom filter is updated
via closure variables when setOptions() is not called.

#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### updateObject

▸ **updateObject**(`scene`, `camera`): [`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.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](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot) for more details on the render steps

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `scene` | `Scene` | The scene |
| `camera` | `Camera` | The camera |


#### Returns

[`ReservoirGrid`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.hexahedral-1.reservoirgrid.reservoirgrid)

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[updateObject](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#updateobject)

#### useOwnHighlight

▸ **useOwnHighlight**(): `boolean`

Used by the rendering pass to know whether this object have its won highlight mechanism, or should the pass itself generate a generic one.

#### Returns

`boolean`

#### Overrides

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[useOwnHighlight](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#useownhighlight)

#### estimateMemoryCapabilities

▸ `Static` **estimateMemoryCapabilities**(`options`): [`MemoryCapabilitiesInfo`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid#memorycapabilitiesinfo)

Estimate the maximum number of cells that can be created in one ReservoirGrid visual, with the given RAM/VRAM information.<br>
With enough memory, the implementation limit for ReservoirGrid is eventually tied to Typed array allocation.
This test will perform a one-time array allocation test on your device, to accurately estimate the maximum array
size your browser/device is capable of.
It is important to have enough memory available for this test to be accurate.

#### Parameters

| Name  | Type  |
|  --- | --- |
| `options` | [`MemoryEstimationOptions`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid#memoryestimationoptions) |


#### Returns

[`MemoryCapabilitiesInfo`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.scene-3#reservoirgrid#memorycapabilitiesinfo)

#### getClassName

▸ `Static` **getClassName**(): `string`

#### Returns

`string`

#### Inherited from

[AbstractReservoirGrid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#getclassname-1)

#### register

▸ `Static` **register**(): `void`

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

**`Example`**

```ts
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](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid).[register](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.scene-3.reservoir-2.abstractreservoirgrid.abstractreservoirgrid#register)