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.
Members
agereadonly
0 fresh, 1 ancient — the draw the height profile degrades with.
angularRadiusreadonly
Half the crater's own angular width, radians.
axisreadonly
The jittered center, normalized. Body-fixed.
bitangentreadonly
cosReachreadonly
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
phasesreadonly
One phase per entry of RAY_HARMONICS, radians.
tangentreadonly
An orthonormal pair spanning the tangent plane at axis.