FineTerrain
A terrain k times finer, from refineTerrain: the same queries as Terrain, in fine voxels, answered per brick from the coarse heightfield.
Defined in: fine.ts:47
Properties
| Property | Modifier | Type | Description | Defined in |
|---|---|---|---|---|
coarse | readonly | Terrain | The terrain it refines; its heights stay the source of truth. | fine.ts:49 |
depth | readonly | number | Extent in fine columns along z: the coarse extent times k. | fine.ts:57 |
k | readonly | number | Fine voxels per coarse voxel. | fine.ts:51 |
options | readonly | FineTerrainOptions | The options it was refined with, as given. | fine.ts:53 |
waterTop | readonly | number | Top fine voxel of the water, when a column is flooded. | fine.ts:59 |
width | readonly | number | Extent in fine columns along x: the coarse extent times k. | fine.ts:55 |
Methods
columnSpan()
columnSpan(ox: number, oz: number): [number, number];Defined in: fine.ts:69
The same for one 8x8 brick column at (ox, oz). Edit a box per column for speed.
Parameters
| Parameter | Type |
|---|---|
ox | number |
oz | number |
Returns
[number, number]
fillBrick()
fillBrick(
cells: Uint8Array,
ox: number,
oy: number,
oz: number,
base: number,
top?: TopOverride
): boolean;Defined in: fine.ts:75
Write one 8^3 brick, as Terrain.fillBrick. top is looked up on coarse
columns (the settlement's paths and yards) and applies to the top two
fine voxels, with no blades; without one, the options' top applies.
Parameters
| Parameter | Type |
|---|---|
cells | Uint8Array |
ox | number |
oy | number |
oz | number |
base | number |
top? | TopOverride |
Returns
boolean
heightAt()
heightAt(x: number, z: number): number;Defined in: fine.ts:61
Ground height (top solid voxel) of a fine column, before blades.
Parameters
| Parameter | Type |
|---|---|
x | number |
z | number |
Returns
number
maxY()
maxY(): number;Defined in: fine.ts:65
Highest Y anything is written at, blades included.
Returns
number
pick()
pick(
origin: Vec3,
dir: Vec3,
opts?: object
): Vec3 | null;Defined in: fine.ts:77
First point where a ray meets the ground (or, with water, the water), as Terrain.pick.
Parameters
| Parameter | Type |
|---|---|
origin | Vec3 |
dir | Vec3 |
opts? | { maxT?: number; water?: boolean; } |
opts.maxT? | number |
opts.water? | boolean |
Returns
Vec3 | null
spanOf()
spanOf(
x0: number,
z0: number,
x1: number,
z1: number
): [number, number];Defined in: fine.ts:67
Lowest and highest Y written within a fine-voxel footprint, for sizing edits.
Parameters
| Parameter | Type |
|---|---|
x0 | number |
z0 | number |
x1 | number |
z1 | number |
Returns
[number, number]
waterAt()
waterAt(x: number, z: number): boolean;Defined in: fine.ts:63
Is this fine column under water?
Parameters
| Parameter | Type |
|---|---|
x | number |
z | number |
Returns
boolean
topOverrideData()
A top override as data: top evaluated once on every column of terrain, into palette slots indexed x + z width. The result gives the same bricks as the function, in Terrain.fillBrick and FineTerrain.fillBrick (which look top up on coarse columns), and it crosses to a worker.
FineTerrainInit
Everything a FineTerrain is rebuilt from, as structured-clonable data: the coarse terrain, the factor and the options, with the top override as data. From fineTerrainInit, rebuilt by fineTerrainFrom. Transfer terrain.heights.buffer and options.top.buffer to skip the copies; the init holds copies...