terraingenpy 0.2.0.dev117__tar.gz → 0.2.0.dev119__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1214) hide show
  1. terraingenpy-0.2.0.dev119/CHANGELOG.md +236 -0
  2. terraingenpy-0.2.0.dev119/CMakeLists.txt +150 -0
  3. terraingenpy-0.2.0.dev119/CONTRIBUTING.md +47 -0
  4. terraingenpy-0.2.0.dev119/PKG-INFO +250 -0
  5. terraingenpy-0.2.0.dev119/docs/css/extra.css +455 -0
  6. terraingenpy-0.2.0.dev119/docs/overrides/home.html +26 -0
  7. terraingenpy-0.2.0.dev119/examples/cpp/ages/example_ages_models.cpp +164 -0
  8. terraingenpy-0.2.0.dev119/examples/cpp/boulders/example_boulders_ejecta.cpp +128 -0
  9. terraingenpy-0.2.0.dev119/examples/cpp/craters/example_craters_manual_depth.cpp +118 -0
  10. terraingenpy-0.2.0.dev119/examples/cpp/craters/example_craters_profiles.cpp +159 -0
  11. terraingenpy-0.2.0.dev119/examples/cpp/distributions/example_distributions_csfd.cpp +170 -0
  12. terraingenpy-0.2.0.dev119/examples/cpp/layers/example_layers_custom.cpp +168 -0
  13. terraingenpy-0.2.0.dev119/examples/cpp/layers/example_layers_regions.cpp +119 -0
  14. terraingenpy-0.2.0.dev119/examples/cpp/planets/example_planets_moon.cpp +145 -0
  15. terraingenpy-0.2.0.dev119/examples/cpp/queries/example_queries_rover_contacts.cpp +162 -0
  16. terraingenpy-0.2.0.dev119/examples/cpp/sources/example_sources_raster_roughness.cpp +104 -0
  17. terraingenpy-0.2.0.dev119/examples/cpp/terrain/example_terrain_fbm.cpp +75 -0
  18. terraingenpy-0.2.0.dev119/examples/cpp/terrain/example_terrain_layered.cpp +95 -0
  19. terraingenpy-0.2.0.dev119/examples/python/_browser.py +128 -0
  20. terraingenpy-0.2.0.dev119/examples/python/_common.py +47 -0
  21. terraingenpy-0.2.0.dev119/examples/python/_images.py +131 -0
  22. terraingenpy-0.2.0.dev119/examples/python/ages/example_ages_models.py +94 -0
  23. terraingenpy-0.2.0.dev119/examples/python/albedo/example_albedo_moon_site.py +95 -0
  24. terraingenpy-0.2.0.dev119/examples/python/albedo/example_albedo_options.py +151 -0
  25. terraingenpy-0.2.0.dev119/examples/python/boulders/example_boulders_exposure.py +78 -0
  26. terraingenpy-0.2.0.dev119/examples/python/boulders/example_boulders_size_models.py +88 -0
  27. terraingenpy-0.2.0.dev119/examples/python/craters/example_craters_age_sweep.py +85 -0
  28. terraingenpy-0.2.0.dev119/examples/python/craters/example_craters_apply_options.py +94 -0
  29. terraingenpy-0.2.0.dev119/examples/python/craters/example_craters_positioning.py +98 -0
  30. terraingenpy-0.2.0.dev119/examples/python/craters/example_craters_profiles.py +135 -0
  31. terraingenpy-0.2.0.dev119/examples/python/craters/example_craters_secondaries.py +91 -0
  32. terraingenpy-0.2.0.dev119/examples/python/distributions/example_distributions_csfd.py +87 -0
  33. terraingenpy-0.2.0.dev119/examples/python/distributions/example_distributions_custom.py +85 -0
  34. terraingenpy-0.2.0.dev119/examples/python/layers/example_layers_custom.py +149 -0
  35. terraingenpy-0.2.0.dev119/examples/python/layers/example_layers_regions.py +99 -0
  36. terraingenpy-0.2.0.dev119/examples/python/planets/example_planets_body_mesh.py +98 -0
  37. terraingenpy-0.2.0.dev119/examples/python/planets/example_planets_mars.py +82 -0
  38. terraingenpy-0.2.0.dev119/examples/python/planets/example_planets_mars_dunes.py +63 -0
  39. terraingenpy-0.2.0.dev119/examples/python/planets/example_planets_mercury.py +83 -0
  40. terraingenpy-0.2.0.dev119/examples/python/planets/example_planets_moon_site.py +102 -0
  41. terraingenpy-0.2.0.dev119/examples/python/queries/example_queries_points.py +90 -0
  42. terraingenpy-0.2.0.dev119/examples/python/queries/example_queries_rover_contacts.py +120 -0
  43. terraingenpy-0.2.0.dev119/examples/python/terrain/example_terrain_fbm.py +62 -0
  44. terraingenpy-0.2.0.dev119/examples/python/terrain/example_terrain_layered.py +75 -0
  45. terraingenpy-0.2.0.dev119/terraingen/CMakeLists.txt +124 -0
  46. terraingenpy-0.2.0.dev119/terraingen/albedo/albedo.cpp +157 -0
  47. terraingenpy-0.2.0.dev119/terraingen/albedo/albedo.h +133 -0
  48. terraingenpy-0.2.0.dev119/terraingen/albedo/blast_zones.cpp +114 -0
  49. terraingenpy-0.2.0.dev119/terraingen/albedo/blast_zones.h +87 -0
  50. terraingenpy-0.2.0.dev119/terraingen/albedo/crater_albedo.cpp +859 -0
  51. terraingenpy-0.2.0.dev119/terraingen/albedo/crater_albedo.h +433 -0
  52. terraingenpy-0.2.0.dev119/terraingen/albedo/raster_albedo.h +109 -0
  53. terraingenpy-0.2.0.dev119/terraingen/albedo/rock_albedo.cpp +121 -0
  54. terraingenpy-0.2.0.dev119/terraingen/albedo/slope_albedo.cpp +155 -0
  55. terraingenpy-0.2.0.dev119/terraingen/albedo/slope_albedo.h +81 -0
  56. terraingenpy-0.2.0.dev119/terraingen/albedo/splotches.cpp +461 -0
  57. terraingenpy-0.2.0.dev119/terraingen/albedo/splotches.h +195 -0
  58. terraingenpy-0.2.0.dev119/terraingen/albedo/synthetic.h +86 -0
  59. terraingenpy-0.2.0.dev119/terraingen/app/gui/config_editor.cpp +921 -0
  60. terraingenpy-0.2.0.dev119/terraingen/app/gui/config_editor.h +128 -0
  61. terraingenpy-0.2.0.dev119/terraingen/app/gui/gui_app.h +142 -0
  62. terraingenpy-0.2.0.dev119/terraingen/app/gui/terrain_scene.h +36 -0
  63. terraingenpy-0.2.0.dev119/terraingen/config/build.cpp +1008 -0
  64. terraingenpy-0.2.0.dev119/terraingen/config/build.h +173 -0
  65. terraingenpy-0.2.0.dev119/terraingen/config/config.h +1385 -0
  66. terraingenpy-0.2.0.dev119/terraingen/config/fields/albedo.h +561 -0
  67. terraingenpy-0.2.0.dev119/terraingen/config/fields/crater_models.h +296 -0
  68. terraingenpy-0.2.0.dev119/terraingen/config/fields/enums.h +402 -0
  69. terraingenpy-0.2.0.dev119/terraingen/config/fields/fields.h +44 -0
  70. terraingenpy-0.2.0.dev119/terraingen/config/fields/layers.h +610 -0
  71. terraingenpy-0.2.0.dev119/terraingen/config/fields/materials.h +56 -0
  72. terraingenpy-0.2.0.dev119/terraingen/config/fields/outputs.h +205 -0
  73. terraingenpy-0.2.0.dev119/terraingen/config/fields/sources.h +175 -0
  74. terraingenpy-0.2.0.dev119/terraingen/config/validate.cpp +1060 -0
  75. terraingenpy-0.2.0.dev119/terraingen/distribution/composition.h +118 -0
  76. terraingenpy-0.2.0.dev119/terraingen/distribution/equilibrium.cpp +15 -0
  77. terraingenpy-0.2.0.dev119/terraingen/distribution/equilibrium.h +17 -0
  78. terraingenpy-0.2.0.dev119/terraingen/distribution/exponential_chronology.cpp +31 -0
  79. terraingenpy-0.2.0.dev119/terraingen/distribution/golombek_rapp.h +47 -0
  80. terraingenpy-0.2.0.dev119/terraingen/distribution/log_polynomial.h +46 -0
  81. terraingenpy-0.2.0.dev119/terraingen/distribution/minimum.h +46 -0
  82. terraingenpy-0.2.0.dev119/terraingen/distribution/moore.h +22 -0
  83. terraingenpy-0.2.0.dev119/terraingen/distribution/piecewise_power_law.h +48 -0
  84. terraingenpy-0.2.0.dev119/terraingen/distribution/piecewise_uniform.h +61 -0
  85. terraingenpy-0.2.0.dev119/terraingen/distribution/power_law.cpp +34 -0
  86. terraingenpy-0.2.0.dev119/terraingen/distribution/power_law.h +78 -0
  87. terraingenpy-0.2.0.dev119/terraingen/distribution/size_frequency.h +126 -0
  88. terraingenpy-0.2.0.dev119/terraingen/distribution/sp8023.cpp +126 -0
  89. terraingenpy-0.2.0.dev119/terraingen/distribution/sp8023.h +22 -0
  90. terraingenpy-0.2.0.dev119/terraingen/distribution/spliced.cpp +65 -0
  91. terraingenpy-0.2.0.dev119/terraingen/distribution/spliced.h +52 -0
  92. terraingenpy-0.2.0.dev119/terraingen/distribution/synthterrain.h +22 -0
  93. terraingenpy-0.2.0.dev119/terraingen/distribution/tabulated.cpp +80 -0
  94. terraingenpy-0.2.0.dev119/terraingen/distribution/tabulated.h +55 -0
  95. terraingenpy-0.2.0.dev119/terraingen/gpu/kernel.cpp +147 -0
  96. terraingenpy-0.2.0.dev119/terraingen/gpu/kernel.h +40 -0
  97. terraingenpy-0.2.0.dev119/terraingen/layers/anchored_plane.h +27 -0
  98. terraingenpy-0.2.0.dev119/terraingen/layers/bedforms.cpp +204 -0
  99. terraingenpy-0.2.0.dev119/terraingen/layers/bedforms.h +129 -0
  100. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/abundance.cpp +391 -0
  101. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder.h +162 -0
  102. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_clusters.h +46 -0
  103. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_fragments.cpp +111 -0
  104. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_fragments.h +40 -0
  105. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_layer.cpp +1028 -0
  106. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_layer.h +409 -0
  107. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_models.cpp +326 -0
  108. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_models.h +99 -0
  109. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_options.cpp +304 -0
  110. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_options.h +533 -0
  111. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_placer.h +41 -0
  112. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_shape.cpp +493 -0
  113. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/boulder_shape.h +134 -0
  114. terraingenpy-0.2.0.dev119/terraingen/layers/boulders/ejecta_index.h +53 -0
  115. terraingenpy-0.2.0.dev119/terraingen/layers/craters/ages/age_model.h +58 -0
  116. terraingenpy-0.2.0.dev119/terraingen/layers/craters/ages/steady_state.h +52 -0
  117. terraingenpy-0.2.0.dev119/terraingen/layers/craters/crater.h +190 -0
  118. terraingenpy-0.2.0.dev119/terraingen/layers/craters/crater_layer.cpp +230 -0
  119. terraingenpy-0.2.0.dev119/terraingen/layers/craters/crater_layer.h +159 -0
  120. terraingenpy-0.2.0.dev119/terraingen/layers/craters/crater_placer.h +48 -0
  121. terraingenpy-0.2.0.dev119/terraingen/layers/craters/degradation/diffusion.h +163 -0
  122. terraingenpy-0.2.0.dev119/terraingen/layers/craters/degradation/diffusivities.h +47 -0
  123. terraingenpy-0.2.0.dev119/terraingen/layers/craters/generation/population.cpp +368 -0
  124. terraingenpy-0.2.0.dev119/terraingen/layers/craters/generation/population.h +173 -0
  125. terraingenpy-0.2.0.dev119/terraingen/layers/craters/generation/spacing.cpp +180 -0
  126. terraingenpy-0.2.0.dev119/terraingen/layers/craters/generation/spacing.h +45 -0
  127. terraingenpy-0.2.0.dev119/terraingen/layers/craters/profiles/complex.cpp +90 -0
  128. terraingenpy-0.2.0.dev119/terraingen/layers/craters/profiles/complex.h +98 -0
  129. terraingenpy-0.2.0.dev119/terraingen/layers/craters/profiles/profile.h +29 -0
  130. terraingenpy-0.2.0.dev119/terraingen/layers/craters/rays.h +46 -0
  131. terraingenpy-0.2.0.dev119/terraingen/layers/craters/secondaries.cpp +402 -0
  132. terraingenpy-0.2.0.dev119/terraingen/layers/craters/secondaries.h +94 -0
  133. terraingenpy-0.2.0.dev119/terraingen/layers/craters/secondary_model.h +248 -0
  134. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/apply.cpp +1173 -0
  135. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/apply.h +94 -0
  136. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/apply_options.h +211 -0
  137. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/attributes.h +38 -0
  138. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/crater_kernel.cpp +302 -0
  139. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/crater_kernel.h +63 -0
  140. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/datum.cpp +94 -0
  141. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/datum.h +87 -0
  142. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/explicit_state.cpp +145 -0
  143. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/irregularity.cpp +345 -0
  144. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/irregularity.h +154 -0
  145. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/morphometry.cpp +74 -0
  146. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/morphometry.h +48 -0
  147. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/prepared.h +62 -0
  148. terraingenpy-0.2.0.dev119/terraingen/layers/craters/shaping/slope.h +90 -0
  149. terraingenpy-0.2.0.dev119/terraingen/layers/density_map.cpp +118 -0
  150. terraingenpy-0.2.0.dev119/terraingen/layers/density_map.h +145 -0
  151. terraingenpy-0.2.0.dev119/terraingen/layers/dunes.cpp +641 -0
  152. terraingenpy-0.2.0.dev119/terraingen/layers/dunes.h +279 -0
  153. terraingenpy-0.2.0.dev119/terraingen/layers/exposure.cpp +108 -0
  154. terraingenpy-0.2.0.dev119/terraingen/layers/exposure.h +86 -0
  155. terraingenpy-0.2.0.dev119/terraingen/layers/ground.cpp +41 -0
  156. terraingenpy-0.2.0.dev119/terraingen/layers/ground.h +77 -0
  157. terraingenpy-0.2.0.dev119/terraingen/layers/kernels/cell.h +16 -0
  158. terraingenpy-0.2.0.dev119/terraingen/layers/kernels/craters.h +842 -0
  159. terraingenpy-0.2.0.dev119/terraingen/layers/kernels/craters.slang +58 -0
  160. terraingenpy-0.2.0.dev119/terraingen/layers/layer.h +89 -0
  161. terraingenpy-0.2.0.dev119/terraingen/layers/material.cpp +37 -0
  162. terraingenpy-0.2.0.dev119/terraingen/layers/material.h +62 -0
  163. terraingenpy-0.2.0.dev119/terraingen/layers/pavement.cpp +259 -0
  164. terraingenpy-0.2.0.dev119/terraingen/layers/pavement.h +139 -0
  165. terraingenpy-0.2.0.dev119/terraingen/layers/roughness.h +101 -0
  166. terraingenpy-0.2.0.dev119/terraingen/layers/roughness_estimate.h +62 -0
  167. terraingenpy-0.2.0.dev119/terraingen/layers/sample_block.h +85 -0
  168. terraingenpy-0.2.0.dev119/terraingen/layers/sand_fill.h +79 -0
  169. terraingenpy-0.2.0.dev119/terraingen/layers/sand_shadow.cpp +150 -0
  170. terraingenpy-0.2.0.dev119/terraingen/layers/sand_shadow.h +108 -0
  171. terraingenpy-0.2.0.dev119/terraingen/layers/spectral_continuation.cpp +525 -0
  172. terraingenpy-0.2.0.dev119/terraingen/layers/spectral_continuation.h +171 -0
  173. terraingenpy-0.2.0.dev119/terraingen/layers/strata.h +113 -0
  174. terraingenpy-0.2.0.dev119/terraingen/layers/transforms.h +83 -0
  175. terraingenpy-0.2.0.dev119/terraingen/mesh/io/gltf.cpp +303 -0
  176. terraingenpy-0.2.0.dev119/terraingen/mesh/io/icq.cpp +219 -0
  177. terraingenpy-0.2.0.dev119/terraingen/mesh/io/icq.h +83 -0
  178. terraingenpy-0.2.0.dev119/terraingen/mesh/io/mesh_io.h +71 -0
  179. terraingenpy-0.2.0.dev119/terraingen/mesh/io/obj.cpp +115 -0
  180. terraingenpy-0.2.0.dev119/terraingen/mesh/shape_model.h +21 -0
  181. terraingenpy-0.2.0.dev119/terraingen/noise/fractal.h +325 -0
  182. terraingenpy-0.2.0.dev119/terraingen/noise/noise_layers.h +231 -0
  183. terraingenpy-0.2.0.dev119/terraingen/noise/worley.h +122 -0
  184. terraingenpy-0.2.0.dev119/terraingen/pipeline/body_mesh.h +37 -0
  185. terraingenpy-0.2.0.dev119/terraingen/pipeline/features.h +23 -0
  186. terraingenpy-0.2.0.dev119/terraingen/pipeline/generator.h +160 -0
  187. terraingenpy-0.2.0.dev119/terraingen/pipeline/materials.cpp +123 -0
  188. terraingenpy-0.2.0.dev119/terraingen/pipeline/materials.h +56 -0
  189. terraingenpy-0.2.0.dev119/terraingen/python/src/albedo.cpp +474 -0
  190. terraingenpy-0.2.0.dev119/terraingen/python/src/boulders.cpp +456 -0
  191. terraingenpy-0.2.0.dev119/terraingen/python/src/crater_models.cpp +355 -0
  192. terraingenpy-0.2.0.dev119/terraingen/python/src/craters.cpp +572 -0
  193. terraingenpy-0.2.0.dev119/terraingen/python/src/distribution.cpp +377 -0
  194. terraingenpy-0.2.0.dev119/terraingen/python/src/layers.cpp +513 -0
  195. terraingenpy-0.2.0.dev119/terraingen/python/src/mesh.cpp +265 -0
  196. terraingenpy-0.2.0.dev119/terraingen/python/src/noise.cpp +370 -0
  197. terraingenpy-0.2.0.dev119/terraingen/python/src/objects.h +123 -0
  198. terraingenpy-0.2.0.dev119/terraingen/python/src/pipeline.cpp +578 -0
  199. terraingenpy-0.2.0.dev119/terraingen/python/src/raster.cpp +289 -0
  200. terraingenpy-0.2.0.dev119/terraingen/python/src/sources.cpp +461 -0
  201. terraingenpy-0.2.0.dev119/terraingen/python/src/util.cpp +243 -0
  202. terraingenpy-0.2.0.dev119/terraingen/python/terraingen/render.py +237 -0
  203. terraingenpy-0.2.0.dev119/terraingen/random/streams.h +147 -0
  204. terraingenpy-0.2.0.dev119/terraingen/raster/cell_loops.h +132 -0
  205. terraingenpy-0.2.0.dev119/terraingen/raster/geo_transform.h +79 -0
  206. terraingenpy-0.2.0.dev119/terraingen/raster/geotiff/geotiff.h +195 -0
  207. terraingenpy-0.2.0.dev119/terraingen/raster/geotiff/tiff_format.h +157 -0
  208. terraingenpy-0.2.0.dev119/terraingen/raster/grid.h +83 -0
  209. terraingenpy-0.2.0.dev119/terraingen/raster/raster.h +164 -0
  210. terraingenpy-0.2.0.dev119/terraingen/raster/resample.cpp +235 -0
  211. terraingenpy-0.2.0.dev119/terraingen/raster/resample.h +169 -0
  212. terraingenpy-0.2.0.dev119/terraingen/sources/field.h +141 -0
  213. terraingenpy-0.2.0.dev119/terraingen/sources/flat_source.cpp +30 -0
  214. terraingenpy-0.2.0.dev119/terraingen/sources/flat_source.h +58 -0
  215. terraingenpy-0.2.0.dev119/terraingen/sources/geotiff_source.cpp +109 -0
  216. terraingenpy-0.2.0.dev119/terraingen/sources/source_chain.h +60 -0
  217. terraingenpy-0.2.0.dev119/terraingen/sources/synthetic_terrain.cpp +68 -0
  218. terraingenpy-0.2.0.dev119/terraingen/sources/synthetic_terrain.h +54 -0
  219. terraingenpy-0.2.0.dev119/terraingen/util/cells.h +205 -0
  220. terraingenpy-0.2.0.dev119/terraingen/util/cube_faces.h +73 -0
  221. terraingenpy-0.2.0.dev119/terraingen/util/cube_sphere_cells.cpp +348 -0
  222. terraingenpy-0.2.0.dev119/terraingen/util/fft.h +26 -0
  223. terraingenpy-0.2.0.dev119/terraingen/util/geometry.h +158 -0
  224. terraingenpy-0.2.0.dev119/terraingen/util/radial_shape.h +101 -0
  225. terraingenpy-0.2.0.dev119/terraingen/util/surface.cpp +332 -0
  226. terraingenpy-0.2.0.dev119/terraingen/util/surface.h +234 -0
  227. terraingenpy-0.2.0.dev119/tests/benchmark/bench_craters.cpp +63 -0
  228. terraingenpy-0.2.0.dev119/tests/benchmark/bench_point_queries.cpp +115 -0
  229. terraingenpy-0.2.0.dev119/tests/benchmark/fixtures.h +43 -0
  230. terraingenpy-0.2.0.dev119/tests/python/conftest.py +222 -0
  231. terraingenpy-0.2.0.dev119/tests/python/test_albedo.py +303 -0
  232. terraingenpy-0.2.0.dev119/tests/python/test_boulders.py +390 -0
  233. terraingenpy-0.2.0.dev119/tests/python/test_crater_models.py +291 -0
  234. terraingenpy-0.2.0.dev119/tests/python/test_craters.py +543 -0
  235. terraingenpy-0.2.0.dev119/tests/python/test_distributions.py +241 -0
  236. terraingenpy-0.2.0.dev119/tests/python/test_examples_harness.py +150 -0
  237. terraingenpy-0.2.0.dev119/tests/python/test_layers.py +649 -0
  238. terraingenpy-0.2.0.dev119/tests/python/test_meshes.py +205 -0
  239. terraingenpy-0.2.0.dev119/tests/python/test_pipeline.py +363 -0
  240. terraingenpy-0.2.0.dev119/tests/python/test_raster.py +251 -0
  241. terraingenpy-0.2.0.dev119/tests/python/test_render.py +146 -0
  242. terraingenpy-0.2.0.dev119/tests/python/test_sources.py +312 -0
  243. terraingenpy-0.2.0.dev119/tests/python/test_util.py +212 -0
  244. terraingenpy-0.2.0.dev119/tests/statistical/layers/boulders/boulder_layer_test.cpp +96 -0
  245. terraingenpy-0.2.0.dev119/tests/unit/albedo/albedo_test.cpp +429 -0
  246. terraingenpy-0.2.0.dev119/tests/unit/albedo/blast_zones_test.cpp +122 -0
  247. terraingenpy-0.2.0.dev119/tests/unit/albedo/crater_albedo_test.cpp +836 -0
  248. terraingenpy-0.2.0.dev119/tests/unit/albedo/rock_albedo_test.cpp +160 -0
  249. terraingenpy-0.2.0.dev119/tests/unit/albedo/slope_albedo_test.cpp +124 -0
  250. terraingenpy-0.2.0.dev119/tests/unit/albedo/splotches_test.cpp +393 -0
  251. terraingenpy-0.2.0.dev119/tests/unit/app/gui/config_editor_test.cpp +186 -0
  252. terraingenpy-0.2.0.dev119/tests/unit/config/build_test.cpp +1012 -0
  253. terraingenpy-0.2.0.dev119/tests/unit/config/config_test.cpp +117 -0
  254. terraingenpy-0.2.0.dev119/tests/unit/config/generate_terrain_test.cpp +964 -0
  255. terraingenpy-0.2.0.dev119/tests/unit/config/json_io_test.cpp +848 -0
  256. terraingenpy-0.2.0.dev119/tests/unit/config/json_parse_errors_test.cpp +171 -0
  257. terraingenpy-0.2.0.dev119/tests/unit/config/schema_test.cpp +612 -0
  258. terraingenpy-0.2.0.dev119/tests/unit/config/write_outputs_test.cpp +458 -0
  259. terraingenpy-0.2.0.dev119/tests/unit/distribution/equilibrium_test.cpp +20 -0
  260. terraingenpy-0.2.0.dev119/tests/unit/distribution/exponential_chronology_test.cpp +39 -0
  261. terraingenpy-0.2.0.dev119/tests/unit/distribution/ivanov_test.cpp +34 -0
  262. terraingenpy-0.2.0.dev119/tests/unit/distribution/log_polynomial_test.cpp +66 -0
  263. terraingenpy-0.2.0.dev119/tests/unit/distribution/minimum_test.cpp +69 -0
  264. terraingenpy-0.2.0.dev119/tests/unit/distribution/neukum_test.cpp +134 -0
  265. terraingenpy-0.2.0.dev119/tests/unit/distribution/piecewise_power_law_test.cpp +91 -0
  266. terraingenpy-0.2.0.dev119/tests/unit/distribution/power_law_test.cpp +59 -0
  267. terraingenpy-0.2.0.dev119/tests/unit/distribution/production_surface_test.cpp +25 -0
  268. terraingenpy-0.2.0.dev119/tests/unit/distribution/size_frequency_test.cpp +139 -0
  269. terraingenpy-0.2.0.dev119/tests/unit/distribution/spliced_test.cpp +98 -0
  270. terraingenpy-0.2.0.dev119/tests/unit/distribution/tabulated_test.cpp +134 -0
  271. terraingenpy-0.2.0.dev119/tests/unit/distribution/viper_test.cpp +12 -0
  272. terraingenpy-0.2.0.dev119/tests/unit/layers/bedforms_test.cpp +159 -0
  273. terraingenpy-0.2.0.dev119/tests/unit/layers/boulders/boulder_fragments_test.cpp +307 -0
  274. terraingenpy-0.2.0.dev119/tests/unit/layers/boulders/boulder_layer_test.cpp +1354 -0
  275. terraingenpy-0.2.0.dev119/tests/unit/layers/boulders/boulder_models_test.cpp +201 -0
  276. terraingenpy-0.2.0.dev119/tests/unit/layers/boulders/boulder_options_test.cpp +100 -0
  277. terraingenpy-0.2.0.dev119/tests/unit/layers/boulders/boulder_shape_test.cpp +254 -0
  278. terraingenpy-0.2.0.dev119/tests/unit/layers/boulders/ejecta_index_test.cpp +61 -0
  279. terraingenpy-0.2.0.dev119/tests/unit/layers/boulders/manual_boulder_test.cpp +430 -0
  280. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/ages/freshness_test.cpp +166 -0
  281. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/crater_layer_test.cpp +310 -0
  282. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/degradation/diffusion_test.cpp +230 -0
  283. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/generation/resolved_limit_test.cpp +100 -0
  284. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/profiles/complex_test.cpp +101 -0
  285. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/secondaries_test.cpp +603 -0
  286. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/shaping/apply_test.cpp +646 -0
  287. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +492 -0
  288. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/shaping/datum_test.cpp +96 -0
  289. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/shaping/irregularity_test.cpp +363 -0
  290. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/shaping/morphometry_test.cpp +86 -0
  291. terraingenpy-0.2.0.dev119/tests/unit/layers/craters/sphere_test.cpp +373 -0
  292. terraingenpy-0.2.0.dev119/tests/unit/layers/dunes_test.cpp +466 -0
  293. terraingenpy-0.2.0.dev119/tests/unit/layers/exposure_test.cpp +146 -0
  294. terraingenpy-0.2.0.dev119/tests/unit/layers/noise_relief_test.cpp +291 -0
  295. terraingenpy-0.2.0.dev119/tests/unit/layers/pavement_test.cpp +193 -0
  296. terraingenpy-0.2.0.dev119/tests/unit/layers/roughness_estimate_test.cpp +214 -0
  297. terraingenpy-0.2.0.dev119/tests/unit/layers/roughness_test.cpp +171 -0
  298. terraingenpy-0.2.0.dev119/tests/unit/layers/sample_block_test.cpp +127 -0
  299. terraingenpy-0.2.0.dev119/tests/unit/layers/sand_fill_test.cpp +123 -0
  300. terraingenpy-0.2.0.dev119/tests/unit/layers/sand_shadow_test.cpp +183 -0
  301. terraingenpy-0.2.0.dev119/tests/unit/layers/spectral_continuation_test.cpp +360 -0
  302. terraingenpy-0.2.0.dev119/tests/unit/layers/sphere_layers_test.cpp +216 -0
  303. terraingenpy-0.2.0.dev119/tests/unit/layers/strata_test.cpp +243 -0
  304. terraingenpy-0.2.0.dev119/tests/unit/layers/transforms_test.cpp +87 -0
  305. terraingenpy-0.2.0.dev119/tests/unit/mesh/io/icq_test.cpp +231 -0
  306. terraingenpy-0.2.0.dev119/tests/unit/mesh/io/mesh_io_test.cpp +203 -0
  307. terraingenpy-0.2.0.dev119/tests/unit/noise/fractal_test.cpp +199 -0
  308. terraingenpy-0.2.0.dev119/tests/unit/noise/perlin_test.cpp +184 -0
  309. terraingenpy-0.2.0.dev119/tests/unit/pipeline/features_test.cpp +229 -0
  310. terraingenpy-0.2.0.dev119/tests/unit/pipeline/generator_test.cpp +502 -0
  311. terraingenpy-0.2.0.dev119/tests/unit/pipeline/materials_test.cpp +161 -0
  312. terraingenpy-0.2.0.dev119/tests/unit/pipeline/terrain_windows_test.cpp +281 -0
  313. terraingenpy-0.2.0.dev119/tests/unit/raster/cell_loops_test.cpp +109 -0
  314. terraingenpy-0.2.0.dev119/tests/unit/raster/geo_transform_test.cpp +67 -0
  315. terraingenpy-0.2.0.dev119/tests/unit/raster/raster_test.cpp +86 -0
  316. terraingenpy-0.2.0.dev119/tests/unit/raster/resample_test.cpp +383 -0
  317. terraingenpy-0.2.0.dev119/tests/unit/sources/field_test.cpp +144 -0
  318. terraingenpy-0.2.0.dev119/tests/unit/sources/flat_source_test.cpp +63 -0
  319. terraingenpy-0.2.0.dev119/tests/unit/sources/geotiff_source_test.cpp +407 -0
  320. terraingenpy-0.2.0.dev119/tests/unit/sources/source_chain_test.cpp +204 -0
  321. terraingenpy-0.2.0.dev119/tests/unit/sources/synthetic_terrain_test.cpp +152 -0
  322. terraingenpy-0.2.0.dev119/tests/unit/util/surface_test.cpp +681 -0
  323. terraingenpy-0.2.0.dev117/CHANGELOG.md +0 -222
  324. terraingenpy-0.2.0.dev117/CMakeLists.txt +0 -150
  325. terraingenpy-0.2.0.dev117/CONTRIBUTING.md +0 -47
  326. terraingenpy-0.2.0.dev117/PKG-INFO +0 -250
  327. terraingenpy-0.2.0.dev117/docs/css/extra.css +0 -455
  328. terraingenpy-0.2.0.dev117/docs/overrides/home.html +0 -26
  329. terraingenpy-0.2.0.dev117/examples/cpp/ages/example_ages_models.cpp +0 -164
  330. terraingenpy-0.2.0.dev117/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -128
  331. terraingenpy-0.2.0.dev117/examples/cpp/craters/example_craters_manual_depth.cpp +0 -118
  332. terraingenpy-0.2.0.dev117/examples/cpp/craters/example_craters_profiles.cpp +0 -159
  333. terraingenpy-0.2.0.dev117/examples/cpp/distributions/example_distributions_csfd.cpp +0 -170
  334. terraingenpy-0.2.0.dev117/examples/cpp/layers/example_layers_custom.cpp +0 -168
  335. terraingenpy-0.2.0.dev117/examples/cpp/layers/example_layers_regions.cpp +0 -119
  336. terraingenpy-0.2.0.dev117/examples/cpp/planets/example_planets_moon.cpp +0 -145
  337. terraingenpy-0.2.0.dev117/examples/cpp/queries/example_queries_rover_contacts.cpp +0 -162
  338. terraingenpy-0.2.0.dev117/examples/cpp/sources/example_sources_raster_roughness.cpp +0 -104
  339. terraingenpy-0.2.0.dev117/examples/cpp/terrain/example_terrain_fbm.cpp +0 -75
  340. terraingenpy-0.2.0.dev117/examples/cpp/terrain/example_terrain_layered.cpp +0 -95
  341. terraingenpy-0.2.0.dev117/examples/python/_browser.py +0 -128
  342. terraingenpy-0.2.0.dev117/examples/python/_common.py +0 -47
  343. terraingenpy-0.2.0.dev117/examples/python/_images.py +0 -131
  344. terraingenpy-0.2.0.dev117/examples/python/ages/example_ages_models.py +0 -94
  345. terraingenpy-0.2.0.dev117/examples/python/albedo/example_albedo_moon_site.py +0 -95
  346. terraingenpy-0.2.0.dev117/examples/python/albedo/example_albedo_options.py +0 -151
  347. terraingenpy-0.2.0.dev117/examples/python/boulders/example_boulders_exposure.py +0 -78
  348. terraingenpy-0.2.0.dev117/examples/python/boulders/example_boulders_size_models.py +0 -88
  349. terraingenpy-0.2.0.dev117/examples/python/craters/example_craters_age_sweep.py +0 -85
  350. terraingenpy-0.2.0.dev117/examples/python/craters/example_craters_apply_options.py +0 -94
  351. terraingenpy-0.2.0.dev117/examples/python/craters/example_craters_positioning.py +0 -98
  352. terraingenpy-0.2.0.dev117/examples/python/craters/example_craters_profiles.py +0 -135
  353. terraingenpy-0.2.0.dev117/examples/python/craters/example_craters_secondaries.py +0 -91
  354. terraingenpy-0.2.0.dev117/examples/python/distributions/example_distributions_csfd.py +0 -87
  355. terraingenpy-0.2.0.dev117/examples/python/distributions/example_distributions_custom.py +0 -85
  356. terraingenpy-0.2.0.dev117/examples/python/layers/example_layers_custom.py +0 -149
  357. terraingenpy-0.2.0.dev117/examples/python/layers/example_layers_regions.py +0 -99
  358. terraingenpy-0.2.0.dev117/examples/python/planets/example_planets_body_mesh.py +0 -98
  359. terraingenpy-0.2.0.dev117/examples/python/planets/example_planets_mars.py +0 -82
  360. terraingenpy-0.2.0.dev117/examples/python/planets/example_planets_mars_dunes.py +0 -63
  361. terraingenpy-0.2.0.dev117/examples/python/planets/example_planets_mercury.py +0 -83
  362. terraingenpy-0.2.0.dev117/examples/python/planets/example_planets_moon_site.py +0 -102
  363. terraingenpy-0.2.0.dev117/examples/python/queries/example_queries_points.py +0 -90
  364. terraingenpy-0.2.0.dev117/examples/python/queries/example_queries_rover_contacts.py +0 -121
  365. terraingenpy-0.2.0.dev117/examples/python/terrain/example_terrain_fbm.py +0 -62
  366. terraingenpy-0.2.0.dev117/examples/python/terrain/example_terrain_layered.py +0 -75
  367. terraingenpy-0.2.0.dev117/terraingen/CMakeLists.txt +0 -124
  368. terraingenpy-0.2.0.dev117/terraingen/albedo/albedo.cpp +0 -157
  369. terraingenpy-0.2.0.dev117/terraingen/albedo/albedo.h +0 -133
  370. terraingenpy-0.2.0.dev117/terraingen/albedo/blast_zones.cpp +0 -114
  371. terraingenpy-0.2.0.dev117/terraingen/albedo/blast_zones.h +0 -87
  372. terraingenpy-0.2.0.dev117/terraingen/albedo/crater_albedo.cpp +0 -859
  373. terraingenpy-0.2.0.dev117/terraingen/albedo/crater_albedo.h +0 -433
  374. terraingenpy-0.2.0.dev117/terraingen/albedo/raster_albedo.h +0 -109
  375. terraingenpy-0.2.0.dev117/terraingen/albedo/rock_albedo.cpp +0 -121
  376. terraingenpy-0.2.0.dev117/terraingen/albedo/slope_albedo.cpp +0 -155
  377. terraingenpy-0.2.0.dev117/terraingen/albedo/slope_albedo.h +0 -81
  378. terraingenpy-0.2.0.dev117/terraingen/albedo/splotches.cpp +0 -461
  379. terraingenpy-0.2.0.dev117/terraingen/albedo/splotches.h +0 -195
  380. terraingenpy-0.2.0.dev117/terraingen/albedo/synthetic.h +0 -86
  381. terraingenpy-0.2.0.dev117/terraingen/app/gui/config_editor.cpp +0 -921
  382. terraingenpy-0.2.0.dev117/terraingen/app/gui/config_editor.h +0 -128
  383. terraingenpy-0.2.0.dev117/terraingen/app/gui/gui_app.h +0 -142
  384. terraingenpy-0.2.0.dev117/terraingen/app/gui/terrain_scene.h +0 -36
  385. terraingenpy-0.2.0.dev117/terraingen/config/build.cpp +0 -1008
  386. terraingenpy-0.2.0.dev117/terraingen/config/build.h +0 -173
  387. terraingenpy-0.2.0.dev117/terraingen/config/config.h +0 -1385
  388. terraingenpy-0.2.0.dev117/terraingen/config/fields/albedo.h +0 -561
  389. terraingenpy-0.2.0.dev117/terraingen/config/fields/crater_models.h +0 -296
  390. terraingenpy-0.2.0.dev117/terraingen/config/fields/enums.h +0 -402
  391. terraingenpy-0.2.0.dev117/terraingen/config/fields/fields.h +0 -44
  392. terraingenpy-0.2.0.dev117/terraingen/config/fields/layers.h +0 -610
  393. terraingenpy-0.2.0.dev117/terraingen/config/fields/materials.h +0 -56
  394. terraingenpy-0.2.0.dev117/terraingen/config/fields/outputs.h +0 -205
  395. terraingenpy-0.2.0.dev117/terraingen/config/fields/sources.h +0 -175
  396. terraingenpy-0.2.0.dev117/terraingen/config/validate.cpp +0 -1060
  397. terraingenpy-0.2.0.dev117/terraingen/distribution/composition.h +0 -118
  398. terraingenpy-0.2.0.dev117/terraingen/distribution/equilibrium.cpp +0 -15
  399. terraingenpy-0.2.0.dev117/terraingen/distribution/equilibrium.h +0 -17
  400. terraingenpy-0.2.0.dev117/terraingen/distribution/exponential_chronology.cpp +0 -31
  401. terraingenpy-0.2.0.dev117/terraingen/distribution/golombek_rapp.h +0 -47
  402. terraingenpy-0.2.0.dev117/terraingen/distribution/log_polynomial.h +0 -46
  403. terraingenpy-0.2.0.dev117/terraingen/distribution/minimum.h +0 -46
  404. terraingenpy-0.2.0.dev117/terraingen/distribution/moore.h +0 -22
  405. terraingenpy-0.2.0.dev117/terraingen/distribution/piecewise_power_law.h +0 -48
  406. terraingenpy-0.2.0.dev117/terraingen/distribution/piecewise_uniform.h +0 -61
  407. terraingenpy-0.2.0.dev117/terraingen/distribution/power_law.cpp +0 -34
  408. terraingenpy-0.2.0.dev117/terraingen/distribution/power_law.h +0 -78
  409. terraingenpy-0.2.0.dev117/terraingen/distribution/size_frequency.h +0 -126
  410. terraingenpy-0.2.0.dev117/terraingen/distribution/sp8023.cpp +0 -126
  411. terraingenpy-0.2.0.dev117/terraingen/distribution/sp8023.h +0 -22
  412. terraingenpy-0.2.0.dev117/terraingen/distribution/spliced.cpp +0 -65
  413. terraingenpy-0.2.0.dev117/terraingen/distribution/spliced.h +0 -52
  414. terraingenpy-0.2.0.dev117/terraingen/distribution/synthterrain.h +0 -22
  415. terraingenpy-0.2.0.dev117/terraingen/distribution/tabulated.cpp +0 -80
  416. terraingenpy-0.2.0.dev117/terraingen/distribution/tabulated.h +0 -55
  417. terraingenpy-0.2.0.dev117/terraingen/gpu/kernel.cpp +0 -147
  418. terraingenpy-0.2.0.dev117/terraingen/gpu/kernel.h +0 -40
  419. terraingenpy-0.2.0.dev117/terraingen/layers/anchored_plane.h +0 -27
  420. terraingenpy-0.2.0.dev117/terraingen/layers/bedforms.cpp +0 -204
  421. terraingenpy-0.2.0.dev117/terraingen/layers/bedforms.h +0 -129
  422. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/abundance.cpp +0 -391
  423. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder.h +0 -162
  424. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_clusters.h +0 -46
  425. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_fragments.cpp +0 -111
  426. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_fragments.h +0 -40
  427. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_layer.cpp +0 -1028
  428. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_layer.h +0 -409
  429. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_models.cpp +0 -326
  430. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_models.h +0 -99
  431. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_options.cpp +0 -304
  432. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_options.h +0 -533
  433. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_placer.h +0 -41
  434. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_shape.cpp +0 -493
  435. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/boulder_shape.h +0 -134
  436. terraingenpy-0.2.0.dev117/terraingen/layers/boulders/ejecta_index.h +0 -53
  437. terraingenpy-0.2.0.dev117/terraingen/layers/craters/ages/age_model.h +0 -58
  438. terraingenpy-0.2.0.dev117/terraingen/layers/craters/ages/steady_state.h +0 -52
  439. terraingenpy-0.2.0.dev117/terraingen/layers/craters/crater.h +0 -190
  440. terraingenpy-0.2.0.dev117/terraingen/layers/craters/crater_layer.cpp +0 -230
  441. terraingenpy-0.2.0.dev117/terraingen/layers/craters/crater_layer.h +0 -159
  442. terraingenpy-0.2.0.dev117/terraingen/layers/craters/crater_placer.h +0 -48
  443. terraingenpy-0.2.0.dev117/terraingen/layers/craters/degradation/diffusion.h +0 -163
  444. terraingenpy-0.2.0.dev117/terraingen/layers/craters/degradation/diffusivities.h +0 -47
  445. terraingenpy-0.2.0.dev117/terraingen/layers/craters/generation/population.cpp +0 -368
  446. terraingenpy-0.2.0.dev117/terraingen/layers/craters/generation/population.h +0 -173
  447. terraingenpy-0.2.0.dev117/terraingen/layers/craters/generation/spacing.cpp +0 -180
  448. terraingenpy-0.2.0.dev117/terraingen/layers/craters/generation/spacing.h +0 -45
  449. terraingenpy-0.2.0.dev117/terraingen/layers/craters/profiles/complex.cpp +0 -90
  450. terraingenpy-0.2.0.dev117/terraingen/layers/craters/profiles/complex.h +0 -98
  451. terraingenpy-0.2.0.dev117/terraingen/layers/craters/profiles/profile.h +0 -29
  452. terraingenpy-0.2.0.dev117/terraingen/layers/craters/rays.h +0 -46
  453. terraingenpy-0.2.0.dev117/terraingen/layers/craters/secondaries.cpp +0 -402
  454. terraingenpy-0.2.0.dev117/terraingen/layers/craters/secondaries.h +0 -94
  455. terraingenpy-0.2.0.dev117/terraingen/layers/craters/secondary_model.h +0 -248
  456. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/apply.cpp +0 -1173
  457. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/apply.h +0 -94
  458. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/apply_options.h +0 -211
  459. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/attributes.h +0 -38
  460. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -302
  461. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/crater_kernel.h +0 -63
  462. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/datum.cpp +0 -94
  463. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/datum.h +0 -87
  464. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/explicit_state.cpp +0 -145
  465. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/irregularity.cpp +0 -345
  466. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/irregularity.h +0 -154
  467. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/morphometry.cpp +0 -74
  468. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/morphometry.h +0 -48
  469. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/prepared.h +0 -62
  470. terraingenpy-0.2.0.dev117/terraingen/layers/craters/shaping/slope.h +0 -90
  471. terraingenpy-0.2.0.dev117/terraingen/layers/density_map.cpp +0 -118
  472. terraingenpy-0.2.0.dev117/terraingen/layers/density_map.h +0 -145
  473. terraingenpy-0.2.0.dev117/terraingen/layers/dunes.cpp +0 -641
  474. terraingenpy-0.2.0.dev117/terraingen/layers/dunes.h +0 -279
  475. terraingenpy-0.2.0.dev117/terraingen/layers/exposure.cpp +0 -108
  476. terraingenpy-0.2.0.dev117/terraingen/layers/exposure.h +0 -86
  477. terraingenpy-0.2.0.dev117/terraingen/layers/ground.cpp +0 -41
  478. terraingenpy-0.2.0.dev117/terraingen/layers/ground.h +0 -77
  479. terraingenpy-0.2.0.dev117/terraingen/layers/kernels/cell.h +0 -16
  480. terraingenpy-0.2.0.dev117/terraingen/layers/kernels/craters.h +0 -842
  481. terraingenpy-0.2.0.dev117/terraingen/layers/kernels/craters.slang +0 -58
  482. terraingenpy-0.2.0.dev117/terraingen/layers/layer.h +0 -89
  483. terraingenpy-0.2.0.dev117/terraingen/layers/material.cpp +0 -37
  484. terraingenpy-0.2.0.dev117/terraingen/layers/material.h +0 -62
  485. terraingenpy-0.2.0.dev117/terraingen/layers/pavement.cpp +0 -260
  486. terraingenpy-0.2.0.dev117/terraingen/layers/pavement.h +0 -139
  487. terraingenpy-0.2.0.dev117/terraingen/layers/roughness.h +0 -101
  488. terraingenpy-0.2.0.dev117/terraingen/layers/roughness_estimate.h +0 -62
  489. terraingenpy-0.2.0.dev117/terraingen/layers/sample_block.h +0 -85
  490. terraingenpy-0.2.0.dev117/terraingen/layers/sand_fill.h +0 -79
  491. terraingenpy-0.2.0.dev117/terraingen/layers/sand_shadow.cpp +0 -150
  492. terraingenpy-0.2.0.dev117/terraingen/layers/sand_shadow.h +0 -108
  493. terraingenpy-0.2.0.dev117/terraingen/layers/spectral_continuation.cpp +0 -524
  494. terraingenpy-0.2.0.dev117/terraingen/layers/spectral_continuation.h +0 -171
  495. terraingenpy-0.2.0.dev117/terraingen/layers/strata.h +0 -113
  496. terraingenpy-0.2.0.dev117/terraingen/layers/transforms.h +0 -83
  497. terraingenpy-0.2.0.dev117/terraingen/mesh/io/gltf.cpp +0 -303
  498. terraingenpy-0.2.0.dev117/terraingen/mesh/io/icq.cpp +0 -219
  499. terraingenpy-0.2.0.dev117/terraingen/mesh/io/icq.h +0 -83
  500. terraingenpy-0.2.0.dev117/terraingen/mesh/io/mesh_io.h +0 -71
  501. terraingenpy-0.2.0.dev117/terraingen/mesh/io/obj.cpp +0 -115
  502. terraingenpy-0.2.0.dev117/terraingen/mesh/shape_model.h +0 -21
  503. terraingenpy-0.2.0.dev117/terraingen/noise/fractal.h +0 -325
  504. terraingenpy-0.2.0.dev117/terraingen/noise/noise_layers.h +0 -231
  505. terraingenpy-0.2.0.dev117/terraingen/noise/worley.h +0 -122
  506. terraingenpy-0.2.0.dev117/terraingen/pipeline/body_mesh.h +0 -37
  507. terraingenpy-0.2.0.dev117/terraingen/pipeline/features.h +0 -23
  508. terraingenpy-0.2.0.dev117/terraingen/pipeline/generator.h +0 -160
  509. terraingenpy-0.2.0.dev117/terraingen/pipeline/materials.cpp +0 -123
  510. terraingenpy-0.2.0.dev117/terraingen/pipeline/materials.h +0 -56
  511. terraingenpy-0.2.0.dev117/terraingen/python/src/albedo.cpp +0 -474
  512. terraingenpy-0.2.0.dev117/terraingen/python/src/boulders.cpp +0 -455
  513. terraingenpy-0.2.0.dev117/terraingen/python/src/crater_models.cpp +0 -355
  514. terraingenpy-0.2.0.dev117/terraingen/python/src/craters.cpp +0 -572
  515. terraingenpy-0.2.0.dev117/terraingen/python/src/distribution.cpp +0 -377
  516. terraingenpy-0.2.0.dev117/terraingen/python/src/layers.cpp +0 -513
  517. terraingenpy-0.2.0.dev117/terraingen/python/src/mesh.cpp +0 -265
  518. terraingenpy-0.2.0.dev117/terraingen/python/src/noise.cpp +0 -370
  519. terraingenpy-0.2.0.dev117/terraingen/python/src/objects.h +0 -123
  520. terraingenpy-0.2.0.dev117/terraingen/python/src/pipeline.cpp +0 -578
  521. terraingenpy-0.2.0.dev117/terraingen/python/src/raster.cpp +0 -289
  522. terraingenpy-0.2.0.dev117/terraingen/python/src/sources.cpp +0 -461
  523. terraingenpy-0.2.0.dev117/terraingen/python/src/util.cpp +0 -243
  524. terraingenpy-0.2.0.dev117/terraingen/python/terraingen/render.py +0 -237
  525. terraingenpy-0.2.0.dev117/terraingen/random/streams.h +0 -147
  526. terraingenpy-0.2.0.dev117/terraingen/raster/cell_loops.h +0 -132
  527. terraingenpy-0.2.0.dev117/terraingen/raster/geo_transform.h +0 -79
  528. terraingenpy-0.2.0.dev117/terraingen/raster/geotiff/geotiff.h +0 -195
  529. terraingenpy-0.2.0.dev117/terraingen/raster/geotiff/tiff_format.h +0 -157
  530. terraingenpy-0.2.0.dev117/terraingen/raster/grid.h +0 -83
  531. terraingenpy-0.2.0.dev117/terraingen/raster/raster.h +0 -164
  532. terraingenpy-0.2.0.dev117/terraingen/raster/resample.cpp +0 -235
  533. terraingenpy-0.2.0.dev117/terraingen/raster/resample.h +0 -169
  534. terraingenpy-0.2.0.dev117/terraingen/sources/field.h +0 -141
  535. terraingenpy-0.2.0.dev117/terraingen/sources/flat_source.cpp +0 -30
  536. terraingenpy-0.2.0.dev117/terraingen/sources/flat_source.h +0 -58
  537. terraingenpy-0.2.0.dev117/terraingen/sources/geotiff_source.cpp +0 -109
  538. terraingenpy-0.2.0.dev117/terraingen/sources/source_chain.h +0 -60
  539. terraingenpy-0.2.0.dev117/terraingen/sources/synthetic_terrain.cpp +0 -68
  540. terraingenpy-0.2.0.dev117/terraingen/sources/synthetic_terrain.h +0 -54
  541. terraingenpy-0.2.0.dev117/terraingen/util/cells.h +0 -205
  542. terraingenpy-0.2.0.dev117/terraingen/util/cube_faces.h +0 -73
  543. terraingenpy-0.2.0.dev117/terraingen/util/cube_sphere_cells.cpp +0 -348
  544. terraingenpy-0.2.0.dev117/terraingen/util/fft.h +0 -26
  545. terraingenpy-0.2.0.dev117/terraingen/util/geometry.h +0 -158
  546. terraingenpy-0.2.0.dev117/terraingen/util/radial_shape.h +0 -101
  547. terraingenpy-0.2.0.dev117/terraingen/util/surface.cpp +0 -332
  548. terraingenpy-0.2.0.dev117/terraingen/util/surface.h +0 -234
  549. terraingenpy-0.2.0.dev117/tests/benchmark/bench_craters.cpp +0 -63
  550. terraingenpy-0.2.0.dev117/tests/benchmark/bench_point_queries.cpp +0 -115
  551. terraingenpy-0.2.0.dev117/tests/benchmark/fixtures.h +0 -43
  552. terraingenpy-0.2.0.dev117/tests/python/conftest.py +0 -222
  553. terraingenpy-0.2.0.dev117/tests/python/test_albedo.py +0 -303
  554. terraingenpy-0.2.0.dev117/tests/python/test_boulders.py +0 -390
  555. terraingenpy-0.2.0.dev117/tests/python/test_crater_models.py +0 -291
  556. terraingenpy-0.2.0.dev117/tests/python/test_craters.py +0 -543
  557. terraingenpy-0.2.0.dev117/tests/python/test_distributions.py +0 -241
  558. terraingenpy-0.2.0.dev117/tests/python/test_examples_harness.py +0 -150
  559. terraingenpy-0.2.0.dev117/tests/python/test_layers.py +0 -649
  560. terraingenpy-0.2.0.dev117/tests/python/test_meshes.py +0 -205
  561. terraingenpy-0.2.0.dev117/tests/python/test_pipeline.py +0 -363
  562. terraingenpy-0.2.0.dev117/tests/python/test_raster.py +0 -251
  563. terraingenpy-0.2.0.dev117/tests/python/test_render.py +0 -146
  564. terraingenpy-0.2.0.dev117/tests/python/test_sources.py +0 -312
  565. terraingenpy-0.2.0.dev117/tests/python/test_util.py +0 -212
  566. terraingenpy-0.2.0.dev117/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -96
  567. terraingenpy-0.2.0.dev117/tests/unit/albedo/albedo_test.cpp +0 -429
  568. terraingenpy-0.2.0.dev117/tests/unit/albedo/blast_zones_test.cpp +0 -122
  569. terraingenpy-0.2.0.dev117/tests/unit/albedo/crater_albedo_test.cpp +0 -836
  570. terraingenpy-0.2.0.dev117/tests/unit/albedo/rock_albedo_test.cpp +0 -160
  571. terraingenpy-0.2.0.dev117/tests/unit/albedo/slope_albedo_test.cpp +0 -124
  572. terraingenpy-0.2.0.dev117/tests/unit/albedo/splotches_test.cpp +0 -393
  573. terraingenpy-0.2.0.dev117/tests/unit/app/gui/config_editor_test.cpp +0 -186
  574. terraingenpy-0.2.0.dev117/tests/unit/config/build_test.cpp +0 -1012
  575. terraingenpy-0.2.0.dev117/tests/unit/config/config_test.cpp +0 -117
  576. terraingenpy-0.2.0.dev117/tests/unit/config/generate_terrain_test.cpp +0 -964
  577. terraingenpy-0.2.0.dev117/tests/unit/config/json_io_test.cpp +0 -848
  578. terraingenpy-0.2.0.dev117/tests/unit/config/json_parse_errors_test.cpp +0 -165
  579. terraingenpy-0.2.0.dev117/tests/unit/config/schema_test.cpp +0 -612
  580. terraingenpy-0.2.0.dev117/tests/unit/config/write_outputs_test.cpp +0 -458
  581. terraingenpy-0.2.0.dev117/tests/unit/distribution/equilibrium_test.cpp +0 -20
  582. terraingenpy-0.2.0.dev117/tests/unit/distribution/exponential_chronology_test.cpp +0 -39
  583. terraingenpy-0.2.0.dev117/tests/unit/distribution/ivanov_test.cpp +0 -34
  584. terraingenpy-0.2.0.dev117/tests/unit/distribution/log_polynomial_test.cpp +0 -66
  585. terraingenpy-0.2.0.dev117/tests/unit/distribution/minimum_test.cpp +0 -69
  586. terraingenpy-0.2.0.dev117/tests/unit/distribution/neukum_test.cpp +0 -134
  587. terraingenpy-0.2.0.dev117/tests/unit/distribution/piecewise_power_law_test.cpp +0 -91
  588. terraingenpy-0.2.0.dev117/tests/unit/distribution/power_law_test.cpp +0 -59
  589. terraingenpy-0.2.0.dev117/tests/unit/distribution/production_surface_test.cpp +0 -25
  590. terraingenpy-0.2.0.dev117/tests/unit/distribution/size_frequency_test.cpp +0 -139
  591. terraingenpy-0.2.0.dev117/tests/unit/distribution/spliced_test.cpp +0 -98
  592. terraingenpy-0.2.0.dev117/tests/unit/distribution/tabulated_test.cpp +0 -134
  593. terraingenpy-0.2.0.dev117/tests/unit/distribution/viper_test.cpp +0 -12
  594. terraingenpy-0.2.0.dev117/tests/unit/layers/bedforms_test.cpp +0 -159
  595. terraingenpy-0.2.0.dev117/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -307
  596. terraingenpy-0.2.0.dev117/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -1354
  597. terraingenpy-0.2.0.dev117/tests/unit/layers/boulders/boulder_models_test.cpp +0 -201
  598. terraingenpy-0.2.0.dev117/tests/unit/layers/boulders/boulder_options_test.cpp +0 -100
  599. terraingenpy-0.2.0.dev117/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -254
  600. terraingenpy-0.2.0.dev117/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -61
  601. terraingenpy-0.2.0.dev117/tests/unit/layers/boulders/manual_boulder_test.cpp +0 -430
  602. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/ages/freshness_test.cpp +0 -166
  603. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/crater_layer_test.cpp +0 -310
  604. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -230
  605. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/generation/resolved_limit_test.cpp +0 -100
  606. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/profiles/complex_test.cpp +0 -101
  607. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/secondaries_test.cpp +0 -603
  608. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/shaping/apply_test.cpp +0 -646
  609. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -492
  610. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/shaping/datum_test.cpp +0 -96
  611. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -363
  612. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -86
  613. terraingenpy-0.2.0.dev117/tests/unit/layers/craters/sphere_test.cpp +0 -373
  614. terraingenpy-0.2.0.dev117/tests/unit/layers/dunes_test.cpp +0 -466
  615. terraingenpy-0.2.0.dev117/tests/unit/layers/exposure_test.cpp +0 -146
  616. terraingenpy-0.2.0.dev117/tests/unit/layers/noise_relief_test.cpp +0 -291
  617. terraingenpy-0.2.0.dev117/tests/unit/layers/pavement_test.cpp +0 -193
  618. terraingenpy-0.2.0.dev117/tests/unit/layers/roughness_estimate_test.cpp +0 -214
  619. terraingenpy-0.2.0.dev117/tests/unit/layers/roughness_test.cpp +0 -171
  620. terraingenpy-0.2.0.dev117/tests/unit/layers/sample_block_test.cpp +0 -127
  621. terraingenpy-0.2.0.dev117/tests/unit/layers/sand_fill_test.cpp +0 -123
  622. terraingenpy-0.2.0.dev117/tests/unit/layers/sand_shadow_test.cpp +0 -183
  623. terraingenpy-0.2.0.dev117/tests/unit/layers/spectral_continuation_test.cpp +0 -360
  624. terraingenpy-0.2.0.dev117/tests/unit/layers/sphere_layers_test.cpp +0 -216
  625. terraingenpy-0.2.0.dev117/tests/unit/layers/strata_test.cpp +0 -243
  626. terraingenpy-0.2.0.dev117/tests/unit/layers/transforms_test.cpp +0 -87
  627. terraingenpy-0.2.0.dev117/tests/unit/mesh/io/icq_test.cpp +0 -231
  628. terraingenpy-0.2.0.dev117/tests/unit/mesh/io/mesh_io_test.cpp +0 -203
  629. terraingenpy-0.2.0.dev117/tests/unit/noise/fractal_test.cpp +0 -199
  630. terraingenpy-0.2.0.dev117/tests/unit/noise/perlin_test.cpp +0 -184
  631. terraingenpy-0.2.0.dev117/tests/unit/pipeline/features_test.cpp +0 -229
  632. terraingenpy-0.2.0.dev117/tests/unit/pipeline/generator_test.cpp +0 -502
  633. terraingenpy-0.2.0.dev117/tests/unit/pipeline/materials_test.cpp +0 -161
  634. terraingenpy-0.2.0.dev117/tests/unit/pipeline/terrain_windows_test.cpp +0 -281
  635. terraingenpy-0.2.0.dev117/tests/unit/raster/cell_loops_test.cpp +0 -109
  636. terraingenpy-0.2.0.dev117/tests/unit/raster/geo_transform_test.cpp +0 -67
  637. terraingenpy-0.2.0.dev117/tests/unit/raster/raster_test.cpp +0 -86
  638. terraingenpy-0.2.0.dev117/tests/unit/raster/resample_test.cpp +0 -383
  639. terraingenpy-0.2.0.dev117/tests/unit/sources/field_test.cpp +0 -144
  640. terraingenpy-0.2.0.dev117/tests/unit/sources/flat_source_test.cpp +0 -63
  641. terraingenpy-0.2.0.dev117/tests/unit/sources/geotiff_source_test.cpp +0 -407
  642. terraingenpy-0.2.0.dev117/tests/unit/sources/source_chain_test.cpp +0 -204
  643. terraingenpy-0.2.0.dev117/tests/unit/sources/synthetic_terrain_test.cpp +0 -152
  644. terraingenpy-0.2.0.dev117/tests/unit/util/surface_test.cpp +0 -681
  645. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.clang-format +0 -0
  646. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.clang-tidy +0 -0
  647. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.cmake-format.yaml +0 -0
  648. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.dockerignore +0 -0
  649. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.gitattributes +0 -0
  650. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  651. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  652. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  653. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.github/pull_request_template.md +0 -0
  654. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.github/scripts/install-lavapipe-windows.sh +0 -0
  655. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.github/workflows/ci.yml +0 -0
  656. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.gitignore +0 -0
  657. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/.pre-commit-config.yaml +0 -0
  658. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/CITATION.cff +0 -0
  659. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/Dockerfile +0 -0
  660. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/LICENSE +0 -0
  661. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/README.md +0 -0
  662. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/README.md +0 -0
  663. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/moon_01_diff_4k.jpg +0 -0
  664. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/moon_01_disp_4k.png +0 -0
  665. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
  666. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/moon_01_rough_4k.exr +0 -0
  667. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/seaside_rock_ao_2k.png +0 -0
  668. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/seaside_rock_arm_2k.png +0 -0
  669. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/seaside_rock_diff_2k.png +0 -0
  670. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/seaside_rock_disp_2k.png +0 -0
  671. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/seaside_rock_nor_dx_2k.exr +0 -0
  672. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/seaside_rock_nor_gl_2k.exr +0 -0
  673. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/assets/textures/seaside_rock_rough_2k.exr +0 -0
  674. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/BuildInfo.cmake +0 -0
  675. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/CoverageBadge.cmake +0 -0
  676. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/EmbedFile.cmake +0 -0
  677. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/Kernel.cpp.in +0 -0
  678. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/TerrainGenPackaging.cmake +0 -0
  679. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/TerrainGenSlang.cmake +0 -0
  680. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/TerrainGenTesting.cmake +0 -0
  681. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/terraingenConfig.cmake.in +0 -0
  682. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/benchmark.cmake +0 -0
  683. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/ernie.cmake +0 -0
  684. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/googletest.cmake +0 -0
  685. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/mesh_formats.cmake +0 -0
  686. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/miniz.cmake +0 -0
  687. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/nanobind.cmake +0 -0
  688. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/nvrtc.cmake +0 -0
  689. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/slang.cmake +0 -0
  690. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/volk.cmake +0 -0
  691. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/cmake/third_party/vulkan_headers.cmake +0 -0
  692. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/.gitignore +0 -0
  693. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/Makefile +0 -0
  694. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/README.md +0 -0
  695. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/api/cpp.md +0 -0
  696. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/api/python.md +0 -0
  697. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/concepts/index.md +0 -0
  698. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/getting-started/command-line.md +0 -0
  699. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/getting-started/gui.md +0 -0
  700. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/getting-started/index.md +0 -0
  701. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/getting-started/installation.md +0 -0
  702. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/getting-started/quickstart.md +0 -0
  703. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/guides/index.md +0 -0
  704. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
  705. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg +0 -0
  706. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/index.md +0 -0
  707. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/overrides/partials/header.html +0 -0
  708. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/requirements.txt +0 -0
  709. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/scripts/generate_schema.py +0 -0
  710. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/docs/validation/index.md +0 -0
  711. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/README.md +0 -0
  712. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/ages/example_ages_fresh.json +0 -0
  713. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/ages/example_ages_freshness.json +0 -0
  714. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/ages/example_ages_steady_state.json +0 -0
  715. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/ages/example_ages_uniform.json +0 -0
  716. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
  717. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
  718. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
  719. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_moon_site.json +0 -0
  720. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_new_crater.json +0 -0
  721. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
  722. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_rgb.json +0 -0
  723. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
  724. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/albedo/example_albedo_synthetic.json +0 -0
  725. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_buried.json +0 -0
  726. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_ejecta.json +0 -0
  727. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_exposure.json +0 -0
  728. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_fragments.json +0 -0
  729. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_layer.json +0 -0
  730. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_manual.json +0 -0
  731. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_max_slope.json +0 -0
  732. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_models.json +0 -0
  733. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_patches.json +0 -0
  734. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_rock_abundance.json +0 -0
  735. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_rolling.json +0 -0
  736. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_scene.json +0 -0
  737. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_shapes.json +0 -0
  738. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_slope_map.json +0 -0
  739. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_sp8023.json +0 -0
  740. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
  741. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
  742. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_datum.json +0 -0
  743. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
  744. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_degradation_none.json +0 -0
  745. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_interior_replacement.json +0 -0
  746. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_irregular.json +0 -0
  747. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_manual.json +0 -0
  748. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_manual_depth.json +0 -0
  749. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_max_craters.json +0 -0
  750. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_profile_complex.json +0 -0
  751. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
  752. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
  753. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_secondaries.json +0 -0
  754. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_secondary_rays.json +0 -0
  755. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_simple.json +0 -0
  756. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_slopes.json +0 -0
  757. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
  758. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_spacing.json +0 -0
  759. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_texture.json +0 -0
  760. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/craters/example_craters_wall_marks.json +0 -0
  761. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
  762. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
  763. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -0
  764. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/distributions/example_distributions_power_law.json +0 -0
  765. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/distributions/example_distributions_tabulated.json +0 -0
  766. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
  767. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/distributions/example_distributions_viper.json +0 -0
  768. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/layers/example_layers_regions.json +0 -0
  769. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/layers/example_layers_roughness.json +0 -0
  770. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
  771. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/layers/example_layers_spectral_continuation.json +0 -0
  772. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
  773. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
  774. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_craters.json +0 -0
  775. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_dunes.json +0 -0
  776. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_exposure.json +0 -0
  777. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_pavement.json +0 -0
  778. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
  779. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_sand_shadows.json +0 -0
  780. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_strata.json +0 -0
  781. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mars_ventifacts.json +0 -0
  782. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_mercury_site.json +0 -0
  783. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
  784. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/planets/example_planets_moon_site.json +0 -0
  785. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_billow.json +0 -0
  786. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_cellular.json +0 -0
  787. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
  788. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_fbm.json +0 -0
  789. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_layered.json +0 -0
  790. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_ridged.json +0 -0
  791. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_roughness.json +0 -0
  792. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/config/terrain/example_terrain_voronoi.json +0 -0
  793. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/CMakeLists.txt +0 -0
  794. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -0
  795. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
  796. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/boulders/example_boulders_manual.cpp +0 -0
  797. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
  798. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/common/browser.cpp +0 -0
  799. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/common/browser.h +0 -0
  800. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/common/example.cpp +0 -0
  801. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/common/example.h +0 -0
  802. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/common/main.cpp +0 -0
  803. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/common/standalone_main.cpp +0 -0
  804. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/config/example_config_load.cpp +0 -0
  805. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
  806. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/craters/example_craters_manual.cpp +0 -0
  807. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
  808. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/craters/example_craters_simple.cpp +0 -0
  809. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
  810. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/__main__.py +0 -0
  811. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/_harness.py +0 -0
  812. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
  813. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/boulders/example_boulders_layer.py +0 -0
  814. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/boulders/example_boulders_manual.py +0 -0
  815. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/boulders/example_boulders_positioning.py +0 -0
  816. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/boulders/example_boulders_shapes.py +0 -0
  817. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/config/example_config_load.py +0 -0
  818. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/craters/example_craters_degradation.py +0 -0
  819. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/craters/example_craters_irregularity.py +0 -0
  820. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/craters/example_craters_manual.py +0 -0
  821. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/craters/example_craters_manual_depth.py +0 -0
  822. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
  823. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/craters/example_craters_simple.py +0 -0
  824. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/planets/example_planets_mars_exposure.py +0 -0
  825. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/sources/example_sources_chain.py +0 -0
  826. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/sources/example_sources_raster_detail.py +0 -0
  827. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
  828. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
  829. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
  830. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/mkdocs.yml +0 -0
  831. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/pyproject.toml +0 -0
  832. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/CMakeLists.txt +0 -0
  833. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/bands.cpp +0 -0
  834. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/bands.h +0 -0
  835. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/brightness_statistics.cpp +0 -0
  836. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/brightness_statistics.h +0 -0
  837. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/maturity.cpp +0 -0
  838. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/maturity.h +0 -0
  839. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/photometry.cpp +0 -0
  840. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/photometry.h +0 -0
  841. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/raster_albedo.cpp +0 -0
  842. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/rock_albedo.h +0 -0
  843. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/albedo/synthetic.cpp +0 -0
  844. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/CMakeLists.txt +0 -0
  845. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/cli.cpp +0 -0
  846. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/cli.h +0 -0
  847. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/gui/CMakeLists.txt +0 -0
  848. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/gui/gui_app.cpp +0 -0
  849. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/gui/run.cpp +0 -0
  850. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/gui/run.h +0 -0
  851. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/gui/run_none.cpp +0 -0
  852. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/gui/terrain_scene.cpp +0 -0
  853. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/gui/widgets.h +0 -0
  854. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/app/main.cpp +0 -0
  855. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/CMakeLists.txt +0 -0
  856. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/config.cpp +0 -0
  857. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/feature_lists.cpp +0 -0
  858. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/fields/boulders.h +0 -0
  859. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/fields/checks.h +0 -0
  860. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/fields/common.h +0 -0
  861. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/fields/craters.h +0 -0
  862. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/fields/json_io.h +0 -0
  863. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/fields/maps.h +0 -0
  864. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/fields/ranges.h +0 -0
  865. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/generate.cpp +0 -0
  866. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/generate.h +0 -0
  867. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/json.cpp +0 -0
  868. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/json.h +0 -0
  869. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/ranges.cpp +0 -0
  870. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/report.cpp +0 -0
  871. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/report.h +0 -0
  872. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/schema.cpp +0 -0
  873. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/config/validate.h +0 -0
  874. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/CMakeLists.txt +0 -0
  875. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/composition.cpp +0 -0
  876. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/exponential_chronology.h +0 -0
  877. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/golombek_rapp.cpp +0 -0
  878. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/ivanov.cpp +0 -0
  879. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/ivanov.h +0 -0
  880. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/log_polynomial.cpp +0 -0
  881. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/minimum.cpp +0 -0
  882. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/moore.cpp +0 -0
  883. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/neukum.cpp +0 -0
  884. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/neukum.h +0 -0
  885. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/piecewise_power_law.cpp +0 -0
  886. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/piecewise_uniform.cpp +0 -0
  887. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/production_surface.cpp +0 -0
  888. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/production_surface.h +0 -0
  889. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/size_frequency.cpp +0 -0
  890. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/summed.cpp +0 -0
  891. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/summed.h +0 -0
  892. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/synthterrain.cpp +0 -0
  893. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/viper.cpp +0 -0
  894. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/distribution/viper.h +0 -0
  895. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/CMakeLists.txt +0 -0
  896. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/backend.cpp +0 -0
  897. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/backend.h +0 -0
  898. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/cuda.cpp +0 -0
  899. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/cuda.h +0 -0
  900. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/device.h +0 -0
  901. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/kernel.slang +0 -0
  902. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/metal.cpp +0 -0
  903. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/metal.h +0 -0
  904. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/program.h +0 -0
  905. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/vulkan.cpp +0 -0
  906. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/gpu/vulkan.h +0 -0
  907. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/CMakeLists.txt +0 -0
  908. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/anchored_plane.cpp +0 -0
  909. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/bisection.h +0 -0
  910. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/boulders/boulder_abundance.cpp +0 -0
  911. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/boulders/boulder_abundance.h +0 -0
  912. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/boulders/boulder_clusters.cpp +0 -0
  913. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/boulders/ejecta_index.cpp +0 -0
  914. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/ages/age_model.cpp +0 -0
  915. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/ages/freshness.cpp +0 -0
  916. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/ages/freshness.h +0 -0
  917. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
  918. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/crater.cpp +0 -0
  919. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/crater_placer.cpp +0 -0
  920. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
  921. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
  922. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/degradation/diffusion.cpp +0 -0
  923. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
  924. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
  925. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/degradation/freshness.h +0 -0
  926. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/degradation/state.h +0 -0
  927. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
  928. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/generation/cell_cache.h +0 -0
  929. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/generation/resolved_limit.cpp +0 -0
  930. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/generation/resolved_limit.h +0 -0
  931. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
  932. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
  933. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
  934. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
  935. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/rays.cpp +0 -0
  936. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/secondary_model.cpp +0 -0
  937. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
  938. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
  939. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/shaping/explicit_state.h +0 -0
  940. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/shaping/prepared.cpp +0 -0
  941. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/craters/shaping/slope.cpp +0 -0
  942. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/evaluation_cache.h +0 -0
  943. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/fade.cpp +0 -0
  944. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/fade.h +0 -0
  945. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/kernel.h +0 -0
  946. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/kernels/crater_body_datums.slang +0 -0
  947. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/kernels/crater_datums.slang +0 -0
  948. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/kernels/noise_relief.h +0 -0
  949. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/kernels/noise_relief.slang +0 -0
  950. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/lattice.h +0 -0
  951. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/layer.cpp +0 -0
  952. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/masked.cpp +0 -0
  953. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/masked.h +0 -0
  954. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/noise_relief.cpp +0 -0
  955. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/noise_relief.h +0 -0
  956. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/roughness.cpp +0 -0
  957. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/roughness_estimate.cpp +0 -0
  958. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/sample_block.cpp +0 -0
  959. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/sand_fill.cpp +0 -0
  960. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/source_resolved.cpp +0 -0
  961. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/source_resolved.h +0 -0
  962. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/strata.cpp +0 -0
  963. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/layers/transforms.cpp +0 -0
  964. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/CMakeLists.txt +0 -0
  965. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/io/formats.h +0 -0
  966. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/io/mesh_io.cpp +0 -0
  967. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/io/stl.cpp +0 -0
  968. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/mesh.cpp +0 -0
  969. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/mesh.h +0 -0
  970. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/polyhedra.cpp +0 -0
  971. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/polyhedra.h +0 -0
  972. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/mesh/shape_model.cpp +0 -0
  973. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/CMakeLists.txt +0 -0
  974. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/hash.h +0 -0
  975. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/lattice.h +0 -0
  976. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/perlin.h +0 -0
  977. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/simplex.h +0 -0
  978. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/validate.cpp +0 -0
  979. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/validate.h +0 -0
  980. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/noise/value.h +0 -0
  981. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/pipeline/CMakeLists.txt +0 -0
  982. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/pipeline/body_mesh.cpp +0 -0
  983. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/pipeline/features.cpp +0 -0
  984. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/pipeline/generator.cpp +0 -0
  985. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/pipeline/mesh_build.cpp +0 -0
  986. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/pipeline/mesh_build.h +0 -0
  987. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/CMakeLists.txt +0 -0
  988. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/arrays.h +0 -0
  989. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/bindings.h +0 -0
  990. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/casters.h +0 -0
  991. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/common.h +0 -0
  992. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/gpu.cpp +0 -0
  993. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/materials.cpp +0 -0
  994. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/module.cpp +0 -0
  995. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/options.h +0 -0
  996. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/random.cpp +0 -0
  997. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/report.cpp +0 -0
  998. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/tables.h +0 -0
  999. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/src/trampolines.h +0 -0
  1000. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/python/terraingen/__init__.py +0 -0
  1001. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/CMakeLists.txt +0 -0
  1002. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/philox.h +0 -0
  1003. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/samplers.cpp +0 -0
  1004. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/samplers.h +0 -0
  1005. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/stream.cpp +0 -0
  1006. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/stream.h +0 -0
  1007. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/value_distribution.cpp +0 -0
  1008. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/random/value_distribution.h +0 -0
  1009. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/CMakeLists.txt +0 -0
  1010. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/cell_loops.cpp +0 -0
  1011. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/gaussian_blur.cpp +0 -0
  1012. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/gaussian_blur.h +0 -0
  1013. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/geotiff/geotiff.cpp +0 -0
  1014. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/geotiff/geotiff_read.cpp +0 -0
  1015. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
  1016. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
  1017. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
  1018. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
  1019. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/grid.cpp +0 -0
  1020. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/raster_stats.h +0 -0
  1021. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/variogram.cpp +0 -0
  1022. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/raster/variogram.h +0 -0
  1023. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/CMakeLists.txt +0 -0
  1024. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/diamond_square.cpp +0 -0
  1025. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/diamond_square.h +0 -0
  1026. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/field.cpp +0 -0
  1027. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/geotiff_source.h +0 -0
  1028. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/raster_source.cpp +0 -0
  1029. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/raster_source.h +0 -0
  1030. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/source.h +0 -0
  1031. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/source_chain.cpp +0 -0
  1032. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/synthetic_source.cpp +0 -0
  1033. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/synthetic_source.h +0 -0
  1034. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/upsampling.cpp +0 -0
  1035. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/sources/upsampling.h +0 -0
  1036. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/terraingen.h +0 -0
  1037. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/CMakeLists.txt +0 -0
  1038. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/arithmetic.h +0 -0
  1039. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/bits.h +0 -0
  1040. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/build_info.cpp.in +0 -0
  1041. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/build_info.h +0 -0
  1042. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/checks.cpp +0 -0
  1043. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/checks.h +0 -0
  1044. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/fft.cpp +0 -0
  1045. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/files.cpp +0 -0
  1046. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/files.h +0 -0
  1047. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/log.cpp +0 -0
  1048. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/log.h +0 -0
  1049. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/lru_cache.h +0 -0
  1050. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/overloaded.h +0 -0
  1051. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/parallel.cpp +0 -0
  1052. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/parallel.h +0 -0
  1053. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/planar_cells.cpp +0 -0
  1054. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/portable.h +0 -0
  1055. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/radial_shape.cpp +0 -0
  1056. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/span.h +0 -0
  1057. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/special_functions.cpp +0 -0
  1058. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/special_functions.h +0 -0
  1059. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/text.cpp +0 -0
  1060. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/text.h +0 -0
  1061. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/version.cpp +0 -0
  1062. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/terraingen/util/version.h.in +0 -0
  1063. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/CMakeLists.txt +0 -0
  1064. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/benchmark/CMakeLists.txt +0 -0
  1065. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/benchmark/bench_boulders.cpp +0 -0
  1066. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/benchmark/bench_grids.cpp +0 -0
  1067. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/benchmark/bench_python_subclasses.py +0 -0
  1068. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/golden/CMakeLists.txt +0 -0
  1069. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/golden/noise/kernels_test.cpp +0 -0
  1070. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/integration/CMakeLists.txt +0 -0
  1071. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/integration/build_info_stable.cmake +0 -0
  1072. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/integration/examples/CMakeLists.txt +0 -0
  1073. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/integration/package/CMakeLists.txt +0 -0
  1074. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/integration/package/main.cpp +0 -0
  1075. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/integration/package/test_debian_packages.cmake +0 -0
  1076. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/python/CMakeLists.txt +0 -0
  1077. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/python/test_config.py +0 -0
  1078. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/python/test_gpu.py +0 -0
  1079. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/python/test_noise.py +0 -0
  1080. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/python/test_random.py +0 -0
  1081. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/python/test_report.py +0 -0
  1082. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/python/test_stubs.py +0 -0
  1083. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/statistical/CMakeLists.txt +0 -0
  1084. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/statistical/distribution/crater_references_test.cpp +0 -0
  1085. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
  1086. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
  1087. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/statistical/layers/craters/population_test.cpp +0 -0
  1088. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/statistical/layers/roughness_test.cpp +0 -0
  1089. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/statistical/random/random_test.cpp +0 -0
  1090. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/support/log_capture.h +0 -0
  1091. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/support/lunar_craters.h +0 -0
  1092. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/support/raster_equality.h +0 -0
  1093. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/support/statistics.h +0 -0
  1094. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/support/temp_path.h +0 -0
  1095. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/CMakeLists.txt +0 -0
  1096. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/albedo/CMakeLists.txt +0 -0
  1097. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/albedo/bands_test.cpp +0 -0
  1098. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/albedo/photometry_test.cpp +0 -0
  1099. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/app/CMakeLists.txt +0 -0
  1100. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/app/cli_test.cpp +0 -0
  1101. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/app/gui/CMakeLists.txt +0 -0
  1102. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/app/gui/gui_app_test.cpp +0 -0
  1103. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
  1104. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/CMakeLists.txt +0 -0
  1105. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/angles_test.cpp +0 -0
  1106. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/checks_test.cpp +0 -0
  1107. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/configs.h +0 -0
  1108. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/feature_lists_test.cpp +0 -0
  1109. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/json_read_test.cpp +0 -0
  1110. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/ranges_test.cpp +0 -0
  1111. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/report_test.cpp +0 -0
  1112. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/validate_config_test.cpp +0 -0
  1113. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/config/validate_sources_test.cpp +0 -0
  1114. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/CMakeLists.txt +0 -0
  1115. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/composition_test.cpp +0 -0
  1116. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
  1117. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/moore_test.cpp +0 -0
  1118. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/piecewise_uniform_test.cpp +0 -0
  1119. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/sp8023_test.cpp +0 -0
  1120. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/summed_test.cpp +0 -0
  1121. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/distribution/synthterrain_test.cpp +0 -0
  1122. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/examples/CMakeLists.txt +0 -0
  1123. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/examples/example_browser_test.cpp +0 -0
  1124. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/examples/example_harness_test.cpp +0 -0
  1125. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/gpu/CMakeLists.txt +0 -0
  1126. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/gpu/backend_test.cpp +0 -0
  1127. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
  1128. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
  1129. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/gpu/noise_test.cpp +0 -0
  1130. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/gpu/vulkan_test.cpp +0 -0
  1131. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/CMakeLists.txt +0 -0
  1132. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/anchored_plane_test.cpp +0 -0
  1133. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/bisection_test.cpp +0 -0
  1134. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
  1135. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
  1136. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/crater_test.cpp +0 -0
  1137. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
  1138. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
  1139. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
  1140. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/generation/population_test.cpp +0 -0
  1141. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
  1142. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
  1143. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
  1144. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
  1145. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/shaping/explicit_state_test.cpp +0 -0
  1146. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/craters/shaping/slope_test.cpp +0 -0
  1147. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/density_map_test.cpp +0 -0
  1148. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
  1149. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/fade_test.cpp +0 -0
  1150. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/ground_test.cpp +0 -0
  1151. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/lattice_test.cpp +0 -0
  1152. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/layer_test.cpp +0 -0
  1153. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/masked_test.cpp +0 -0
  1154. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/layers/source_resolved_test.cpp +0 -0
  1155. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/mesh/CMakeLists.txt +0 -0
  1156. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/mesh/mesh_test.cpp +0 -0
  1157. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/mesh/polyhedra_test.cpp +0 -0
  1158. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/mesh/shape_model_test.cpp +0 -0
  1159. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/mesh/support.h +0 -0
  1160. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/CMakeLists.txt +0 -0
  1161. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/hash_test.cpp +0 -0
  1162. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/noise3_test.cpp +0 -0
  1163. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/noise_layers_test.cpp +0 -0
  1164. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/simplex_test.cpp +0 -0
  1165. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/validate_test.cpp +0 -0
  1166. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/value_test.cpp +0 -0
  1167. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/noise/worley_test.cpp +0 -0
  1168. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/pipeline/CMakeLists.txt +0 -0
  1169. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/pipeline/mesh_build_test.cpp +0 -0
  1170. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/pipeline/terrains.h +0 -0
  1171. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/random/CMakeLists.txt +0 -0
  1172. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/random/philox_test.cpp +0 -0
  1173. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/random/samplers_test.cpp +0 -0
  1174. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/random/stream_test.cpp +0 -0
  1175. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/random/value_distribution_test.cpp +0 -0
  1176. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/CMakeLists.txt +0 -0
  1177. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
  1178. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/gdal_fixtures.h +0 -0
  1179. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
  1180. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/geotiff_fixtures.inc +0 -0
  1181. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/geotiff_test.cpp +0 -0
  1182. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/grid_test.cpp +0 -0
  1183. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/raster_stats_test.cpp +0 -0
  1184. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/raster/tiff_format_test.cpp +0 -0
  1185. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/sources/CMakeLists.txt +0 -0
  1186. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/sources/diamond_square_test.cpp +0 -0
  1187. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/sources/raster_source_test.cpp +0 -0
  1188. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/sources/synthetic_source_test.cpp +0 -0
  1189. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/sources/upsampling_test.cpp +0 -0
  1190. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/CMakeLists.txt +0 -0
  1191. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/cells_test.cpp +0 -0
  1192. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/checks_test.cpp +0 -0
  1193. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/fft_test.cpp +0 -0
  1194. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/geometry_test.cpp +0 -0
  1195. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/log_test.cpp +0 -0
  1196. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/lru_cache_test.cpp +0 -0
  1197. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/overloaded_test.cpp +0 -0
  1198. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/parallel_test.cpp +0 -0
  1199. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/radial_shape_test.cpp +0 -0
  1200. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/span_test.cpp +0 -0
  1201. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/special_functions_test.cpp +0 -0
  1202. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/text_test.cpp +0 -0
  1203. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/tests/unit/util/version_test.cpp +0 -0
  1204. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/README.md +0 -0
  1205. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/cgltf/LICENSE +0 -0
  1206. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/cgltf/cgltf.h +0 -0
  1207. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/cgltf/cgltf_write.h +0 -0
  1208. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/miniz/LICENSE +0 -0
  1209. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/miniz/miniz.c +0 -0
  1210. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/miniz/miniz.h +0 -0
  1211. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/nlohmann/LICENSE.MIT +0 -0
  1212. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/nlohmann/json.hpp +0 -0
  1213. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/tinyobjloader/LICENSE +0 -0
  1214. {terraingenpy-0.2.0.dev117 → terraingenpy-0.2.0.dev119}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
@@ -0,0 +1,236 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.2.0] - 2026-10-23
11
+
12
+ Sources replace the base: DEMs are upsampled rather than resampled, synthetic sources generate heights from noise, and layers leave out what the source already resolves. Outputs set their own pixel size and extent, `GenerateFromConfig` returns everything it computes, and the core types are renamed. Configurations and code written for 0.1.0 need the changes under [Migrating from 0.1.0](#migrating-from-010).
13
+
14
+ ### Added
15
+
16
+ - Sources in configurations (`source`) of type `raster`, `chain` or `synthetic`; without one the terrain starts from a flat synthetic source at 0 m.
17
+ - `SyntheticSource` (source `synthetic`): heights from a noise stack plus `elevation_m` over an unbounded plane or the whole body, evaluated at every point, or sampled at posts `pixel_size_m` apart and upsampled like a DEM; an empty stack is flat.
18
+ - `RasterSource`, heights from a raster in memory, shared rather than copied and upsampled as a GeoTIFF source is; `GeoTiffSource` is a `RasterSource` of its band.
19
+ - Upsampling on sources (`Upsampler`, config `upsampling`): how a source's posts become heights between them and at any finer sample spacing, deterministically, so points and grids at one spacing agree; kernels `nearest`, `bilinear`, `cubic` (the default), `catmull_rom`, `lanczos3` and `cubic_bspline`.
20
+ - Diamond-square upsampling (`DiamondSquareUpsampler`, `"upsampling": {"type": "diamond_square"}`): random midpoint displacement of a source's posts to finer spacings, as PANGU expands DEMs (Martin et al. 2014), keeping every coarser node, with bilinear or Catmull-Rom (`interp`) refinement and the scale and fractal dimension estimated from the posts when not given.
21
+ - `RegisterUpsampler` (Python `register_upsampler`) names upsampler types of your own, C++ or Python subclasses of `Upsampler`, for configurations to use with their settings.
22
+ - Windowed GeoTIFF reads that decode only the strips or tiles a window meets, and `crop` (`min_x`, `min_y`, `max_x`, `max_y` in CRS units) on raster sources to read only the window needed while giving the same heights there as the whole file.
23
+ - `effective_pixel_size_m` on raster sources (`effectivePixelSize`), the cell size a DEM upsampled or smoothed before it was saved truly resolves.
24
+ - `Source::ResolutionAt`, the cell size of the data behind each height, and `UnresolvedCraterLimit`, a completeness limit that leaves the craters a DEM already resolves to it; `MinimumField` combines it with a catalog's limit.
25
+ - `source_resolves_px` on craters, secondaries, boulders, noise, dunes and bedforms: features at least that many source cells across, by diameter, wavelength or dune width, are already in the source, so only smaller ones are added at each point, each raster of a chain giving its own limit; ignored on synthetic sources, `null` adds them all. In C++ `sourceResolvesPixels` on the layer options, applied when the layer is given its `source`, with `SourceResolvedLimit` and `LayerResolvedLimit` (Python `source_resolved_limit`).
26
+ - Spectral continuation layer (`spectral_continuation`, `SpectralContinuationLayer`): detail finer than a DEM that continues its fitted power-law spectrum to shorter wavelengths as sparse Gabor noise, tapered in at the DEM's Nyquist wavelength so resolved scales gain nothing, with grids and points in agreement.
27
+ - Roughness and noise layers that estimate their settings from the source with `estimate_from_base`: the Hurst exponent and RMS height difference of its variogram, extrapolated to the roughness baseline or matched at each noise layer's wavelength; explicit values override the estimates. The estimators are public: `EstimateSourceRoughness`, `EstimateBaseRoughness`, `EstimatePowerLawSpectrum`, `RadialPowerSpectrum`, `EstimateMidpointRoughness` and `raster/variogram.h` (Python `estimate_source_roughness` and the rest).
28
+ - Lanczos (three lobes), Catmull-Rom and cubic B-spline kernels for `Resample`, `SampleRaster` and `ResampleMethod`.
29
+ - Output areas: `pixel_size_m` and `extent_m` (`extent_deg` on a body) as `{"center": [x, y], "size": [w, h]}` or `{"min": [x, y], "max": [x, y]}`, defaulting to a raster or chain source's extent and cell size; the grid starts at the extent's min corner, is snapped outward to whole cells and sampled at cell centers (`OutputAreaSpec`, `ExtentSpec`, `config::SnappedGrid`).
30
+ - Optional output paths: without a `path` the result is returned and nothing is written. `GenerateFromConfig` returns everything the outputs ask for, each computed once: `GeneratedGrid` holds the grid, heights, albedo, materials, photometry, placed craters and boulders and terrain mesh, `GeneratedOutputs` the body mesh or ICQ model, the report, `Grid()` and `Find()`; Python `GeneratedGrid` values are views without a copy.
31
+ - `terrain_mesh` outputs take `cutouts` (`{"min": [x, y], "max": [x, y]}` boxes), a `skirt_m` and a frame `site_deg` as [lon, lat].
32
+ - Terrain reports: output type `report` (`ReportOutput`) with an optional `path`, returned as `GeneratedOutputs::report` and written as JSON by `WriteOutputs`; per grid (`GridReport`) height and slope statistics, craters per power-of-2 diameter bin against the first crater layer's density and boulder counts and cover, with per-layer timings, backend, threads, layer seeds and version (`ReportGrid`, `ReportToJson`, `TerrainReport`, `LayerTimer`; Python `report_grid`, `report_to_json`, `TerrainReport.to_dict`).
33
+ - `GetMeshSize` and `FillMesh` (Python `get_mesh_size`, `fill_mesh`) size and write a height mesh into caller buffers laid out as Chrono's ChVector3d and ChVector3i arrays or NumPy (N, 3) float64 and (M, 3) int32 arrays, with no copy; `FillHeights` (Python `fill_heights`) evaluates into a caller buffer; `TriangleMesh.positions` and `TriangleMesh.triangles` are NumPy views without a copy.
34
+ - Piecewise uniform size-frequency distributions (`piecewise_uniform`): counts per diameter band, given absolutely or as shares of a total.
35
+ - Piecewise value distributions, uniform within bins drawn by weight, and `freshness` crater ages that draw each crater's freshness from a value distribution.
36
+ - Radial wall marks on craters, ridges and grooves down the wall that are strongest where it is steepest.
37
+ - Craters on slopes: floors offset downslope and rims and ejecta lowered upslope (Plescia et al. 2019), and faster wear toward a critical gradient (Roering et al. 1999).
38
+ - Manual craters with an explicit rim-to-floor depth and rim height in place of what the degradation model and age give; diffusion profiles solve for the age that reaches the depth.
39
+ - Thomas cluster process for boulder clusters, with Poisson-scattered centers whose clusters add where they overlap.
40
+ - Boulders limited to a maximum slope, optionally rolling down steeper ground to gather at its foot.
41
+ - Manual boulders that fix any of their height, burial, yaw, lean, tilt, rest, wear and shape seed; unset fields are drawn as for generated boulders, and fixed ones are neither re-settled nor broken.
42
+ - Manual-only layers: boulder layers with `generate_random` off place only their `manual` boulders, and `CraterLayer::Manual` and `BoulderLayer::Manual` (Python `CraterLayer.manual`, `BoulderLayer.manual`) make layers of only the given craters or boulders.
43
+ - Density maps from GeoTIFFs or constants: a scale, a count in a diameter range, or an areal fraction such as rock abundance, which set crater and boulder densities point by point.
44
+ - Size slope maps that bend boulder sizes into a local power law, from an exponent or a mean diameter map.
45
+ - Crater and boulder catalogs with a completeness limit, above which they stand in for generated features.
46
+ - Rock albedo (`rocks`): boulders brighter than the regolith (Holt 1981; Marshal et al. 2023), and a speckle of the share of each sample covered by boulders too small to resolve.
47
+ - Slope albedo (`slopes`): steep ground kept immature by mass wasting, its optical maturity rising with slope beyond 20 degrees (Ikeda et al. 2022; Lucey et al. 2014).
48
+ - Crater shaping and datum fitting on the GPU on spheres, ellipsoids and shape models, not only on planes.
49
+ - `fade_px` and `fade_shape` on crater `apply` and boulder layers: the resolution fade as its start and end output samples and its curve.
50
+ - Configurations are checked against every field's documented range, and errors name the exact field, such as `layers[2].reach`.
51
+ - Configuration reference in the documentation, generated from the schema at build time, and machine-readable value ranges in the schema.
52
+ - Python options classes document every field with its description and unit, and gain `validate()` and a readable `repr`.
53
+
54
+ ### Changed
55
+
56
+ - Breaking: the configuration's `base` is now `source`, and the region layer is now `masked`; old keys and types are rejected.
57
+ - Breaking: raster sources upsample instead of resampling: a raster source's grid is always its file's, and evaluating it over a finer grid gives finer cells; `RasterSourceOptions` and `GeoTiffSourceOptions` take an `upsampler` and an `effectivePixelSize`.
58
+ - Breaking: outputs give their area as `pixel_size_m` and `extent_m` in place of `region` (`width`, `height`, `pixel_size`, `centre_x`, `centre_y`) and of `spacing` on crater lists, boulder lists and boulder models; both are required without a raster or chain source.
59
+ - Breaking: on a raster or chain source, craters, secondaries, dunes and bedforms leave out by default what is at least 4 source cells across (`source_resolves_px`); set it to `null` for the 0.1.0 output.
60
+ - Breaking: every angle key in configurations and the Python options classes is in degrees and ends in `_deg`, azimuths counter-clockwise from +x (local east), and the rest of the Python API follows with `_deg` names and arguments; the C++ library keeps radians.
61
+ - Breaking: crater and boulder size keys carry their units (`_m`, `_px`), in configurations and the Python options classes alike, and crater layers' `generate` is now `generate_random`; the old keys are rejected.
62
+ - Breaking: core types and functions are renamed with no aliases, `Terrain` to `TerrainGenerator`, `GenerateTerrain` to `GenerateFromConfig`, `TerrainConfig` to `TerrainGenConfig`, `HeightMesh` to `BuildMesh`, `RegionLayer` to `MaskedLayer` and the rest in the table below, and Python names follow C++ names one to one.
63
+ - Breaking: sources take the sample spacing: `Source::Fill(heights, spacing)` and `Source::HeightAt(x, y, spacing)`, and Python `Source` subclasses define `height_at(x, y, spacing)` and `fill(heights, spacing)`; a source without bounds gives a grid without cells (`BoundedGrid`), and `Evaluate(generator)` needs a grid for it.
64
+ - The library, Python bindings, tests and examples are C++17 (0.1.0 needed C++20); public headers take `Span` in place of `std::span`.
65
+ - Defaults give a plausible lunar terrain at 1 m per pixel in which every height layer shows: craters from a production surface capped below the Trask equilibrium with steady-state ages, diffusion and irregular outlines, Martin, Parkes and Dunstan profiles, nominal NASA SP-8023 intercrater boulders (0.4% cover by rocks of 1 m and more), noise relief scaled to its wavelength, and visible roughness, bedforms and dunes.
66
+ - A boulder `coverage`, `qa`, `qb` or `ejecta.coverage` that no Golombek-Rapp sizes use is an error that names `"sizes": {"type": "golombek_rapp"}`.
67
+ - Boulder lists and models hold every boulder of the layer's diameter range; only the heightmap leaves out boulders too small to resolve.
68
+ - Boulder ejecta come from every crater layer before the boulder layer, not only the last one.
69
+ - Boulder models settle onto a stable face by default instead of balancing on an edge or corner.
70
+ - Density maps that count every feature take out the secondaries and blocks thrown from a layer's craters, and boulder patches and bedrock keep a map's mean, so nothing is counted twice.
71
+ - The `matched` diffusivity wears each crater to Fassett et al.'s visibility cutoff at the end of its equilibrium lifetime, for the layer's own profile.
72
+ - Crater shaping has one implementation, the kernel, on every surface; craters on bodies and custom profiles may differ from 0.1.0 in the last digits.
73
+ - Random streams and hashes are unified, so boulder, albedo, dune, bedform and pavement outputs for a given seed differ from 0.1.0; their statistics are unchanged.
74
+ - Every evaluation defaults to all threads, including `HeightAt` and `HeightsAt`.
75
+ - The `materials` module is folded into `pipeline` (material maps, `terraingen/pipeline/materials.h`) and `albedo` (Hapke photometry, `terraingen/albedo/photometry.h`), and `NoiseLayersAt` moves to `terraingen/sources/synthetic_terrain.h`.
76
+ - Python: `ExposureField.exposure` takes `(x, y, spacing=0.0, generator=None, layers=0)` like the other ground queries, unbounded options read as `None` instead of infinity, `write_outputs` returns paths and a subclass missing a required method raises `TypeError`.
77
+ - Written configurations leave out lists that are empty by default.
78
+ - Faster craters and boulders: ground reads for crater slopes and datums and beneath boulders are batched and spatially ordered, outputs over one area share the boulders placed for the first, boulder models are placed in parallel and ejecta craters found through a spatial index; the hero demo went from 433 s to about 10 s.
79
+ - Logs: generation logs each grid as it is evaluated with the time of every layer, the albedo and the materials and ends with each step's total and share; crater and boulder summaries log at debug level, boulders under boulders rather than craters, and `terraingen` ends with one line counting the files written.
80
+
81
+ ### Removed
82
+
83
+ - Tile schemes, tiles and the tile cache (`TileScheme`, `TileKey`, `EvaluateTile`, `EvaluateTiles`, `TileCache`, in C++ and Python): level of detail belongs to the renderer, and any grid evaluated alone already equals the same cells of a larger one; the point query examples move to a `queries` category.
84
+ - Resampling and low-passing raster sources: `pixelSize`, `resampling` and `lowPass` on `GeoTiffSourceOptions` and the config keys `pixel_size`, `resampling` and `low_pass` on raster sources; upsampling over a finer grid replaces them.
85
+ - `DetailLayer` and the `dem_detail` layer, which only restored the detail a low-passed source removed.
86
+ - `GridRegionSpec`, `config::RegionGrid` and `config::FeatureOutput`; an output's area is an `OutputAreaSpec`.
87
+ - Python `crater_blend_weight` (use `CraterBlend.weight`), `CraterAgeModel.lifetime_gyr` (use `lifetime_at`) and the flat selection aliases on crater irregularity, crater albedo and secondary options (use `selection`).
88
+
89
+ ### Fixed
90
+
91
+ - Freshness degradation never makes a crater deeper than fresh: basins shallower than the cutoff keep their fresh shape.
92
+ - Small craters inside larger ones on sloping ground no longer stand as raised mounds: datums are fitted to the slope-shaped relief that is applied.
93
+ - Secondary craters run on the GPU backend the terrain asks for instead of always on the CPU.
94
+ - A crater layer after a boulder layer no longer refits crater datums for every batch of ground reads.
95
+ - Tilted boulders are no longer cut off at grid edges and in point queries.
96
+ - Zero-area output areas and crater sizes below the models' range are rejected with a clear error instead of failing during generation.
97
+ - The library builds without warnings under Clang and MSVC.
98
+
99
+ ### Migrating from 0.1.0
100
+
101
+ Old keys and names are rejected rather than aliased. Angle keys are in degrees; sizes in meters unless they end in `_px`.
102
+
103
+ **Configuration, top level and sources**
104
+
105
+ | 0.1.0 | 0.2.0 |
106
+ | --- | --- |
107
+ | `base` | `source` (types `raster`, `chain`, `synthetic`) |
108
+ | `base.pixel_size`, `base.resampling` | `source.upsampling`; set the output's `pixel_size_m` for finer cells |
109
+ | `base.low_pass` | removed; `effective_pixel_size_m` for a DEM smoothed before it was saved |
110
+ | layer `dem_detail` | removed; use `source.upsampling` or a `spectral_continuation` layer |
111
+ | `body.metres_per_unit` (`shape_model`) | `body.meters_per_unit` |
112
+
113
+ **Configuration, outputs**
114
+
115
+ | 0.1.0 | 0.2.0 |
116
+ | --- | --- |
117
+ | `region.pixel_size` | `pixel_size_m` |
118
+ | `region.width`, `height`, `centre_x`, `centre_y` | `extent_m: {"center": [x, y], "size": [width * pixel_size, height * pixel_size]}` (`extent_deg` on a body) |
119
+ | `spacing` on `crater_list`, `boulder_list`, `boulder_models` | `pixel_size_m` |
120
+ | `path` required | `path` optional |
121
+ | `crease_angle` (`boulder_models`) | `crease_angle_deg` |
122
+
123
+ **Configuration, layers**
124
+
125
+ | 0.1.0 | 0.2.0 |
126
+ | --- | --- |
127
+ | layer `region` | layer `masked` |
128
+ | craters `generate` | `generate_random` |
129
+ | craters `min_diameter`, `max_diameter` | `min_diameter_m`, `max_diameter_m` |
130
+ | craters `apply.fade` {`start_samples`, `end_samples`, `shape`} | `apply.fade_px` [start, end], `apply.fade_shape` |
131
+ | crater `irregularity.heading`, `heading_spread` | `heading_deg`, `heading_spread_deg` |
132
+ | craters `apply.datum` `"centre_height"` | `"center_height"` |
133
+ | secondaries `min_diameter`, `max_diameter`, `min_primary_diameter`, `max_primary_diameter` | the same with `_m` |
134
+ | secondaries `width_degrees`, `min_half_angle_degrees` | `width_deg`, `min_half_angle_deg` |
135
+ | boulders `min_diameter`, `max_diameter` | `min_diameter_m`, `max_diameter_m` |
136
+ | boulders `fade` {`start_samples`, `end_samples`, `shape`} | `fade_px` [start, end], `fade_shape` |
137
+ | boulders `exposure_spacing` | `ground_spacing_m` |
138
+ | boulders `max_lean`, `max_tilt` | `max_lean_deg`, `max_tilt_deg` |
139
+ | boulders `patches.size`, `clusters.spacing`, `clusters.radius` | `patches.size_m`, `clusters.spacing_m`, `clusters.radius_m` |
140
+ | boulders `ejecta.min_crater_diameter`, `ejecta.regolith_thickness` | `ejecta.min_crater_diameter_m`, `ejecta.regolith_thickness_m` |
141
+ | boulders `fragmentation.min_diameter`, `relief_range.min_diameter`, `relief_range.max_diameter` | the same with `_m` |
142
+ | boulders `models.min_diameter`, `models.max_diameter`, `models.min_samples`, `models.max_samples` | `models.min_diameter_m`, `models.max_diameter_m`, `models.min_px`, `models.max_px` |
143
+ | manual boulders `yaw`, `lean`, `tilt`, `tilt_azimuth` | `yaw_deg`, `lean_deg`, `tilt_deg`, `tilt_azimuth_deg` |
144
+ | ventifacts `wind_azimuth`, `second_wind_azimuth`, `min_angle`, `max_angle` | the same with `_deg` |
145
+ | dunes `wind_azimuth`, `azimuth_spread`, `slip_face_angle`, `stoss_slope`, `flank_slope` | the same with `_deg` |
146
+ | bedforms `wind_azimuth`, `azimuth_spread` | `wind_azimuth_deg`, `azimuth_spread_deg` |
147
+ | strata `dip`, `dip_azimuth` | `dip_deg`, `dip_azimuth_deg` |
148
+ | pavement `max_tilt` | `max_tilt_deg` |
149
+ | sand shadow `wind_azimuth`, `flank_angle` | `wind_azimuth_deg`, `flank_angle_deg` |
150
+ | albedo `hue`, `hue_noise`, `heading` | `hue_deg`, `hue_noise_deg`, `heading_deg` |
151
+ | albedo `*_degrees` (`width_degrees`, `streak_width_degrees`, `jet_angle_degrees`, `steep_slope_degrees` and the rest) | `*_deg` |
152
+ | materials `roughness` | `roughness_deg` |
153
+
154
+ **C++ API**
155
+
156
+ | 0.1.0 | 0.2.0 |
157
+ | --- | --- |
158
+ | `Terrain` (`pipeline/terrain.h`) | `TerrainGenerator` (`pipeline/generator.h`) |
159
+ | `EvaluateAt`, `EvaluatePoints` | `HeightAt`, `HeightsAt` |
160
+ | `ValidateTerrain`, `BuildTerrain` | `ValidateGenerator`, `BuildGenerator` |
161
+ | `GenerateTerrain`, `GeneratedTerrain` (`.terrain`) | `GenerateFromConfig`, `GeneratedOutputs` (`.generator`) |
162
+ | `TerrainConfig` | `TerrainGenConfig` |
163
+ | `ConfigSummary::base` | `ConfigSummary::source` |
164
+ | `HeightMesh`, `HeightMeshOptions` (`pipeline/height_mesh.h`) | `BuildMesh`, `BuildMeshOptions` (`pipeline/mesh_build.h`) |
165
+ | `RegionLayer` (`layers/region.h`), `RegionShape::centre` | `MaskedLayer` (`layers/masked.h`), `RegionShape::center` |
166
+ | `Source::Fill(heights)`, `Source::HeightAt(x, y)` | `Source::Fill(heights, spacing)`, `Source::HeightAt(x, y, spacing)` |
167
+ | `GeoTiffSourceOptions::pixelSize`, `resampling`, `lowPass` | `upsampler`, `effectivePixelSize`; evaluate over a finer grid |
168
+ | `CraterLayerOptions::generate` | `CraterLayerOptions::generateRandom` |
169
+ | `BoulderLayerOptions::exposureSpacing` | `BoulderLayerOptions::groundSpacing` |
170
+ | `DetailLayer`, `TileScheme`, `TileKey`, `TileCache`, `EvaluateTile`, `EvaluateTiles` | removed |
171
+ | `GridRegionSpec`, `config::RegionGrid`, `config::FeatureOutput` | `OutputAreaSpec`, `ExtentSpec`, `config::SnappedGrid` |
172
+ | `terraingen/materials/` | `terraingen/pipeline/materials.h`, `terraingen/albedo/photometry.h` |
173
+ | `NoiseLayersAt` in `layers/noise_relief.h` | `sources/synthetic_terrain.h` |
174
+ | `KilometrePowerLaw`, `PowerLawCoefficientFromKilometres` | `KilometerPowerLaw`, `PowerLawCoefficientFromKilometers` |
175
+ | `CraterDatum::CentreHeight` | `CraterDatum::CenterHeight` |
176
+ | `CubeSphereCells::Neighbours`, `SampleAtCentres` | `CubeSphereCells::Neighbors`, `SampleAtCenters` |
177
+ | `MeshMaterial::colour`, `FeatureCell::centre`, `BoulderFragment::centre` | `MeshMaterial::color`, `FeatureCell::center`, `BoulderFragment::center` |
178
+ | `ShapeModelSurfaceSpec::metresPerUnit` | `ShapeModelSurfaceSpec::metersPerUnit` |
179
+ | `TERRAINGEN_API_VERSION` 1 | 2 |
180
+
181
+ **Python API**
182
+
183
+ | 0.1.0 | 0.2.0 |
184
+ | --- | --- |
185
+ | `Terrain` | `TerrainGenerator` |
186
+ | `evaluate_at`, `evaluate_points` | `height_at`, `heights_at` |
187
+ | `build_terrain`, `generate_terrain`, `GeneratedTerrain` | `build_generator`, `generate_from_config`, `GeneratedOutputs` |
188
+ | `Config`, `Config.from_json`, `Config.load`, `Config.to_json` | `TerrainGenConfig`, `parse_config`, `load_config`, `config_to_json` |
189
+ | `Config.base_grid` | `TerrainGenConfig.source_grid` |
190
+ | `height_mesh` | `build_mesh` |
191
+ | `RegionLayer` | `MaskedLayer` |
192
+ | keyword `terrain=` | `generator=` (and `generated=` for `write_outputs`) |
193
+ | `Source.height_at(x, y)`, `Source.fill(heights)` | `height_at(x, y, spacing)`, `fill(heights, spacing)` |
194
+ | `GeoTiffSource(pixel_size=, resampling=, low_pass=)` | `GeoTiffSource(upsampler=, effective_pixel_size=, crop=)` |
195
+ | `version`, `api_version`, `build_info` | `get_version`, `get_api_version`, `get_build_info` |
196
+ | `boulder_fillet_height`, `perlin_noise3` | `fillet_height`, `perlin_noise3_precise` |
197
+ | `TriangleMesh.subdivided` | `TriangleMesh.subdivide` |
198
+ | `Raster.nodata`, `GeoTiffInfo.nodata` | `Raster.no_data`, `GeoTiffInfo.no_data` |
199
+ | `ValueDistributionKind` | `ValueDistribution.Kind` |
200
+ | `CraterGenerationOptions.min_diameter`, `max_diameter` | `d_min`, `d_max` |
201
+ | `CraterFeatures.write` | `CraterFeatures.write_list` |
202
+ | `cell_of`, `point_of`, `level_for`, `outline_of` | `cell_at`, `coordinates`, `resolving_level`, `irregular_outline` |
203
+ | `min_diameter_for_count`, `singer_range_for_size` | `count_limit_diameter`, `singer_max_range` |
204
+ | `SplotchOptions`, `SlopeMaturityOptions` | `SplotchAlbedoOptions`, `SlopeAlbedoOptions` |
205
+ | angles in radians (`SyntheticAlbedo(hue=)`, `hsv_to_rgb(hue)`, `RigidTransform.rotation_x(angle)`, `Boulder.yaw`, ...) | degrees with `_deg` names (`hue_deg=`, `angle_deg`, `Boulder.yaw_deg`, ...) |
206
+ | `crater_blend_weight`, `CraterAgeModel.lifetime_gyr` | `CraterBlend.weight`, `lifetime_at` |
207
+ | `KilometrePowerLaw`, `power_law_coefficient_from_kilometres` | `KilometerPowerLaw`, `power_law_coefficient_from_kilometers` |
208
+ | `CraterDatum.CENTRE_HEIGHT` | `CraterDatum.CENTER_HEIGHT` |
209
+ | `CubeSphereCells.neighbours` | `CubeSphereCells.neighbors` |
210
+ | `RasterGrid.centred(centre=)` | `RasterGrid.centered(center=)` |
211
+ | keyword `centre=` (`FlatSource`, `Surface.offset`, `Surface.locate`), `metres=` (`Surface.expand`) | `center=`, `meters=` |
212
+ | `MeshMaterial(colour=)`, `MeshMaterial.colour` | `MeshMaterial(color=)`, `MeshMaterial.color` |
213
+ | `read_icq(metres_per_unit=)`, `write_icq(metres_per_unit=)` | `meters_per_unit=` |
214
+ | `TileScheme`, `TileKey`, `TileCache`, `evaluate_tile`, `evaluate_tiles` | removed |
215
+
216
+ ## [0.1.0] - 2026-10-18
217
+
218
+ Initial release.
219
+
220
+ ### Added
221
+
222
+ - C++20 library with Python bindings (`terraingenpy` on PyPI) for generating terrain from scratch or adding detail to existing DEMs.
223
+ - Craters and boulders from published size-frequency distributions, with crater ages, profiles, degradation, irregularity, secondaries and ejecta.
224
+ - Procedural 3D boulder models, and small boulders baked into the heightmap.
225
+ - Synthetic albedo with crater ejecta and rays that fade with age.
226
+ - Geologic features: dunes and ripples, layered strata, fractured bedrock, ventifacts and sand pooled in lows or behind boulders.
227
+ - Planes, spheres and ellipsoids, whole-body meshes, tiles and point queries.
228
+ - Deterministic output for a seed on any grid, tile or thread count.
229
+ - GPU acceleration on Vulkan, CUDA and Metal, detected at run time.
230
+ - `terraingen` command-line interface driven by JSON configurations.
231
+ - Examples in C++, Python and JSON.
232
+ - Release archives for Linux, macOS and Windows, Debian packages, and a Docker image.
233
+
234
+ [Unreleased]: https://github.com/alexmaietta/terraingen/compare/v0.2.0...HEAD
235
+ [0.2.0]: https://github.com/alexmaietta/terraingen/compare/v0.1.0...v0.2.0
236
+ [0.1.0]: https://github.com/alexmaietta/terraingen/releases/tag/v0.1.0
@@ -0,0 +1,150 @@
1
+ cmake_minimum_required(VERSION 3.22)
2
+
3
+ # Archives fetched with FetchContent get extraction-time timestamps, so their files rebuild what
4
+ # depends on them; CMake before 3.24 has no such policy and behaves this way already.
5
+ if(POLICY CMP0135)
6
+ cmake_policy(SET CMP0135 NEW)
7
+ endif()
8
+
9
+ # The release being worked towards, such as 0.1.0, or for a development build a PEP 440 pre-release of
10
+ # it, such as 0.1.0.dev42, which only the Python package carries.
11
+ set(TERRAINGEN_FULL_VERSION "0.2.0.dev119")
12
+ string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" TERRAINGEN_VERSION "${TERRAINGEN_FULL_VERSION}")
13
+
14
+ project(
15
+ TerrainGen
16
+ VERSION ${TERRAINGEN_VERSION}
17
+ LANGUAGES C CXX)
18
+ # The Metal backend (terraingen/gpu/metal.cpp) is Objective-C++ on Apple platforms. It is enabled
19
+ # here, above every target that links the gpu module.
20
+ if(APPLE)
21
+ enable_language(OBJCXX)
22
+ endif()
23
+
24
+ # No fused multiply-adds unless the source asks: GCC and Clang contract a * b + c into one rounding on
25
+ # CPUs that have the instruction (ARM, Apple Silicon), so the same seed would give different bits
26
+ # there than on x86.
27
+ add_compile_options(
28
+ "$<$<COMPILE_LANG_AND_ID:C,GNU,Clang,AppleClang>:-ffp-contract=off>"
29
+ "$<$<COMPILE_LANG_AND_ID:CXX,GNU,Clang,AppleClang>:-ffp-contract=off>"
30
+ "$<$<COMPILE_LANG_AND_ID:OBJCXX,AppleClang,Clang>:-ffp-contract=off>")
31
+
32
+ option(TERRAINGEN_BUILD_TESTS "Build the test suite" ${PROJECT_IS_TOP_LEVEL})
33
+ option(TERRAINGEN_BUILD_BENCHMARKS "Build the benchmarks (Google Benchmark)"
34
+ ${PROJECT_IS_TOP_LEVEL})
35
+ option(TERRAINGEN_BUILD_EXAMPLES "Build the C++ examples and test every example"
36
+ ${PROJECT_IS_TOP_LEVEL})
37
+ option(TERRAINGEN_BUILD_PYTHON "Build the Python bindings" ON)
38
+ option(TERRAINGEN_BUILD_APP "Build the terraingen command-line app" ON)
39
+ option(TERRAINGEN_BUILD_GUI
40
+ "Build `terraingen --gui`, the 3D GUI, with Ernie from TERRAINGEN_ERNIE_DIR, if it is there"
41
+ ON)
42
+ option(TERRAINGEN_INSTALL "Generate install rules and the CMake package" ${PROJECT_IS_TOP_LEVEL})
43
+ option(TERRAINGEN_COVERAGE "Instrument TerrainGen for code coverage and add a coverage target" OFF)
44
+
45
+ include(GNUInstallDirs)
46
+
47
+ set(CMAKE_CXX_STANDARD 17)
48
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
49
+ set(CMAKE_CXX_EXTENSIONS OFF)
50
+
51
+ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
52
+
53
+ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
54
+ set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
55
+
56
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
57
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
58
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
59
+
60
+ add_library(terraingen_warnings INTERFACE)
61
+ if(MSVC)
62
+ target_compile_options(terraingen_warnings INTERFACE /W4)
63
+ else()
64
+ target_compile_options(
65
+ terraingen_warnings
66
+ INTERFACE -Wall
67
+ -Wextra
68
+ -Wpedantic
69
+ -Wshadow
70
+ -Wconversion
71
+ -Wsign-conversion
72
+ -Wdouble-promotion)
73
+ endif()
74
+
75
+ add_library(terraingen_coverage INTERFACE)
76
+ if(TERRAINGEN_COVERAGE)
77
+ if(NOT CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
78
+ message(FATAL_ERROR "TERRAINGEN_COVERAGE requires GCC or Clang")
79
+ endif()
80
+ if(NOT TERRAINGEN_BUILD_TESTS)
81
+ message(FATAL_ERROR "TERRAINGEN_COVERAGE requires TERRAINGEN_BUILD_TESTS")
82
+ endif()
83
+ # -O1 runs the terrain-generating tests several times faster than -O0. The counters are not
84
+ # atomic: atomic ones made threaded tests about three times slower, a race only loses hits, and
85
+ # ccache does not cache compiles with -fprofile-update.
86
+ set(TERRAINGEN_COVERAGE_OPTIMIZATION
87
+ "-O1"
88
+ CACHE STRING "Optimization flag for coverage builds")
89
+ target_compile_options(terraingen_coverage INTERFACE --coverage
90
+ ${TERRAINGEN_COVERAGE_OPTIMIZATION} -g)
91
+ target_link_options(terraingen_coverage INTERFACE --coverage)
92
+ endif()
93
+
94
+ if(TERRAINGEN_BUILD_PYTHON)
95
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/nanobind.cmake")
96
+ endif()
97
+
98
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/vulkan_headers.cmake")
99
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/volk.cmake")
100
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/slang.cmake")
101
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/nvrtc.cmake")
102
+ include("${PROJECT_SOURCE_DIR}/cmake/TerrainGenSlang.cmake")
103
+
104
+ # TERRAINGEN_GUI says whether the GUI is built: asked for, with the app, and Ernie found.
105
+ set(TERRAINGEN_GUI OFF)
106
+ if(TERRAINGEN_BUILD_GUI AND TERRAINGEN_BUILD_APP)
107
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/ernie.cmake")
108
+ endif()
109
+
110
+ add_subdirectory(terraingen)
111
+
112
+ if(TERRAINGEN_BUILD_TESTS)
113
+ enable_testing()
114
+ include("${PROJECT_SOURCE_DIR}/cmake/TerrainGenTesting.cmake")
115
+ endif()
116
+ if(TERRAINGEN_BUILD_EXAMPLES)
117
+ add_subdirectory(examples/cpp)
118
+ endif()
119
+ if(TERRAINGEN_BUILD_TESTS)
120
+ add_subdirectory(tests)
121
+ endif()
122
+ if(TERRAINGEN_BUILD_BENCHMARKS)
123
+ add_subdirectory(tests/benchmark)
124
+ endif()
125
+
126
+ if(TERRAINGEN_INSTALL)
127
+ include(CMakePackageConfigHelpers)
128
+ set(TERRAINGEN_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/terraingen")
129
+
130
+ install(
131
+ EXPORT terraingenTargets
132
+ NAMESPACE terraingen::
133
+ DESTINATION "${TERRAINGEN_INSTALL_CMAKEDIR}"
134
+ COMPONENT development)
135
+
136
+ configure_package_config_file(
137
+ "${PROJECT_SOURCE_DIR}/cmake/terraingenConfig.cmake.in"
138
+ "${PROJECT_BINARY_DIR}/terraingenConfig.cmake"
139
+ INSTALL_DESTINATION "${TERRAINGEN_INSTALL_CMAKEDIR}")
140
+ write_basic_package_version_file("${PROJECT_BINARY_DIR}/terraingenConfigVersion.cmake"
141
+ COMPATIBILITY SameMinorVersion)
142
+
143
+ install(
144
+ FILES "${PROJECT_BINARY_DIR}/terraingenConfig.cmake"
145
+ "${PROJECT_BINARY_DIR}/terraingenConfigVersion.cmake"
146
+ DESTINATION "${TERRAINGEN_INSTALL_CMAKEDIR}"
147
+ COMPONENT development)
148
+
149
+ include("${PROJECT_SOURCE_DIR}/cmake/TerrainGenPackaging.cmake")
150
+ endif()
@@ -0,0 +1,47 @@
1
+ # Contributing to TerrainGen
2
+
3
+ Thank you for helping. Bug reports, questions, references and pull requests are all welcome; for anything larger than a fix, please open an issue first so we can agree on the approach.
4
+
5
+ ## Building and testing
6
+
7
+ TerrainGen needs CMake 3.22 or newer and a C++17 compiler (tested with GCC 11, Clang 14, Apple Clang 15 and MSVC 2022). Everything else is fetched by CMake. Keep the library, tests and examples C++17: no `std::span` (use `terraingen::Span`), `std::numbers` (use `kPi` from `util/bits.h`), defaulted comparisons, concepts or designated initializers.
8
+
9
+ ```sh
10
+ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
11
+ cmake --build build -j 8
12
+ ctest --test-dir build -j 8 --output-on-failure
13
+ ```
14
+
15
+ The Vulkan compute tests skip on machines without a Vulkan device. The Python bindings build with `pip install .` (or into `build/python` with the CMake build); run their tests with `pytest tests/python`.
16
+
17
+ Tests are grouped by kind: `tests/unit` mirrors `terraingen/` one folder per module, `tests/statistical` checks sampled distributions against their models, `tests/golden` pins generated values, `tests/integration` runs every example and configuration, and `tests/python` has one file per module. Shared helpers live in `tests/support`.
18
+
19
+ Coverage needs GCC or Clang; the `coverage` target runs the tests and writes a report to `build-coverage/coverage/`:
20
+
21
+ ```sh
22
+ cmake -S . -B build-coverage -DTERRAINGEN_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
23
+ cmake --build build-coverage -j 8 --target coverage
24
+ ```
25
+
26
+ The 3D GUI (`terraingen CONFIG --gui`) builds with Ernie, the renderer, from a local checkout: `-DTERRAINGEN_ERNIE_DIR=../ernie`. Without one, configuring warns and builds everything else, and `--gui` says how to add it; `-DTERRAINGEN_BUILD_GUI=OFF` leaves the GUI out without the warning.
27
+
28
+ ## Pull requests
29
+
30
+ - Every change comes with tests, and new code should be covered by them.
31
+ - Run [pre-commit](https://pre-commit.com) before committing (`pre-commit install` once): it formats C++ with clang-format, CMake with cmake-format, Python with ruff and the example JSON configurations, and runs cppcheck and ruff's linter.
32
+ - Keep commits focused, with a one-line message saying what changed.
33
+ - CI must pass on Linux, macOS and Windows.
34
+
35
+ ## Conventions
36
+
37
+ - **Cite what you model.** Constants, fits and models come from published sources: name the paper, with its DOI or URL, in the doc comment, and keep the rest of the comment to what the code does. If a value has no source, say so rather than guess.
38
+ - **Plain ASCII** in code, comments, docs and commit messages: write "meters", "degrees", "D^-2" and "sigma" rather than Unicode symbols.
39
+ - **Document public headers** with short `///` comments: a `@file` line saying what the header holds, then one sentence per type and function. Add `@param` only for units, ranges or special values, `@return` only when the sentence does not say it, and `@throws` for each exception a function raises on purpose. Leave overrides undocumented, and prefer clear names to inline comments.
40
+ - **Dependencies:** TerrainGen stays light. Please discuss a new third-party library in an issue before adding it; vendored code in `third_party/` stays byte-identical to upstream.
41
+ - **Configuration fields** carry a description and, for numbers, a unit (see the field lists in `terraingen/config/fields/`); a test checks every field has them.
42
+
43
+ ## Reporting bugs
44
+
45
+ Open an issue with the configuration (or code) that shows the problem, what you expected and what happened, and your platform.
46
+
47
+ By contributing you agree that your contributions are licensed under the project's [BSD 3-Clause License](LICENSE).