Last updated

API / geotoolkit3d / scene / reservoir / well / ReservoirWell / ReservoirWell

Namespace: ReservoirWell

well.ReservoirWell.ReservoirWell

Table of contents

Type Aliases

Contents

Type Aliases

CellSizeOptions

Ƭ CellSizeOptions: Object

Type declaration

NameTypeDescription
allowedcellsizes?number[]The list of allowed cell sizes the ReservoirWell can use when using automatic level of detail (when autocellsize is enabled).
By providing a custom array of allowed cell sizes, users can finely control the appearance of the ReservoirWell automatic LOD.
The cell size is provided in local units (the same unit used when providing the ReservoirWell slices positions).
By default, the allowed cells sizes default to decremental size values, going from 1/10 of a slice width, down to the size of a slice pixel.
Ex: A slice of 100x100 pixels, where the slice width is 500m would default to allowed cell sizes:
[5, 12.5, 25, 50] (note how 6.25 has been omitted since it is too close to 5).
See autocellsize for more information.
autocellsize?booleanOn/off automatic change of reservoir cells LOD by dynamically selecting the cell size based on distance.
The closer the camera is to the reservoir, the more cells will be rendered,
Whenever the camera position changes:
  1. Each subgrid will compute the ideal cell size in world coordinate, that match the defined pixel size at the current zoom level.
  2. Based on the allowed cell sizes (in option allowedcellsizes), the closest size will be selected.
  3. Based on the cellsizethreshold, the subgrid will decide to regenerate the subgrid or not.
This operation is done per subgrid independently, so that far away subgrid don't become high-density. See pixelsbycell to control the ideal cell size on screen.
See allowedcellsizes for more control over which cell size to allow.
See cellsizethreshold to minimize downscaling the cell density when zooming back.
Enabled by default.
cellsize?numberManual constant cell size. Works only if autocellsize is disabled.
Default value is 10.
cellsizemode?CellSizeModeSets whether or not the cell size calculation logic is affected by the Plot scale.
Ex: If a user set the 3D Plot scale to x:1, y:1, z:5 :
Should cell generation be adjusted to compensate the x5 vertical scaling, (shorter cells vertically)?
Or should they remain faithful to the desired cell size in local coordinates (cells might look stretched in the viewer as a result of Plot scaling).
Default mode is CellSizeMode.ScaleNotAffect.
cellsizethreshold?numberPrevent too frequent cell size recalculation when autocellsize is enabled.
This prevent from loading a lower quality LOD too soon after the user get further away from the reservoir.
The Threshold value is a size multiplier, between 1 and +Infinity.
When zooming outward, reservoir cell size will only be updated if the measured cell size in pixel is >= (threshold * current cell size).
Set to 1 to disable the threshold effect.
Set to a value to Math.PositiveInfinity to permanently prevent the LOD from reverting to lower quality (Warning, reservoir will remain at high resolution, which is very CPU/GPU intensive).
See autocellsize for more information.
Default value is 4.
intersectionsize?numberThe cell size used in intersection calculation.
Because intersections are very compute intensive, they cannot be updated along the LOD and need to use a fixed value.
Default value is 10.
pixelsbycell?numberWhen autocellsize is enabled, define the desired size of a cell in screen pixels.
The principle is that this "screen" size is fixed, while the cell size in world coordinate will adapt to match the screen size, within the limitations of allowed cell sizes
See autocellsize for more information.
Default is 8 pixels;

CommonOptions

Ƭ CommonOptions: Object

Type declaration

NameTypeDescription
filtercallback?FilterCustom filtering function to let users implement very flexible cell filtering conditions.
Note: due to internal optimizations, it is faster to first filter cells using min/maxbound options via the setFilter method.
This callback is only meant for filters that cannot be done through the regular options (such as, filtering along specific coordinates, and/or using complex boolean algebra combinations).
highlightmode?HighlightModeEnable or disable visible cell highlight upon picking.
Default is HighlightMode.FrontFace, which highlight all the cell's visible faces.
occlusion?booleanEnable or disable reservoir cells occlusion culling optimization.
By detecting if a cell is occluded by its adjacent cells, the Reservoir can optimize render by only displaying visible cells.
Enabled by default, turning it off will greatly impact performances.
regenerationtimeout?numberMinimum time in milliseconds since the last camera movement, to allow the ReservoirWell to automatically update it's LOD.
Used to prevent undesired LOD updates when manipulating the camera, by delaying the LOD update by a set time.
Default is 500 ms.

EventMap

Ƭ EventMap: EventMap & { CubeCalculated: number ; PlaneCalculated: number }


Filter

Ƭ Filter: (value: number, subgridPosition: Vector3, position: Vector3, trajectoryPosition: Vector3, relativePosition: Vector3) => boolean

Type declaration

▸ (value, subgridPosition, position, trajectoryPosition, relativePosition): boolean

Custom filter callback function, to define if a cell should be filtered out or not.
This filter will be run once for each cell, each time the callback parameters defined below will be of the current cell to test.

Parameters
Name Type Description
valuenumberthe cell property value.
subgridPositionVector3the center of current subgrid in trajectory local coordinates.
positionVector3the center of the current cell in trajectory local coordinates.
trajectoryPositionVector3Cell center position in the grid space. x is the measured depth since the first slice, y and z are the vertical and horizontal grid axes in subgrid space.
relativePositionVector3Similar to trajectoryPosition, but in relative [0,1] interval range instead of local units.
Returns

boolean

true if cell need to be rendered, else false to hide the cell.


FilterOptions

Ƭ FilterOptions: Object

Options for cell filtering.
These parameters are used for the high-performance cell filtering.
Only cells within the defined ranges will be visible.

Type declaration

NameTypeDescription
maxbound?Vector4Vector of maximal data values x, y, z, w.
Cells above these values will be filtered out and won't be visible.
  • x represents the (measured) depth axis along the grid.
  • y represents the vertical axis relative to the slice plane.
  • z represents the horizontal axis relative to the slice plane.
  • w (value) represents the cell property value.
  • For example: a reservoir well of length 2500m, made of slices of size 60x60m, and values range being [-3, 7].
    • Then this grid minimum bounds are Vector3(0, -30, -30, -3)
    • And its maximum bounds are Vector3(2500, 30, 30, 7)
    • You can then define the visible cells by defining custom min/max bounds based on your actual data size and values.
minbound?Vector4Vector of minimal data values x, y, z, w.
Cells below these values will be filtered out and won't be visible.
  • x represents the (measured) depth axis along the grid.
  • y represents the vertical axis relative to the slice plane.
  • z represents the horizontal axis relative to the slice plane.
  • w (value) represents the cell property value.
  • For example: a reservoir well of length 2500m, made of slices of size 60x60m, and values range being [-3, 7].
    • Then this grid minimum bounds are Vector3(0, -30, -30, -3)
    • And its maximum bounds are Vector3(2500, 30, 30, 7)
    • You can then define the visible cells by defining custom min/max bounds based on your actual data size and values.
radius?RangeAllowed minimum/maximum radius (from the slice center) in the slice space.
The Range object define a minimum and maximum value, together forming a range.
The range strict minimum is 0 (the center of the slices), and the maximum is the distance between the slice center and the furthers slice corner.
For example, considering a reservoir well made of slices of size 60x60m:
  • To display the full reservoirwell, would require the Range(0, 43) (43 is larger than any center-corner distance)
  • To display the reservoirwell in a cylinder form up to the slice edges, would require the Range(0, 30)
  • To display a hollow reservoirWell, you can use minimal range larger than 0, such as Range(15, 30), and so on.

Options

Ƭ Options: OptionsBase & FilterOptions & CellSizeOptions & CommonOptions & { data: ReservoirWellData }


OptionsOut

Ƭ OptionsOut: Required<Options> & OptionsBaseOut & Required<FilterOptions> & Required<CommonOptions> & Omit<CellSizeOptions, "allowedcellsizes" | "autocellsize"> & Required<Pick<CellSizeOptions, "autocellsize">>


SetOptions

Ƭ SetOptions: Options & Omit<Options, "data" | "allowedcellsizes">


WellEventCallback

Ƭ WellEventCallback: (type: Events, source: any, args?: any) => void

Type declaration

▸ (type, source, args?): void

Parameters
Name Type
typeEvents
sourceany
Optional argsany
Returns

void