| Line |
Branch |
Exec |
Source |
| 1 |
|
|
/// @file |
| 2 |
|
|
/// @brief The JSON fields of the noise, roughness, bedform, transform and region layers. |
| 3 |
|
|
#pragma once |
| 4 |
|
|
|
| 5 |
|
|
#include "terraingen/config/config.h" |
| 6 |
|
|
#include "terraingen/config/fields/common.h" |
| 7 |
|
|
|
| 8 |
|
|
#include <numbers> |
| 9 |
|
|
#include <string_view> |
| 10 |
|
|
|
| 11 |
|
|
namespace terraingen::config { |
| 12 |
|
|
|
| 13 |
|
278 |
template <typename IO> void Fields(IO& io, NoiseLayerConfig& config) { |
| 14 |
|
278 |
NoiseLayer& layer = config.layer; |
| 15 |
|
278 |
FractalParams& fractal = layer.fractal; |
| 16 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 149 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
278 |
io("enabled", layer.enabled, "Includes this layer in the stack; disabled layers are skipped."); |
| 17 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 148 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
277 |
io("basis", fractal.basis, "Single-octave noise the fractal is built from."); |
| 18 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 148 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
276 |
io("fractal", fractal.type, "How the octaves of the basis noise are combined."); |
| 19 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 148 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
276 |
io("blend", layer.blend, |
| 20 |
|
|
"How this layer combines with the height of the layers before it; the first enabled layer " |
| 21 |
|
|
"sets the height instead."); |
| 22 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 147 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
276 |
io("seed", fractal.seed, |
| 23 |
|
|
"Seed of the noise; changing it gives a different pattern of the same character."); |
| 24 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 147 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
275 |
io("wavelength", fractal.wavelength, |
| 25 |
|
|
"Wavelength of the first, broadest octave, in metres; sets the size of the largest " |
| 26 |
|
|
"features.", |
| 27 |
|
275 |
"m", Above(0.0)); |
| 28 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 146 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
275 |
io("amplitude", fractal.amplitude, "Largest height of the layer above or below 0, in metres.", |
| 29 |
|
|
"m"); |
| 30 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 145 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
274 |
io("octaves", fractal.octaves, |
| 31 |
|
|
"Number of octaves, at least 1; each one adds detail at a shorter wavelength.", "", |
| 32 |
|
275 |
Between(1.0, 32.0)); |
| 33 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 145 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
273 |
io("lacunarity", fractal.lacunarity, |
| 34 |
|
273 |
"Frequency ratio between successive octaves; greater than 1.", "", Above(1.0)); |
| 35 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 145 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
273 |
io("gain", fractal.gain, |
| 36 |
|
|
"Weight ratio between successive octaves, greater than 0; higher values give rougher " |
| 37 |
|
|
"terrain. Unused when the Hurst exponent is set.", |
| 38 |
|
273 |
"", Above(0.0)); |
| 39 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 145 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
273 |
io("hurst", config.hurst, |
| 40 |
|
|
"Hurst exponent that sets the octave gain to lacunarity^-hurst: near 1 is smooth, lower is " |
| 41 |
|
|
"rougher at short baselines. Unset uses the gain."); |
| 42 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 145 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
273 |
io("offset", fractal.offset, |
| 43 |
|
273 |
"Ridge offset of the ridged and hybrid multifractal types; greater than 0.", "", Above(0.0)); |
| 44 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 145 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
273 |
io("warp_amplitude", layer.warpAmplitude, |
| 45 |
|
|
"Domain warp displacement in metres, which bends the noise into swirled shapes; 0 " |
| 46 |
|
|
"disables warping.", |
| 47 |
|
273 |
"m", AtLeast(0.0)); |
| 48 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 145 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerConfig&):
✓ Branch 4 taken 119 times.
|
273 |
io("warp_wavelength", layer.warpWavelength, "Wavelength of the warp field, in metres.", "m", |
| 49 |
|
273 |
Above(0.0)); |
| 50 |
|
273 |
} |
| 51 |
|
|
|
| 52 |
|
|
template <> struct SpecName<NoiseLayerSpec> { |
| 53 |
|
|
static constexpr std::string_view kName = "noise"; |
| 54 |
|
|
static constexpr std::string_view kDescription = |
| 55 |
|
|
"A stack of fractal noise layers added to the terrain, for hills, ridges and rolling " |
| 56 |
|
|
"relief."; |
| 57 |
|
|
}; |
| 58 |
|
198 |
template <typename IO> void Fields(IO& io, NoiseLayerSpec& layer) { |
| 59 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::NoiseLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::NoiseLayerSpec&):
✓ Branch 4 taken 123 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::NoiseLayerSpec&):
✓ Branch 4 taken 59 times.
|
198 |
io("stack", layer.stack, |
| 60 |
|
|
"Noise layers, 1 to 8, combined in order: the first enabled layer sets the height and each " |
| 61 |
|
|
"later one is combined with it by its blend mode."); |
| 62 |
|
191 |
} |
| 63 |
|
|
|
| 64 |
|
|
template <> struct SpecName<RoughnessLayerSpec> { |
| 65 |
|
|
static constexpr std::string_view kName = "roughness"; |
| 66 |
|
|
static constexpr std::string_view kDescription = |
| 67 |
|
|
"Fine roughness from octaves of noise, scaled to a given RMS slope over a baseline."; |
| 68 |
|
|
}; |
| 69 |
|
45 |
template <typename IO> void Fields(IO& io, RoughnessLayerSpec& spec) { |
| 70 |
|
45 |
RoughnessOptions& roughness = spec.roughness; |
| 71 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 23 times.
|
45 |
io("rms_slope", roughness.rmsSlope, |
| 72 |
|
|
"RMS slope, as rise over run, over the baseline when every octave is resolved; higher " |
| 73 |
|
|
"values give rougher ground.", |
| 74 |
|
45 |
"", Above(0.0)); |
| 75 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 23 times.
|
45 |
io("baseline", roughness.baseline, "Baseline the RMS slope is given over, in metres.", "m", |
| 76 |
|
45 |
Above(0.0)); |
| 77 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 23 times.
|
45 |
io("hurst", roughness.hurst, |
| 78 |
|
|
"Hurst exponent, in (0, 1]: octave amplitudes grow as wavelength^hurst, so lower values " |
| 79 |
|
|
"put relatively more roughness at short wavelengths.", |
| 80 |
|
45 |
"", AboveUpTo(0.0, 1.0)); |
| 81 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 23 times.
|
45 |
io("max_wavelength", roughness.maxWavelength, "Wavelength of the longest octave, in metres.", |
| 82 |
|
45 |
"m", Above(0.0)); |
| 83 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 23 times.
|
45 |
io("min_wavelength", roughness.minWavelength, |
| 84 |
|
|
"Wavelength of the shortest octave, in metres; octaves halve from the longest down to it, " |
| 85 |
|
|
"spanning at most 40 octaves.", |
| 86 |
|
45 |
"m", Above(0.0)); |
| 87 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 23 times.
|
45 |
io("seed", roughness.seed, |
| 88 |
|
|
"Seed of the noise; changing it gives a different pattern of the same roughness."); |
| 89 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RoughnessLayerSpec&):
✓ Branch 4 taken 23 times.
|
45 |
io("fade", roughness.fade, |
| 90 |
|
|
"How octaves too fine to resolve at the sample spacing fade out, by samples per " |
| 91 |
|
|
"wavelength."); |
| 92 |
|
45 |
} |
| 93 |
|
|
|
| 94 |
|
60 |
template <typename IO> void Fields(IO& io, DuneRipples& ripples) { |
| 95 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("wavelength", ripples.wavelength, |
| 96 |
|
|
"Crest-to-crest spacing of the ripples on flat sand, in metres; 0 gives no ripples.", "m", |
| 97 |
|
60 |
AtLeast(0.0)); |
| 98 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("height", ripples.height, "Trough-to-crest height of the ripples on flat sand, in metres.", |
| 99 |
|
60 |
"m", AtLeast(0.0)); |
| 100 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("lee_fraction", ripples.leeFraction, |
| 101 |
|
|
"Share of a ripple wavelength the lee face takes, in (0, 1): 0.5 is symmetric, lower " |
| 102 |
|
|
"values give a steeper lee face.", |
| 103 |
|
60 |
"", Inside(0.0, 1.0)); |
| 104 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("sinuosity", ripples.sinuosity, |
| 105 |
|
60 |
"How far a ripple crest wanders along its length, in wavelengths.", "", AtLeast(0.0)); |
| 106 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("slope_coupling", ripples.slopeCoupling, |
| 107 |
|
|
"How strongly the dune's slope turns and tightens the ripples: they shorten on steep lee " |
| 108 |
|
|
"faces and turn on the flanks; 0 keeps them straight across the wind.", |
| 109 |
|
60 |
"", AtLeast(0.0)); |
| 110 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("interdune_cover", ripples.interduneCover, |
| 111 |
|
|
"Share of the ripple height kept on the ground between dunes, from 0 to 1.", "", |
| 112 |
|
60 |
UnitInterval()); |
| 113 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("defect_density", ripples.defectDensity, |
| 114 |
|
|
"Forked crests (Y-junctions): pairs of crest ends per metre of crest, as measured on dune " |
| 115 |
|
|
"fields (Ewing et al. 2010); 0 for none. Mars large ripples: 0.099.", |
| 116 |
|
60 |
"1/m", AtLeast(0.0)); |
| 117 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("flank_straightening", ripples.flankStraightening, |
| 118 |
|
|
"How far crests straighten off the stoss, from 0 to 1: 1 keeps the sinuosity on flat sand " |
| 119 |
|
|
"and stoss slopes and takes it away on flanks and lee slopes, as Martian large ripples " |
| 120 |
|
|
"do.", |
| 121 |
|
60 |
"", UnitInterval()); |
| 122 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneRipples&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneRipples&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneRipples&):
✓ Branch 4 taken 37 times.
|
60 |
io("fade", ripples.fade, |
| 123 |
|
|
"How ripples too fine for the sample spacing fade out, by samples per wavelength."); |
| 124 |
|
60 |
} |
| 125 |
|
|
|
| 126 |
|
59 |
template <typename IO> void Fields(IO& io, DuneGrainflows& flows) { |
| 127 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 37 times.
|
59 |
io("cover", flows.cover, |
| 128 |
|
|
"Chance, from 0 to 1, that each lattice cell of the slip faces holds a grainflow; 0 for " |
| 129 |
|
|
"none.", |
| 130 |
|
59 |
"", UnitInterval()); |
| 131 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 37 times.
|
59 |
io("min_scarp_width", flows.minScarpWidth, "Narrowest scarp, in metres.", "m", Above(0.0)); |
| 132 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 37 times.
|
59 |
io("max_scarp_width", flows.maxScarpWidth, "Widest scarp, in metres.", "m", Above(0.0)); |
| 133 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 37 times.
|
59 |
io("min_scarp_length", flows.minScarpLength, "Shortest scarp downslope, in metres.", "m", |
| 134 |
|
59 |
Above(0.0)); |
| 135 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 37 times.
|
59 |
io("max_scarp_length", flows.maxScarpLength, "Longest scarp downslope, in metres.", "m", |
| 136 |
|
59 |
Above(0.0)); |
| 137 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 37 times.
|
59 |
io("min_lobe_width", flows.minLobeWidth, "Narrowest lobe, in metres.", "m", Above(0.0)); |
| 138 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 5 taken 37 times.
|
59 |
io("max_lobe_width", flows.maxLobeWidth, "Widest lobe, in metres.", "m", Above(0.0)); |
| 139 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 37 times.
|
59 |
io("min_lobe_length", flows.minLobeLength, "Shortest lobe downslope, in metres.", "m", |
| 140 |
|
59 |
Above(0.0)); |
| 141 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 37 times.
|
59 |
io("max_lobe_length", flows.maxLobeLength, "Longest lobe downslope, in metres.", "m", |
| 142 |
|
59 |
Above(0.0)); |
| 143 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 37 times.
|
59 |
io("thickness", flows.thickness, "Depth of a scarp and height of a lobe, in metres.", "m", |
| 144 |
|
59 |
AtLeast(0.0)); |
| 145 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneGrainflows&):
✓ Branch 4 taken 37 times.
|
59 |
io("fade", flows.fade, |
| 146 |
|
|
"How grainflows too narrow for the sample spacing fade out, by samples across a lobe."); |
| 147 |
|
59 |
} |
| 148 |
|
|
|
| 149 |
|
|
template <> struct SpecName<DuneLayerSpec> { |
| 150 |
|
|
static constexpr std::string_view kName = "dunes"; |
| 151 |
|
|
static constexpr std::string_view kDescription = |
| 152 |
|
|
"Wind-blown dunes added to the terrain: isolated barchans or domes, or fields of " |
| 153 |
|
|
"transverse, barchanoid or linear crests, with slip faces and optional ripples on them."; |
| 154 |
|
|
}; |
| 155 |
|
53 |
template <typename IO> void Fields(IO& io, DuneLayerSpec& spec) { |
| 156 |
|
53 |
DuneOptions& dunes = spec.dunes; |
| 157 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
53 |
io("shape", dunes.shape, "The kind of dune."); |
| 158 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("wind_azimuth", dunes.windAzimuth, |
| 159 |
|
|
"Direction the wind blows toward, in radians counter-clockwise from +x (local east of the " |
| 160 |
|
|
"anchor on a body); slip faces face it.", |
| 161 |
|
|
"rad"); |
| 162 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("azimuth_spread", dunes.azimuthSpread, |
| 163 |
|
|
"Largest difference of each barchan or dome's wind from the azimuth, in radians.", "rad", |
| 164 |
|
52 |
AtLeast(0.0)); |
| 165 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("slip_face_angle", dunes.slipFaceAngle, |
| 166 |
|
|
"Slope of the lee slip faces, in radians: the sand's angle of repose.", "rad", |
| 167 |
|
52 |
Inside(0.0, 0.5 * std::numbers::pi)); |
| 168 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("stoss_slope", dunes.stossSlope, |
| 169 |
|
|
"Mean slope of the windward faces, in radians; below the slip face angle.", "rad", |
| 170 |
|
52 |
Inside(0.0, 0.5 * std::numbers::pi)); |
| 171 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("stoss_exponent", dunes.stossExponent, |
| 172 |
|
|
"Exponent alpha of the cos^alpha windward profile of dunes; higher is blunter.", "", |
| 173 |
|
52 |
Above(0.0)); |
| 174 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("dome_exponent", dunes.domeExponent, "Exponent alpha of the cos^alpha profile of domes.", "", |
| 175 |
|
52 |
Above(0.0)); |
| 176 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("spacing", dunes.spacing, |
| 177 |
|
|
"Barchans and domes: side of the lattice cells, each holding at most one dune, in metres.", |
| 178 |
|
52 |
"m", Above(0.0)); |
| 179 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("density", dunes.density, "Barchans and domes: chance a cell holds a dune, from 0 to 1.", "", |
| 180 |
|
52 |
UnitInterval()); |
| 181 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("width", dunes.width, "Barchans and domes: mean width, horn to horn, in metres.", "m", |
| 182 |
|
52 |
Above(0.0)); |
| 183 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("width_spread", dunes.widthSpread, |
| 184 |
|
|
"Barchans and domes: each width varies from (1 - spread) to (1 + spread) times the mean, " |
| 185 |
|
|
"spread in [0, 1).", |
| 186 |
|
52 |
"", FromBelow(0.0, 1.0)); |
| 187 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("min_width", dunes.minWidth, |
| 188 |
|
|
"Barchans: width in metres below which a dune is a dome without a slip face, blending " |
| 189 |
|
|
"into barchans up to 1.5 times it.", |
| 190 |
|
52 |
"m", AtLeast(0.0)); |
| 191 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 5 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 5 taken 28 times.
|
52 |
io("height_ratio", dunes.heightRatio, "Barchans and domes: height over width.", "", Above(0.0)); |
| 192 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("horn_length", dunes.hornLength, |
| 193 |
|
|
"Barchans: how far the horns reach downwind of the crest, in dune heights.", "", |
| 194 |
|
52 |
AtLeast(0.0)); |
| 195 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 5 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 5 taken 28 times.
|
52 |
io("dome_length", dunes.domeLength, "Domes: length along the wind over width.", "", Above(0.0)); |
| 196 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("wavelength", dunes.wavelength, |
| 197 |
|
|
"Transverse, barchanoid and linear dunes: crest-to-crest spacing, in metres.", "m", |
| 198 |
|
52 |
Above(0.0)); |
| 199 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("height", dunes.height, "Transverse, barchanoid and linear dunes: crest height, in metres.", |
| 200 |
|
52 |
"m", AtLeast(0.0)); |
| 201 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("sinuosity", dunes.sinuosity, |
| 202 |
|
|
"Transverse, barchanoid and linear dunes: how far a crest wanders along its length, in " |
| 203 |
|
|
"wavelengths.", |
| 204 |
|
52 |
"", AtLeast(0.0)); |
| 205 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("defects", dunes.defects, |
| 206 |
|
|
"Transverse, barchanoid and linear dunes: share of the height that varies along crests, " |
| 207 |
|
|
"lowering and ending some, from 0 to 1.", |
| 208 |
|
52 |
"", UnitInterval()); |
| 209 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("defect_density", dunes.defectDensity, |
| 210 |
|
|
"Transverse, barchanoid and linear dunes: pairs of crest ends per metre of crest, so crests " |
| 211 |
|
|
"break into segments about 1 / defect_density long; 0 for none. Olympia Undae: 0.0027 " |
| 212 |
|
|
"(Ewing et al. 2010).", |
| 213 |
|
52 |
"1/m", AtLeast(0.0)); |
| 214 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("flank_slope", dunes.flankSlope, "Linear dunes: mean slope of both flanks, in radians.", |
| 215 |
|
52 |
"rad", Inside(0.0, 0.5 * std::numbers::pi)); |
| 216 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("seed", dunes.seed, |
| 217 |
|
|
"Seed of the dunes and ripples; changing it gives a different layout of the same " |
| 218 |
|
|
"statistics."); |
| 219 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("anchor_x", dunes.anchor.x, |
| 220 |
|
|
"On a body, the longitude in degrees of the point whose tangent frame the dunes are laid " |
| 221 |
|
|
"out in; they are true to scale near it and absent on the far hemisphere."); |
| 222 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("anchor_y", dunes.anchor.y, "On a body, the latitude in degrees of the anchor."); |
| 223 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("fade", dunes.fade, |
| 224 |
|
|
"How dunes too fine for the sample spacing fade out, by samples across their width or " |
| 225 |
|
|
"wavelength."); |
| 226 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("ripples", dunes.ripples, "Ripples superposed on the dunes."); |
| 227 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 15 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DuneLayerSpec&):
✓ Branch 4 taken 28 times.
|
52 |
io("grainflows", dunes.grainflows, |
| 228 |
|
|
"Grainflows on the slip faces: scarps below the brink and lobes below them; off unless " |
| 229 |
|
|
"cover is set."); |
| 230 |
|
52 |
} |
| 231 |
|
|
|
| 232 |
|
|
template <> struct SpecName<PavementLayerSpec> { |
| 233 |
|
|
static constexpr std::string_view kName = "pavement"; |
| 234 |
|
|
static constexpr std::string_view kDescription = |
| 235 |
|
|
"Fractured bedrock: polygonal plates, each tilted and stepped, parted by cracks or raised " |
| 236 |
|
|
"ridges, split again by finer octaves of cracks; lays bedrock over the material map."; |
| 237 |
|
|
}; |
| 238 |
|
43 |
template <typename IO> void Fields(IO& io, PavementLayerSpec& spec) { |
| 239 |
|
43 |
PavementOptions& pavement = spec.pavement; |
| 240 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 5 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 5 taken 24 times.
|
43 |
io("plate_size", pavement.plateSize, "Mean plate width, in metres.", "m", Above(0.0)); |
| 241 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("jitter", pavement.jitter, |
| 242 |
|
|
"How far plate centres stray from a square lattice, from 0 (square plates) to 1.", "", |
| 243 |
|
43 |
UnitInterval()); |
| 244 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("warp", pavement.warp, "Bend and roughness of the plate edges, in plate sizes.", "", |
| 245 |
|
43 |
AtLeast(0.0)); |
| 246 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("crack_width", pavement.crackWidth, "Width of the cracks between plates, in metres.", "m", |
| 247 |
|
43 |
Above(0.0)); |
| 248 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("crack_depth", pavement.crackDepth, |
| 249 |
|
43 |
"Depth of the cracks, or height of the ridges when raised, in metres.", "m", AtLeast(0.0)); |
| 250 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("raised", pavement.raised, "Whether plates are parted by raised ridges instead of cracks."); |
| 251 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("edge_rounding", pavement.edgeRounding, |
| 252 |
|
43 |
"Width of the rounded shoulder beside each crack, in metres.", "m", AtLeast(0.0)); |
| 253 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("max_tilt", pavement.maxTilt, "Largest tilt of a plate, in radians.", "rad", |
| 254 |
|
43 |
FromBelow(0.0, 0.5 * std::numbers::pi)); |
| 255 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("max_step", pavement.maxStep, "Largest height offset of a plate, up or down, in metres.", |
| 256 |
|
43 |
"m", AtLeast(0.0)); |
| 257 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("octaves", pavement.octaves, |
| 258 |
|
|
"Crack octaves, 1 to 8: each finer octave splits every plate again, its cracks ending at " |
| 259 |
|
|
"the plate's edges.", |
| 260 |
|
43 |
"", Between(1.0, 8.0)); |
| 261 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("lacunarity", pavement.lacunarity, "Plate size ratio between octaves, above 1.", "", |
| 262 |
|
43 |
Above(1.0)); |
| 263 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("gain", pavement.gain, |
| 264 |
|
|
"Ratio of crack width, depth, rounding, tilt and step between octaves, in (0, 1].", "", |
| 265 |
|
43 |
AboveUpTo(0.0, 1.0)); |
| 266 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("seed", pavement.seed, "Seed of the plates."); |
| 267 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("exposure", pavement.exposure, |
| 268 |
|
|
"Shows plates only where the ground beneath is bare bedrock, fading out over soil; unset " |
| 269 |
|
|
"shows them everywhere."); |
| 270 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("exposure_spacing", pavement.exposureSpacing, |
| 271 |
|
43 |
"Spacing in metres the ground is read at for the exposure field.", "m", Above(0.0)); |
| 272 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("anchor_x", pavement.anchor.x, |
| 273 |
|
|
"On a body, the longitude in degrees of the point whose tangent frame the plates are laid " |
| 274 |
|
|
"out in."); |
| 275 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("anchor_y", pavement.anchor.y, "On a body, the latitude in degrees of the anchor."); |
| 276 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::PavementLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("fade", pavement.fade, |
| 277 |
|
|
"How plates and cracks too fine for the sample spacing fade out, by samples across them."); |
| 278 |
|
43 |
} |
| 279 |
|
|
|
| 280 |
|
|
template <> struct SpecName<StrataLayerSpec> { |
| 281 |
|
|
static constexpr std::string_view kName = "strata"; |
| 282 |
|
|
static constexpr std::string_view kDescription = |
| 283 |
|
|
"Layered rock: the ground beneath terraced into dipping beds, each a flat bench below a " |
| 284 |
|
|
"cliff, so hills become stepped buttes and mesas; lays bedrock over the cliffs."; |
| 285 |
|
|
}; |
| 286 |
|
43 |
template <typename IO> void Fields(IO& io, StrataLayerSpec& spec) { |
| 287 |
|
43 |
StrataOptions& strata = spec.strata; |
| 288 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("bed_thickness", strata.bedThickness, "Mean thickness of a bed, in metres.", "m", |
| 289 |
|
43 |
Above(0.0)); |
| 290 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("thickness_variation", strata.thicknessVariation, |
| 291 |
|
|
"How far each bed boundary strays from even spacing, in bed thicknesses, in [0, 1).", "", |
| 292 |
|
43 |
FromBelow(0.0, 1.0)); |
| 293 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("dip", strata.dip, "Dip of the beds from horizontal, in radians, below 90 deg.", "rad", |
| 294 |
|
43 |
FromBelow(0.0, 0.5 * std::numbers::pi)); |
| 295 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("dip_azimuth", strata.dipAzimuth, |
| 296 |
|
|
"Direction the beds dip toward, in radians counter-clockwise from +x (local east on a " |
| 297 |
|
|
"body).", |
| 298 |
|
|
"rad"); |
| 299 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("sharpness", strata.sharpness, |
| 300 |
|
|
"How sharply each bed is cut into a flat bench and a cliff, at least 1; 1 leaves the " |
| 301 |
|
|
"ground as it is.", |
| 302 |
|
43 |
"", AtLeast(1.0)); |
| 303 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("strength", strata.strength, "Share of the terracing applied, in [0, 1].", "", |
| 304 |
|
43 |
UnitInterval()); |
| 305 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("cliff_share", strata.cliffShare, |
| 306 |
|
|
"Share of each bed's height, at its top, laid as bedrock in the material map, in (0, 1].", |
| 307 |
|
43 |
"", AboveUpTo(0.0, 1.0)); |
| 308 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("seed", strata.seed, "Seed of the bed boundaries."); |
| 309 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("anchor_x", strata.anchor.x, |
| 310 |
|
|
"On a body, the longitude in degrees of the point whose tangent frame the dip is measured " |
| 311 |
|
|
"in."); |
| 312 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("anchor_y", strata.anchor.y, "On a body, the latitude in degrees of the anchor."); |
| 313 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("hard_share", strata.hardShare, |
| 314 |
|
|
"Share of the beds that are hard rock, from 0 to 1: hard beds form benches and cliffs of " |
| 315 |
|
|
"bedrock, soft beds slopes cut at soft_sharpness without bedrock.", |
| 316 |
|
43 |
"", UnitInterval()); |
| 317 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::StrataLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("soft_sharpness", strata.softSharpness, |
| 318 |
|
|
"How sharply soft beds are cut into benches and slopes, at least 1; 1 leaves them as they " |
| 319 |
|
|
"are.", |
| 320 |
|
43 |
"", AtLeast(1.0)); |
| 321 |
|
43 |
} |
| 322 |
|
|
|
| 323 |
|
|
template <> struct SpecName<SandShadowLayerSpec> { |
| 324 |
|
|
static constexpr std::string_view kName = "sand_shadow"; |
| 325 |
|
|
static constexpr std::string_view kDescription = |
| 326 |
|
|
"Sand shadows: a tapering sand tail in the lee of each boulder of the nearest boulder " |
| 327 |
|
|
"layer before this one; lays sand over the material map."; |
| 328 |
|
|
}; |
| 329 |
|
43 |
template <typename IO> void Fields(IO& io, SandShadowLayerSpec& spec) { |
| 330 |
|
43 |
SandShadowOptions& shadows = spec.shadows; |
| 331 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("wind_azimuth", shadows.windAzimuth, |
| 332 |
|
|
"Where the wind blows toward, in radians counter-clockwise from +x (local east on a " |
| 333 |
|
|
"body).", |
| 334 |
|
|
"rad"); |
| 335 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("length_ratio", shadows.lengthRatio, |
| 336 |
|
|
"Length of a tail beyond its boulder over the boulder's width; 1.1 is the reattachment " |
| 337 |
|
|
"length behind a dome, and modelled shadow dunes run 1.3 to 5.6, longer in lighter " |
| 338 |
|
|
"winds.", |
| 339 |
|
43 |
"", Above(0.0)); |
| 340 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("flank_angle", shadows.flankAngle, |
| 341 |
|
|
"Slope of a tail's flanks, in radians, at most the angle of repose (about 32 deg for dry " |
| 342 |
|
|
"sand); sets the tail's height with the boulder's width.", |
| 343 |
|
43 |
"rad", Inside(0.0, 0.5 * std::numbers::pi)); |
| 344 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("min_diameter", shadows.minDiameter, "Smallest boulder with a tail, in metres.", "m", |
| 345 |
|
43 |
AtLeast(0.0)); |
| 346 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("cover_thickness", shadows.coverThickness, |
| 347 |
|
43 |
"Sand depth that fully covers the ground in the material map, in metres.", "m", Above(0.0)); |
| 348 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 10 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandShadowLayerSpec&):
✓ Branch 4 taken 24 times.
|
43 |
io("fade", shadows.fade, |
| 349 |
|
|
"How tails behind boulders too small for the sample spacing fade out, by samples across " |
| 350 |
|
|
"the boulder."); |
| 351 |
|
43 |
} |
| 352 |
|
|
|
| 353 |
|
|
template <> struct SpecName<SandFillLayerSpec> { |
| 354 |
|
|
static constexpr std::string_view kName = "sand_fill"; |
| 355 |
|
|
static constexpr std::string_view kDescription = |
| 356 |
|
|
"Sand pooled in the lows of the ground beneath: cracks, troughs and hollows between " |
| 357 |
|
|
"rises, laying sand over the material map."; |
| 358 |
|
|
}; |
| 359 |
|
37 |
template <typename IO> void Fields(IO& io, SandFillLayerSpec& spec) { |
| 360 |
|
37 |
SandFillOptions& fill = spec.sandFill; |
| 361 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("reach", fill.reach, |
| 362 |
|
|
"Radius in metres of the surroundings a low is measured against: two rings, at half the " |
| 363 |
|
|
"reach and at the reach.", |
| 364 |
|
37 |
"m", Above(0.0)); |
| 365 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("fill", fill.fill, "Share of a low's depth below its surroundings that sand fills, 0 to 1.", |
| 366 |
|
37 |
"", UnitInterval()); |
| 367 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("max_thickness", fill.maxThickness, |
| 368 |
|
37 |
"The thickest the sand gets, in metres, approached smoothly.", "m", Above(0.0)); |
| 369 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SandFillLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("cover_thickness", fill.coverThickness, |
| 370 |
|
|
"Sand thickness in metres from which it fully covers the ground in the material map.", "m", |
| 371 |
|
37 |
Above(0.0)); |
| 372 |
|
37 |
} |
| 373 |
|
|
|
| 374 |
|
|
template <> struct SpecName<BedformLayerSpec> { |
| 375 |
|
|
static constexpr std::string_view kName = "bedforms"; |
| 376 |
|
|
static constexpr std::string_view kDescription = |
| 377 |
|
|
"Fields of wind-blown ripples or dunes added to the terrain."; |
| 378 |
|
|
}; |
| 379 |
|
37 |
template <typename IO> void Fields(IO& io, BedformLayerSpec& spec) { |
| 380 |
|
37 |
BedformOptions& bedforms = spec.bedforms; |
| 381 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("wavelength", bedforms.wavelength, |
| 382 |
|
|
"Crest-to-crest spacing, in metres; each field's varies from 0.8 to 1.2 times it.", "m", |
| 383 |
|
37 |
Above(0.0)); |
| 384 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("height", bedforms.height, |
| 385 |
|
|
"Trough-to-crest height, in metres, scaled with each field's wavelength.", "m", |
| 386 |
|
37 |
AtLeast(0.0)); |
| 387 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("wind_azimuth", bedforms.windAzimuth, |
| 388 |
|
|
"Direction the wind blows toward, in radians counter-clockwise from +x (local east on a " |
| 389 |
|
|
"sphere); crests lie across it.", |
| 390 |
|
|
"rad"); |
| 391 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("azimuth_spread", bedforms.azimuthSpread, |
| 392 |
|
|
"Largest difference of each field's wind from the azimuth, in radians.", "rad", |
| 393 |
|
37 |
AtLeast(0.0)); |
| 394 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("lee_fraction", bedforms.leeFraction, |
| 395 |
|
|
"Share of a wavelength the lee face takes, in (0, 1): 0.5 is symmetric, lower values give " |
| 396 |
|
|
"a steeper lee face.", |
| 397 |
|
37 |
"", Inside(0.0, 1.0)); |
| 398 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("sinuosity", bedforms.sinuosity, |
| 399 |
|
|
"How far a crest wanders along its length, in wavelengths; 0 gives straight crests.", "", |
| 400 |
|
37 |
AtLeast(0.0)); |
| 401 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("cover", bedforms.cover, |
| 402 |
|
|
"Share of the ground under bedform fields, from 0 to 0.9; 0 gives no bedforms.", "", |
| 403 |
|
37 |
Between(0.0, 0.9)); |
| 404 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("field_size", bedforms.fieldSize, "Typical width of a bedform field, in metres.", "m", |
| 405 |
|
37 |
Above(0.0)); |
| 406 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("seed", bedforms.seed, |
| 407 |
|
|
"Seed of the fields and their crests; changing it gives a different layout of the same " |
| 408 |
|
|
"statistics."); |
| 409 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("exposure", bedforms.exposure, |
| 410 |
|
|
"Leaves out fields whose centres lie on bedrock, the likelier the barer the ground, as " |
| 411 |
|
|
"sand settles in lows; unset disables it."); |
| 412 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("exposure_spacing", bedforms.exposureSpacing, |
| 413 |
|
37 |
"Spacing in metres the ground is read at for the exposure field.", "m", Above(0.0)); |
| 414 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BedformLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("fade", bedforms.fade, |
| 415 |
|
|
"How bedforms too fine for the sample spacing fade out, by samples per wavelength."); |
| 416 |
|
37 |
} |
| 417 |
|
|
|
| 418 |
|
|
template <> struct SpecName<DemDetailLayerSpec> { |
| 419 |
|
|
static constexpr std::string_view kName = "dem_detail"; |
| 420 |
|
|
static constexpr std::string_view kDescription = |
| 421 |
|
|
"Adds the detail a GeoTIFF DEM has above its own low-pass, to restore measured relief over " |
| 422 |
|
|
"a " |
| 423 |
|
|
"raster source read with the same low_pass."; |
| 424 |
|
|
}; |
| 425 |
|
28 |
template <typename IO> void Fields(IO& io, DemDetailLayerSpec& spec) { |
| 426 |
6/6
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DemDetailLayerSpec&):
✓ Branch 3 taken 9 times.
✓ Branch 8 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DemDetailLayerSpec&):
✓ Branch 3 taken 2 times.
✓ Branch 8 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DemDetailLayerSpec&):
✓ Branch 3 taken 17 times.
✓ Branch 8 taken 17 times.
|
28 |
io("path", spec.path, InputPathHelp("GeoTIFF DEM to take the detail from")); |
| 427 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 17 times.
|
28 |
io("band", spec.read.band, "Band of the file to read, counting from 0."); |
| 428 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 17 times.
|
28 |
io("resampling", spec.read.resampling, "Interpolation used between the DEM's cells."); |
| 429 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 17 times.
|
28 |
io("scale", spec.read.scale, |
| 430 |
|
|
"Factor each sample is multiplied by, replacing the band's scale from the file's GDAL " |
| 431 |
|
|
"metadata. Unset keeps the file's."); |
| 432 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 17 times.
|
28 |
io("offset", spec.read.offset, |
| 433 |
|
|
"Added to each scaled sample, replacing the band's offset from the file's GDAL metadata. " |
| 434 |
|
|
"Unset keeps the file's.", |
| 435 |
|
|
"m"); |
| 436 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 17 times.
|
28 |
io("low_pass", spec.read.lowPass, |
| 437 |
|
|
"Standard deviation in metres of the Gaussian low-pass the detail is measured above; " |
| 438 |
|
|
"positive, and the same as the raster source's low_pass to restore the DEM whole.", |
| 439 |
|
28 |
"m", Above(0.0)); |
| 440 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::DemDetailLayerSpec&):
✓ Branch 4 taken 17 times.
|
28 |
io("weight", spec.weight, "Share of the detail added; 1 restores it whole, 0.5 halves it."); |
| 441 |
|
28 |
} |
| 442 |
|
|
|
| 443 |
|
|
template <> struct SpecName<ScaleLayerSpec> { |
| 444 |
|
|
static constexpr std::string_view kName = "scale"; |
| 445 |
|
|
static constexpr std::string_view kDescription = |
| 446 |
|
|
"Scales and shifts the heights so far, for vertical exaggeration or a datum shift."; |
| 447 |
|
|
}; |
| 448 |
|
37 |
template <typename IO> void Fields(IO& io, ScaleLayerSpec& spec) { |
| 449 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ScaleLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ScaleLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ScaleLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("scale", spec.scale, |
| 450 |
|
|
"Factor every height so far is multiplied by, as for vertical exaggeration."); |
| 451 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ScaleLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ScaleLayerSpec&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ScaleLayerSpec&):
✓ Branch 4 taken 20 times.
|
37 |
io("offset", spec.offset, "Metres added to every height after scaling, to shift the datum.", |
| 452 |
|
|
"m"); |
| 453 |
|
37 |
} |
| 454 |
|
|
|
| 455 |
|
|
template <> struct SpecName<ClampLayerSpec> { |
| 456 |
|
|
static constexpr std::string_view kName = "clamp"; |
| 457 |
|
|
static constexpr std::string_view kDescription = |
| 458 |
|
|
"Clamps the heights so far between optional bounds, to flatten a basin floor or cap " |
| 459 |
|
|
"peaks."; |
| 460 |
|
|
}; |
| 461 |
|
44 |
template <typename IO> void Fields(IO& io, ClampLayerSpec& spec) { |
| 462 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ClampLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ClampLayerSpec&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ClampLayerSpec&):
✓ Branch 4 taken 23 times.
|
44 |
io("min", spec.min, |
| 463 |
|
|
"Lowest height kept, in metres; lower heights are raised to it, flattening basin floors. " |
| 464 |
|
|
"Unset leaves heights unbounded below.", |
| 465 |
|
|
"m"); |
| 466 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ClampLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ClampLayerSpec&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ClampLayerSpec&):
✓ Branch 4 taken 23 times.
|
44 |
io("max", spec.max, |
| 467 |
|
|
"Highest height kept, in metres; higher heights are lowered to it, capping peaks. Unset " |
| 468 |
|
|
"leaves heights unbounded above.", |
| 469 |
|
|
"m"); |
| 470 |
|
44 |
} |
| 471 |
|
|
|
| 472 |
|
|
template <> struct SpecName<RectangleRegionSpec> { |
| 473 |
|
|
static constexpr std::string_view kName = "rectangle"; |
| 474 |
|
|
static constexpr std::string_view kDescription = |
| 475 |
|
|
"An axis-aligned rectangle in the surface's coordinates."; |
| 476 |
|
|
}; |
| 477 |
|
70 |
template <typename IO> void Fields(IO& io, RectangleRegionSpec& spec) { |
| 478 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 49 times.
|
70 |
io("min_x", spec.minX, |
| 479 |
|
|
"Lower edge along x in the surface's coordinates; the longitude in degrees on a sphere."); |
| 480 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 49 times.
|
70 |
io("min_y", spec.minY, |
| 481 |
|
|
"Lower edge along y in the surface's coordinates; the latitude in degrees on a sphere."); |
| 482 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 49 times.
|
70 |
io("max_x", spec.maxX, |
| 483 |
|
|
"Upper edge along x in the surface's coordinates; the longitude in degrees on a sphere."); |
| 484 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RectangleRegionSpec&):
✓ Branch 4 taken 49 times.
|
70 |
io("max_y", spec.maxY, |
| 485 |
|
|
"Upper edge along y in the surface's coordinates; the latitude in degrees on a sphere."); |
| 486 |
|
70 |
} |
| 487 |
|
|
|
| 488 |
|
|
template <> struct SpecName<CircleRegionSpec> { |
| 489 |
|
|
static constexpr std::string_view kName = "circle"; |
| 490 |
|
|
static constexpr std::string_view kDescription = |
| 491 |
|
|
"A circle in the surface's coordinates, its radius in metres."; |
| 492 |
|
|
}; |
| 493 |
|
35 |
template <typename IO> void Fields(IO& io, CircleRegionSpec& spec) { |
| 494 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 20 times.
|
35 |
io("x", spec.x, |
| 495 |
|
|
"Centre along x in the surface's coordinates; the longitude in degrees on a sphere."); |
| 496 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 20 times.
|
35 |
io("y", spec.y, |
| 497 |
|
|
"Centre along y in the surface's coordinates; the latitude in degrees on a sphere."); |
| 498 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 6 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CircleRegionSpec&):
✓ Branch 4 taken 20 times.
|
35 |
io("radius", spec.radius, "Radius of the circle in metres, also on a sphere.", "m", |
| 499 |
|
35 |
AtLeast(0.0)); |
| 500 |
|
35 |
} |
| 501 |
|
|
|
| 502 |
|
|
template <> struct SpecName<RegionLayerSpec> { |
| 503 |
|
|
static constexpr std::string_view kName = "region"; |
| 504 |
|
|
static constexpr std::string_view kDescription = |
| 505 |
|
|
"Another layer applied only inside a rectangle or circle, feathered outside it: to " |
| 506 |
|
|
"confine craters to an area or flatten a landing pad."; |
| 507 |
|
|
}; |
| 508 |
|
55 |
template <typename IO> void Fields(IO& io, RegionLayerSpec& spec) { |
| 509 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 19 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 26 times.
|
55 |
io("shape", spec.shape, "Area the inner layer is applied in: a rectangle or a circle."); |
| 510 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 19 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 26 times.
|
54 |
io("feather", spec.feather, |
| 511 |
|
|
"Distance in metres outside the shape over which the inner layer fades back to the " |
| 512 |
|
|
"unchanged height; 0 gives a hard edge.", |
| 513 |
|
54 |
"m", AtLeast(0.0)); |
| 514 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 19 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 26 times.
|
54 |
io("blend", spec.blend, "Curve of the fade across the feather."); |
| 515 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 18 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RegionLayerSpec&):
✓ Branch 4 taken 26 times.
|
54 |
io("layer", spec.layer, |
| 516 |
|
|
"Layer applied only inside the shape. A crater layer here does not count as the crater " |
| 517 |
|
|
"layer for later boulder ejecta or secondaries."); |
| 518 |
|
53 |
} |
| 519 |
|
|
|
| 520 |
|
|
} // namespace terraingen::config |
| 521 |
|
|
|