| Line |
Branch |
Exec |
Source |
| 1 |
|
|
/// @file |
| 2 |
|
|
/// @brief The JSON fields of boulder layers, boulder sizes and boulder shapes. |
| 3 |
|
|
#pragma once |
| 4 |
|
|
|
| 5 |
|
|
#include "terraingen/config/config.h" |
| 6 |
|
|
#include "terraingen/config/fields/common.h" |
| 7 |
|
|
#include "terraingen/config/fields/maps.h" |
| 8 |
|
|
|
| 9 |
|
|
#include <numbers> |
| 10 |
|
|
#include <string_view> |
| 11 |
|
|
|
| 12 |
|
|
namespace terraingen::config { |
| 13 |
|
|
|
| 14 |
|
|
/// Description of the curve of an SP-8023 boulder size model. |
| 15 |
|
|
inline constexpr std::string_view kCurveHelp = |
| 16 |
|
|
"Which of the model's minimum, nominal and maximum curves to use, from fewest to most " |
| 17 |
|
|
"boulders."; |
| 18 |
|
|
|
| 19 |
|
|
template <> struct SpecName<GolombekRappBouldersSpec> { |
| 20 |
|
|
static constexpr std::string_view kName = "golombek_rapp"; |
| 21 |
|
|
static constexpr std::string_view kDescription = |
| 22 |
|
|
"Golombek and Rapp boulder sizes, set by the fraction of ground the boulders cover and the " |
| 23 |
|
|
"layer's qa and qb."; |
| 24 |
|
|
}; |
| 25 |
|
119 |
template <typename IO> void Fields(IO& /*io*/, GolombekRappBouldersSpec& /*spec*/) {} |
| 26 |
|
|
|
| 27 |
|
|
template <> struct SpecName<Sp8023IntercraterBouldersSpec> { |
| 28 |
|
|
static constexpr std::string_view kName = "sp8023_intercrater"; |
| 29 |
|
|
static constexpr std::string_view kDescription = |
| 30 |
|
|
"Blocks between craters from NASA SP-8023, the lunar surface design model (Figure 7)."; |
| 31 |
|
|
}; |
| 32 |
|
34 |
template <typename IO> void Fields(IO& io, Sp8023IntercraterBouldersSpec& spec) { |
| 33 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::Sp8023IntercraterBouldersSpec&):
✓ Branch 3 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::Sp8023IntercraterBouldersSpec&):
✓ Branch 3 taken 5 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::Sp8023IntercraterBouldersSpec&):
✓ Branch 3 taken 20 times.
|
34 |
io("curve", spec.curve, kCurveHelp); |
| 34 |
|
34 |
} |
| 35 |
|
|
|
| 36 |
|
|
template <> struct SpecName<Sp8023CraterBouldersSpec> { |
| 37 |
|
|
static constexpr std::string_view kName = "sp8023_crater"; |
| 38 |
|
|
static constexpr std::string_view kDescription = |
| 39 |
|
|
"Blocks around blocky craters from NASA SP-8023 (Figure 9), for the ejecta of craters " |
| 40 |
|
|
"that reached bedrock."; |
| 41 |
|
|
}; |
| 42 |
|
33 |
template <typename IO> void Fields(IO& io, Sp8023CraterBouldersSpec& spec) { |
| 43 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::Sp8023CraterBouldersSpec&):
✓ Branch 3 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::Sp8023CraterBouldersSpec&):
✓ Branch 3 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::Sp8023CraterBouldersSpec&):
✓ Branch 3 taken 20 times.
|
33 |
io("curve", spec.curve, kCurveHelp); |
| 44 |
|
33 |
} |
| 45 |
|
|
|
| 46 |
|
|
template <> struct SpecName<SynthterrainBouldersSpec> { |
| 47 |
|
|
static constexpr std::string_view kName = "synthterrain"; |
| 48 |
|
|
static constexpr std::string_view kDescription = |
| 49 |
|
|
"One of the power-law boulder distributions synthterrain offers, for comparison with it."; |
| 50 |
|
|
}; |
| 51 |
|
33 |
template <typename IO> void Fields(IO& io, SynthterrainBouldersSpec& spec) { |
| 52 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::SynthterrainBouldersSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::SynthterrainBouldersSpec&):
✓ Branch 4 taken 4 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::SynthterrainBouldersSpec&):
✓ Branch 4 taken 20 times.
|
33 |
io("model", spec.model, "Which of synthterrain's power-law boulder distributions to use."); |
| 53 |
|
33 |
} |
| 54 |
|
|
|
| 55 |
|
78 |
template <typename IO> void Fields(IO& io, BoulderPatches& patches) { |
| 56 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderPatches&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderPatches&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderPatches&):
✓ Branch 4 taken 44 times.
|
78 |
io("spread", patches.spread, |
| 57 |
|
|
"Boulder abundance varies from 1 / spread to spread times its mean, at least 1; 1 is the " |
| 58 |
|
|
"same everywhere.", |
| 59 |
|
78 |
"", AtLeast(1.0)); |
| 60 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderPatches&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderPatches&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderPatches&):
✓ Branch 4 taken 44 times.
|
78 |
io("size", patches.size, |
| 61 |
|
78 |
"Typical width of a patch of richer or poorer boulder cover, in metres.", "m", Above(0.0)); |
| 62 |
|
78 |
} |
| 63 |
|
|
|
| 64 |
|
79 |
template <typename IO> void Fields(IO& io, BoulderFillet& fillet) { |
| 65 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFillet&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFillet&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFillet&):
✓ Branch 4 taken 44 times.
|
79 |
io("height_share", fillet.heightShare, |
| 66 |
|
|
"Height of the regolith piled against a boulder, as a share of its exposed height, from 0 " |
| 67 |
|
|
"to 1; 0 draws no fillets.", |
| 68 |
|
79 |
"", UnitInterval()); |
| 69 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFillet&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFillet&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFillet&):
✓ Branch 4 taken 44 times.
|
79 |
io("width_ratio", fillet.widthRatio, |
| 70 |
|
|
"How far the fillet reaches beyond the boulder's edge, over its diameter; it falls to " |
| 71 |
|
|
"nothing there.", |
| 72 |
|
79 |
"", Above(0.0)); |
| 73 |
|
79 |
} |
| 74 |
|
|
|
| 75 |
|
79 |
template <typename IO> void Fields(IO& io, BoulderVentifacts& ventifacts) { |
| 76 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 44 times.
|
79 |
io("share", ventifacts.share, |
| 77 |
|
|
"Share of boulders with a windward facet planed by sand-laden wind, from 0 to 1; 0 for " |
| 78 |
|
|
"none. Gale crater: 0.39 (Bridges et al. 2014).", |
| 79 |
|
79 |
"", UnitInterval()); |
| 80 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 44 times.
|
79 |
io("wind_azimuth", ventifacts.windAzimuth, |
| 81 |
|
|
"Where the abrading wind blows toward, in radians counter-clockwise from east; facets face " |
| 82 |
|
|
"the other way.", |
| 83 |
|
|
"rad"); |
| 84 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 44 times.
|
79 |
io("min_angle", ventifacts.minAngle, |
| 85 |
|
|
"Gentlest facet slope from horizontal, in radians; 50 to 60 deg on basalt (Laity and " |
| 86 |
|
|
"Bridges 2009).", |
| 87 |
|
79 |
"rad", Inside(0.0, 0.5 * std::numbers::pi)); |
| 88 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 44 times.
|
79 |
io("max_angle", ventifacts.maxAngle, "Steepest facet slope from horizontal, in radians.", "rad", |
| 89 |
|
79 |
Inside(0.0, 0.5 * std::numbers::pi)); |
| 90 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 44 times.
|
79 |
io("second_wind_azimuth", ventifacts.secondWindAzimuth, |
| 91 |
|
|
"A second abrading wind, where it blows toward, in radians; some faceted boulders get a " |
| 92 |
|
|
"second facet facing it and a keel between. Unset for none.", |
| 93 |
|
|
"rad"); |
| 94 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderVentifacts&):
✓ Branch 4 taken 44 times.
|
79 |
io("keel_share", ventifacts.keelShare, |
| 95 |
|
|
"Share of faceted boulders with the second facet, from 0 to 1. Gale crater: 12 of 39 " |
| 96 |
|
|
"(Bridges et al. 2014).", |
| 97 |
|
79 |
"", UnitInterval()); |
| 98 |
|
79 |
} |
| 99 |
|
|
|
| 100 |
|
81 |
template <typename IO> void Fields(IO& io, BoulderEjecta& ejecta) { |
| 101 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("min_crater_diameter", ejecta.minCraterDiameter, |
| 102 |
|
|
"Smallest crater, in metres, that throws blocks out; 0 with no regolith thickness disables " |
| 103 |
|
|
"crater blocks.", |
| 104 |
|
81 |
"m", AtLeast(0.0)); |
| 105 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("regolith_thickness", ejecta.regolithThickness, |
| 106 |
|
|
"Regolith thickness in metres: craters smaller than it over the excavation depth ratio dig " |
| 107 |
|
|
"no boulder and throw no blocks. Unset ignores the regolith.", |
| 108 |
|
81 |
"m", Above(0.0)); |
| 109 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("excavation_depth_ratio", ejecta.excavationDepthRatio, |
| 110 |
|
|
"Depth of excavation over crater diameter, in (0, 1]; with the regolith thickness it sets " |
| 111 |
|
|
"the smallest crater that throws blocks.", |
| 112 |
|
81 |
"", AboveUpTo(0.0, 1.0)); |
| 113 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("coverage", ejecta.coverage, |
| 114 |
|
|
"Golombek-Rapp k, the fraction of ground covered by blocks at the rim of a fresh crater, " |
| 115 |
|
|
"between 0 and 1; used with golombek_rapp ejecta sizes.", |
| 116 |
|
81 |
"", Inside(0.0, 1.0)); |
| 117 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("profile", ejecta.profile, |
| 118 |
|
|
"How the share of a crater's blocks falls off with distance from its centre."); |
| 119 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("reach", ejecta.reach, |
| 120 |
|
|
"Distance from the crater's centre, in crater radii, beyond which it adds no blocks; over " |
| 121 |
|
|
"1.", |
| 122 |
|
81 |
"", Above(1.0)); |
| 123 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("decay_radii", ejecta.decayRadii, |
| 124 |
|
|
"With the exponential profile, the e-folding distance of the blocks outside the rim, in " |
| 125 |
|
|
"crater radii.", |
| 126 |
|
81 |
"", Above(0.0)); |
| 127 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("floor_share", ejecta.floorShare, |
| 128 |
|
|
"With the exponential profile, the crater floor's share of the rim's blocks, from 0 to 1.", |
| 129 |
|
81 |
"", UnitInterval()); |
| 130 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("aging", ejecta.aging, |
| 131 |
|
|
"How a crater's blocks wear away with time, so that few are left around old craters."); |
| 132 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("min_freshness", ejecta.minFreshness, |
| 133 |
|
|
"With freshness aging, the freshness (current over fresh depth) at or below which a crater " |
| 134 |
|
|
"keeps no blocks; from 0 to below 1.", |
| 135 |
|
81 |
"", FromBelow(0.0, 1.0)); |
| 136 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("lifetime_gyr", ejecta.lifetimeGyr, |
| 137 |
|
|
"With age aging, the crater age in Gyr at which a crater keeps no blocks.", "Gyr", |
| 138 |
|
81 |
Above(0.0)); |
| 139 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("aging_exponent", ejecta.agingExponent, |
| 140 |
|
|
"With age aging, the exponent of (1 - age / lifetime); higher values strip blocks from " |
| 141 |
|
|
"craters sooner.", |
| 142 |
|
81 |
"", AtLeast(0.0)); |
| 143 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderEjecta&):
✓ Branch 4 taken 44 times.
|
81 |
io("gravity", ejecta.gravity, |
| 144 |
|
|
"Surface gravity in m/s^2: with the regolith thickness, it limits how far blocks are " |
| 145 |
|
|
"thrown, after Bart and Melosh (2010). Unset applies no such limit.", |
| 146 |
|
81 |
"", Above(0.0)); |
| 147 |
|
81 |
} |
| 148 |
|
|
|
| 149 |
|
90 |
template <typename IO> void Fields(IO& io, ExposureParams& exposure) { |
| 150 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("reach", exposure.reach, |
| 151 |
|
|
"Distance in metres around a point at which its surroundings are read, to tell rises from " |
| 152 |
|
|
"lows.", |
| 153 |
|
90 |
"m", Above(0.0)); |
| 154 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("rise_soil", exposure.riseSoil, |
| 155 |
|
|
"Height above the surroundings, as a share of the reach, at or below which the ground is " |
| 156 |
|
|
"soil."); |
| 157 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("rise_boulder", exposure.riseBoulder, |
| 158 |
|
|
"Height above the surroundings, as a share of the reach, at or above which the ground is " |
| 159 |
|
|
"bedrock; above the soil threshold."); |
| 160 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("slope_soil", exposure.slopeSoil, "Slope, as rise over run, at or under which soil holds."); |
| 161 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("slope_boulder", exposure.slopeBoulder, |
| 162 |
|
|
"Slope, as rise over run, at or over which no soil holds and the ground is bedrock; above " |
| 163 |
|
|
"the soil threshold."); |
| 164 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("floor_cover", exposure.floorCover, |
| 165 |
|
|
"Share of level ground that is bedrock too, in noise patches, as on a swept lava floor; " |
| 166 |
|
|
"from 0 to below 1, and 0 for none.", |
| 167 |
|
90 |
"", FromBelow(0.0, 1.0)); |
| 168 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("floor_patch", exposure.floorPatch, |
| 169 |
|
90 |
"Width of the bedrock patches on level ground, in metres.", "m", Above(0.0)); |
| 170 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ExposureParams&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ExposureParams&):
✓ Branch 4 taken 13 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ExposureParams&):
✓ Branch 4 taken 68 times.
|
90 |
io("seed", exposure.seed, "Seed of the bedrock patches on level ground."); |
| 171 |
|
90 |
} |
| 172 |
|
|
|
| 173 |
|
81 |
template <typename IO> void Fields(IO& io, BoulderModelThreshold& models) { |
| 174 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 44 times.
|
81 |
io("min_diameter", models.minDiameter, |
| 175 |
|
|
"Boulders at least this many metres across become 3D models; unset applies no diameter " |
| 176 |
|
|
"threshold.", |
| 177 |
|
81 |
"m", Above(0.0)); |
| 178 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 44 times.
|
81 |
io("min_samples", models.minSamples, |
| 179 |
|
|
"Boulders spanning at least this many samples at the spacing evaluated become 3D models, so " |
| 180 |
|
|
"finer levels of detail make more of them; unset applies no such threshold.", |
| 181 |
|
81 |
"", Above(0.0)); |
| 182 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 44 times.
|
81 |
io("max_diameter", models.maxDiameter, |
| 183 |
|
|
"Boulders this many metres across or wider are not models, keeping a band of sizes as " |
| 184 |
|
|
"models; unset applies no upper limit.", |
| 185 |
|
81 |
"m", Above(0.0)); |
| 186 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 28 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderModelThreshold&):
✓ Branch 4 taken 44 times.
|
81 |
io("max_samples", models.maxSamples, |
| 187 |
|
|
"Boulders spanning this many samples or more are not models; unset applies no such limit.", |
| 188 |
|
81 |
"", Above(0.0)); |
| 189 |
|
81 |
} |
| 190 |
|
|
|
| 191 |
|
78 |
template <typename IO> void Fields(IO& io, BoulderReliefRange& range) { |
| 192 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 44 times.
|
78 |
io("min_diameter", range.minDiameter, |
| 193 |
|
|
"Smallest boulder drawn into the heights, in metres; smaller ones stay in the lists only, " |
| 194 |
|
|
"for the renderer's surface detail.", |
| 195 |
|
78 |
"m", AtLeast(0.0)); |
| 196 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 44 times.
|
78 |
io("max_diameter", range.maxDiameter, |
| 197 |
|
|
"Boulders this many metres across or wider are not drawn into the heights; unset applies no " |
| 198 |
|
|
"upper limit.", |
| 199 |
|
78 |
"m", Above(0.0)); |
| 200 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderReliefRange&):
✓ Branch 4 taken 44 times.
|
78 |
io("models", range.models, |
| 201 |
|
|
"Draws the 3D model boulders into the heights as well, as a stand-in for far views."); |
| 202 |
|
78 |
} |
| 203 |
|
|
|
| 204 |
|
79 |
template <typename IO> void Fields(IO& io, BoulderClusters& clusters) { |
| 205 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderClusters&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderClusters&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderClusters&):
✓ Branch 4 taken 44 times.
|
79 |
io("share", clusters.share, |
| 206 |
|
|
"Share of the boulders between craters gathered in clusters, from 0 to 1; 0 leaves them " |
| 207 |
|
|
"scattered.", |
| 208 |
|
79 |
"", UnitInterval()); |
| 209 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderClusters&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderClusters&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderClusters&):
✓ Branch 4 taken 44 times.
|
79 |
io("spacing", clusters.spacing, |
| 210 |
|
|
"Typical distance between cluster centres, in metres; with thomas, one centre per spacing " |
| 211 |
|
|
"squared on average.", |
| 212 |
|
79 |
"m", Above(0.0)); |
| 213 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderClusters&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderClusters&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderClusters&):
✓ Branch 4 taken 44 times.
|
79 |
io("radius", clusters.radius, |
| 214 |
|
|
"Gaussian radius of a cluster, in metres; below the spacing with nearest, at most twice it " |
| 215 |
|
|
"with thomas.", |
| 216 |
|
79 |
"m", Above(0.0)); |
| 217 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderClusters&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderClusters&):
✓ Branch 4 taken 26 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderClusters&):
✓ Branch 4 taken 44 times.
|
79 |
io("model", clusters.model, "How cluster centres are laid out and their clusters combine."); |
| 218 |
|
79 |
} |
| 219 |
|
|
|
| 220 |
|
78 |
template <typename IO> void Fields(IO& io, BoulderFragmentation& fragmentation) { |
| 221 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("min_diameter", fragmentation.minDiameter, "Smallest boulder that breaks, in metres.", "m", |
| 222 |
|
78 |
Above(0.0)); |
| 223 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("split_wear", fragmentation.splitWear, |
| 224 |
|
|
"Wear from 0 (fresh) to 1 from which boulders split into pieces that still fit; 1 breaks " |
| 225 |
|
|
"nothing.", |
| 226 |
|
78 |
"", UnitInterval()); |
| 227 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("rubble_wear", fragmentation.rubbleWear, |
| 228 |
|
|
"Wear from which the pieces scatter as rubble, turn and sink; at least split_wear.", "", |
| 229 |
|
78 |
UnitInterval()); |
| 230 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("min_pieces", fragmentation.minPieces, "Fewest pieces a boulder breaks into, at least 2.", |
| 231 |
|
78 |
"", Between(2.0, 12.0)); |
| 232 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("max_pieces", fragmentation.maxPieces, "Most pieces a boulder breaks into, at most 12.", "", |
| 233 |
|
78 |
Between(2.0, 12.0)); |
| 234 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("gap_ratio", fragmentation.gapRatio, |
| 235 |
|
|
"Widest crack between split pieces, as a share of the boulder's diameter.", "", |
| 236 |
|
78 |
AtLeast(0.0)); |
| 237 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("spread_ratio", fragmentation.spreadRatio, |
| 238 |
|
|
"How far rubble scatters beyond the cracks, as a share of the boulder's diameter.", "", |
| 239 |
|
78 |
AtLeast(0.0)); |
| 240 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 25 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderFragmentation&):
✓ Branch 4 taken 44 times.
|
78 |
io("slab_share", fragmentation.slabShare, |
| 241 |
|
|
"Share of broken boulders split by roughly parallel cracks right through them; the rest " |
| 242 |
|
|
"crack out from the middle.", |
| 243 |
|
78 |
"", UnitInterval()); |
| 244 |
|
78 |
} |
| 245 |
|
|
|
| 246 |
|
3324 |
template <typename IO> void Fields(IO& io, ValueRange& range) { |
| 247 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ValueRange&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ValueRange&):
✓ Branch 4 taken 960 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ValueRange&):
✓ Branch 4 taken 2355 times.
|
3324 |
io("min", range.min, "Lower end of the interval the value is drawn uniformly from."); |
| 248 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::ValueRange&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::ValueRange&):
✓ Branch 4 taken 960 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::ValueRange&):
✓ Branch 4 taken 2355 times.
|
3324 |
io("max", range.max, "Upper end of the interval the value is drawn uniformly from."); |
| 249 |
|
3324 |
} |
| 250 |
|
|
|
| 251 |
|
663 |
template <typename IO> void Fields(IO& io, BoulderStyle& style) { |
| 252 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("name", style.name, "Label of the style, for reference; it does not change the shapes."); |
| 253 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("weight", style.weight, |
| 254 |
|
|
"Relative share of boulders given this style, not negative; the styles' weights must not " |
| 255 |
|
|
"all be 0.", |
| 256 |
|
663 |
"", AtLeast(0.0)); |
| 257 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("solid", style.solid, |
| 258 |
|
|
"Solid the shape starts from, before it is stretched, rounded, roughened and fractured."); |
| 259 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("intermediate", style.intermediate, |
| 260 |
|
|
"Range of the intermediate axis over the long one, b / a, within (0, 1]; lower values " |
| 261 |
|
|
"give more elongated boulders."); |
| 262 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("short_axis", style.shortAxis, |
| 263 |
|
|
"Range of the short, vertical axis over the long one, c / a, within (0, 1] and at most " |
| 264 |
|
|
"the intermediate ratio; lower values give flatter boulders."); |
| 265 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("rounding", style.rounding, |
| 266 |
|
|
"Range of the share, from 0 to 1, by which the shape is rounded toward the ellipsoid of " |
| 267 |
|
|
"its axes: 0 keeps the solid's edges and corners, 1 is the ellipsoid."); |
| 268 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("min_fractures", style.minFractures, |
| 269 |
|
|
"Fewest flat fracture planes cutting a boulder, from 0; each boulder's count is drawn " |
| 270 |
|
|
"between the two.", |
| 271 |
|
663 |
"", Between(0.0, 64.0)); |
| 272 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("max_fractures", style.maxFractures, |
| 273 |
|
|
"Most flat fracture planes cutting a boulder, at most 64 and at least the fewest.", "", |
| 274 |
|
663 |
Between(0.0, 64.0)); |
| 275 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("fracture_depth", style.fractureDepth, |
| 276 |
|
|
"Range of where each fracture plane lies, as a share of the shape's reach along its " |
| 277 |
|
|
"normal, within (0, 1]; lower values cut more away."); |
| 278 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("max_fracture_tilt", style.maxFractureTilt, |
| 279 |
|
|
"Largest vertical component of a fracture plane's unit normal, from 0 to 1: 0 keeps " |
| 280 |
|
|
"normals horizontal, cutting a slab about its rim only.", |
| 281 |
|
663 |
"", UnitInterval()); |
| 282 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("noise_amplitude", style.noiseAmplitude, |
| 283 |
|
|
"Largest relative change of the radius by the roughening noise, in [0, 1); 0 leaves the " |
| 284 |
|
|
"surface unroughened.", |
| 285 |
|
663 |
"", FromBelow(0.0, 1.0)); |
| 286 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("noise_wavelength", style.noiseWavelength, |
| 287 |
|
|
"Wavelength of the roughening noise's first octave, in long-axis lengths; positive, " |
| 288 |
|
|
"with smaller values giving finer bumps.", |
| 289 |
|
663 |
"", Above(0.0)); |
| 290 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("noise_octaves", style.noiseOctaves, |
| 291 |
|
|
"Octaves of the roughening noise, 1 to 12, each halving in wavelength; more add finer " |
| 292 |
|
|
"detail.", |
| 293 |
|
663 |
"", Between(1.0, 12.0)); |
| 294 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("edge_softness", style.edgeSoftness, |
| 295 |
|
|
"Range of how far edges and corners are worn back where faces meet, as weathering rounds " |
| 296 |
|
|
"them, in long-axis lengths from 0 to 0.5; 0 keeps them sharp."); |
| 297 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderStyle&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderStyle&):
✓ Branch 4 taken 192 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderStyle&):
✓ Branch 4 taken 462 times.
|
663 |
io("face_roughness", style.faceRoughness, |
| 298 |
|
|
"How far fracture faces undulate, as a share of each plane's offset from 0 to 0.5; 0 keeps " |
| 299 |
|
|
"them flat.", |
| 300 |
|
663 |
"", Between(0.0, 0.5)); |
| 301 |
|
663 |
} |
| 302 |
|
|
|
| 303 |
|
77 |
template <typename IO> void Fields(IO& io, BoulderShapeOptions& shapes) { |
| 304 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 44 times.
|
77 |
io("styles", shapes.styles, |
| 305 |
|
|
"Kinds of boulder each shape is drawn from, picked by weight; at least one."); |
| 306 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 44 times.
|
77 |
io("subdivisions", shapes.subdivisions, |
| 307 |
|
|
"Times the solid's triangles are split in four, 0 to 6; more give finer, smoother shapes " |
| 308 |
|
|
"with more triangles.", |
| 309 |
|
77 |
"", Between(0.0, 6.0)); |
| 310 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 44 times.
|
77 |
io("weathering", shapes.weathering, |
| 311 |
|
|
"Scales every style's edge softness: 0 gives sharp edges, 1 the styles' own, more is more " |
| 312 |
|
|
"worn.", |
| 313 |
|
77 |
"", AtLeast(0.0)); |
| 314 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 24 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderShapeOptions&):
✓ Branch 4 taken 44 times.
|
77 |
io("seed", shapes.seed, |
| 315 |
|
|
"Seed the shapes are drawn with, along with each shape's own seed; changing it reshapes " |
| 316 |
|
|
"every boulder."); |
| 317 |
|
77 |
} |
| 318 |
|
|
|
| 319 |
|
|
template <> struct SpecName<BoulderLayerSpec> { |
| 320 |
|
|
static constexpr std::string_view kName = "boulders"; |
| 321 |
|
|
static constexpr std::string_view kDescription = |
| 322 |
|
|
"Boulders scattered over the ground from a size distribution, in patches and around fresh " |
| 323 |
|
|
"craters, as relief or 3D models."; |
| 324 |
|
|
}; |
| 325 |
|
111 |
template <typename IO> void Fields(IO& io, BoulderLayerSpec& spec) { |
| 326 |
|
111 |
BoulderLayerOptions& boulders = spec.boulders; |
| 327 |
|
111 |
BoulderSizes& sizes = boulders.sizes; |
| 328 |
|
111 |
BoulderBedrock& bedrock = boulders.bedrock; |
| 329 |
|
111 |
BoulderPose& pose = boulders.pose; |
| 330 |
|
111 |
BoulderRendering& rendering = boulders.rendering; |
| 331 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("coverage", sizes.coverage, |
| 332 |
|
|
"Golombek-Rapp k, the fraction of the ground covered by boulders, between 0 and 1; used " |
| 333 |
|
|
"with golombek_rapp sizes, where higher values give more boulders.", |
| 334 |
|
111 |
"", Inside(0.0, 1.0)); |
| 335 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("qa", sizes.qConstant, |
| 336 |
|
|
"Constant term of the Golombek-Rapp q = qa + qb / k, per metre; a larger q leaves fewer " |
| 337 |
|
|
"large boulders. Also used for golombek_rapp ejecta.", |
| 338 |
|
|
"1/m"); |
| 339 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("qb", sizes.qCoverageCoefficient, |
| 340 |
|
|
"Term of the Golombek-Rapp q = qa + qb / k divided by the coverage k, per metre.", "1/m"); |
| 341 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("min_diameter", sizes.minDiameter, |
| 342 |
|
|
"Smallest boulder generated, in metres; lower values add many more small boulders.", "m", |
| 343 |
|
111 |
Above(0.0)); |
| 344 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("max_diameter", sizes.maxDiameter, |
| 345 |
|
111 |
"Largest boulder generated, in metres, exclusive; above the smallest.", "m", Above(0.0)); |
| 346 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("sizes", spec.sizes, |
| 347 |
|
|
"Size distribution of the boulders between craters, per m^2; patches and bedrock scale its " |
| 348 |
|
|
"density."); |
| 349 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("seed", boulders.seed, |
| 350 |
|
|
"Seed of the boulders, their attributes and the patches; changing it gives a different " |
| 351 |
|
|
"boulder field of the same statistics."); |
| 352 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("patches", boulders.patches, |
| 353 |
|
|
"Patches of richer and poorer boulder cover across the ground."); |
| 354 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("clusters", boulders.clusters, |
| 355 |
|
|
"Clusters of the boulders between craters around scattered centres; off unless share is " |
| 356 |
|
|
"set."); |
| 357 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("ejecta", boulders.ejecta, |
| 358 |
|
|
"Blocks thrown out by craters of the nearest crater layer before this one that dug into " |
| 359 |
|
|
"boulder, densest at the rim and thinning outward."); |
| 360 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("ejecta_sizes", spec.ejectaSizes, |
| 361 |
|
|
"Size distribution of the blocks at the rim of a fresh crater, per m^2; golombek_rapp uses " |
| 362 |
|
|
"the ejecta's coverage with qa and qb."); |
| 363 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 67 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("extrapolate", spec.extrapolate, |
| 364 |
|
|
"Lets the size distributions be evaluated outside their valid diameters, such as beyond a " |
| 365 |
|
|
"table's published ones; otherwise they must cover the boulder sizes."); |
| 366 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
111 |
io("exposure", bedrock.exposure, |
| 367 |
|
|
"Raises the abundance of boulders where the ground beneath is bedrock, judged from its " |
| 368 |
|
|
"shape; unset disables it."); |
| 369 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("bedrock_abundance", bedrock.abundance, |
| 370 |
|
|
"Boulder abundance on bedrock over that on soil, and in between in proportion; used with " |
| 371 |
|
|
"the exposure field.", |
| 372 |
|
110 |
"", Above(0.0)); |
| 373 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("exposure_spacing", bedrock.exposureSpacing, |
| 374 |
|
|
"Spacing in metres the ground is read at for the exposure field, fixed so that which " |
| 375 |
|
|
"boulders exist does not depend on the level of detail.", |
| 376 |
|
110 |
"m", Above(0.0)); |
| 377 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("bedrock_mean_size", bedrock.meanSize, |
| 378 |
|
|
"With a density map, the side in metres of the squares bedrock is held to the map's mean " |
| 379 |
|
|
"over, so it gathers boulders without adding any; a GeoTIFF map uses its own cells.", |
| 380 |
|
110 |
"m", Above(0.0)); |
| 381 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("min_height_ratio", pose.minHeightRatio, |
| 382 |
|
|
"Smallest boulder height over diameter; each boulder's is drawn uniformly between the two " |
| 383 |
|
|
"ratios.", |
| 384 |
|
110 |
"", Above(0.0)); |
| 385 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("max_height_ratio", pose.maxHeightRatio, |
| 386 |
|
110 |
"Largest boulder height over diameter; at least the smallest.", "", Above(0.0)); |
| 387 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("min_burial", pose.minBurial, |
| 388 |
|
|
"Smallest buried share of a boulder's height; each boulder's is drawn uniformly between the " |
| 389 |
|
|
"two shares.", |
| 390 |
|
110 |
"", FromBelow(0.0, 1.0)); |
| 391 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("max_burial", pose.maxBurial, |
| 392 |
|
|
"Largest buried share of a boulder's height, below 1; more burial leaves less of the " |
| 393 |
|
|
"boulder exposed.", |
| 394 |
|
110 |
"", FromBelow(0.0, 1.0)); |
| 395 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("max_lean", pose.maxLean, "Largest tilt of a boulder from the vertical, in radians.", "rad", |
| 396 |
|
110 |
AtLeast(0.0)); |
| 397 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("side_share", pose.sideShare, |
| 398 |
|
|
"Share of boulders resting on a side, their intermediate axis up, rather than on their " |
| 399 |
|
|
"broadest face.", |
| 400 |
|
110 |
"", UnitInterval()); |
| 401 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("end_share", pose.endShare, |
| 402 |
|
|
"Share of boulders standing on an end, their long axis up; with side_share, at most 1.", "", |
| 403 |
|
110 |
UnitInterval()); |
| 404 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("max_tilt", pose.maxTilt, |
| 405 |
|
|
"Largest tilt of a boulder's up axis from the vertical in a random direction, after its " |
| 406 |
|
|
"lean, in radians; tilts are spread evenly over that cap of directions.", |
| 407 |
|
110 |
"rad", Between(0.0, std::numbers::pi)); |
| 408 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("follow_slope", pose.followSlope, |
| 409 |
|
|
"Settles each boulder on the slope of the ground beneath it before its tilt."); |
| 410 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("settle", pose.settle, |
| 411 |
|
|
"Tips each boulder model over until it rests stably on a face, its centre of mass over " |
| 412 |
|
|
"what it stands on, rather than balanced on an edge or corner."); |
| 413 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("max_slope", pose.maxSlope, |
| 414 |
|
|
"Steepest ground, across a boulder's diameter, that boulders stay on, in radians; steeper " |
| 415 |
|
|
"ground has none, models and drawn boulders alike. Unset keeps boulders on any slope.", |
| 416 |
|
110 |
"rad", Inside(0.0, 0.5 * std::numbers::pi)); |
| 417 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("roll_distance", pose.rollDistance, |
| 418 |
|
|
"With max_slope, boulders on steeper ground roll down it and rest where it is gentle " |
| 419 |
|
|
"enough, gathering at the foot of slopes; those that would roll farther than this many " |
| 420 |
|
|
"metres are left out. Unset leaves out every boulder on steeper ground.", |
| 421 |
|
110 |
"m", Above(0.0)); |
| 422 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("burial_by_wear", pose.burialByWear, |
| 423 |
|
|
"How far wear sets burial, from 0 to 1: blocks of fresh craters sit near the smallest " |
| 424 |
|
|
"burial and those of worn ones sink toward the largest, while boulders between craters " |
| 425 |
|
|
"span every stage; 0 draws burial uniformly.", |
| 426 |
|
110 |
"", UnitInterval()); |
| 427 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("fillet", boulders.fillet, |
| 428 |
|
|
"Regolith piled against each boulder's base, around relief and models alike; off unless " |
| 429 |
|
|
"height_share is set."); |
| 430 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("ventifacts", boulders.ventifacts, |
| 431 |
|
|
"Windward facets planed on boulders by sand-laden wind, from wear; off unless share is " |
| 432 |
|
|
"set."); |
| 433 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 66 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("fragmentation", boulders.fragmentation, |
| 434 |
|
|
"Boulders broken by wear into pieces that replace them, split and then scattered as " |
| 435 |
|
|
"rubble; off unless split_wear is below 1."); |
| 436 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
110 |
io("relief", rendering.relief, "How the boulders drawn into the heights look there."); |
| 437 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("models", rendering.models, |
| 438 |
|
|
"Which boulders become 3D models of their own rather than relief in the heights; neither " |
| 439 |
|
|
"threshold set means no models."); |
| 440 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("relief_range", rendering.reliefRange, |
| 441 |
|
|
"Which boulders are drawn into the heights by diameter: none below min_diameter or from " |
| 442 |
|
|
"max_diameter, and models only when asked."); |
| 443 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("shapes", rendering.shapes, |
| 444 |
|
|
"The boulders' 3D boulder shapes, used by shape relief and by models."); |
| 445 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("shape_files", spec.shapeFiles, |
| 446 |
|
|
"Rock meshes (.obj with its .mtl, .gltf or .glb) the boulder shapes are drawn from instead " |
| 447 |
|
|
"of the procedural styles, each boulder picking one by its shape seed; paths relative to " |
| 448 |
|
|
"the configuration. Empty keeps the procedural shapes."); |
| 449 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("density_map", spec.densityMap, |
| 450 |
|
|
"Map that sets the abundance of boulders between craters point by point, scaling the " |
| 451 |
|
|
"sizes to what it measures; unset keeps the abundance the sizes set everywhere."); |
| 452 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("slope_map", spec.slopeMap, |
| 453 |
|
|
"Map of how steeply boulder counts fall with size, such as a mean diameter map, bending the " |
| 454 |
|
|
"sizes into a local power law through their count at its reference diameter; needs a size " |
| 455 |
|
|
"distribution. Unset keeps the sizes' shape everywhere."); |
| 456 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("manual", spec.manual, |
| 457 |
|
|
"Catalog boulders placed as given and never thinned or left out; x, y and diameter are " |
| 458 |
|
|
"read."); |
| 459 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("completeness", spec.completeness, |
| 460 |
|
|
"Where the manual boulders are a complete catalog: the diameter in metres from which they " |
| 461 |
|
|
"stand in for generated boulders, infinite or no value where there is no catalog. Unset " |
| 462 |
|
|
"keeps every generated boulder."); |
| 463 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("shape_prototypes", rendering.shapePrototypes, |
| 464 |
|
|
"How many shapes the boulders share, so they can be drawn as instances; 0 gives every " |
| 465 |
|
|
"boulder a shape of its own."); |
| 466 |
3/3
void terraingen::config::Fields<terraingen::config::(anonymous namespace)::SchemaWriter>(terraingen::config::(anonymous namespace)::SchemaWriter&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 9 times.
void terraingen::config::Fields<terraingen::config::Reader>(terraingen::config::Reader&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 65 times.
void terraingen::config::Fields<terraingen::config::Writer>(terraingen::config::Writer&, terraingen::BoulderLayerSpec&):
✓ Branch 4 taken 35 times.
|
109 |
io("fade", boulders.fade, "How boulders too small to resolve at the sample spacing fade out."); |
| 467 |
|
109 |
} |
| 468 |
|
|
|
| 469 |
|
|
} // namespace terraingen::config |
| 470 |
|
|
|