| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | /// @file | ||
| 2 | /// @brief Terrains and albedos as Python builds them, with mutable parts. | ||
| 3 | #pragma once | ||
| 4 | |||
| 5 | #include "common.h" | ||
| 6 | |||
| 7 | #include "terraingen/albedo/albedo.h" | ||
| 8 | #include "terraingen/pipeline/terrain.h" | ||
| 9 | |||
| 10 | #include <memory> | ||
| 11 | #include <vector> | ||
| 12 | |||
| 13 | namespace terraingen::python { | ||
| 14 | |||
| 15 | /// A terrain as Python builds it: the parts are held as mutable pointers so they can be | ||
| 16 | /// passed back to Python, and converted to a `Terrain` for evaluation. | ||
| 17 | struct PyTerrain { | ||
| 18 | std::shared_ptr<Source> source; | ||
| 19 | std::vector<std::shared_ptr<Layer>> layers; | ||
| 20 | Surface surface{}; | ||
| 21 | |||
| 22 | /// The terrain as the library evaluates it. | ||
| 23 | 8525 | Terrain Get() const { | |
| 24 | 8525 | Terrain terrain; | |
| 25 | 8525 | terrain.source = source; | |
| 26 |
1/1✓ Branch 3 taken 8525 times.
|
8525 | terrain.layers.assign(layers.begin(), layers.end()); |
| 27 | 8525 | terrain.surface = surface; | |
| 28 | 8525 | return terrain; | |
| 29 | } | ||
| 30 | }; | ||
| 31 | |||
| 32 | /// An albedo as Python builds it, with mutable parts as for `PyTerrain`. | ||
| 33 | struct PyAlbedo { | ||
| 34 | std::shared_ptr<AlbedoSource> source; | ||
| 35 | std::vector<std::shared_ptr<AlbedoLayer>> layers; | ||
| 36 | Surface surface{}; | ||
| 37 | |||
| 38 | /// The albedo as the library evaluates it. | ||
| 39 | 25 | Albedo Get() const { | |
| 40 | 25 | Albedo albedo; | |
| 41 | 25 | albedo.source = source; | |
| 42 |
1/1✓ Branch 3 taken 25 times.
|
25 | albedo.layers.assign(layers.begin(), layers.end()); |
| 43 | 25 | albedo.surface = surface; | |
| 44 | 25 | return albedo; | |
| 45 | } | ||
| 46 | }; | ||
| 47 | |||
| 48 | /// Pointers Python can hold to the same objects as `parts`. | ||
| 49 | template <typename T> | ||
| 50 | 6 | std::vector<std::shared_ptr<T>> MutableAll(const std::vector<std::shared_ptr<const T>>& parts) { | |
| 51 | 6 | std::vector<std::shared_ptr<T>> held; | |
| 52 |
2/2std::vector<std::shared_ptr<terraingen::AlbedoLayer>, std::allocator<std::shared_ptr<terraingen::AlbedoLayer> > > terraingen::python::MutableAll<terraingen::AlbedoLayer>(std::vector<std::shared_ptr<terraingen::AlbedoLayer const>, std::allocator<std::shared_ptr<terraingen::AlbedoLayer const> > > const&):
✓ Branch 2 taken 1 time.
std::vector<std::shared_ptr<terraingen::Layer>, std::allocator<std::shared_ptr<terraingen::Layer> > > terraingen::python::MutableAll<terraingen::Layer>(std::vector<std::shared_ptr<terraingen::Layer const>, std::allocator<std::shared_ptr<terraingen::Layer const> > > const&):
✓ Branch 2 taken 5 times.
|
6 | held.reserve(parts.size()); |
| 53 |
3/4std::vector<std::shared_ptr<terraingen::AlbedoLayer>, std::allocator<std::shared_ptr<terraingen::AlbedoLayer> > > terraingen::python::MutableAll<terraingen::AlbedoLayer>(std::vector<std::shared_ptr<terraingen::AlbedoLayer const>, std::allocator<std::shared_ptr<terraingen::AlbedoLayer const> > > const&):
✗ Branch 4 not taken.
✓ Branch 5 taken 1 time.
std::vector<std::shared_ptr<terraingen::Layer>, std::allocator<std::shared_ptr<terraingen::Layer> > > terraingen::python::MutableAll<terraingen::Layer>(std::vector<std::shared_ptr<terraingen::Layer const>, std::allocator<std::shared_ptr<terraingen::Layer const> > > const&):
✓ Branch 4 taken 9 times.
✓ Branch 5 taken 5 times.
|
15 | for (const auto& part : parts) { |
| 54 |
1/2std::vector<std::shared_ptr<terraingen::AlbedoLayer>, std::allocator<std::shared_ptr<terraingen::AlbedoLayer> > > terraingen::python::MutableAll<terraingen::AlbedoLayer>(std::vector<std::shared_ptr<terraingen::AlbedoLayer const>, std::allocator<std::shared_ptr<terraingen::AlbedoLayer const> > > const&):
✗ Branch 2 not taken.
std::vector<std::shared_ptr<terraingen::Layer>, std::allocator<std::shared_ptr<terraingen::Layer> > > terraingen::python::MutableAll<terraingen::Layer>(std::vector<std::shared_ptr<terraingen::Layer const>, std::allocator<std::shared_ptr<terraingen::Layer const> > > const&):
✓ Branch 2 taken 9 times.
|
9 | held.push_back(Mutable(part)); |
| 55 | } | ||
| 56 | 6 | return held; | |
| 57 | } | ||
| 58 | |||
| 59 | /// `terrain` as Python holds it. | ||
| 60 | 5 | inline PyTerrain FromTerrain(const Terrain& terrain) { | |
| 61 | 5 | return {Mutable(terrain.source), MutableAll(terrain.layers), terrain.surface}; | |
| 62 |
1/3✓ Branch 2 taken 5 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
|
5 | } |
| 63 | |||
| 64 | /// `albedo` as Python holds it. | ||
| 65 | 1 | inline PyAlbedo FromAlbedo(const Albedo& albedo) { | |
| 66 | 1 | return {Mutable(albedo.source), MutableAll(albedo.layers), albedo.surface}; | |
| 67 |
1/3✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
|
1 | } |
| 68 | |||
| 69 | /// Calls `fn` with a `const Ground*` made by `terrain`'s source and first `layers` layers, or | ||
| 70 | /// with null when `terrain` is null, and returns what `fn` returns. | ||
| 71 | 34709 | template <typename Fn> auto WithGround(const PyTerrain* terrain, std::size_t layers, Fn fn) { | |
| 72 |
13/30auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 4256 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 0 taken 30406 times.
✓ Branch 1 taken 31 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
34709 | if (terrain == nullptr) { |
| 73 |
7/15auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 2 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 30406 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
|
30414 | return fn(static_cast<const Ground*>(nullptr)); |
| 74 | } | ||
| 75 |
6/15auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 4256 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 5 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 31 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
|
4295 | const Terrain built = terrain->Get(); |
| 76 |
6/15auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 4256 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 5 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 31 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
|
4295 | const TerrainGround ground(built, layers); |
| 77 |
6/15auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindBedforms(nanobind::module_&)::{lambda(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 4256 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, double, double, double) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindExposureField(nanobind::module_&)::{lambda(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int)#1}::operator()(terraingen::ExposureField const&, terraingen::python::PyTerrain const&, unsigned long, terraingen::RasterGrid const&, double, unsigned int) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 5 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#2}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindLayer(nanobind::module_&)::{lambda(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 31 times.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandFill(nanobind::module_&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const&, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::(anonymous namespace)::BindSandShadows(nanobind::module_&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&)::{lambda(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BedformLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&)::{lambda(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::BoulderLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&)::{lambda(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::DuneLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&)::{lambda(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::PavementLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&)::{lambda(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandFillLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✓ Branch 1 taken 1 time.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&)::{lambda(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::SandShadowLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
auto terraingen::python::WithGround<terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}>(terraingen::python::PyTerrain const*, unsigned long, terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&)::{lambda(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long)#1}::operator()(terraingen::StrataLayer const&, double, double, double, terraingen::python::PyTerrain const*, unsigned long) const::{lambda(terraingen::Ground const*)#1}):
✗ Branch 1 not taken.
|
4295 | return fn(static_cast<const Ground*>(&ground)); |
| 78 | 4295 | } | |
| 79 | |||
| 80 | /// Adds `material` and `material_cover_at` to a class binding of a `MaterialSource` layer. | ||
| 81 | 308 | template <typename Layer, typename Class> void BindMaterialCover(Class& cls) { | |
| 82 | 308 | cls.def_prop_ro("material", [](const Layer& source) { return source.Material(); }); | |
| 83 | ✗ | cls.def( | |
| 84 | "material_cover_at", | ||
| 85 | 308 | [](const Layer& source, double x, double y, double spacing, const PyTerrain* terrain, | |
| 86 | std::size_t layers) { | ||
| 87 | return WithGround(terrain, layers, [&](const Ground* ground) { | ||
| 88 | return source.MaterialCoverAt(x, y, spacing, ground); | ||
| 89 | }); | ||
| 90 | }, | ||
| 91 |
35/35void terraingen::python::BindMaterialCover<terraingen::BedformLayer, nanobind::class_<terraingen::BedformLayer, terraingen::Layer> >(nanobind::class_<terraingen::BedformLayer, terraingen::Layer>&):
✓ Branch 1 taken 44 times.
✓ Branch 4 taken 44 times.
✓ Branch 7 taken 44 times.
✓ Branch 10 taken 44 times.
✓ Branch 13 taken 44 times.
void terraingen::python::BindMaterialCover<terraingen::BoulderLayer, nanobind::class_<terraingen::BoulderLayer, terraingen::Layer> >(nanobind::class_<terraingen::BoulderLayer, terraingen::Layer>&):
✓ Branch 1 taken 44 times.
✓ Branch 4 taken 44 times.
✓ Branch 7 taken 44 times.
✓ Branch 10 taken 44 times.
✓ Branch 13 taken 44 times.
void terraingen::python::BindMaterialCover<terraingen::DuneLayer, nanobind::class_<terraingen::DuneLayer, terraingen::Layer> >(nanobind::class_<terraingen::DuneLayer, terraingen::Layer>&):
✓ Branch 1 taken 44 times.
✓ Branch 4 taken 44 times.
✓ Branch 7 taken 44 times.
✓ Branch 10 taken 44 times.
✓ Branch 13 taken 44 times.
void terraingen::python::BindMaterialCover<terraingen::PavementLayer, nanobind::class_<terraingen::PavementLayer, terraingen::Layer> >(nanobind::class_<terraingen::PavementLayer, terraingen::Layer>&):
✓ Branch 1 taken 44 times.
✓ Branch 4 taken 44 times.
✓ Branch 7 taken 44 times.
✓ Branch 10 taken 44 times.
✓ Branch 13 taken 44 times.
void terraingen::python::BindMaterialCover<terraingen::SandFillLayer, nanobind::class_<terraingen::SandFillLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandFillLayer, terraingen::Layer>&):
✓ Branch 1 taken 44 times.
✓ Branch 4 taken 44 times.
✓ Branch 7 taken 44 times.
✓ Branch 10 taken 44 times.
✓ Branch 13 taken 44 times.
void terraingen::python::BindMaterialCover<terraingen::SandShadowLayer, nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer> >(nanobind::class_<terraingen::SandShadowLayer, terraingen::Layer>&):
✓ Branch 1 taken 44 times.
✓ Branch 4 taken 44 times.
✓ Branch 7 taken 44 times.
✓ Branch 10 taken 44 times.
✓ Branch 13 taken 44 times.
void terraingen::python::BindMaterialCover<terraingen::StrataLayer, nanobind::class_<terraingen::StrataLayer, terraingen::Layer> >(nanobind::class_<terraingen::StrataLayer, terraingen::Layer>&):
✓ Branch 1 taken 44 times.
✓ Branch 4 taken 44 times.
✓ Branch 7 taken 44 times.
✓ Branch 10 taken 44 times.
✓ Branch 13 taken 44 times.
|
1540 | "x"_a, "y"_a, "spacing"_a = 1.0, "terrain"_a = nb::none(), "layers"_a = 0, |
| 92 | "How fully the layer covers (x, y) with its material, in [0, 1]; layers that read the " | ||
| 93 | "ground need `terrain`'s source and its first `layers` layers."); | ||
| 94 | 308 | } | |
| 95 | |||
| 96 | } // namespace terraingen::python | ||
| 97 |