| Line |
Branch |
Exec |
Source |
| 1 |
|
|
/// @file |
| 2 |
|
|
/// @brief The JSON fields of crater and secondary crater layers and rim smoothing. |
| 3 |
|
|
#pragma once |
| 4 |
|
|
|
| 5 |
|
|
#include "terraingen/config/config.h" |
| 6 |
|
|
#include "terraingen/config/fields/common.h" |
| 7 |
|
|
#include "terraingen/config/fields/maps.h" |
| 8 |
|
|
|
| 9 |
|
|
#include <limits> |
| 10 |
|
|
#include <string_view> |
| 11 |
|
|
|
| 12 |
|
|
namespace terraingen::config { |
| 13 |
|
|
|
| 14 |
|
81 |
template <typename IO> void Fields(IO& io, Crater& crater) { |
| 15 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::Crater&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::Crater&):
✓ Branch 4 taken 34 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::Crater&):
✓ Branch 4 taken 38 times.
|
81 |
io("x", crater.x, |
| 16 |
|
|
"Centre along x in the surface's coordinates; the longitude in degrees on a sphere."); |
| 17 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::Crater&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::Crater&):
✓ Branch 4 taken 34 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::Crater&):
✓ Branch 4 taken 38 times.
|
81 |
io("y", crater.y, |
| 18 |
|
|
"Centre along y in the surface's coordinates; the latitude in degrees on a sphere."); |
| 19 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::Crater&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::Crater&):
✓ Branch 5 taken 34 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::Crater&):
✓ Branch 5 taken 38 times.
|
81 |
io("diameter", crater.diameter, "Rim-to-rim diameter, in metres.", "m", Above(0.0)); |
| 20 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::Crater&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::Crater&):
✓ Branch 4 taken 34 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::Crater&):
✓ Branch 4 taken 38 times.
|
81 |
io("age_gyr", crater.ageGyr, |
| 21 |
|
|
"Age in Gyr; older craters are more degraded under a degradation model and are applied " |
| 22 |
|
|
"earlier in oldest-first order.", |
| 23 |
|
81 |
"Gyr", AtLeast(0.0)); |
| 24 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::Crater&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::Crater&):
✓ Branch 4 taken 34 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::Crater&):
✓ Branch 4 taken 38 times.
|
81 |
io("id", crater.id, |
| 25 |
|
|
"Stable ID that seeds the crater's outline; 0 derives one from its position and diameter."); |
| 26 |
|
81 |
} |
| 27 |
|
|
|
| 28 |
|
150 |
template <typename IO> void Fields(IO& io, CraterSpacing& spacing) { |
| 29 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSpacing&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSpacing&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSpacing&):
✓ Branch 4 taken 78 times.
|
150 |
io("diameter_ratio", spacing.diameterRatio, |
| 30 |
|
|
"Largest ratio of two craters' diameters, at least 1, for them to count as similar in size " |
| 31 |
|
|
"and be kept apart.", |
| 32 |
|
150 |
"", AtLeast(1.0)); |
| 33 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSpacing&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSpacing&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSpacing&):
✓ Branch 4 taken 78 times.
|
150 |
io("separation", spacing.separation, |
| 34 |
|
|
"Least distance between the centres of similar-size craters, in larger diameters; 0 " |
| 35 |
|
|
"disables spacing.", |
| 36 |
|
150 |
"", AtLeast(0.0)); |
| 37 |
|
150 |
} |
| 38 |
|
|
|
| 39 |
|
659 |
template <typename IO> void Fields(IO& io, ResolutionFade& fade) { |
| 40 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ResolutionFade&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ResolutionFade&):
✓ Branch 4 taken 159 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ResolutionFade&):
✓ Branch 4 taken 491 times.
|
659 |
io("start_samples", fade.startSamples, |
| 41 |
|
|
"Samples across a feature's diameter up to which it is left out entirely.", "", |
| 42 |
|
659 |
AtLeast(0.0)); |
| 43 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ResolutionFade&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ResolutionFade&):
✓ Branch 4 taken 159 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ResolutionFade&):
✓ Branch 4 taken 491 times.
|
659 |
io("end_samples", fade.endSamples, |
| 44 |
|
|
"Samples across a feature's diameter from which it is applied in full; it fades in between " |
| 45 |
|
|
"the two counts.", |
| 46 |
|
659 |
"", Above(0.0)); |
| 47 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ResolutionFade&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ResolutionFade&):
✓ Branch 4 taken 159 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ResolutionFade&):
✓ Branch 4 taken 491 times.
|
659 |
io("shape", fade.shape, "Curve of the fade between the start and end sample counts."); |
| 48 |
|
659 |
} |
| 49 |
|
|
|
| 50 |
|
159 |
template <typename IO> void Fields(IO& io, CraterBlend& blend) { |
| 51 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterBlend&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterBlend&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterBlend&):
✓ Branch 4 taken 87 times.
|
159 |
io("start_radii", blend.startRadii, |
| 52 |
|
|
"Distance from the centre, in crater radii, up to which the interior is fully replaced.", "", |
| 53 |
|
159 |
AtLeast(0.0)); |
| 54 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterBlend&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterBlend&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterBlend&):
✓ Branch 4 taken 87 times.
|
159 |
io("end_radii", blend.endRadii, |
| 55 |
|
|
"Distance from the centre, in crater radii, from which the surrounding terrain is draped " |
| 56 |
|
|
"unchanged.", |
| 57 |
|
159 |
"", Above(0.0)); |
| 58 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterBlend&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterBlend&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterBlend&):
✓ Branch 4 taken 87 times.
|
159 |
io("shape", blend.shape, "Curve of the transition from the replaced interior to the exterior."); |
| 59 |
|
159 |
} |
| 60 |
|
|
|
| 61 |
|
1834 |
template <typename IO> void Fields(IO& io, ValueDistribution& distribution) { |
| 62 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ValueDistribution&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ValueDistribution&):
✓ Branch 4 taken 414 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ValueDistribution&):
✓ Branch 4 taken 1411 times.
|
1834 |
io("kind", distribution.kind, "Kind of distribution the value is drawn from."); |
| 63 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ValueDistribution&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ValueDistribution&):
✓ Branch 4 taken 414 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ValueDistribution&):
✓ Branch 4 taken 1411 times.
|
1834 |
io("a", distribution.a, |
| 64 |
|
|
"The constant value, the uniform's lower bound, the normal's mean or the log-normal's " |
| 65 |
|
|
"median."); |
| 66 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ValueDistribution&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ValueDistribution&):
✓ Branch 4 taken 414 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ValueDistribution&):
✓ Branch 4 taken 1411 times.
|
1834 |
io("b", distribution.b, |
| 67 |
|
|
"The uniform's upper bound, or the standard deviation (of the natural logarithm for a " |
| 68 |
|
|
"log-normal); unused for a constant."); |
| 69 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ValueDistribution&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ValueDistribution&):
✓ Branch 4 taken 414 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ValueDistribution&):
✓ Branch 4 taken 1411 times.
|
1834 |
OptionalBound(io, "min", distribution.min, |
| 70 |
|
|
"Lower bound drawn values are clamped to; unset leaves them unbounded below.", {}, |
| 71 |
|
1834 |
-std::numeric_limits<double>::infinity()); |
| 72 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ValueDistribution&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ValueDistribution&):
✓ Branch 5 taken 414 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ValueDistribution&):
✓ Branch 5 taken 1411 times.
|
1834 |
OptionalBound(io, "max", distribution.max, |
| 73 |
|
|
"Upper bound drawn values are clamped to; unset leaves them unbounded above, " |
| 74 |
|
|
"which normal and log-normal kinds do not allow."); |
| 75 |
|
1834 |
} |
| 76 |
|
|
|
| 77 |
|
163 |
template <typename IO> void Fields(IO& io, CraterIrregularity& irregularity) { |
| 78 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("enabled", irregularity.enabled, |
| 79 |
|
|
"Gives eligible craters irregular, non-circular outlines; off keeps every crater round."); |
| 80 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("seed", irregularity.seed, |
| 81 |
|
|
"Seed the outlines are drawn with, along with each crater's ID; changing it reshapes every " |
| 82 |
|
|
"irregular crater."); |
| 83 |
|
163 |
CraterSelection& selection = irregularity.selection; |
| 84 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("min_diameter", selection.minDiameter, |
| 85 |
|
163 |
"Smallest diameter, in metres, of craters made irregular.", "m", AtLeast(0.0)); |
| 86 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 5 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 5 taken 87 times.
|
163 |
OptionalBound(io, "max_diameter", selection.maxDiameter, |
| 87 |
|
|
"Largest diameter, in metres, of craters made irregular; unset has no upper " |
| 88 |
|
|
"limit.", |
| 89 |
|
163 |
"m", std::numeric_limits<double>::infinity(), AtLeast(0.0)); |
| 90 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("min_age_gyr", selection.minAgeGyr, "Youngest age, in Gyr, of craters made irregular.", |
| 91 |
|
163 |
"Gyr", AtLeast(0.0)); |
| 92 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 5 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 5 taken 87 times.
|
163 |
OptionalBound(io, "max_age_gyr", selection.maxAgeGyr, |
| 93 |
|
|
"Oldest age, in Gyr, of craters made irregular; unset has no upper limit.", "Gyr", |
| 94 |
|
163 |
std::numeric_limits<double>::infinity(), AtLeast(0.0)); |
| 95 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("manual", selection.manual, |
| 96 |
|
|
"Makes manual craters irregular too; otherwise only generated craters are."); |
| 97 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("rough_share", irregularity.roughShare, |
| 98 |
|
163 |
"Share of eligible craters, from 0 to 1, given rough, wavy rims.", "", UnitInterval()); |
| 99 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("model", irregularity.model, "How rough rims are drawn."); |
| 100 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("scatter", irregularity.scatter, |
| 101 |
|
|
"With du_2024, scatters each crater's spectrum by the fits' measured misfits and noise."); |
| 102 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("max_deviation", irregularity.maxDeviation, |
| 103 |
|
|
"With du_2024, the largest deviation of a rim from a circle, in radii; outlines beyond it " |
| 104 |
|
|
"are scaled down to it.", |
| 105 |
|
163 |
"", AboveUpTo(0.0, 0.5)); |
| 106 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("roughness", irregularity.roughness, |
| 107 |
|
|
"With power_law, the RMS deviation of a rough rim from a circle, in crater radii, drawn per " |
| 108 |
|
|
"crater."); |
| 109 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("spectral_slope", irregularity.spectralSlope, |
| 110 |
|
|
"With power_law, the exponent s of the rim harmonics' amplitudes, falling as k^-s, drawn " |
| 111 |
|
|
"per crater; higher values leave less fine waviness."); |
| 112 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("min_harmonic", irregularity.minHarmonic, |
| 113 |
|
|
"With power_law, the lowest harmonic of the rim's waviness, from 1 to 64.", "", |
| 114 |
|
163 |
Between(1.0, 64.0)); |
| 115 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("max_harmonic", irregularity.maxHarmonic, |
| 116 |
|
|
"With power_law, the highest harmonic of the rim's waviness, at most 64; higher harmonics " |
| 117 |
|
|
"add finer wiggles.", |
| 118 |
|
163 |
"", Between(1.0, 64.0)); |
| 119 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("elongated_share", irregularity.elongatedShare, |
| 120 |
|
|
"Share of eligible craters, from 0 to 1, made elliptical, keeping their area.", "", |
| 121 |
|
163 |
UnitInterval()); |
| 122 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("ellipticity", irregularity.ellipticity, |
| 123 |
|
|
"Long over short rim-to-rim diameter of elliptical craters, drawn per crater; at least 1."); |
| 124 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("heading", irregularity.heading, |
| 125 |
|
|
"Heading of elliptical craters' long axes, in radians counter-clockwise from +x; unset " |
| 126 |
|
|
"gives random headings.", |
| 127 |
|
|
"rad"); |
| 128 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("heading_spread", irregularity.headingSpread, |
| 129 |
|
|
"Largest random turn of a long axis either way from the heading, in radians.", "rad", |
| 130 |
|
163 |
AtLeast(0.0)); |
| 131 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("marks_share", irregularity.marksShare, |
| 132 |
|
|
"Share of eligible craters, from 0 to 1, given radial marks: ridges and grooves down the " |
| 133 |
|
|
"wall, strongest where it is steepest.", |
| 134 |
|
163 |
"", UnitInterval()); |
| 135 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("marks_amplitude", irregularity.marksAmplitude, |
| 136 |
|
|
"Largest radial shift of the wall by the marks, in crater radii, drawn per crater; below " |
| 137 |
|
|
"marks_fade_radii / 3.75."); |
| 138 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("marks_knots", irregularity.marksKnots, |
| 139 |
|
|
"Random shifts around the crater the marks pass through, from 3 to 1024; more knots give " |
| 140 |
|
|
"narrower marks.", |
| 141 |
|
163 |
"", Between(3.0, 1024.0)); |
| 142 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("marks_inner_radii", irregularity.marksInnerRadii, |
| 143 |
|
|
"Distance from the centre, in crater radii, where the marks reach full strength.", "", |
| 144 |
|
163 |
Inside(0.0, 1.0)); |
| 145 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("marks_outer_radii", irregularity.marksOuterRadii, |
| 146 |
|
|
"Distance from the centre, in crater radii, where the marks start to fade; at most 1 minus " |
| 147 |
|
|
"marks_fade_radii.", |
| 148 |
|
163 |
"", Inside(0.0, 1.0)); |
| 149 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterIrregularity&):
✓ Branch 4 taken 87 times.
|
163 |
io("marks_fade_radii", irregularity.marksFadeRadii, |
| 150 |
|
163 |
"Width, in crater radii, over which the marks fade in and out.", "", AboveUpTo(0.0, 0.5)); |
| 151 |
|
163 |
} |
| 152 |
|
|
|
| 153 |
|
161 |
template <typename IO> void Fields(IO& io, RimSmoothing& smoothing) { |
| 154 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RimSmoothing&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RimSmoothing&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RimSmoothing&):
✓ Branch 4 taken 87 times.
|
161 |
io("sigma_radii", smoothing.sigmaRadii, |
| 155 |
|
|
"Deviation of the Gaussian the profile is smoothed with across distance, in crater radii; " |
| 156 |
|
|
"larger values round rims more, and 0 leaves them sharp.", |
| 157 |
|
161 |
"", AtLeast(0.0)); |
| 158 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RimSmoothing&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RimSmoothing&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RimSmoothing&):
✓ Branch 4 taken 87 times.
|
161 |
io("inner_radii", smoothing.innerRadii, |
| 159 |
|
|
"Inner edge of the smoothed band around the rim, in crater radii; below 1.", "", |
| 160 |
|
161 |
FromBelow(0.0, 1.0)); |
| 161 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RimSmoothing&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RimSmoothing&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RimSmoothing&):
✓ Branch 4 taken 87 times.
|
161 |
io("outer_radii", smoothing.outerRadii, |
| 162 |
|
161 |
"Outer edge of the smoothed band around the rim, in crater radii; above 1.", "", Above(1.0)); |
| 163 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RimSmoothing&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RimSmoothing&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RimSmoothing&):
✓ Branch 4 taken 87 times.
|
161 |
io("shape", smoothing.shape, |
| 164 |
|
|
"How the smoothing fades from full at the rim to none at the band's edges."); |
| 165 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RimSmoothing&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RimSmoothing&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RimSmoothing&):
✓ Branch 4 taken 87 times.
|
161 |
io("strength", smoothing.strength, |
| 166 |
|
|
"Share of the smoothed height used at the rim, from 0 to 1; lower values keep more of the " |
| 167 |
|
|
"sharp crest.", |
| 168 |
|
161 |
"", UnitInterval()); |
| 169 |
|
161 |
} |
| 170 |
|
|
|
| 171 |
|
160 |
template <typename IO> void Fields(IO& io, CraterNoise& noise) { |
| 172 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 4 taken 87 times.
|
160 |
io("amplitude", noise.amplitude, |
| 173 |
|
|
"Amplitude of the noise over the whole footprint, as a share of the crater diameter; it " |
| 174 |
|
|
"fades out beyond the rim to the profile's reach, and 0 adds none.", |
| 175 |
|
160 |
"", AtLeast(0.0)); |
| 176 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 4 taken 87 times.
|
160 |
io("wavelength_radii", noise.wavelengthRadii, |
| 177 |
|
160 |
"Wavelength of the footprint noise's first octave, in crater radii.", "", Above(0.0)); |
| 178 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 5 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 5 taken 87 times.
|
160 |
io("octaves", noise.octaves, "Octaves of both noises, from 1 to 12.", "", Between(1.0, 12.0)); |
| 179 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 5 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 5 taken 87 times.
|
160 |
io("gain", noise.gain, "Weight ratio between successive octaves; positive.", "", Above(0.0)); |
| 180 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 4 taken 87 times.
|
160 |
io("rim_amplitude", noise.rimAmplitude, |
| 181 |
|
|
"Amplitude of the extra noise in the band around the rim, as a share of the crater " |
| 182 |
|
|
"diameter; 0 adds none.", |
| 183 |
|
160 |
"", AtLeast(0.0)); |
| 184 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 4 taken 87 times.
|
160 |
io("rim_wavelength_radii", noise.rimWavelengthRadii, |
| 185 |
|
160 |
"Wavelength of the rim noise's first octave, in crater radii.", "", Above(0.0)); |
| 186 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 4 taken 87 times.
|
160 |
io("rim_inner_radii", noise.rimInnerRadii, |
| 187 |
|
160 |
"Inner edge of the rim noise band, in crater radii; below 1.", "", FromBelow(0.0, 1.0)); |
| 188 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 4 taken 87 times.
|
160 |
io("rim_outer_radii", noise.rimOuterRadii, |
| 189 |
|
160 |
"Outer edge of the rim noise band, in crater radii; above 1.", "", Above(1.0)); |
| 190 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterNoise&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterNoise&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterNoise&):
✓ Branch 4 taken 87 times.
|
160 |
io("seed", noise.seed, "Varies the noise of every crater."); |
| 191 |
|
160 |
} |
| 192 |
|
|
|
| 193 |
|
160 |
template <typename IO> void Fields(IO& io, CraterTexture& texture) { |
| 194 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("wall_streaks", texture.wallStreaks, |
| 195 |
|
|
"Amplitude of the radial gullies down a fresh crater's inner wall, as a share of its " |
| 196 |
|
|
"diameter; 0 adds none.", |
| 197 |
|
160 |
"", AtLeast(0.0)); |
| 198 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("wall_streak_width_radii", texture.wallStreakWidthRadii, |
| 199 |
|
160 |
"Width of the gullies across the wall, in crater radii.", "", Above(0.0)); |
| 200 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("ejecta", texture.ejecta, |
| 201 |
|
|
"Amplitude of the hummocky, radially lineated ejecta around a fresh crater, as a share of " |
| 202 |
|
|
"the ejecta's thickness (McGetchin et al. 1973); 0 adds none.", |
| 203 |
|
160 |
"", AtLeast(0.0)); |
| 204 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("ejecta_lineation_radii", texture.ejectaLineationRadii, |
| 205 |
|
160 |
"Width of the ejecta's lineations across, in crater radii at the rim.", "", Above(0.0)); |
| 206 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("mantling", texture.mantling, |
| 207 |
|
|
"Share of older relief buried under the ejecta at the rim, falling with their thickness, " |
| 208 |
|
|
"from 0 to 1; needs a datum.", |
| 209 |
|
160 |
"", UnitInterval()); |
| 210 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("ejecta_reach_radii", texture.ejectaReachRadii, |
| 211 |
|
160 |
"How far ejecta texture and burial reach, in crater radii; above 1.", "", Above(1.0)); |
| 212 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("min_freshness", texture.minFreshness, |
| 213 |
|
|
"Freshness (depth over fresh depth) at or below which gullies and ejecta texture are worn " |
| 214 |
|
|
"away, from 0 to below 1.", |
| 215 |
|
160 |
"", FromBelow(0.0, 1.0)); |
| 216 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterTexture&):
✓ Branch 4 taken 64 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterTexture&):
✓ Branch 4 taken 87 times.
|
160 |
io("seed", texture.seed, "Varies the texture of every crater."); |
| 217 |
|
160 |
} |
| 218 |
|
|
|
| 219 |
|
159 |
template <typename IO> void Fields(IO& io, CraterSlopeResponse& slope) { |
| 220 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 87 times.
|
159 |
io("enabled", slope.enabled, |
| 221 |
|
|
"Shapes craters asymmetrically along the slope of the ground beneath the layer; off keeps " |
| 222 |
|
|
"them the same on any slope."); |
| 223 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 87 times.
|
159 |
io("seed", slope.seed, "Varies how far each crater's floor is offset."); |
| 224 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 87 times.
|
159 |
io("floor_offset", slope.floorOffset, |
| 225 |
|
|
"How far the deepest point lies downslope of the centre, in diameters, drawn per crater; " |
| 226 |
|
|
"below 0.23."); |
| 227 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 87 times.
|
159 |
io("upslope_rim", slope.upslopeRim, |
| 228 |
|
|
"Share of the raised rim and ejecta kept straight upslope, from 0 to 1; the rest returns " |
| 229 |
|
|
"toward the sides.", |
| 230 |
|
159 |
"", UnitInterval()); |
| 231 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 87 times.
|
159 |
io("full_slope", slope.fullSlope, |
| 232 |
|
|
"Slope at which the asymmetry is complete, in radians; it rises from none on level " |
| 233 |
|
|
"ground.", |
| 234 |
|
159 |
"rad", Above(0.0)); |
| 235 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 87 times.
|
159 |
io("critical_gradient", slope.criticalGradient, |
| 236 |
|
|
"Critical gradient Sc, rise over run, toward which downslope transport grows without bound: " |
| 237 |
|
|
"a crater on a regional gradient S wears 1 / (1 - (S / Sc)^2) times as fast (Roering et al. " |
| 238 |
|
|
"1999). Unset wears craters alike on any slope; no lunar value is published.", |
| 239 |
|
159 |
"", Above(0.0)); |
| 240 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 63 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterSlopeResponse&):
✓ Branch 4 taken 87 times.
|
159 |
io("max_wear_rate", slope.maxWearRate, |
| 241 |
|
|
"Fastest a slope makes craters wear, over level ground: a numerical cap as S nears Sc.", "", |
| 242 |
|
159 |
AtLeast(1.0)); |
| 243 |
|
159 |
} |
| 244 |
|
|
|
| 245 |
|
162 |
template <typename IO> void Fields(IO& io, CraterApplyOptions& apply) { |
| 246 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 75 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("order", apply.order, |
| 247 |
|
|
"Order in which overlapping craters are applied; later craters overprint earlier ones."); |
| 248 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 75 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("fade", apply.fade, "How craters too small to resolve at the sample spacing fade out."); |
| 249 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 75 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("datum", apply.datum, |
| 250 |
|
|
"Reference surface each crater's interior is cut relative to, fitted to the ground beneath " |
| 251 |
|
|
"it; none adds craters onto the terrain everywhere."); |
| 252 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 75 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("datum_fit_radii", apply.datumFitRadii, |
| 253 |
|
162 |
"Radius of the footprint the datum is fitted over, in crater radii.", "", Above(0.0)); |
| 254 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 75 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("interior_replacement", apply.interiorReplacement, |
| 255 |
|
|
"Share of the interior replaced by datum plus profile, from 0 to 1: 1 erases older relief " |
| 256 |
|
|
"inside the crater, 0 keeps it.", |
| 257 |
|
162 |
"", UnitInterval()); |
| 258 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 75 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("blend", apply.blend, |
| 259 |
|
|
"Where and how a crater's replaced interior blends into the surrounding terrain."); |
| 260 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 75 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("irregularity", apply.irregularity, |
| 261 |
|
|
"Irregular, non-circular crater outlines: which craters have them and how their shapes " |
| 262 |
|
|
"are drawn."); |
| 263 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 74 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
162 |
io("rim_smoothing", apply.rimSmoothing, |
| 264 |
|
|
"Rounded rims: each crater's profile smoothed across distance near its rim; off unless " |
| 265 |
|
|
"sigma_radii is set."); |
| 266 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 74 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
161 |
io("noise", apply.noise, |
| 267 |
|
|
"Fractal noise over each crater's footprint and around its rim, keyed to the crater; off " |
| 268 |
|
|
"unless an amplitude is set."); |
| 269 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 74 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
161 |
io("texture", apply.texture, |
| 270 |
|
|
"Gullies down fresh walls, textured ejecta and older relief buried under the ejecta; off " |
| 271 |
|
|
"unless an amplitude or mantling is set."); |
| 272 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 74 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterApplyOptions&):
✓ Branch 4 taken 78 times.
|
161 |
io("slope", apply.slope, |
| 273 |
|
|
"Craters on sloping ground with floors offset downslope and rims lowered upslope; needs " |
| 274 |
|
|
"the plane datum."); |
| 275 |
|
161 |
} |
| 276 |
|
|
|
| 277 |
|
|
template <> struct SpecName<CraterLayerSpec> { |
| 278 |
|
|
static constexpr std::string_view kName = "craters"; |
| 279 |
|
|
static constexpr std::string_view kDescription = |
| 280 |
|
|
"Impact craters generated from a density and age model, or placed by hand, and cut into " |
| 281 |
|
|
"the terrain."; |
| 282 |
|
|
}; |
| 283 |
|
246 |
template <typename IO> void Fields(IO& io, CraterLayerSpec& craters) { |
| 284 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 167 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
246 |
io("morphometry", craters.morphometry, |
| 285 |
|
|
"Published fits of fresh crater depth, rim height and complex crater shape the craters " |
| 286 |
|
|
"are shaped with."); |
| 287 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 167 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
245 |
io("generate", craters.generate, |
| 288 |
|
|
"Generates craters from the density; off places only the manual craters."); |
| 289 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 167 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
245 |
io("seed", craters.seed, |
| 290 |
|
|
"Seed the craters are generated with; changing it gives a different crater field of the " |
| 291 |
|
|
"same statistics."); |
| 292 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 159 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
245 |
io("density", craters.density, |
| 293 |
|
|
"Size-frequency distribution of the generated craters: how many of each diameter per unit " |
| 294 |
|
|
"area."); |
| 295 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 156 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
237 |
io("ages", craters.ages, |
| 296 |
|
|
"How generated craters are given ages, which the degradation model wears them down by."); |
| 297 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 156 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
234 |
io("min_diameter", craters.minDiameter, |
| 298 |
|
|
"Smallest crater generated, in metres; lower values add many more small craters.", "m", |
| 299 |
|
234 |
Above(0.0)); |
| 300 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 156 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
234 |
io("max_diameter", craters.maxDiameter, |
| 301 |
|
234 |
"Largest crater generated, in metres; above the smallest.", "m", Above(0.0)); |
| 302 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 156 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
234 |
io("spacing", craters.spacing, |
| 303 |
|
|
"Keeps craters of similar size apart by removing conflicting ones, which lowers the density " |
| 304 |
|
|
"below the model's."); |
| 305 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 156 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
234 |
io("max_craters", craters.maxCraters, |
| 306 |
|
|
"Most generated craters kept, the largest first; 0 keeps all. Manual craters are always " |
| 307 |
|
|
"kept, and a cap means tiles no longer match the whole grid."); |
| 308 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 155 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
234 |
io("manual", craters.manual, |
| 309 |
|
|
"Craters placed by hand in the surface's coordinates, added to any generated ones."); |
| 310 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 154 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
233 |
io("profile", craters.profile, |
| 311 |
|
|
"Shape of a fresh crater's cross-section, scaled to each crater's diameter."); |
| 312 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 153 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
232 |
io("degradation", craters.degradation, |
| 313 |
|
|
"How craters wear down from their fresh shape with age."); |
| 314 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 152 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
231 |
io("apply", craters.apply, |
| 315 |
|
|
"How craters are cut into the terrain: their order, datum, blending, fading and irregular " |
| 316 |
|
|
"outlines."); |
| 317 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 152 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
230 |
io("density_map", craters.densityMap, |
| 318 |
|
|
"Map that sets the crater density point by point, scaling the density's size distribution " |
| 319 |
|
|
"to what it measures; unset keeps the density the same everywhere."); |
| 320 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 152 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterLayerSpec&):
✓ Branch 4 taken 69 times.
|
230 |
io("completeness", craters.completeness, |
| 321 |
|
|
"Where the manual craters are a complete catalog: the diameter in metres from which they " |
| 322 |
|
|
"stand in for generated craters, infinite or no value where there is no catalog. Unset " |
| 323 |
|
|
"keeps every generated crater."); |
| 324 |
|
230 |
} |
| 325 |
|
|
|
| 326 |
|
62 |
template <typename IO> void Fields(IO& io, RayLayout& layout) { |
| 327 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayLayout&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayLayout&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayLayout&):
✓ Branch 4 taken 47 times.
|
62 |
io("seed", layout.seed, |
| 328 |
|
|
"Seed of the rays' directions; layers with the same layout share the same rays."); |
| 329 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayLayout&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayLayout&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayLayout&):
✓ Branch 4 taken 47 times.
|
62 |
io("count", layout.count, "Number of rays of a crater, drawn per crater and rounded; 0 to 64."); |
| 330 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayLayout&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayLayout&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayLayout&):
✓ Branch 4 taken 47 times.
|
62 |
io("width_degrees", layout.widthDegrees, |
| 331 |
|
|
"Angle in degrees a ray spans 2 radii from the centre, drawn per ray, within (0, 180)."); |
| 332 |
|
62 |
} |
| 333 |
|
|
|
| 334 |
|
41 |
template <typename IO> void Fields(IO& io, SecondaryRays& rays) { |
| 335 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryRays&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryRays&):
✓ Branch 4 taken 28 times.
|
41 |
io("enabled", rays.enabled, |
| 336 |
|
|
"Gathers secondaries into their primary's rays and clumps them along each ray, as radial " |
| 337 |
|
|
"chains and clusters; off spreads them evenly."); |
| 338 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryRays&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryRays&):
✓ Branch 4 taken 28 times.
|
41 |
io("layout", rays.layout, |
| 339 |
|
|
"The rays; give a crater albedo layer's rays the same layout for bright rays over the " |
| 340 |
|
|
"secondaries."); |
| 341 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryRays&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryRays&):
✓ Branch 4 taken 28 times.
|
41 |
io("share", rays.share, |
| 342 |
|
|
"Share of secondaries in rays, from 0 to 1; the rest stay spread evenly. Illustrative.", "", |
| 343 |
|
41 |
UnitInterval()); |
| 344 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryRays&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryRays&):
✓ Branch 4 taken 28 times.
|
41 |
io("min_half_angle_degrees", rays.minHalfAngleDegrees, |
| 345 |
|
|
"Narrowest half width of a ray, in degrees from 0 to 90 excluded, so rays widen with range " |
| 346 |
|
|
"beyond their width near the primary. Illustrative.", |
| 347 |
|
41 |
"deg", Inside(0.0, 90.0)); |
| 348 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryRays&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryRays&):
✓ Branch 4 taken 28 times.
|
41 |
io("clustering", rays.clustering, |
| 349 |
|
|
"How strongly secondaries clump along a ray, from 0 for evenly along it to 1 for only in " |
| 350 |
|
|
"clumps. Illustrative.", |
| 351 |
|
41 |
"", UnitInterval()); |
| 352 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryRays&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryRays&):
✓ Branch 4 taken 28 times.
|
41 |
io("cluster_spacing", rays.clusterSpacing, |
| 353 |
|
|
"Typical spacing of clumps along a ray, in natural log of range; positive, smaller values " |
| 354 |
|
|
"give shorter, more frequent clumps. Illustrative.", |
| 355 |
|
41 |
"", Above(0.0)); |
| 356 |
|
41 |
} |
| 357 |
|
|
|
| 358 |
|
41 |
template <typename IO> void Fields(IO& io, SecondaryShapes& shapes) { |
| 359 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryShapes&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryShapes&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryShapes&):
✓ Branch 4 taken 28 times.
|
41 |
io("elongated_share", shapes.elongatedShare, |
| 360 |
|
|
"Share of secondaries, from 0 to 1, stretched along the line back to their primary; 0 keeps " |
| 361 |
|
|
"them round.", |
| 362 |
|
41 |
"", UnitInterval()); |
| 363 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryShapes&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryShapes&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryShapes&):
✓ Branch 4 taken 28 times.
|
41 |
io("ellipticity", shapes.ellipticity, |
| 364 |
|
|
"Long over short axis of an elongated secondary near the primary, drawn per secondary; at " |
| 365 |
|
|
"least 1, falling to 1 at the outer range."); |
| 366 |
|
41 |
} |
| 367 |
|
|
|
| 368 |
|
|
template <> struct SpecName<SecondaryLayerSpec> { |
| 369 |
|
|
static constexpr std::string_view kName = "secondaries"; |
| 370 |
|
|
static constexpr std::string_view kDescription = |
| 371 |
|
|
"Secondary craters around the craters of the last crater layer before this one, after " |
| 372 |
|
|
"Singer et al. (2020)."; |
| 373 |
|
|
}; |
| 374 |
|
35 |
template <typename IO> void Fields(IO& io, SecondaryLayerSpec& spec) { |
| 375 |
|
35 |
SecondaryCraterOptions& o = spec.secondaries; |
| 376 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
35 |
io("seed", o.seed, |
| 377 |
|
|
"Seed the secondaries are drawn with; changing it gives a different field of the same " |
| 378 |
|
|
"statistics."); |
| 379 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
35 |
io("onset_count", o.onsetCount, |
| 380 |
|
|
"Secondaries at least count_fraction primary diameters across, in an area the size of the " |
| 381 |
|
|
"primary at the onset range. Required: the sources give sizes, not numbers.", |
| 382 |
|
36 |
"", Above(0.0)); |
| 383 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("count_fraction", o.countFraction, |
| 384 |
|
|
"Size, as a fraction of the primary's diameter, from which the onset count counts " |
| 385 |
|
|
"secondaries.", |
| 386 |
|
34 |
"", Above(0.0)); |
| 387 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("size_slope", o.sizeSlope, |
| 388 |
|
|
"Cumulative size slope of the secondaries, their number falling as d^-slope; higher values " |
| 389 |
|
|
"give relatively more small secondaries.", |
| 390 |
|
34 |
"", Above(0.0)); |
| 391 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 19 times.
|
34 |
io("min_diameter", o.minDiameter, "Smallest secondary generated, in metres.", "m", Above(0.0)); |
| 392 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 19 times.
|
34 |
OptionalBound(io, "max_diameter", o.maxDiameter, |
| 393 |
|
|
"Largest secondary generated, in metres; unset has no limit beyond Singer et " |
| 394 |
|
|
"al.'s largest secondary at each range.", |
| 395 |
|
34 |
"m", std::numeric_limits<double>::infinity(), Above(0.0)); |
| 396 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("outer_range", o.outerRange, |
| 397 |
|
|
"How far secondaries reach, in primary diameters from its centre; unset uses the longest " |
| 398 |
|
|
"typical ray of Elliott et al. (2018).", |
| 399 |
|
34 |
"", Above(0.0)); |
| 400 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("min_primary_diameter", o.selection.minDiameter, |
| 401 |
|
34 |
"Smallest primary crater, in metres, that throws secondaries.", "m", AtLeast(0.0)); |
| 402 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 19 times.
|
34 |
OptionalBound(io, "max_primary_diameter", o.selection.maxDiameter, |
| 403 |
|
|
"Largest primary crater, in metres, that throws secondaries; unset has no upper " |
| 404 |
|
|
"limit.", |
| 405 |
|
34 |
"m", std::numeric_limits<double>::infinity(), AtLeast(0.0)); |
| 406 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("min_age_gyr", o.selection.minAgeGyr, "Youngest primary, in Gyr, that throws secondaries.", |
| 407 |
|
34 |
"Gyr", AtLeast(0.0)); |
| 408 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 5 taken 19 times.
|
34 |
OptionalBound(io, "max_age_gyr", o.selection.maxAgeGyr, |
| 409 |
|
|
"Oldest primary, in Gyr, that throws secondaries; unset has no upper limit.", |
| 410 |
|
34 |
"Gyr", std::numeric_limits<double>::infinity(), AtLeast(0.0)); |
| 411 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("manual", o.selection.manual, |
| 412 |
|
|
"Lets manual primary craters throw secondaries too; otherwise only generated ones do."); |
| 413 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("cell_size_factor", o.cellSizeFactor, |
| 414 |
|
|
"Side of the polar cells secondaries are drawn in, as a multiple of each size band's " |
| 415 |
|
|
"largest diameter.", |
| 416 |
|
34 |
"", Above(0.0)); |
| 417 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("rays", o.rays, "Secondaries gathered into rays and clumped along them; off by default."); |
| 418 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("shapes", o.shapes, "Secondaries stretched toward their primary; round by default."); |
| 419 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("depth_ratio", spec.depthRatio, |
| 420 |
|
|
"Depth over diameter every secondary is given, with no wear by age; lower values give " |
| 421 |
|
|
"shallower secondaries.", |
| 422 |
|
34 |
"", Above(0.0)); |
| 423 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SecondaryLayerSpec&):
✓ Branch 4 taken 19 times.
|
34 |
io("morphometry", spec.morphometry, |
| 424 |
|
|
"Published fits whose fresh crater rim the secondaries are shaped with."); |
| 425 |
|
34 |
} |
| 426 |
|
|
|
| 427 |
|
|
} // namespace terraingen::config |
| 428 |
|
|
|