Skip to content

Documentation / scene / GerstnerWaveGenerator

Class: GerstnerWaveGenerator

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:11

Gerstner wave generator.

Extends

  • Disposable

Implements

Constructors

Constructor

new GerstnerWaveGenerator(): GerstnerWaveGenerator

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:18

Creates a new Gerstner wave generator.

Returns

GerstnerWaveGenerator

Overrides

Disposable.constructor

Accessors

disposed

Get Signature

get disposed(): boolean

Defined in: libs/base/dist/index.d.ts:6065

Returns

boolean

Implementation of

WaveGenerator.disposed

Inherited from

Disposable.disposed


numWaves

Get Signature

get numWaves(): number

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:53

Gets the number of waves.

Returns

number

Set Signature

set numWaves(val): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:56

Parameters
val

number

Returns

void

Methods

on()

on<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:594

IEventTarget.on

Type Parameters

K

K extends "dispose"

Parameters

type

K

listener

EventListener<{ dispose: []; }, K>

context?

unknown

Returns

void

Implementation of

WaveGenerator.on

Inherited from

Disposable.on


once()

once<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:598

IEventTarget.once

Type Parameters

K

K extends "dispose"

Parameters

type

K

listener

EventListener<{ dispose: []; }, K>

context?

unknown

Returns

void

Implementation of

WaveGenerator.once

Inherited from

Disposable.once


off()

off<K>(type, listener?, context?): void

Defined in: libs/base/dist/index.d.ts:602

IEventTarget.off

Type Parameters

K

K extends "dispose"

Parameters

type

K

listener?

EventListener<{ dispose: []; }>

context?

unknown

Returns

void

Implementation of

WaveGenerator.off

Inherited from

Disposable.off


dispatchEvent()

dispatchEvent<K>(type, ...args): void

Defined in: libs/base/dist/index.d.ts:606

IEventTarget.dispatchEvent

Type Parameters

K

K extends "dispose"

Parameters

type

K

args

...object[K]

Returns

void

Implementation of

WaveGenerator.dispatchEvent

Inherited from

Disposable.dispatchEvent


dispose()

dispose(): void

Defined in: libs/base/dist/index.d.ts:6066

Dispose the wave generator.

Returns

void

Implementation of

WaveGenerator.dispose

Inherited from

Disposable.dispose


onDispose()

protected onDispose(): void

Defined in: libs/base/dist/index.d.ts:6067

Returns

void

Inherited from

Disposable.onDispose


clone()

clone(): GerstnerWaveGenerator

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:43

Create a new instance from this

Returns

GerstnerWaveGenerator

The created instance

Implementation of

WaveGenerator.clone


deleteWave()

deleteWave(index): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:70

Delete wave at index

Parameters

index

number

Returns

void


insertWave()

insertWave(index): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:79

Delete wave at index

Parameters

index

number

Returns

void


setWaveDirection()

setWaveDirection(waveIndex, angle): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:92

Sets the angle of the wave direction in radians.

Parameters

waveIndex

number

index of the wave to set.

angle

number

angle of the wave direction in radians.

Returns

void


getWaveDirection()

getWaveDirection(waveIndex): number

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:103

Gets the angle of the wave direction in radians.

Parameters

waveIndex

number

index of the wave to get.

Returns

number

Angle of the wave direction in radians.


setWaveSteepness()

setWaveSteepness(waveIndex, steepness): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:111

Sets the steepness of the wave.

Parameters

waveIndex

number

index of the wave to set.

steepness

number

Steepness of the wave.

Returns

void


getWaveSteepness()

getWaveSteepness(waveIndex): number

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:122

Gets the steepness of the wave.

Parameters

waveIndex

number

index of the wave to set.

Returns

number

Steepness of the wave.


setWaveAmplitude()

setWaveAmplitude(waveIndex, val): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:130

Sets the amplitude of the wave.

Parameters

waveIndex

number

index of the wave to set.

val

number

Amplitude of the wave.

Returns

void


getWaveAmplitude()

getWaveAmplitude(waveIndex): number

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:141

Gets the amplitude of the wave.

Parameters

waveIndex

number

index of the wave to set.

Returns

number

Amplitude of the wave.


setWaveLength()

setWaveLength(waveIndex, val): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:149

Sets the length of the wave.

Parameters

waveIndex

number

index of the wave to set.

val

number

Length of the wave.

Returns

void


getWaveLength()

getWaveLength(waveIndex): number

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:160

Gets the length of the wave.

Parameters

waveIndex

number

index of the wave to set.

Returns

number

Length of the wave.


isOmniWave()

isOmniWave(waveIndex): boolean

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:168

Query if the wave is an omni-directional wave.

Parameters

waveIndex

number

index of the wave to set.

Returns

boolean

true if the wave is an omni-directional wave, false otherwise.


setOmniWave()

setOmniWave(waveIndex, isOmni): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:176

Sets whether the wave is an omni-directional wave.

Parameters

waveIndex

number

index of the wave to set.

isOmni

boolean

true if the wave is an omni-directional wave, false otherwise.

Returns

void


getOriginX()

getOriginX(waveIndex): number

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:187

Gets the X coordinate of the wave origin if it is an omni-directional wave.

Parameters

waveIndex

number

index of the wave to set.

Returns

number

X coordinate of the wave origin if it is an omni-directional wave, 0 otherwise.


getOriginZ()

getOriginZ(waveIndex): number

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:195

Gets the Z coordinate of the wave origin if it is an omni-directional wave.

Parameters

waveIndex

number

index of the wave to set.

Returns

number

Z coordinate of the wave origin if it is an omni-directional wave, 0 otherwise.


setOrigin()

setOrigin(waveIndex, x, z): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:204

Sets the X and Z coordinates of the wave origin if it is an omni-directional wave.

Parameters

waveIndex

number

index of the wave to set.

x

number

X coordinate of the wave origin

z

number

Z coordinate of the wave origin

Returns

void


update()

update(): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:216

Update the wave generator.

Returns

void

Implementation of

WaveGenerator.update


needUpdate()

needUpdate(): boolean

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:218

Wether this wave generator's update() method should be called this frame

Returns

boolean

true if this wave generator's update() method should be called this frame

Implementation of

WaveGenerator.needUpdate


calcClipmapTileAABB()

calcClipmapTileAABB(minX, maxX, minZ, maxZ, y, outAABB): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:222

Parameters

minX

number

Minimum X position of the clipmap tile.

maxX

number

Maximum X position of the clipmap tile.

minZ

number

Minimum Z position of the clipmap tile.

maxZ

number

Maximum Z position of the clipmap tile.

y

number

Y position of the water surface.

outAABB

AABB

Output AABB.

Returns

void

Implementation of

WaveGenerator.calcClipmapTileAABB


calcFragmentNormal()

calcFragmentNormal(scope, xz): PBShaderExp

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:234

Parameters

scope

PBInsideFunctionScope

Global scope of the shader program.

xz

PBShaderExp

XZ position.

Returns

PBShaderExp

Implementation of

WaveGenerator.calcFragmentNormal


calcFragmentNormalAndFoam()

calcFragmentNormalAndFoam(scope, xz): PBShaderExp

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:247

Calculate fragment normal and foam.

Parameters

scope

PBInsideFunctionScope

Global scope of the shader program.

xz

PBShaderExp

XZ position.

Returns

PBShaderExp

Implementation of

WaveGenerator.calcFragmentNormalAndFoam


setupUniforms()

setupUniforms(scope, uniformGroup): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:251

Setup uniforms for the shader program.

Parameters

scope

PBGlobalScope

Global scope of the shader program.

uniformGroup

number

Bind group index for uniform values

Returns

void

Implementation of

WaveGenerator.setupUniforms


calcVertexPositionAndNormal()

calcVertexPositionAndNormal(scope, inPos, outPos, outNormal): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:344

Calculate vertex position and normal.

Parameters

scope

PBInsideFunctionScope

Global scope of the shader program.

inPos

PBShaderExp

Input position.

outPos

PBShaderExp

Output position.

outNormal

PBShaderExp

Output normal.

Returns

void

Implementation of

WaveGenerator.calcVertexPositionAndNormal


applyWaterBindGroup()

applyWaterBindGroup(bindGroup): void

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:353

Apply water bind group.

Parameters

bindGroup

BindGroup

Bind group to apply.

Returns

void

Implementation of

WaveGenerator.applyWaterBindGroup


isOk()

isOk(): boolean

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:358

Check if the wave generator is ok.

Returns

boolean

Implementation of

WaveGenerator.isOk


getHash()

getHash(): string

Defined in: libs/scene/src/render/gerstner_wavegenerator.ts:362

Get the shader hash of the wave generator.

Returns

string

Implementation of

WaveGenerator.getHash

Released under the MIT License.