| 74 | Output output; |
| 75 | |
| 76 | void read(toml::table tbl) |
| 77 | { |
| 78 | map.resolution = read(tbl["important"]["resolution"], map.resolution); |
| 79 | |
| 80 | dataset.first = read(tbl["dataset"]["first"], dataset.first); |
| 81 | dataset.last = read(tbl["dataset"]["last"], dataset.last); |
| 82 | dataset.num = read(tbl["dataset"]["num"], dataset.num); |
| 83 | map.levels = read(tbl["map"]["levels"], map.levels); |
| 84 | |
| 85 | auto dsm = read(tbl["integration"]["down_sampling_method"], std::string("none")); |
| 86 | integration.down_sampling_method = |
| 87 | "none" == dsm |
| 88 | ? ufo::DownSamplingMethod::NONE |
| 89 | : ("centroid" == dsm ? ufo::DownSamplingMethod::CENTROID |
| 90 | : ("uniform" == dsm ? ufo::DownSamplingMethod::UNIFORM |
| 91 | : ufo::DownSamplingMethod::CENTER)); |
| 92 | integration.hit_depth = read(tbl["integration"]["hit_depth"], integration.hit_depth); |
| 93 | integration.miss_depth = |
| 94 | read(tbl["integration"]["miss_depth"], integration.miss_depth); |
| 95 | integration.min_range = read(tbl["integration"]["min_range"], integration.min_range); |
| 96 | integration.max_range = read(tbl["integration"]["max_range"], integration.max_range); |
| 97 | integration.inflate_unknown = |
| 98 | read(tbl["important"]["inflate_unknown"], integration.inflate_unknown); |
| 99 | integration.inflate_unknown_compensation = |
| 100 | read(tbl["integration"]["inflate_unknown_compensation"], |
| 101 | integration.inflate_unknown_compensation); |
| 102 | integration.ray_passthrough_hits = read(tbl["integration"]["ray_passthrough_hits"], |
| 103 | integration.ray_passthrough_hits); |
| 104 | integration.inflate_hits_dist = |
| 105 | read(tbl["important"]["inflate_hits_dist"], integration.inflate_hits_dist); |
| 106 | integration.ray_casting_method = read(tbl["integration"]["simple_ray_casting"], true) |
| 107 | ? ufo::RayCastingMethod::SIMPLE |
| 108 | : ufo::RayCastingMethod::PROPER; |
| 109 | integration.simple_ray_casting_factor = |
| 110 | read(tbl["integration"]["simple_ray_casting_factor"], |
| 111 | integration.simple_ray_casting_factor); |
| 112 | integration.parallel = tbl["integration"]["parallel"].value_or(integration.parallel); |
| 113 | integration.num_threads = |
| 114 | read(tbl["integration"]["num_threads"], integration.num_threads); |
| 115 | integration.only_valid = |
| 116 | read(tbl["integration"]["only_valid"], integration.only_valid); |
| 117 | |
| 118 | propagate = read(tbl["integration"]["propagate"], propagate); |
| 119 | |
| 120 | clustering.cluster = read(tbl["clustering"]["cluster"], clustering.cluster); |
| 121 | clustering.max_distance = |
| 122 | read(tbl["clustering"]["max_distance"], clustering.max_distance); |
| 123 | clustering.min_points = read(tbl["clustering"]["min_points"], clustering.min_points); |
| 124 | clustering.depth = read(tbl["clustering"]["depth"], clustering.depth); |
| 125 | |
| 126 | printing.verbose = read(tbl["printing"]["verbose"], printing.verbose); |
| 127 | printing.debug = read(tbl["printing"]["debug"], printing.debug); |
| 128 | |
| 129 | output.filename = read(tbl["output"]["filename"], output.filename); |
| 130 | output.has_color = read(tbl["output"]["has_color"], output.has_color); |
| 131 | output.raycasting = read(tbl["output"]["raycasting"], output.raycasting); |
| 132 | } |
| 133 |
no test coverage detected