Last updated

API / geotoolkit3d / scene / volumetric / SinglePassRenderingVolume / SinglePassRenderingVolume

Class: SinglePassRenderingVolume

volumetric.SinglePassRenderingVolume.SinglePassRenderingVolume

A 3D Object that represent a unit cube with a 3D data texture which display a volume rendering.
SinglePassRenderingVolume supports both 3D and 4D volume rendering.
Creating a volume should follow the following steps:

  1. Instantiate the SinglePassVolumeRendering.
  2. Initialize the data dimensions and type via .initializeVolume(), or via the constructor options in step 1.
  3. Set the volume data via .setData().
    Further re-initialization of the Volume type/dimensions will discard existing data.

Hierarchy

Table of contents

Constructors
Methods

Contents

Constructors

new SinglePassRenderingVolume(options)

new SinglePassRenderingVolume(options?)

Parameters

Name Type
Optional optionsOptions

Overrides

Object3D.constructor

Methods

add

add(object): SinglePassRenderingVolume

Adds object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap> | Object3D<Object3DEventMap>[]object

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.add


afterRender

afterRender(scene, camera, plot, renderer): SinglePassRenderingVolume

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

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera used for this render phase.
plotPlotThe 3D plot
rendererWebGLRendererThe renderer

Returns

SinglePassRenderingVolume

Inherited from

Object3D.afterRender


beforeRender

beforeRender(scene, camera, plot, renderer): SinglePassRenderingVolume

To update the camera position for the volume rendering

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera used for this render phase.
plotPlotThe 3D plot
rendererWebGLRendererThe renderer

Returns

SinglePassRenderingVolume

this

Overrides

Object3D.beforeRender


dispose

dispose(): void

Dispose all event listeners, Object3D, cache

Returns

void

Overrides

Object3D.dispose


get4DVolumeIndex

get4DVolumeIndex(): number

Get the index of the 4D volume

Returns

number

index The index for the 4th dimension


getClassName

getClassName(): string

Returns

string

Overrides

Object3D.getClassName


getCurrentRaySamplingRate

getCurrentRaySamplingRate(): number

Get current ray sampling rate used by volume.
The ray sampling rate may change based on the user-defined setting in setOptions option.samplingrateoptions.
If both enablequalitypass and enableadaptiverate options are disabled, the current sampling rate will be equal to the user-defined option 'samplingrateoptions.raysamplingrate'.
If enablequalitypass or enableadaptiverate are enabled, the current sampling rate will change based on the following logic:

  • If enablequalitypass is enabled, the volume can render either in fast or quality mode
    • In 'fast' mode, if enableadaptiverate is false, the sampling rate is set to the user-defined option samplingrateoptions.raysamplingrate.
    • In 'fast' mode, if enableadaptiverate is true, the sampling rate is set to an adaptive value based on current performance (minimum is samplingrateoptions.raysamplingrate, maximum is samplingrateoptions.maxsamplingrate).
    • In 'quality' mode (QualityRendering pass), the sampling rate is set to the user-defined option samplingrateoptions.maxsamplingrate.
  • If enablequalitypass is disabled, the volume will render exclusively in 'fast' mode as described above

Returns

number

current ray sampling rate


getData

getData(): DataOptionsOut

Get data of this volume.

Returns

DataOptionsOut

data options


getOptions

getOptions(): OptionsBaseOut

Get the SinglePassRenderingVolume options

Returns

OptionsBaseOut

Overrides

Object3D.getOptions


getVisible

getVisible(): boolean

Get visible

Returns

boolean

true, if object is visible

Inherited from

Object3D.getVisible


initializeVolume

initializeVolume(options): SinglePassRenderingVolume

Initialize Volume
Define the volume type (3D/4D), its data dimensions (number of samples)

Throws

if volume already initialized.

Parameters

Name Type Description
optionsInitOptionsSinglePassRenderingVolume.InitOptions

Returns

SinglePassRenderingVolume

this


invalidateObject

invalidateObject<T>(event?): SinglePassRenderingVolume

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.

Type parameters

Name
T

Parameters

Name Type Description
Optional eventEvent<T>The event to fire

Returns

SinglePassRenderingVolume

Inherited from

Object3D.invalidateObject


is4DVolumeIndexReady

is4DVolumeIndexReady(index): boolean

Return true if the specified 4D volume index is loaded and ready and can be selected via set4DVolumeIndex. If false is returned, this means this index isn't loaded yet, or this volume is not 4D, and selection of that index via set4DVolumeIndex will have no effect and log a console warning.

Parameters

Name Type Description
indexnumberThe index for the 4th dimension

Returns

boolean


isAdaptiveSamplingRateSupported

isAdaptiveSamplingRateSupported(): boolean

Check if adaptive sampling rate is supported on current browser/device.

Returns

boolean

true if Supported, otherwise false.


isDisposed

isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

Object3D.isDisposed


isSelectable

isSelectable(): boolean

Return if this object can be picked/selected (see RendererPicking).

Returns

boolean

Inherited from

Object3D.isSelectable


notify

notify(type, source, args?): SinglePassRenderingVolume

Notify listeners

Parameters

Name Type Description
typestringevent types
sourceanyof the event
Optional argsanyarguments of the event

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.notify


off

off(type?, callback?): SinglePassRenderingVolume

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.

Parameters

Name Type Description
Optional typestringtype of the event
Optional callbackEventListenerfunction to be called

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.off

off<E>(type, callback): SinglePassRenderingVolume

Type parameters

NameType
Eextends string

Parameters

Name Type
typeE
callback(eventType: E, sender: SinglePassRenderingVolume, args: EventMap[E]) => void

Returns

SinglePassRenderingVolume

Inherited from

Object3D.off


on

on(type, callback, options?): SinglePassRenderingVolume

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.

Parameters

Name Type Description
typestringtype of event or property
callbackEventListenerto be called
Optional optionsOptionsoptions of subscription

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.on

on<E>(type, callback, options?): SinglePassRenderingVolume

Type parameters

NameType
Eextends string

Parameters

Name Type
typeE
callback(eventType: E, sender: SinglePassRenderingVolume, args: EventMap[E]) => void
Optional optionsOptions

Returns

SinglePassRenderingVolume

Inherited from

Object3D.on


onStatsUpdated

onStatsUpdated(metrics): SinglePassRenderingVolume

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.

Parameters

Name Type Description
metricsPerformanceMetricsThe performance metrics.

Returns

SinglePassRenderingVolume

Inherited from

Object3D.onStatsUpdated


onVisibilityChanged

Protected onVisibilityChanged(): void

This method is called if visibility is changed. Send event Events.VisibilityChanged

Returns

void

Inherited from

Object3D.onVisibilityChanged


release4DVolumeIndex

release4DVolumeIndex(index): void

Remove the volume data for the given index only, allowing garbage collection.
If the volume index released is currently active and being viewed, it will continue to be able to render (as it is currently loaded on the GPU memory), until a different index is selected.

Parameters

Name Type Description
indexnumberThe index for the 4th dimension

Returns

void


remove

remove(object): SinglePassRenderingVolume

Removes object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap> | Object3D<Object3DEventMap>[]object

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.remove


set4DVolumeIndex

set4DVolumeIndex(index): void

Set the index of the 4D volume

Throws

if the index is invalid.

Parameters

Name Type Description
indexnumberThe index for the 4th dimension: if the index provided is not an integer value,, it will interpolate between the two nearest integer-indexed volume data points.

Returns

void


setData

setData(options): SinglePassRenderingVolume

Set data to this volume

Throws

if the volume data is invalid.

Parameters

Name Type Description
optionsDataOptionsSinglePassRenderingVolume.DataOptions

Returns

SinglePassRenderingVolume

this


setOptions

setOptions(options?): SinglePassRenderingVolume

Set the SinglePassRenderingVolume options

Parameters

Name Type Description
Optional optionsOptionsBaseThe options

Returns

SinglePassRenderingVolume

this

Overrides

Object3D.setOptions


setPosition

setPosition(position): SinglePassRenderingVolume

Set Object's local position.

Parameters

Name Type Description
positionObjectlocal position
Optional position.xnumber
Optional position.ynumber
Optional position.znumber

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.setPosition


setRotation

setRotation(x, y, z, order?): SinglePassRenderingVolume

Set Object's local rotation (Euler angles), in radians.

Parameters

Name Type Description
xnumberx angle
ynumbery angle
znumberz angle
Optional orderEulerOrdereuler order

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.setRotation


setSelectable

setSelectable(selectable): void

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

Parameters

Name Type Description
selectablebooleanif can be selected

Returns

void

Inherited from

Object3D.setSelectable


setVisible

setVisible(visible, silent?): SinglePassRenderingVolume

Set visible

Parameters

Name Type Description
visiblebooleantrue, if object is visible
Optional silentbooleantrue, if object shouldn't be invalidated

Returns

SinglePassRenderingVolume

this

Inherited from

Object3D.setVisible


updateColorMap

updateColorMap(colors): void

Update transfer function from an array of color string.

Parameters

Name Type Description
colorsstring[]Array of CSS color (like "rgba(x,x,x,x)" or "#ff00fc" or "0xff00fc")

Returns

void


updateObject

updateObject(scene, camera): SinglePassRenderingVolume

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

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera

Returns

SinglePassRenderingVolume

Inherited from

Object3D.updateObject


useOwnHighlight

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.

Returns

boolean

Inherited from

Object3D.useOwnHighlight


getClassName

Static getClassName(): string

Returns

string

Overrides

Object3D.getClassName


register

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.

Returns

void

Inherited from

Object3D.register