API / geotoolkit3d / scene / seismic / Fence / Fence
A seismic fence object that represent the cross section of a seismic volume with an arbitrary line.
A seismic fence can be used to display seismic along a user crafted path or a well trajectory for example.
The resulting shape will be composed of contiguous seismic panels that form a fence.
The given coordinates describes the inflexion points of the path.
It's expected to be in IJ coordinates and to match actual existing IJ indices.
This shape uses a SeismicReader to fetch the traces and metadata.
The reader's metadata should contain the proper 'sections' in order for the fence to display correctly.
This Shape is compatible with RemoteSeismicReader using INTGeoServer. (version >= 2.18)
As the rasterization process is delegated to the SeismicPipeline, all the capabilities of the pipeline are available (colormap, interpolation, etc).
It can be configured at initialization time using 'options.pipeline.options'.
And/Or at runtime using
`setOptions({ pipeline:{ options:{...} } })`
This fence also supports an 'overlay' feature that lets you provide a [group](../classes/geotoolkit.scene.group.group.md) containing 2D shapes.
The content of this group will be rendered on top of the seismic.
This group modellimits and bounds will be automatically set to the correct values.
The group's content should use coordinates in trace/sample domain.
Note that this group will be rasterized in a way similar to how the seismic is rasterized itself.
↳
Fence
Constructors
Methods
Methods
▸ add(object): Fence
Adds object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ afterRender(scene, camera, plot, renderer): Fence
This function is called after rendering and can update this object's content.
It should not trigger any invalidateObject though.
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.
This will be executed after the transformations simplification.
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 |
▸ beforeRender(scene, camera, plot, renderer): Fence
This function is called prior to rendering and can update this object's content.
It should not trigger any invalidateObject though.
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.
This will be executed after the transformations simplification.
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 |
▸ dispose(): void
Dispose object
void
▸ getClassName(): string
string
IIntersectableMesh.getClassName
▸ getColorProvider(): RgbaColor | ColorProvider
Return the color provider of the intersectable.
IIntersectableMesh.getColorProvider
▸ getFencePanel(): FencePanel[]
Returns an array that contains all the fence panels
Deprecated
since 5.0, please use getFencePanels() instead for more correct naming
panels
▸ getFencePanels(): FencePanel[]
Returns an array that contains all the fence panels
fence panels
▸ getHighlightedObjects(): FencePanel[]
Get selected fence panels in the Fence that will generate a highlight
ICustomHighlight.getHighlightedObjects
▸ getIndexCoordinates(): IndexCoordinates
Get the index coordinates
The index coordinates
▸ getMesh(): Mesh<BufferGeometry<NormalBufferAttributes>, Material | Material[], Object3DEventMap>
Return the mesh to be intersected.
Mesh<BufferGeometry<NormalBufferAttributes>, Material | Material[], Object3DEventMap>
▸ getMeshBoundingBox(target): void
Return the bounding box of the mesh.
The bounding box should be calculated directly from the mesh's geometry vertex positions, representing the bounding box. The box coordinates must be in the local coordinate space of the mesh returned by getMesh method.
| Name | Type | Description |
|---|---|---|
target | Box3 | result |
void
IIntersectableMesh.getMeshBoundingBox
▸ getOptions(): OptionsBaseOut
Get the Fence options
▸ getTriangle(triangleIndex, target): void
Return the triangle data at given index.
Vertices coordinates must be in the local coordinate space of the mesh returned by getMesh method.
| Name | Type | Description |
|---|---|---|
triangleIndex | number | the index of the triangle |
target | TriangleData | result |
void
IIntersectableMesh.getTriangle
▸ getTriangleCount(): number
Return the number of triangle.
number
IIntersectableMesh.getTriangleCount
▸ getVisible(): boolean
Get visible
boolean
true, if object is visible
▸ invalidateObject<T>(event?): Fence
Notifies this object and its parent that this object has been invalidated.
If this object is in a Plot, it will be marked as dirty and will trigger a rendering cycle.
| Name |
|---|
T |
| Name | Type | Description |
|---|---|---|
Optional event | Event<T> | The event to fire |
▸ isDisposed(): boolean
Returns whether this object has been disposed
boolean
▸ isSelectable(): boolean
Return if this object can be picked/selected (see RendererPicking).
boolean
▸ notify(type, source, args?): Fence
Notify listeners
| Name | Type | Description |
|---|---|---|
type | string | event types |
source | any | of the event |
Optional args | any | arguments of the event |
this
▸ off(type?, callback?): Fence
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 | Description |
|---|---|---|
Optional type | string | type of the event |
Optional callback | EventListener | function to be called |
this
▸ off<E>(type, callback): Fence
| Name | Type |
|---|---|
E | extends string |
▸ on(type, callback, options?): Fence
Attach listener on event that will be called whenever the specified event is delivered to the target
If the callback function is already in the list of event listeners for this target, the function is not added a second time.
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.
| Name | Type | Description |
|---|---|---|
type | string | type of event or property |
callback | EventListener | to be called |
Optional options | Options | options of subscription |
this
▸ on<E>(type, callback, options?): Fence
| Name | Type |
|---|---|
E | extends string |
| Name | Type |
|---|---|
type | E |
callback | (eventType: E, sender: Fence, args: EventMap[E]) => void |
Optional options | Options |
▸ onStatsUpdated(metrics): Fence
This function is called when the plot has updated performance metric.
It will be called every set number of frames.
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. |
▸ Protected onVisibilityChanged(): void
This method is called if visibility is changed. Send event Events.VisibilityChanged
void
▸ remove(object): Fence
Removes object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ resetTiles(): void
Reset the tiles of this object. Depending on the object options, the tiles might be filled with a fill color.
void
▸ setOptions(options?): Fence
Set the Fence options
| Name | Type |
|---|---|
Optional options | OptionsBase |
▸ setPosition(position): Fence
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
▸ setRotation(x, y, z, order?): Fence
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
▸ setSelectable(selectable): void
Set if this object can be picked/selected (see RendererPicking).
| Name | Type | Description |
|---|---|---|
selectable | boolean | if can be selected |
void
▸ setVisible(visible, silent?): Fence
Set visible
| Name | Type | Description |
|---|---|---|
visible | boolean | true, if object is visible |
Optional silent | boolean | true, if object shouldn't be invalidated |
this
▸ updateObject(scene, camera): Fence
This function is called prior to rendering and can update this object's content.
It should not trigger any invalidateObject though.
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.
This will be executed before the transformations simplification.
See
Plot for more details on the render steps
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | Camera | The camera |
▸ 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
▸ Static getClassName(): string
string
▸ Static register(): void
Register object for special processing through a callback function
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