API / geotoolkit3d / scene / reservoir / well / ReservoirWell / ReservoirWell
well.ReservoirWell.ReservoirWell
Type Aliases
Type Aliases
Ƭ CellSizeOptions: Object
| Name | Type | Description |
|---|---|---|
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? | boolean | On/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:
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? | number | Manual constant cell size. Works only if autocellsize is disabled. Default value is 10. |
cellsizemode? | CellSizeMode | Sets 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? | number | Prevent 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? | number | The 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? | number | When 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: Object
| Name | Type | Description |
|---|---|---|
filtercallback? | Filter | Custom 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? | HighlightMode | Enable or disable visible cell highlight upon picking. Default is HighlightMode.FrontFace, which highlight all the cell's visible faces. |
occlusion? | boolean | Enable 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? | number | Minimum 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 & { CubeCalculated: number ; PlaneCalculated: number }
Ƭ Filter: (value: number, subgridPosition: Vector3, position: Vector3, trajectoryPosition: Vector3, relativePosition: Vector3) => boolean
▸ (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.
| Name | Type | Description |
|---|---|---|
value | number | the cell property value. |
subgridPosition | Vector3 | the center of current subgrid in trajectory local coordinates. |
position | Vector3 | the center of the current cell in trajectory local coordinates. |
trajectoryPosition | Vector3 | Cell 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. |
relativePosition | Vector3 | Similar to trajectoryPosition, but in relative [0,1] interval range instead of local units. |
boolean
true if cell need to be rendered, else false to hide the cell.
Ƭ 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.
| Name | Type | Description |
|---|---|---|
maxbound? | Vector4 | Vector of maximal data values x, y, z, w. Cells above these values will be filtered out and won't be visible.
|
minbound? | Vector4 | Vector of minimal data values x, y, z, w. Cells below these values will be filtered out and won't be visible.
|
radius? | Range | Allowed 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:
|
Ƭ Options: OptionsBase & FilterOptions & CellSizeOptions & CommonOptions & { data: ReservoirWellData }
Ƭ OptionsOut: Required<Options> & OptionsBaseOut & Required<FilterOptions> & Required<CommonOptions> & Omit<CellSizeOptions, "allowedcellsizes" | "autocellsize"> & Required<Pick<CellSizeOptions, "autocellsize">>
Ƭ SetOptions: Options & Omit<Options, "data" | "allowedcellsizes">
Ƭ WellEventCallback: (type: Events, source: any, args?: any) => void
▸ (type, source, args?): void
| Name | Type |
|---|---|
type | Events |
source | any |
Optional args | any |
void