RayCrater

interface RayCrater

A named young crater: the ones whose rays are visible from orbit.

Rays are albedo rather than height, so nothing here is read by craterField. What this type exists to guarantee is that the two agree about where the crater is — a ray system centered on ground with no bowl under it is the one way this can look obviously wrong, and it is the way it looks wrong if the rays are placed by a second, independent draw.

So these are not new craters. They are craters the lattice already places, enumerated once per body and kept, and every field on them is read back from the same two hashes levelContribution reads.

universe/src/craters.ts:679

Members

agereadonly

age: number

0 fresh, 1 ancient — the draw the height profile degrades with.

angularRadiusreadonly

angularRadius: number

Half the crater's own angular width, radians.

axisreadonly

axis: Vec3

The jittered center, normalized. Body-fixed.

bitangentreadonly

bitangent: Vec3

cosReachreadonly

cosReach: number

Cosine of the angle the rays reach, for the rejection test.

Stored rather than derived per sample because the test runs for every crater on the body at every sample and the reach is a property of the crater: sixteen cos calls a sample is more than the whole ray field costs when nothing is in range.

diameterreadonly

diameter: number

phasesreadonly

phases: Float64Array

One phase per entry of RAY_HARMONICS, radians.

tangentreadonly

tangent: Vec3

An orthonormal pair spanning the tangent plane at axis.