| Line |
Branch |
Exec |
Source |
| 1 |
|
|
/// @file |
| 2 |
|
|
/// @brief The JSON fields of the albedo, its sources and its crater layers. |
| 3 |
|
|
#pragma once |
| 4 |
|
|
|
| 5 |
|
|
#include "terraingen/config/config.h" |
| 6 |
|
|
#include "terraingen/config/fields/common.h" |
| 7 |
|
|
|
| 8 |
|
|
#include <string_view> |
| 9 |
|
|
|
| 10 |
|
|
namespace terraingen::config { |
| 11 |
|
|
|
| 12 |
|
|
template <> struct SpecName<SyntheticAlbedoSpec> { |
| 13 |
|
|
static constexpr std::string_view kName = "synthetic"; |
| 14 |
|
|
static constexpr std::string_view kDescription = |
| 15 |
|
|
"A base colour in hue, saturation and value, each varied by noise: an albedo for terrain " |
| 16 |
|
|
"without data."; |
| 17 |
|
|
}; |
| 18 |
|
82 |
template <typename IO> void Fields(IO& io, SyntheticAlbedoSpec& spec) { |
| 19 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 47 times.
|
82 |
io("rgb", spec.rgb, |
| 20 |
|
|
"Gives three bands, red, green and blue, from the colour; off gives one band of the value " |
| 21 |
|
|
"alone, ignoring hue and saturation."); |
| 22 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 47 times.
|
82 |
io("hue", spec.hue, "Hue of the base colour in degrees, wrapping around; used with rgb only.", |
| 23 |
|
|
"deg"); |
| 24 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 47 times.
|
82 |
io("saturation", spec.saturation, |
| 25 |
|
|
"Saturation of the base colour, from 0 for grey to 1; used with rgb only.", "", |
| 26 |
|
82 |
UnitInterval()); |
| 27 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 47 times.
|
82 |
io("value", spec.value, |
| 28 |
|
|
"Reflectance of the brightest band, from 0 to 1; the one band's value without rgb. " |
| 29 |
|
|
"Higher values give a brighter surface.", |
| 30 |
|
82 |
"", UnitInterval()); |
| 31 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 47 times.
|
82 |
io("hue_noise", spec.hueNoise, |
| 32 |
|
|
"Noise layers, 0 to 8, whose sum in degrees is added to the hue; used with rgb only."); |
| 33 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 47 times.
|
82 |
io("saturation_noise", spec.saturationNoise, |
| 34 |
|
|
"Noise layers, 0 to 8, added to the saturation, which is then clamped to [0, 1]; used " |
| 35 |
|
|
"with rgb only."); |
| 36 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SyntheticAlbedoSpec&):
✓ Branch 4 taken 47 times.
|
82 |
io("value_noise", spec.valueNoise, |
| 37 |
|
|
"Noise layers, 0 to 8: the value is multiplied by 1 plus their sum and clamped to [0, 1], " |
| 38 |
|
|
"so their amplitude sets the relative contrast."); |
| 39 |
|
82 |
} |
| 40 |
|
|
|
| 41 |
|
38 |
template <typename IO> void Fields(IO& io, AlbedoDetail& detail) { |
| 42 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 27 times.
|
38 |
io("enabled", detail.enabled, |
| 43 |
|
|
"Adds fractal detail below the map's resolution; off leaves the interpolated map as it " |
| 44 |
|
|
"is."); |
| 45 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 27 times.
|
38 |
io("seed", detail.seed, |
| 46 |
|
|
"Seed of the detail noise; changing it gives a different pattern of the same roughness."); |
| 47 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 27 times.
|
38 |
io("octaves", detail.octaves, |
| 48 |
|
|
"Octaves of detail, 1 to 16, from half the map's cell size down, each half the wavelength " |
| 49 |
|
|
"of the one before.", |
| 50 |
|
38 |
"", Between(1.0, 16.0)); |
| 51 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 27 times.
|
38 |
io("scale", detail.scale, |
| 52 |
|
|
"Factor on the RMS of every octave, not negative; 0 adds no detail, higher values give a " |
| 53 |
|
|
"more mottled albedo.", |
| 54 |
|
38 |
"", AtLeast(0.0)); |
| 55 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 27 times.
|
38 |
io("hurst", detail.hurst, |
| 56 |
|
|
"Hurst exponent, in [0, 1], used instead of the one measured from the map; lower values " |
| 57 |
|
|
"keep more contrast at fine scales. Unset uses the measured one.", |
| 58 |
|
38 |
"", UnitInterval()); |
| 59 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoDetail&):
✓ Branch 4 taken 27 times.
|
38 |
io("fade", detail.fade, "How octaves of detail too fine for the sample spacing fade out."); |
| 60 |
|
38 |
} |
| 61 |
|
|
|
| 62 |
|
|
template <> struct SpecName<RasterAlbedoSpec> { |
| 63 |
|
|
static constexpr std::string_view kName = "raster"; |
| 64 |
|
|
static constexpr std::string_view kDescription = |
| 65 |
|
|
"Albedo read from one or three bands of a GeoTIFF in the terrain's projection, such as an " |
| 66 |
|
|
"orbital albedo map."; |
| 67 |
|
|
}; |
| 68 |
|
29 |
template <typename IO> void Fields(IO& io, RasterAlbedoSpec& spec) { |
| 69 |
6/6
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RasterAlbedoSpec&):
✓ Branch 2 taken 9 times.
✓ Branch 7 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RasterAlbedoSpec&):
✓ Branch 2 taken 2 times.
✓ Branch 7 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RasterAlbedoSpec&):
✓ Branch 2 taken 18 times.
✓ Branch 7 taken 18 times.
|
58 |
io("path", spec.path, |
| 70 |
|
29 |
InputPathHelp("GeoTIFF albedo map in the terrain's projected coordinates")); |
| 71 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 18 times.
|
29 |
io("bands", spec.bands, |
| 72 |
|
|
"Bands of the file to read, counting from 0: one for a single albedo band, or three for " |
| 73 |
|
|
"red, green and blue."); |
| 74 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 18 times.
|
29 |
io("scale", spec.scale, |
| 75 |
|
|
"Factor each sample is multiplied by, replacing the band's scale from the file's GDAL " |
| 76 |
|
|
"metadata, as for maps stored as integers. Unset keeps the file's."); |
| 77 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 18 times.
|
29 |
io("offset", spec.offset, |
| 78 |
|
|
"Added to each scaled sample, replacing the band's offset from the file's GDAL metadata. " |
| 79 |
|
|
"Unset keeps the file's."); |
| 80 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 18 times.
|
29 |
io("resampling", spec.options.method, |
| 81 |
|
|
"Interpolation used to sample the map at the terrain's points."); |
| 82 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 2 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RasterAlbedoSpec&):
✓ Branch 4 taken 18 times.
|
29 |
io("detail", spec.options.detail, |
| 83 |
|
|
"Fractal detail below the map's resolution, continuing the map's own measured roughness " |
| 84 |
|
|
"to finer scales."); |
| 85 |
|
29 |
} |
| 86 |
|
|
|
| 87 |
|
65 |
template <typename IO> void Fields(IO& io, ObliqueImpacts& oblique) { |
| 88 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 49 times.
|
65 |
io("enabled", oblique.enabled, |
| 89 |
|
|
"Draws an impact angle and direction per crater that shape its rays; off treats every " |
| 90 |
|
|
"impact as vertical."); |
| 91 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 49 times.
|
65 |
io("heading", oblique.heading, |
| 92 |
|
|
"Downrange direction of every impact, in radians counter-clockwise from east; unset draws " |
| 93 |
|
|
"a random heading per crater.", |
| 94 |
|
|
"rad"); |
| 95 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 49 times.
|
65 |
io("asymmetric_degrees", oblique.asymmetricDegrees, |
| 96 |
|
|
"Impact angle from the horizontal, in degrees, below which ejecta leave faster downrange, " |
| 97 |
|
|
"lengthening rays there and shortening them uprange.", |
| 98 |
|
65 |
"deg", Between(0.0, 90.0)); |
| 99 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 49 times.
|
65 |
io("forbidden_degrees", oblique.forbiddenDegrees, |
| 100 |
|
|
"Impact angle in degrees below which rays within the zone half width of uprange are " |
| 101 |
|
|
"dropped; at most the asymmetric angle.", |
| 102 |
|
65 |
"deg", Between(0.0, 90.0)); |
| 103 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 49 times.
|
65 |
io("butterfly_degrees", oblique.butterflyDegrees, |
| 104 |
|
|
"Impact angle in degrees below which rays within the zone half width of downrange are " |
| 105 |
|
|
"dropped too, a butterfly pattern; at most the forbidden angle.", |
| 106 |
|
65 |
"deg", Between(0.0, 90.0)); |
| 107 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 49 times.
|
65 |
io("downrange_speed_ratio", oblique.downrangeSpeedRatio, |
| 108 |
|
|
"Downrange over uprange ejection speed below the asymmetric angle, drawn per crater; at " |
| 109 |
|
|
"least 1, higher values stretch downrange rays more."); |
| 110 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ObliqueImpacts&):
✓ Branch 4 taken 49 times.
|
65 |
io("zone_half_width_degrees", oblique.zoneHalfWidthDegrees, |
| 111 |
|
|
"Half width in degrees, 0 to 180, of the ray-free zones uprange and downrange; " |
| 112 |
|
|
"illustrative, as the sources do not measure it.", |
| 113 |
|
65 |
"deg", Between(0.0, 180.0)); |
| 114 |
|
65 |
} |
| 115 |
|
|
|
| 116 |
|
61 |
template <typename IO> void Fields(IO& io, CraterRays& rays) { |
| 117 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("enabled", rays.enabled, |
| 118 |
|
|
"Gives craters rays of bright material; off leaves only their interiors and ejecta " |
| 119 |
|
|
"bright."); |
| 120 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("count", rays.count, |
| 121 |
|
|
"Number of rays of a crater, drawn per crater and rounded; from 0 to 64."); |
| 122 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("length_coefficient", rays.lengthCoefficient, |
| 123 |
|
|
"Coefficient of the median ray length, coefficient R^exponent km for crater radius R in " |
| 124 |
|
|
"km; higher values give longer rays.", |
| 125 |
|
61 |
"", Above(0.0)); |
| 126 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("length_exponent", rays.lengthExponent, |
| 127 |
|
|
"Exponent of the crater radius in the median ray length, positive; higher values make " |
| 128 |
|
|
"large craters' rays relatively longer.", |
| 129 |
|
61 |
"", Above(0.0)); |
| 130 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("length_spread", rays.lengthSpread, |
| 131 |
|
|
"Natural logarithm of a ray's length over the median, drawn per ray; a wider " |
| 132 |
|
|
"distribution gives more varied lengths."); |
| 133 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("width_degrees", rays.widthDegrees, |
| 134 |
|
|
"Angle in degrees a ray spans 2 radii from the centre, drawn per ray, within (0, 180); " |
| 135 |
|
|
"beyond 2 radii a ray keeps the width it has there."); |
| 136 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("excess", rays.excess, |
| 137 |
|
|
"Optical maturity above the background along a ray at the rim, falling linearly to 0 at " |
| 138 |
|
|
"its end; not negative, higher values give brighter rays.", |
| 139 |
|
61 |
"", AtLeast(0.0)); |
| 140 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("patchiness", rays.patchiness, |
| 141 |
|
|
"Share of a ray's strength, from 0 to 1, that noise along it can take away, breaking it " |
| 142 |
|
|
"into patches; 0 gives unbroken rays.", |
| 143 |
|
61 |
"", UnitInterval()); |
| 144 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("patch_radii", rays.patchRadii, |
| 145 |
|
|
"Wavelength of the noise along a ray, in crater radii; positive, smaller values give " |
| 146 |
|
|
"shorter patches.", |
| 147 |
|
61 |
"", Above(0.0)); |
| 148 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("oblique", rays.oblique, |
| 149 |
|
|
"How oblique impacts lengthen rays downrange and clear them uprange."); |
| 150 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterRays&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterRays&):
✓ Branch 4 taken 12 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterRays&):
✓ Branch 4 taken 40 times.
|
61 |
io("layout", rays.layout, |
| 151 |
|
|
"Takes the rays' number, directions and widths from this layout in place of count and " |
| 152 |
|
|
"width_degrees, so they lie over a secondaries layer with the same layout; unset draws them " |
| 153 |
|
|
"per crater."); |
| 154 |
|
61 |
} |
| 155 |
|
|
|
| 156 |
|
56 |
template <typename IO> void Fields(IO& io, RayRetention& retention) { |
| 157 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayRetention&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayRetention&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayRetention&):
✓ Branch 4 taken 40 times.
|
56 |
io("small_diameter", retention.smallDiameter, |
| 158 |
|
|
"Diameter in metres at or below which craters keep their bright material for the small " |
| 159 |
|
|
"time.", |
| 160 |
|
56 |
"m", Above(0.0)); |
| 161 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayRetention&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayRetention&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayRetention&):
✓ Branch 4 taken 40 times.
|
56 |
io("small_myr", retention.smallMyr, |
| 162 |
|
|
"Time in Myr craters up to the small diameter keep their bright material.", "Myr", |
| 163 |
|
56 |
Above(0.0)); |
| 164 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayRetention&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayRetention&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayRetention&):
✓ Branch 4 taken 40 times.
|
56 |
io("mid_diameter", retention.midDiameter, |
| 165 |
|
|
"Diameter in metres from which craters keep their bright material for the mid time; " |
| 166 |
|
|
"between the small and mid diameters the time follows a power law of diameter.", |
| 167 |
|
56 |
"m", Above(0.0)); |
| 168 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayRetention&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayRetention&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayRetention&):
✓ Branch 4 taken 40 times.
|
56 |
io("mid_myr", retention.midMyr, |
| 169 |
|
|
"Time in Myr craters from the mid to the large diameter keep their bright material.", "Myr", |
| 170 |
|
56 |
Above(0.0)); |
| 171 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayRetention&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayRetention&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayRetention&):
✓ Branch 4 taken 40 times.
|
56 |
io("large_diameter", retention.largeDiameter, |
| 172 |
|
|
"Diameter in metres above which craters keep their bright material for the large time.", "m", |
| 173 |
|
56 |
Above(0.0)); |
| 174 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayRetention&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayRetention&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayRetention&):
✓ Branch 4 taken 40 times.
|
56 |
io("large_myr", retention.largeMyr, |
| 175 |
|
|
"Time in Myr craters above the large diameter keep their bright material.", "Myr", |
| 176 |
|
56 |
Above(0.0)); |
| 177 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RayRetention&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RayRetention&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RayRetention&):
✓ Branch 4 taken 40 times.
|
56 |
io("scale", retention.scale, |
| 178 |
|
|
"Factor every retention time is multiplied by, positive; higher values keep craters " |
| 179 |
|
|
"bright for longer.", |
| 180 |
|
56 |
"", Above(0.0)); |
| 181 |
|
56 |
} |
| 182 |
|
|
|
| 183 |
|
57 |
template <typename IO> void Fields(IO& io, CraterAlbedoTexture& texture) { |
| 184 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("streaks", texture.streaks, |
| 185 |
|
|
"Share of the excess radial streaks take away between filaments, from 0 to 1, breaking " |
| 186 |
|
|
"ejecta, rays and interiors into fine streaks; 0 leaves them smooth.", |
| 187 |
|
57 |
"", UnitInterval()); |
| 188 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("streak_width_degrees", texture.streakWidthDegrees, |
| 189 |
|
57 |
"Typical width of a filament around the crater, in degrees.", "deg", Above(0.0)); |
| 190 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("streak_length_radii", texture.streakLengthRadii, |
| 191 |
|
57 |
"Typical length of a filament outward from the crater, in crater radii.", "", Above(0.0)); |
| 192 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("continuous_radii", texture.continuousRadii, |
| 193 |
|
|
"How far beyond the rim the ejecta stay continuous before breaking into filaments, in " |
| 194 |
|
|
"crater radii; 0 streaks them from the rim.", |
| 195 |
|
57 |
"", AtLeast(0.0)); |
| 196 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("lobes", texture.lobes, |
| 197 |
|
|
"How far the ejecta's edge wanders in and out, as a share of its reach from 0 to 0.9; 0 " |
| 198 |
|
|
"keeps it circular.", |
| 199 |
|
57 |
"", Between(0.0, 0.9)); |
| 200 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("lobe_count", texture.lobeCount, "Typical number of lobes around a crater, 1 to 64.", "", |
| 201 |
|
57 |
Between(1.0, 64.0)); |
| 202 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("floor_share", texture.floorShare, |
| 203 |
|
|
"Interior excess on the floor over that at the rim, from 0 to 1; 1 keeps the interior " |
| 204 |
|
|
"even, lower values brighten the walls over the floor.", |
| 205 |
|
57 |
"", UnitInterval()); |
| 206 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 8 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoTexture&):
✓ Branch 4 taken 40 times.
|
57 |
io("seed", texture.seed, "Varies every crater's texture."); |
| 207 |
|
57 |
} |
| 208 |
|
|
|
| 209 |
|
229 |
template <typename IO> void Fields(IO& io, ReflectanceZone& zone) { |
| 210 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 5 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 5 taken 196 times.
|
229 |
io("share", zone.share, "Share of craters, from 0 to 1, with the zone.", "", UnitInterval()); |
| 211 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("change", zone.change, |
| 212 |
|
|
"Reflectance change relative to the pre-impact surface, drawn per crater; above -1, " |
| 213 |
|
|
"negative values darken."); |
| 214 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("coefficient", zone.coefficient, |
| 215 |
|
|
"Coefficient of the zone's reach from the crater's centre, coefficient D^exponent metres " |
| 216 |
|
|
"for diameter D in metres; positive.", |
| 217 |
|
229 |
"m", Above(0.0)); |
| 218 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("exponent", zone.exponent, "Exponent of the diameter in the zone's reach; positive.", "", |
| 219 |
|
229 |
Above(0.0)); |
| 220 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("scale", zone.scale, |
| 221 |
|
|
"Factor on the reach, drawn per crater; positive and bounded, a wider distribution gives " |
| 222 |
|
|
"more varied zones."); |
| 223 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("raggedness", zone.raggedness, |
| 224 |
|
|
"Share of the reach, from 0 up to 1, that fingers of the edge pull in by; 0 keeps the " |
| 225 |
|
|
"zone round, higher values make it ray-like.", |
| 226 |
|
229 |
"", FromBelow(0.0, 1.0)); |
| 227 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("finger_width_degrees", zone.fingerWidthDegrees, |
| 228 |
|
229 |
"Typical width of the edge's fingers around the crater, in degrees.", "deg", Above(0.0)); |
| 229 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("feather", zone.feather, |
| 230 |
|
|
"Share of the reach, from 0 to 1 excluding 0, over which the zone fades out at its edge.", |
| 231 |
|
229 |
"", AboveUpTo(0.0, 1.0)); |
| 232 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ReflectanceZone&):
✓ Branch 4 taken 196 times.
|
229 |
io("retention_myr", zone.retentionMyr, |
| 233 |
|
|
"How long the zone lasts, in Myr, fading like the bright material; unset lasts as long as " |
| 234 |
|
|
"the bright material.", |
| 235 |
|
229 |
"Myr", Above(0.0)); |
| 236 |
|
229 |
} |
| 237 |
|
|
|
| 238 |
|
65 |
template <typename IO> void Fields(IO& io, ZoneShadows& shadows) { |
| 239 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ZoneShadows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ZoneShadows&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ZoneShadows&):
✓ Branch 4 taken 49 times.
|
65 |
io("enabled", shadows.enabled, |
| 240 |
|
|
"Gives the distal zones shadows behind rises such as crater rims, read from the terrain's " |
| 241 |
|
|
"heights; off by default."); |
| 242 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ZoneShadows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ZoneShadows&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ZoneShadows&):
✓ Branch 4 taken 49 times.
|
65 |
io("jet_angle_degrees", shadows.jetAngleDegrees, |
| 243 |
|
|
"Steepest angle in degrees, between 0 and 90 excluded, at which the jet forming the distal " |
| 244 |
|
|
"zones can drop behind a rise; lower values give longer shadows. Illustrative.", |
| 245 |
|
65 |
"deg", Inside(0.0, 90.0)); |
| 246 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ZoneShadows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ZoneShadows&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ZoneShadows&):
✓ Branch 4 taken 49 times.
|
65 |
io("depth", shadows.depth, |
| 247 |
|
|
"Depth in metres of the ground below the jet at which the shadow is full; positive. " |
| 248 |
|
|
"Illustrative.", |
| 249 |
|
65 |
"m", Above(0.0)); |
| 250 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ZoneShadows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ZoneShadows&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ZoneShadows&):
✓ Branch 4 taken 49 times.
|
65 |
io("azimuths", shadows.azimuths, "Rays around a crater the ground is sampled on, 8 to 8192.", |
| 251 |
|
65 |
"", Between(8.0, 8192.0)); |
| 252 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ZoneShadows&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ZoneShadows&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ZoneShadows&):
✓ Branch 4 taken 49 times.
|
65 |
io("radial_samples", shadows.radialSamples, |
| 253 |
|
|
"Samples along each ray out to the distal zones' reach, 8 to 8192.", "", |
| 254 |
|
65 |
Between(8.0, 8192.0)); |
| 255 |
|
65 |
} |
| 256 |
|
|
|
| 257 |
|
56 |
template <typename IO> void Fields(IO& io, CraterReflectanceZones& zones) { |
| 258 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("enabled", zones.enabled, |
| 259 |
|
|
"Gives new small craters the reflectance zones of LROC temporal pairs; off by default."); |
| 260 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("max_diameter", zones.maxDiameter, |
| 261 |
|
|
"Largest crater diameter, in metres, with zones; the published fits stop near 43 m.", "m", |
| 262 |
|
56 |
Above(0.0)); |
| 263 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("mature_depth", zones.matureDepth, |
| 264 |
|
|
"Depth in metres of mature regolith; only craters excavating deeper get the proximal " |
| 265 |
|
|
"high reflectance zone.", |
| 266 |
|
56 |
"m", AtLeast(0.0)); |
| 267 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("excavation_ratio", zones.excavationRatio, |
| 268 |
|
56 |
"Excavation depth over crater diameter; positive.", "", Above(0.0)); |
| 269 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("proximal_high", zones.proximalHigh, |
| 270 |
|
|
"Proximal high reflectance zone: immature ejecta, +12% to a median 1.5 D."); |
| 271 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("proximal_low", zones.proximalLow, |
| 272 |
|
|
"Proximal low reflectance zone: -9% to a median 2.9 D, around nearly every crater."); |
| 273 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("distal_high", zones.distalHigh, |
| 274 |
|
|
"Distal high reflectance zone: +1% to +4% to 0.52 D^2.5 m, around 24% of craters."); |
| 275 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("distal_low", zones.distalLow, |
| 276 |
|
|
"Distal low reflectance zone: -2% to -6%, ray-like, to 5.03 D^2 m, around 84% of " |
| 277 |
|
|
"craters."); |
| 278 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("shadows", zones.shadows, "Shadows of rises in the distal zones; off by default."); |
| 279 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 7 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterReflectanceZones&):
✓ Branch 4 taken 40 times.
|
56 |
io("seed", zones.seed, "Varies every crater's zones."); |
| 280 |
|
56 |
} |
| 281 |
|
|
|
| 282 |
|
54 |
template <typename IO> void Fields(IO& io, CraterAlbedoOptions& options) { |
| 283 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("seed", options.seed, |
| 284 |
|
|
"Seed of which craters get bright material, their rays and their impacts; changing it " |
| 285 |
|
|
"gives a different pattern of the same statistics."); |
| 286 |
|
54 |
CraterSelection& selection = options.selection; |
| 287 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("min_diameter", selection.minDiameter, |
| 288 |
|
54 |
"Smallest diameter, in metres, of craters given bright material.", "m", AtLeast(0.0)); |
| 289 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 5 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 5 taken 31 times.
|
54 |
OptionalBound(io, "max_diameter", selection.maxDiameter, |
| 290 |
|
|
"Largest diameter, in metres, of craters given bright material; unset has no " |
| 291 |
|
|
"upper limit.", |
| 292 |
|
54 |
"m", std::numeric_limits<double>::infinity(), AtLeast(0.0)); |
| 293 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("min_age_gyr", selection.minAgeGyr, |
| 294 |
|
54 |
"Youngest age, in Gyr, of craters given bright material.", "Gyr", AtLeast(0.0)); |
| 295 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 5 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 5 taken 31 times.
|
54 |
OptionalBound(io, "max_age_gyr", selection.maxAgeGyr, |
| 296 |
|
|
"Oldest age, in Gyr, of craters given bright material; unset has no upper limit.", |
| 297 |
|
54 |
"Gyr", std::numeric_limits<double>::infinity(), AtLeast(0.0)); |
| 298 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("manual", selection.manual, |
| 299 |
|
|
"Gives manual craters bright material too; otherwise only generated craters have it."); |
| 300 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("share", options.share, "Share of eligible craters, from 0 to 1, given bright material.", "", |
| 301 |
|
54 |
UnitInterval()); |
| 302 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("background_maturity", options.backgroundMaturity, |
| 303 |
|
|
"Optical maturity (OMAT) of the ground around the craters, positive; the excesses are " |
| 304 |
|
|
"added to it and the albedo is brightened from it.", |
| 305 |
|
54 |
"", Above(0.0)); |
| 306 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("max_maturity", options.maxMaturity, |
| 307 |
|
|
"Cap on the optical maturity where craters' excesses add up, at least the background; it " |
| 308 |
|
|
"limits how bright overlapping craters get."); |
| 309 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("interior_excess", options.interiorExcess, |
| 310 |
|
|
"Optical maturity above the background inside a fresh crater's rim, not negative; higher " |
| 311 |
|
|
"values give brighter interiors.", |
| 312 |
|
54 |
"", AtLeast(0.0)); |
| 313 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("texture", options.texture, |
| 314 |
|
|
"Filaments, lobed ejecta edges and walls brighter than floors; off unless streaks, lobes " |
| 315 |
|
|
"or a floor share below 1 are set."); |
| 316 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("zones", options.zones, |
| 317 |
|
|
"Bright and dark reflectance zones around new small craters, after Robinson et al. " |
| 318 |
|
|
"(2015) and Speyerer et al. (2016); off by default."); |
| 319 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("ejecta_excess", options.ejectaExcess, |
| 320 |
|
|
"Optical maturity above the background on a fresh crater's continuous ejecta at the rim, " |
| 321 |
|
|
"not negative, falling with distance.", |
| 322 |
|
54 |
"", AtLeast(0.0)); |
| 323 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("ejecta_exponent", options.ejectaExponent, |
| 324 |
|
|
"Exponent of the ejecta's fall with distance r, as (r / R)^-exponent for crater radius R; " |
| 325 |
|
|
"positive, higher values keep the bright ejecta nearer the rim.", |
| 326 |
|
54 |
"", Above(0.0)); |
| 327 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("ejecta_reach_radii", options.ejectaReachRadii, |
| 328 |
|
|
"Distance from the centre, in crater radii and over 1, at which the ejecta's excess " |
| 329 |
|
|
"reaches 0.", |
| 330 |
|
54 |
"", Above(1.0)); |
| 331 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
54 |
io("rays", options.rays, "Rays of bright material running out from the craters."); |
| 332 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
53 |
io("retention", options.retention, |
| 333 |
|
|
"How long craters of each diameter keep their bright material."); |
| 334 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
53 |
io("fade_exponent", options.fadeExponent, |
| 335 |
|
|
"Exponent of the fade with age t, max(0, 1 - t / T)^exponent for retention time T; " |
| 336 |
|
|
"positive, 1 is a straight fade and higher values fade sooner.", |
| 337 |
|
53 |
"", Above(0.0)); |
| 338 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
53 |
io("origin_reflectance", options.originReflectance, |
| 339 |
|
|
"Reflectance of the optical maturity origin, the hypermature end-member, from which " |
| 340 |
|
|
"reflectance scales with maturity at fixed iron content."); |
| 341 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoOptions&):
✓ Branch 4 taken 31 times.
|
53 |
io("fade", options.fade, |
| 342 |
|
|
"How bright material of craters too small to resolve at the sample spacing fades out."); |
| 343 |
|
53 |
} |
| 344 |
|
|
|
| 345 |
|
|
template <> struct SpecName<CraterAlbedoSpec> { |
| 346 |
|
|
static constexpr std::string_view kName = "craters"; |
| 347 |
|
|
static constexpr std::string_view kDescription = |
| 348 |
|
|
"Bright ejecta, interiors and rays of the craters of a crater layer, fading with crater " |
| 349 |
|
|
"age."; |
| 350 |
|
|
}; |
| 351 |
|
54 |
template <typename IO> void Fields(IO& io, CraterAlbedoSpec& spec) { |
| 352 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::CraterAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::CraterAlbedoSpec&):
✓ Branch 4 taken 14 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::CraterAlbedoSpec&):
✓ Branch 4 taken 31 times.
|
54 |
io("crater_layer", spec.craterLayer, |
| 353 |
|
|
"Which top-level crater layer's craters to brighten, counting from 0; unset uses every " |
| 354 |
|
|
"top-level crater layer."); |
| 355 |
|
54 |
Fields(io, spec.options); |
| 356 |
|
53 |
} |
| 357 |
|
|
|
| 358 |
|
41 |
template <typename IO> void Fields(IO& io, SplotchSwarms& swarms) { |
| 359 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("enabled", swarms.enabled, |
| 360 |
|
|
"Gives new craters swarms of splotches, their ejecta's secondaries (Robinson et al. " |
| 361 |
|
|
"2015); off by default."); |
| 362 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("crater_rate", swarms.craterRate, |
| 363 |
|
|
"New craters at least 10 m across per km^2 per year; 4.84e-6 from Speyerer et al. (2016).", |
| 364 |
|
41 |
"", Above(0.0)); |
| 365 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("crater_slope", swarms.craterSlope, |
| 366 |
|
|
"Cumulative size slope of the new craters; the Neukum production function has 2.97 to " |
| 367 |
|
|
"3.15.", |
| 368 |
|
41 |
"", Above(0.0)); |
| 369 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("min_crater_diameter", swarms.minCraterDiameter, |
| 370 |
|
|
"Smallest crater with a swarm, in metres; smaller craters throw few splotches.", "m", |
| 371 |
|
41 |
Above(0.0)); |
| 372 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("max_crater_diameter", swarms.maxCraterDiameter, "Largest crater with a swarm, in metres.", |
| 373 |
|
41 |
"m", Above(0.0)); |
| 374 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("reference_diameter", swarms.referenceDiameter, |
| 375 |
|
|
"Diameter in metres of the crater whose swarm was counted: 18.8 m, Robinson et al.", "m", |
| 376 |
|
41 |
Above(0.0)); |
| 377 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("reference_count", swarms.referenceCount, |
| 378 |
|
41 |
"Splotches of the reference crater: 248 within 30 km, Robinson et al.", "", Above(0.0)); |
| 379 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("mu", swarms.mu, |
| 380 |
|
|
"Velocity exponent of the target, between 0 and 1; 0.41 for sand (Housen and Holsapple " |
| 381 |
|
|
"2011). Counts grow as D^(3 + 1.5 mu) and landing distances fall as r^(-1.5 mu).", |
| 382 |
|
41 |
"", Inside(0.0, 1.0)); |
| 383 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("min_range", swarms.minRange, |
| 384 |
|
|
"Nearest landing distance in metres, setting Robinson et al.'s median of 8.7 km.", "m", |
| 385 |
|
41 |
Above(0.0)); |
| 386 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 5 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 5 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 5 taken 28 times.
|
41 |
io("max_range", swarms.maxRange, "Farthest landing distance in metres.", "m", Above(0.0)); |
| 387 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("splotch_diameter", swarms.splotchDiameter, |
| 388 |
|
|
"Diameter of a swarm splotch in metres, drawn per splotch: 2 to 22 m, median 6 m."); |
| 389 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("dark_share", swarms.darkShare, "Share of swarm splotches darker than the ground.", "", |
| 390 |
|
41 |
UnitInterval()); |
| 391 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("bright_share", swarms.brightShare, "Share brighter than the ground; the rest are mixed.", |
| 392 |
|
41 |
"", UnitInterval()); |
| 393 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("dark_change", swarms.darkChange, "Reflectance change of a dark swarm splotch."); |
| 394 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("bright_change", swarms.brightChange, "Reflectance change of a bright swarm splotch."); |
| 395 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("wedge_share", swarms.wedgeShare, |
| 396 |
|
|
"Share of swarm splotches shaped as wedges pointing back to their crater. Illustrative.", "", |
| 397 |
|
41 |
UnitInterval()); |
| 398 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("wedge_elongation", swarms.wedgeElongation, |
| 399 |
|
41 |
"Long over short axis of a wedge, at least 1. Illustrative.", "", AtLeast(1.0)); |
| 400 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchSwarms&):
✓ Branch 4 taken 28 times.
|
41 |
io("craters", swarms.craters, |
| 401 |
|
|
"New craters given by hand, such as an observed impact, each throwing a swarm."); |
| 402 |
|
41 |
} |
| 403 |
|
|
|
| 404 |
|
|
template <> struct SpecName<SplotchAlbedoSpec> { |
| 405 |
|
|
static constexpr std::string_view kName = "splotches"; |
| 406 |
|
|
static constexpr std::string_view kDescription = |
| 407 |
|
|
"Dark and bright splotches that secondary impacts of loose regolith leave over the whole " |
| 408 |
|
|
"surface, after Speyerer et al. (2016)."; |
| 409 |
|
|
}; |
| 410 |
|
32 |
template <typename IO> void Fields(IO& io, SplotchAlbedoSpec& spec) { |
| 411 |
|
32 |
SplotchOptions& options = spec.options; |
| 412 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("seed", options.seed, "Seed of where splotches fall and what they are."); |
| 413 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("rate_coefficient", options.rateCoefficient, |
| 414 |
|
|
"Coefficient a of the cumulative formation rate a d^-b per km^2 per year, d the diameter " |
| 415 |
|
|
"in km; positive, higher values give more splotches.", |
| 416 |
|
32 |
"", Above(0.0)); |
| 417 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("rate_exponent", options.rateExponent, |
| 418 |
|
|
"Slope b of the cumulative formation rate; positive, higher values give relatively more " |
| 419 |
|
|
"small splotches.", |
| 420 |
|
32 |
"", Above(0.0)); |
| 421 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("lifetime_myr", options.lifetimeMyr, |
| 422 |
|
|
"How long a splotch lasts in Myr, fading linearly; positive, the default is the time " |
| 423 |
|
|
"splotches take to churn the top centimetres.", |
| 424 |
|
32 |
"Myr", Above(0.0)); |
| 425 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("min_diameter", options.minDiameter, |
| 426 |
|
|
"Smallest splotch diameter in metres; the published fit is extrapolated below 10 m.", "m", |
| 427 |
|
32 |
Above(0.0)); |
| 428 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("max_diameter", options.maxDiameter, |
| 429 |
|
32 |
"Largest splotch diameter in metres, above the smallest.", "m", Above(0.0)); |
| 430 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("dark_share", options.darkShare, "Share of splotches, from 0 to 1, darker than the ground.", |
| 431 |
|
32 |
"", UnitInterval()); |
| 432 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("bright_share", options.brightShare, |
| 433 |
|
|
"Share of splotches, from 0 to 1, brighter than the ground; the rest are mixed, dark on " |
| 434 |
|
|
"one side and bright on the other.", |
| 435 |
|
32 |
"", UnitInterval()); |
| 436 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("dark_change", options.darkChange, |
| 437 |
|
|
"Reflectance change of a dark splotch relative to the ground before it, drawn per " |
| 438 |
|
|
"splotch; above -1."); |
| 439 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("bright_change", options.brightChange, |
| 440 |
|
|
"Reflectance change of a bright splotch, drawn per splotch; above -1."); |
| 441 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("steep_bright_share", options.steepBrightShare, |
| 442 |
|
|
"Share of splotches on slopes steeper than the steep slope that are bright, from 0 to 1, " |
| 443 |
|
|
"read from the terrain's heights; unset keeps the bright share. Bright splotches are " |
| 444 |
|
|
"found mostly on such slopes, but the source gives no share.", |
| 445 |
|
32 |
"", UnitInterval()); |
| 446 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("steep_slope_degrees", options.steepSlopeDegrees, |
| 447 |
|
|
"Slope in degrees, between 0 and 90 excluded, from which ground is steep.", "deg", |
| 448 |
|
32 |
Inside(0.0, 90.0)); |
| 449 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("softness", options.softness, |
| 450 |
|
|
"Share of a splotch's radius, from 0 to 1 excluding 0, over which its edge fades.", "", |
| 451 |
|
32 |
AboveUpTo(0.0, 1.0)); |
| 452 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("raggedness", options.raggedness, |
| 453 |
|
|
"Share of a splotch's radius, from 0 up to 1, that lobes of its edge pull in by; 0 keeps " |
| 454 |
|
|
"it round.", |
| 455 |
|
32 |
"", FromBelow(0.0, 1.0)); |
| 456 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("fade", options.fade, "How splotches too small to resolve at the sample spacing fade out."); |
| 457 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SplotchAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("swarms", options.swarms, "Swarms of splotches around new craters; off by default."); |
| 458 |
|
32 |
} |
| 459 |
|
|
|
| 460 |
|
23 |
template <typename IO> void Fields(IO& io, BlastZone& zone) { |
| 461 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("x", zone.x, "Surface x of the lander."); |
| 462 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("y", zone.y, "Surface y of the lander."); |
| 463 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("area", zone.area, |
| 464 |
|
|
"Area of the blast zone in m^2; measured: Apollo 18,725 to 53,872 (mean 28,785), Luna 987 " |
| 465 |
|
|
"to 3355 (mean 2100), Surveyor 131 to 279 (mean 215), Chang'e-3 2530.", |
| 466 |
|
23 |
"m^2", Above(0.0)); |
| 467 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("elongation", zone.elongation, |
| 468 |
|
|
"Long over short axis of the zone, at least 1; Apollo about 1.14, Chang'e-3 about 1.74.", "", |
| 469 |
|
23 |
AtLeast(1.0)); |
| 470 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("heading_degrees", zone.headingDegrees, |
| 471 |
|
|
"Direction of the long axis, degrees counter-clockwise from east, such as along the " |
| 472 |
|
|
"final approach.", |
| 473 |
|
|
"deg"); |
| 474 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("change", zone.change, |
| 475 |
|
|
"Mean reflectance change over the zone relative to undisturbed ground at 30 degrees phase, " |
| 476 |
|
|
"above -1; measured +3.4% to +13.2%, Apollo mean +10.9%.", |
| 477 |
|
23 |
"", Above(-1.0)); |
| 478 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("halo_change", zone.haloChange, |
| 479 |
|
|
"Reflectance change of the fainter halo beyond the zone, above -1; +4% at Chang'e-3.", "", |
| 480 |
|
23 |
Above(-1.0)); |
| 481 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("halo_reach", zone.haloReach, |
| 482 |
|
|
"How far the halo reaches over the zone's own reach, at least 1; 1 for no halo.", "", |
| 483 |
|
23 |
AtLeast(1.0)); |
| 484 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("core_radius", zone.coreRadius, |
| 485 |
|
|
"Radius in metres of the darker core beneath the engine and around the crew's tracks; 0 " |
| 486 |
|
|
"for none, a few metres at the Apollo sites.", |
| 487 |
|
23 |
"m", AtLeast(0.0)); |
| 488 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("core_change", zone.coreChange, |
| 489 |
|
|
"Reflectance change of the dark core, above -1; -15% to -30% at the Apollo sites.", "", |
| 490 |
|
23 |
Above(-1.0)); |
| 491 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("raggedness", zone.raggedness, |
| 492 |
|
|
"Share of the zone's radius, from 0 up to 1, that lobes of its edge pull in by.", "", |
| 493 |
|
23 |
FromBelow(0.0, 1.0)); |
| 494 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZone&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZone&):
✓ Branch 4 taken 3 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZone&):
✓ Branch 4 taken 11 times.
|
23 |
io("seed", zone.seed, "Varies the edge's lobes."); |
| 495 |
|
23 |
} |
| 496 |
|
|
|
| 497 |
|
|
template <> struct SpecName<BlastZoneAlbedoSpec> { |
| 498 |
|
|
static constexpr std::string_view kName = "blast_zones"; |
| 499 |
|
|
static constexpr std::string_view kDescription = |
| 500 |
|
|
"Brighter zones of regolith around landers scoured by their descent engines, after Clegg " |
| 501 |
|
|
"et al. (2014) and Clegg-Watkins et al. (2016)."; |
| 502 |
|
|
}; |
| 503 |
|
32 |
template <typename IO> void Fields(IO& io, BlastZoneAlbedoSpec& spec) { |
| 504 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BlastZoneAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BlastZoneAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BlastZoneAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("zones", spec.zones, "One blast zone per lander."); |
| 505 |
|
32 |
} |
| 506 |
|
|
|
| 507 |
|
|
template <> struct SpecName<RockAlbedoSpec> { |
| 508 |
|
|
static constexpr std::string_view kName = "rocks"; |
| 509 |
|
|
static constexpr std::string_view kDescription = |
| 510 |
|
|
"Rock brighter than the regolith: the boulders of boulder layers where resolved, and a " |
| 511 |
|
|
"speckle of the share of each sample covered by those too small to resolve."; |
| 512 |
|
|
}; |
| 513 |
|
32 |
template <typename IO> void Fields(IO& io, RockAlbedoSpec& spec) { |
| 514 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("boulder_layer", spec.boulderLayer, |
| 515 |
|
|
"Which top-level boulder layer's rock to brighten, counting from 0; unset uses every " |
| 516 |
|
|
"top-level boulder layer."); |
| 517 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("seed", spec.options.seed, "Seed of the per-sample draws of rock too small to resolve."); |
| 518 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("reflectance_ratio", spec.options.reflectanceRatio, |
| 519 |
|
|
"Rock reflectance over the regolith's; 2.5 after Marshal et al. (2023), within Holt's " |
| 520 |
|
|
"(1981) Apollo 16 rocks at 18 to 51% against soils of 14 to 15%; earlier models used 1.5.", |
| 521 |
|
32 |
"", Above(0.0)); |
| 522 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::RockAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("unresolved", spec.options.unresolved, |
| 523 |
|
|
"Brightens each sample by the share of it covered by boulders too small to resolve, drawn " |
| 524 |
|
|
"about the expected share with the scatter of randomly placed rocks: bright speckle."); |
| 525 |
|
32 |
} |
| 526 |
|
|
|
| 527 |
|
|
template <> struct SpecName<SlopeAlbedoSpec> { |
| 528 |
|
|
static constexpr std::string_view kName = "slopes"; |
| 529 |
|
|
static constexpr std::string_view kDescription = |
| 530 |
|
|
"Steep ground kept immature and bright by regolith moving downslope, after Ikeda et al. " |
| 531 |
|
|
"(2022) and Lucey et al. (2014)."; |
| 532 |
|
|
}; |
| 533 |
|
32 |
template <typename IO> void Fields(IO& io, SlopeAlbedoSpec& spec) { |
| 534 |
|
32 |
SlopeMaturityOptions& options = spec.options; |
| 535 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("onset_degrees", options.onsetDegrees, |
| 536 |
|
|
"Slope in degrees from which ground freshens; 20, where Lucey et al. (2014) and Ikeda et " |
| 537 |
|
|
"al. (2022) find brightening begin.", |
| 538 |
|
32 |
"deg", FromBelow(0.0, 90.0)); |
| 539 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("maturity_per_degree", options.maturityPerDegree, |
| 540 |
|
|
"Optical maturity (OMAT) gained per degree beyond the onset; about 0.0065 on the crater " |
| 541 |
|
|
"walls of Ikeda et al. (2022).", |
| 542 |
|
32 |
"", AtLeast(0.0)); |
| 543 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("background_maturity", options.backgroundMaturity, |
| 544 |
|
|
"OMAT of gentler ground; about 0.10 at 20 degrees in Laue (Ikeda et al. 2022).", "", |
| 545 |
|
32 |
Above(0.0)); |
| 546 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("max_maturity", options.maxMaturity, "Cap on OMAT, at least the background's.", "", |
| 547 |
|
32 |
Above(0.0)); |
| 548 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("baseline", options.baseline, |
| 549 |
|
|
"Metres slopes are measured over, the spacing of the lattice they are read on; 10, the " |
| 550 |
|
|
"DTM Ikeda et al. (2022) measured slopes on.", |
| 551 |
|
32 |
"m", Above(0.0)); |
| 552 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SlopeAlbedoSpec&):
✓ Branch 4 taken 19 times.
|
32 |
io("origin_reflectance", options.originReflectance, |
| 553 |
|
|
"Reflectance of the optical maturity origin, from which reflectance scales with maturity " |
| 554 |
|
|
"at fixed iron content."); |
| 555 |
|
32 |
} |
| 556 |
|
|
|
| 557 |
|
61 |
template <typename IO> void Fields(IO& io, AlbedoSpec& spec) { |
| 558 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoSpec&):
✓ Branch 4 taken 29 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoSpec&):
✓ Branch 4 taken 22 times.
|
61 |
io("source", spec.source, |
| 559 |
|
|
"Base albedo of the terrain, before its layers: a synthetic colour or a raster map."); |
| 560 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::AlbedoSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::AlbedoSpec&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::AlbedoSpec&):
✓ Branch 4 taken 22 times.
|
60 |
io("layers", spec.layers, |
| 561 |
|
|
"Layers applied to the source's albedo in order, such as bright crater ejecta and rays."); |
| 562 |
|
59 |
} |
| 563 |
|
|
|
| 564 |
|
|
} // namespace terraingen::config |
| 565 |
|
|
|