Skip to content

eulerjs API / @eulerjs/marine / SurfaceGrid

SurfaceGrid ​

Defined in: packages/marine/src/waves/SurfaceGrid.ts:25

The surface sampled on a horizontal grid fixed in the world, then interpolated bilinearly. Buoyancy uses it so its cost depends on the area under a hull, not on how finely the hull is voxelized. Nodes keep their grid-point offset between updates, so one inversion iteration per node is enough while the area moves slowly.

Interpolation rounds off the sharp wave crests: on the default sea, 0.5 m spacing is off by 3 mm on average and up to about 2 cm at the sharpest crests; the error shrinks with the square of the spacing.

Constructors ​

Constructor ​

ts
new SurfaceGrid(waves, spacing?): SurfaceGrid;

Defined in: packages/marine/src/waves/SurfaceGrid.ts:39

Parameters ​

ParameterTypeDefault value
wavesWaveSurfaceundefined
spacing?number0.5

Returns ​

SurfaceGrid

Properties ​

PropertyModifierTypeDefined in
spacingreadonlynumberpackages/marine/src/waves/SurfaceGrid.ts:27
wavesreadonlyWaveSurfacepackages/marine/src/waves/SurfaceGrid.ts:26

Accessors ​

knowsRiseRate ​

Get Signature ​

ts
get knowsRiseRate(): boolean;

Defined in: packages/marine/src/waves/SurfaceGrid.ts:74

Whether the waves say how fast the water at the surface rises: if not, riseRateAt is no use.

Returns ​

boolean


nodeCount ​

Get Signature ​

ts
get nodeCount(): number;

Defined in: packages/marine/src/waves/SurfaceGrid.ts:46

Number of nodes sampled by the last update.

Returns ​

number

Methods ​

heightAt() ​

ts
heightAt(worldX, worldZ): number;

Defined in: packages/marine/src/waves/SurfaceGrid.ts:79

Interpolated surface height; positions outside the last updated rectangle use its edge.

Parameters ​

ParameterType
worldXnumber
worldZnumber

Returns ​

number


riseRateAt() ​

ts
riseRateAt(worldX, worldZ): number;

Defined in: packages/marine/src/waves/SurfaceGrid.ts:84

Interpolated speed the water at the surface rises, m/s, where the waves say (knowsRiseRate).

Parameters ​

ParameterType
worldXnumber
worldZnumber

Returns ​

number


update() ​

ts
update(
   minimumX, 
   maximumX, 
   minimumZ, 
   maximumZ, 
   time
): void;

Defined in: packages/marine/src/waves/SurfaceGrid.ts:51

Samples every node needed to interpolate inside the given world rectangle at time.

Parameters ​

ParameterType
minimumXnumber
maximumXnumber
minimumZnumber
maximumZnumber
timenumber

Returns ​

void

Released under the MIT License.