terraingenpy 0.1.1.dev77__tar.gz → 0.1.1.dev91__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 (1167) hide show
  1. terraingenpy-0.1.1.dev91/.pre-commit-config.yaml +59 -0
  2. terraingenpy-0.1.1.dev91/CHANGELOG.md +91 -0
  3. terraingenpy-0.1.1.dev91/CMakeLists.txt +150 -0
  4. terraingenpy-0.1.1.dev91/CONTRIBUTING.md +47 -0
  5. terraingenpy-0.1.1.dev91/PKG-INFO +250 -0
  6. terraingenpy-0.1.1.dev91/README.md +194 -0
  7. terraingenpy-0.1.1.dev91/examples/config/albedo/example_albedo_blast_zone.json +101 -0
  8. terraingenpy-0.1.1.dev91/examples/config/albedo/example_albedo_fresh_crater.json +145 -0
  9. terraingenpy-0.1.1.dev91/examples/config/albedo/example_albedo_new_crater.json +133 -0
  10. terraingenpy-0.1.1.dev91/examples/config/albedo/example_albedo_oblique_rays.json +105 -0
  11. terraingenpy-0.1.1.dev91/examples/config/albedo/example_albedo_rgb.json +61 -0
  12. terraingenpy-0.1.1.dev91/examples/config/boulders/example_boulders_max_slope.json +47 -0
  13. terraingenpy-0.1.1.dev91/examples/config/boulders/example_boulders_rolling.json +48 -0
  14. terraingenpy-0.1.1.dev91/examples/config/boulders/example_boulders_shapes.json +64 -0
  15. terraingenpy-0.1.1.dev91/examples/config/planets/example_planets_mars_bedforms.json +53 -0
  16. terraingenpy-0.1.1.dev91/examples/config/planets/example_planets_mars_dunes.json +71 -0
  17. terraingenpy-0.1.1.dev91/examples/config/planets/example_planets_mars_exposure.json +62 -0
  18. terraingenpy-0.1.1.dev91/examples/config/planets/example_planets_mars_pavement.json +72 -0
  19. terraingenpy-0.1.1.dev91/examples/config/planets/example_planets_mars_sand_shadows.json +65 -0
  20. terraingenpy-0.1.1.dev91/examples/config/planets/example_planets_mars_strata.json +65 -0
  21. terraingenpy-0.1.1.dev91/examples/config/planets/example_planets_mars_ventifacts.json +67 -0
  22. terraingenpy-0.1.1.dev91/examples/cpp/albedo/example_albedo_crater_rays.cpp +109 -0
  23. terraingenpy-0.1.1.dev91/examples/cpp/boulders/example_boulders_ejecta.cpp +128 -0
  24. terraingenpy-0.1.1.dev91/examples/cpp/craters/example_craters_manual.cpp +107 -0
  25. terraingenpy-0.1.1.dev91/examples/cpp/sources/example_sources_raster_detail.cpp +129 -0
  26. terraingenpy-0.1.1.dev91/examples/python/albedo/example_albedo_options.py +151 -0
  27. terraingenpy-0.1.1.dev91/examples/python/boulders/example_boulders_positioning.py +100 -0
  28. terraingenpy-0.1.1.dev91/examples/python/craters/example_craters_irregularity.py +95 -0
  29. terraingenpy-0.1.1.dev91/examples/python/planets/example_planets_mars.py +82 -0
  30. terraingenpy-0.1.1.dev91/examples/python/planets/example_planets_mars_dunes.py +63 -0
  31. terraingenpy-0.1.1.dev91/examples/python/planets/example_planets_mars_exposure.py +103 -0
  32. terraingenpy-0.1.1.dev91/terraingen/CMakeLists.txt +124 -0
  33. terraingenpy-0.1.1.dev91/terraingen/albedo/blast_zones.cpp +114 -0
  34. terraingenpy-0.1.1.dev91/terraingen/albedo/blast_zones.h +87 -0
  35. terraingenpy-0.1.1.dev91/terraingen/albedo/crater_albedo.cpp +859 -0
  36. terraingenpy-0.1.1.dev91/terraingen/albedo/crater_albedo.h +433 -0
  37. terraingenpy-0.1.1.dev91/terraingen/albedo/maturity.h +42 -0
  38. terraingenpy-0.1.1.dev91/terraingen/albedo/photometry.h +56 -0
  39. terraingenpy-0.1.1.dev91/terraingen/albedo/raster_albedo.h +109 -0
  40. terraingenpy-0.1.1.dev91/terraingen/albedo/rock_albedo.cpp +121 -0
  41. terraingenpy-0.1.1.dev91/terraingen/albedo/rock_albedo.h +78 -0
  42. terraingenpy-0.1.1.dev91/terraingen/albedo/slope_albedo.h +81 -0
  43. terraingenpy-0.1.1.dev91/terraingen/albedo/splotches.cpp +461 -0
  44. terraingenpy-0.1.1.dev91/terraingen/albedo/splotches.h +195 -0
  45. terraingenpy-0.1.1.dev91/terraingen/albedo/synthetic.h +86 -0
  46. terraingenpy-0.1.1.dev91/terraingen/app/CMakeLists.txt +31 -0
  47. terraingenpy-0.1.1.dev91/terraingen/app/gui/CMakeLists.txt +8 -0
  48. terraingenpy-0.1.1.dev91/terraingen/app/gui/config_editor.cpp +917 -0
  49. terraingenpy-0.1.1.dev91/terraingen/config/build.cpp +861 -0
  50. terraingenpy-0.1.1.dev91/terraingen/config/build.h +157 -0
  51. terraingenpy-0.1.1.dev91/terraingen/config/config.h +1289 -0
  52. terraingenpy-0.1.1.dev91/terraingen/config/feature_lists.cpp +274 -0
  53. terraingenpy-0.1.1.dev91/terraingen/config/fields/albedo.h +561 -0
  54. terraingenpy-0.1.1.dev91/terraingen/config/fields/boulders.h +575 -0
  55. terraingenpy-0.1.1.dev91/terraingen/config/fields/common.h +301 -0
  56. terraingenpy-0.1.1.dev91/terraingen/config/fields/craters.h +441 -0
  57. terraingenpy-0.1.1.dev91/terraingen/config/fields/enums.h +394 -0
  58. terraingenpy-0.1.1.dev91/terraingen/config/fields/json_io.h +380 -0
  59. terraingenpy-0.1.1.dev91/terraingen/config/fields/layers.h +562 -0
  60. terraingenpy-0.1.1.dev91/terraingen/config/fields/materials.h +56 -0
  61. terraingenpy-0.1.1.dev91/terraingen/config/fields/outputs.h +177 -0
  62. terraingenpy-0.1.1.dev91/terraingen/config/fields/ranges.h +120 -0
  63. terraingenpy-0.1.1.dev91/terraingen/config/generate.cpp +437 -0
  64. terraingenpy-0.1.1.dev91/terraingen/config/generate.h +105 -0
  65. terraingenpy-0.1.1.dev91/terraingen/config/json.cpp +180 -0
  66. terraingenpy-0.1.1.dev91/terraingen/config/schema.cpp +242 -0
  67. terraingenpy-0.1.1.dev91/terraingen/config/validate.cpp +824 -0
  68. terraingenpy-0.1.1.dev91/terraingen/distribution/composition.cpp +66 -0
  69. terraingenpy-0.1.1.dev91/terraingen/distribution/composition.h +118 -0
  70. terraingenpy-0.1.1.dev91/terraingen/distribution/golombek_rapp.cpp +38 -0
  71. terraingenpy-0.1.1.dev91/terraingen/distribution/piecewise_uniform.h +61 -0
  72. terraingenpy-0.1.1.dev91/terraingen/distribution/power_law.h +78 -0
  73. terraingenpy-0.1.1.dev91/terraingen/distribution/sp8023.cpp +126 -0
  74. terraingenpy-0.1.1.dev91/terraingen/gpu/cuda.cpp +331 -0
  75. terraingenpy-0.1.1.dev91/terraingen/gpu/cuda.h +53 -0
  76. terraingenpy-0.1.1.dev91/terraingen/gpu/device.h +103 -0
  77. terraingenpy-0.1.1.dev91/terraingen/gpu/kernel.cpp +147 -0
  78. terraingenpy-0.1.1.dev91/terraingen/gpu/kernel.h +40 -0
  79. terraingenpy-0.1.1.dev91/terraingen/gpu/metal.cpp +196 -0
  80. terraingenpy-0.1.1.dev91/terraingen/gpu/metal.h +48 -0
  81. terraingenpy-0.1.1.dev91/terraingen/gpu/program.h +22 -0
  82. terraingenpy-0.1.1.dev91/terraingen/gpu/vulkan.cpp +570 -0
  83. terraingenpy-0.1.1.dev91/terraingen/gpu/vulkan.h +72 -0
  84. terraingenpy-0.1.1.dev91/terraingen/layers/CMakeLists.txt +79 -0
  85. terraingenpy-0.1.1.dev91/terraingen/layers/bedforms.cpp +198 -0
  86. terraingenpy-0.1.1.dev91/terraingen/layers/bedforms.h +118 -0
  87. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/abundance.cpp +381 -0
  88. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder.h +162 -0
  89. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_clusters.cpp +58 -0
  90. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_fragments.cpp +111 -0
  91. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_layer.cpp +989 -0
  92. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_layer.h +393 -0
  93. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_models.cpp +326 -0
  94. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_models.h +99 -0
  95. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_options.cpp +298 -0
  96. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_options.h +521 -0
  97. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_shape.cpp +493 -0
  98. terraingenpy-0.1.1.dev91/terraingen/layers/boulders/boulder_shape.h +134 -0
  99. terraingenpy-0.1.1.dev91/terraingen/layers/craters/crater.cpp +107 -0
  100. terraingenpy-0.1.1.dev91/terraingen/layers/craters/crater.h +190 -0
  101. terraingenpy-0.1.1.dev91/terraingen/layers/craters/crater_layer.h +141 -0
  102. terraingenpy-0.1.1.dev91/terraingen/layers/craters/crater_placer.cpp +32 -0
  103. terraingenpy-0.1.1.dev91/terraingen/layers/craters/crater_placer.h +48 -0
  104. terraingenpy-0.1.1.dev91/terraingen/layers/craters/degradation/diffusion.cpp +329 -0
  105. terraingenpy-0.1.1.dev91/terraingen/layers/craters/degradation/diffusion.h +163 -0
  106. terraingenpy-0.1.1.dev91/terraingen/layers/craters/degradation/state.h +50 -0
  107. terraingenpy-0.1.1.dev91/terraingen/layers/craters/generation/cell_cache.h +68 -0
  108. terraingenpy-0.1.1.dev91/terraingen/layers/craters/generation/population.h +173 -0
  109. terraingenpy-0.1.1.dev91/terraingen/layers/craters/generation/resolved_limit.cpp +45 -0
  110. terraingenpy-0.1.1.dev91/terraingen/layers/craters/generation/resolved_limit.h +31 -0
  111. terraingenpy-0.1.1.dev91/terraingen/layers/craters/profiles/complex.cpp +90 -0
  112. terraingenpy-0.1.1.dev91/terraingen/layers/craters/profiles/complex.h +98 -0
  113. terraingenpy-0.1.1.dev91/terraingen/layers/craters/rays.cpp +45 -0
  114. terraingenpy-0.1.1.dev91/terraingen/layers/craters/rays.h +46 -0
  115. terraingenpy-0.1.1.dev91/terraingen/layers/craters/secondaries.cpp +396 -0
  116. terraingenpy-0.1.1.dev91/terraingen/layers/craters/secondary_model.cpp +256 -0
  117. terraingenpy-0.1.1.dev91/terraingen/layers/craters/secondary_model.h +243 -0
  118. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/apply.cpp +1173 -0
  119. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/apply.h +94 -0
  120. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/apply_options.h +211 -0
  121. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/attributes.h +38 -0
  122. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/explicit_state.cpp +143 -0
  123. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/explicit_state.h +37 -0
  124. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/irregularity.cpp +345 -0
  125. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/irregularity.h +154 -0
  126. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/prepared.cpp +31 -0
  127. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/prepared.h +62 -0
  128. terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/slope.h +90 -0
  129. terraingenpy-0.1.1.dev91/terraingen/layers/density_map.cpp +118 -0
  130. terraingenpy-0.1.1.dev91/terraingen/layers/density_map.h +145 -0
  131. terraingenpy-0.1.1.dev91/terraingen/layers/dunes.cpp +633 -0
  132. terraingenpy-0.1.1.dev91/terraingen/layers/dunes.h +264 -0
  133. terraingenpy-0.1.1.dev91/terraingen/layers/evaluation_cache.h +63 -0
  134. terraingenpy-0.1.1.dev91/terraingen/layers/exposure.h +86 -0
  135. terraingenpy-0.1.1.dev91/terraingen/layers/fade.h +48 -0
  136. terraingenpy-0.1.1.dev91/terraingen/layers/ground.cpp +41 -0
  137. terraingenpy-0.1.1.dev91/terraingen/layers/ground.h +77 -0
  138. terraingenpy-0.1.1.dev91/terraingen/layers/kernel.h +42 -0
  139. terraingenpy-0.1.1.dev91/terraingen/layers/midpoint_displacement.cpp +368 -0
  140. terraingenpy-0.1.1.dev91/terraingen/layers/midpoint_displacement.h +150 -0
  141. terraingenpy-0.1.1.dev91/terraingen/layers/pavement.cpp +260 -0
  142. terraingenpy-0.1.1.dev91/terraingen/layers/pavement.h +139 -0
  143. terraingenpy-0.1.1.dev91/terraingen/layers/region.h +117 -0
  144. terraingenpy-0.1.1.dev91/terraingen/layers/roughness.cpp +194 -0
  145. terraingenpy-0.1.1.dev91/terraingen/layers/roughness.h +101 -0
  146. terraingenpy-0.1.1.dev91/terraingen/layers/sample_block.cpp +55 -0
  147. terraingenpy-0.1.1.dev91/terraingen/layers/sample_block.h +85 -0
  148. terraingenpy-0.1.1.dev91/terraingen/layers/sand_fill.cpp +79 -0
  149. terraingenpy-0.1.1.dev91/terraingen/layers/sand_fill.h +79 -0
  150. terraingenpy-0.1.1.dev91/terraingen/layers/sand_shadow.cpp +150 -0
  151. terraingenpy-0.1.1.dev91/terraingen/layers/sand_shadow.h +108 -0
  152. terraingenpy-0.1.1.dev91/terraingen/layers/strata.cpp +140 -0
  153. terraingenpy-0.1.1.dev91/terraingen/layers/strata.h +113 -0
  154. terraingenpy-0.1.1.dev91/terraingen/mesh/io/formats.h +66 -0
  155. terraingenpy-0.1.1.dev91/terraingen/mesh/io/gltf.cpp +298 -0
  156. terraingenpy-0.1.1.dev91/terraingen/mesh/io/icq.cpp +219 -0
  157. terraingenpy-0.1.1.dev91/terraingen/mesh/io/icq.h +83 -0
  158. terraingenpy-0.1.1.dev91/terraingen/mesh/io/mesh_io.h +71 -0
  159. terraingenpy-0.1.1.dev91/terraingen/noise/fractal.h +325 -0
  160. terraingenpy-0.1.1.dev91/terraingen/noise/hash.h +83 -0
  161. terraingenpy-0.1.1.dev91/terraingen/noise/noise_layers.h +231 -0
  162. terraingenpy-0.1.1.dev91/terraingen/noise/perlin.h +165 -0
  163. terraingenpy-0.1.1.dev91/terraingen/pipeline/body_mesh.cpp +115 -0
  164. terraingenpy-0.1.1.dev91/terraingen/pipeline/height_mesh.cpp +71 -0
  165. terraingenpy-0.1.1.dev91/terraingen/pipeline/materials.h +56 -0
  166. terraingenpy-0.1.1.dev91/terraingen/pipeline/terrain.cpp +200 -0
  167. terraingenpy-0.1.1.dev91/terraingen/pipeline/terrain.h +146 -0
  168. terraingenpy-0.1.1.dev91/terraingen/pipeline/tiles.h +166 -0
  169. terraingenpy-0.1.1.dev91/terraingen/python/src/albedo.cpp +472 -0
  170. terraingenpy-0.1.1.dev91/terraingen/python/src/boulders.cpp +447 -0
  171. terraingenpy-0.1.1.dev91/terraingen/python/src/craters.cpp +546 -0
  172. terraingenpy-0.1.1.dev91/terraingen/python/src/distribution.cpp +378 -0
  173. terraingenpy-0.1.1.dev91/terraingen/python/src/layers.cpp +473 -0
  174. terraingenpy-0.1.1.dev91/terraingen/python/src/materials.cpp +106 -0
  175. terraingenpy-0.1.1.dev91/terraingen/python/src/mesh.cpp +238 -0
  176. terraingenpy-0.1.1.dev91/terraingen/python/src/options.h +284 -0
  177. terraingenpy-0.1.1.dev91/terraingen/python/src/pipeline.cpp +530 -0
  178. terraingenpy-0.1.1.dev91/terraingen/python/src/sources.cpp +253 -0
  179. terraingenpy-0.1.1.dev91/terraingen/python/src/tables.h +93 -0
  180. terraingenpy-0.1.1.dev91/terraingen/python/src/util.cpp +243 -0
  181. terraingenpy-0.1.1.dev91/terraingen/python/terraingen/render.py +237 -0
  182. terraingenpy-0.1.1.dev91/terraingen/random/philox.h +91 -0
  183. terraingenpy-0.1.1.dev91/terraingen/random/samplers.cpp +143 -0
  184. terraingenpy-0.1.1.dev91/terraingen/random/streams.h +145 -0
  185. terraingenpy-0.1.1.dev91/terraingen/random/value_distribution.h +56 -0
  186. terraingenpy-0.1.1.dev91/terraingen/raster/cell_loops.cpp +77 -0
  187. terraingenpy-0.1.1.dev91/terraingen/raster/cell_loops.h +132 -0
  188. terraingenpy-0.1.1.dev91/terraingen/raster/geo_transform.h +79 -0
  189. terraingenpy-0.1.1.dev91/terraingen/raster/geotiff/geotiff.h +195 -0
  190. terraingenpy-0.1.1.dev91/terraingen/raster/geotiff/geotiff_read.cpp +692 -0
  191. terraingenpy-0.1.1.dev91/terraingen/raster/geotiff/tiff_codecs.cpp +378 -0
  192. terraingenpy-0.1.1.dev91/terraingen/raster/geotiff/tiff_codecs.h +52 -0
  193. terraingenpy-0.1.1.dev91/terraingen/raster/geotiff/tiff_format.h +157 -0
  194. terraingenpy-0.1.1.dev91/terraingen/raster/grid.h +83 -0
  195. terraingenpy-0.1.1.dev91/terraingen/raster/raster.h +164 -0
  196. terraingenpy-0.1.1.dev91/terraingen/raster/resample.cpp +168 -0
  197. terraingenpy-0.1.1.dev91/terraingen/raster/resample.h +106 -0
  198. terraingenpy-0.1.1.dev91/terraingen/sources/CMakeLists.txt +13 -0
  199. terraingenpy-0.1.1.dev91/terraingen/sources/field.cpp +125 -0
  200. terraingenpy-0.1.1.dev91/terraingen/sources/field.h +140 -0
  201. terraingenpy-0.1.1.dev91/terraingen/sources/geotiff_source.cpp +111 -0
  202. terraingenpy-0.1.1.dev91/terraingen/sources/geotiff_source.h +114 -0
  203. terraingenpy-0.1.1.dev91/terraingen/sources/raster_source.cpp +214 -0
  204. terraingenpy-0.1.1.dev91/terraingen/sources/raster_source.h +181 -0
  205. terraingenpy-0.1.1.dev91/terraingen/sources/source.h +56 -0
  206. terraingenpy-0.1.1.dev91/terraingen/sources/source_chain.cpp +63 -0
  207. terraingenpy-0.1.1.dev91/terraingen/sources/source_chain.h +57 -0
  208. terraingenpy-0.1.1.dev91/terraingen/sources/synthetic_terrain.h +46 -0
  209. terraingenpy-0.1.1.dev91/terraingen/terraingen.h +137 -0
  210. terraingenpy-0.1.1.dev91/terraingen/util/arithmetic.h +24 -0
  211. terraingenpy-0.1.1.dev91/terraingen/util/bits.h +32 -0
  212. terraingenpy-0.1.1.dev91/terraingen/util/cells.h +205 -0
  213. terraingenpy-0.1.1.dev91/terraingen/util/cube_faces.h +73 -0
  214. terraingenpy-0.1.1.dev91/terraingen/util/cube_sphere_cells.cpp +348 -0
  215. terraingenpy-0.1.1.dev91/terraingen/util/fft.cpp +49 -0
  216. terraingenpy-0.1.1.dev91/terraingen/util/geometry.h +158 -0
  217. terraingenpy-0.1.1.dev91/terraingen/util/radial_shape.cpp +158 -0
  218. terraingenpy-0.1.1.dev91/terraingen/util/radial_shape.h +101 -0
  219. terraingenpy-0.1.1.dev91/terraingen/util/span.h +127 -0
  220. terraingenpy-0.1.1.dev91/terraingen/util/special_functions.cpp +78 -0
  221. terraingenpy-0.1.1.dev91/terraingen/util/surface.cpp +332 -0
  222. terraingenpy-0.1.1.dev91/terraingen/util/surface.h +234 -0
  223. terraingenpy-0.1.1.dev91/tests/benchmark/bench_craters.cpp +63 -0
  224. terraingenpy-0.1.1.dev91/tests/python/test_albedo.py +305 -0
  225. terraingenpy-0.1.1.dev91/tests/python/test_boulders.py +364 -0
  226. terraingenpy-0.1.1.dev91/tests/python/test_craters.py +539 -0
  227. terraingenpy-0.1.1.dev91/tests/python/test_layers.py +474 -0
  228. terraingenpy-0.1.1.dev91/tests/python/test_meshes.py +205 -0
  229. terraingenpy-0.1.1.dev91/tests/python/test_raster.py +249 -0
  230. terraingenpy-0.1.1.dev91/tests/python/test_render.py +146 -0
  231. terraingenpy-0.1.1.dev91/tests/python/test_sources.py +239 -0
  232. terraingenpy-0.1.1.dev91/tests/python/test_util.py +211 -0
  233. terraingenpy-0.1.1.dev91/tests/statistical/layers/boulders/boulder_layer_test.cpp +96 -0
  234. terraingenpy-0.1.1.dev91/tests/statistical/layers/craters/population_test.cpp +144 -0
  235. terraingenpy-0.1.1.dev91/tests/statistical/layers/roughness_test.cpp +52 -0
  236. terraingenpy-0.1.1.dev91/tests/unit/albedo/albedo_test.cpp +425 -0
  237. terraingenpy-0.1.1.dev91/tests/unit/albedo/bands_test.cpp +71 -0
  238. terraingenpy-0.1.1.dev91/tests/unit/albedo/blast_zones_test.cpp +121 -0
  239. terraingenpy-0.1.1.dev91/tests/unit/albedo/crater_albedo_test.cpp +836 -0
  240. terraingenpy-0.1.1.dev91/tests/unit/albedo/rock_albedo_test.cpp +159 -0
  241. terraingenpy-0.1.1.dev91/tests/unit/albedo/slope_albedo_test.cpp +120 -0
  242. terraingenpy-0.1.1.dev91/tests/unit/albedo/splotches_test.cpp +393 -0
  243. terraingenpy-0.1.1.dev91/tests/unit/app/cli_test.cpp +276 -0
  244. terraingenpy-0.1.1.dev91/tests/unit/app/gui/config_editor_test.cpp +186 -0
  245. terraingenpy-0.1.1.dev91/tests/unit/config/CMakeLists.txt +20 -0
  246. terraingenpy-0.1.1.dev91/tests/unit/config/angles_test.cpp +171 -0
  247. terraingenpy-0.1.1.dev91/tests/unit/config/build_test.cpp +705 -0
  248. terraingenpy-0.1.1.dev91/tests/unit/config/feature_lists_test.cpp +159 -0
  249. terraingenpy-0.1.1.dev91/tests/unit/config/generate_terrain_test.cpp +641 -0
  250. terraingenpy-0.1.1.dev91/tests/unit/config/json_io_test.cpp +683 -0
  251. terraingenpy-0.1.1.dev91/tests/unit/config/schema_test.cpp +535 -0
  252. terraingenpy-0.1.1.dev91/tests/unit/config/validate_config_test.cpp +769 -0
  253. terraingenpy-0.1.1.dev91/tests/unit/config/write_outputs_test.cpp +350 -0
  254. terraingenpy-0.1.1.dev91/tests/unit/distribution/golombek_rapp_test.cpp +57 -0
  255. terraingenpy-0.1.1.dev91/tests/unit/gpu/noise_test.cpp +174 -0
  256. terraingenpy-0.1.1.dev91/tests/unit/gpu/vulkan_test.cpp +156 -0
  257. terraingenpy-0.1.1.dev91/tests/unit/layers/CMakeLists.txt +60 -0
  258. terraingenpy-0.1.1.dev91/tests/unit/layers/bedforms_test.cpp +159 -0
  259. terraingenpy-0.1.1.dev91/tests/unit/layers/boulders/boulder_fragments_test.cpp +307 -0
  260. terraingenpy-0.1.1.dev91/tests/unit/layers/boulders/boulder_layer_test.cpp +1336 -0
  261. terraingenpy-0.1.1.dev91/tests/unit/layers/boulders/boulder_models_test.cpp +201 -0
  262. terraingenpy-0.1.1.dev91/tests/unit/layers/boulders/boulder_options_test.cpp +100 -0
  263. terraingenpy-0.1.1.dev91/tests/unit/layers/boulders/boulder_shape_test.cpp +254 -0
  264. terraingenpy-0.1.1.dev91/tests/unit/layers/boulders/manual_boulder_test.cpp +351 -0
  265. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/ages/freshness_test.cpp +166 -0
  266. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/crater_layer_test.cpp +277 -0
  267. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/crater_test.cpp +129 -0
  268. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/degradation/diffusion_test.cpp +227 -0
  269. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/generation/population_test.cpp +682 -0
  270. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/generation/resolved_limit_test.cpp +97 -0
  271. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/generation/spacing_test.cpp +164 -0
  272. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/profiles/complex_test.cpp +101 -0
  273. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/secondaries_test.cpp +534 -0
  274. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/shaping/apply_test.cpp +646 -0
  275. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +492 -0
  276. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/shaping/explicit_state_test.cpp +272 -0
  277. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/shaping/irregularity_test.cpp +363 -0
  278. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/shaping/slope_test.cpp +304 -0
  279. terraingenpy-0.1.1.dev91/tests/unit/layers/craters/sphere_test.cpp +373 -0
  280. terraingenpy-0.1.1.dev91/tests/unit/layers/density_map_test.cpp +135 -0
  281. terraingenpy-0.1.1.dev91/tests/unit/layers/dunes_test.cpp +464 -0
  282. terraingenpy-0.1.1.dev91/tests/unit/layers/exposure_test.cpp +146 -0
  283. terraingenpy-0.1.1.dev91/tests/unit/layers/layer_test.cpp +55 -0
  284. terraingenpy-0.1.1.dev91/tests/unit/layers/midpoint_displacement_test.cpp +318 -0
  285. terraingenpy-0.1.1.dev91/tests/unit/layers/noise_relief_test.cpp +291 -0
  286. terraingenpy-0.1.1.dev91/tests/unit/layers/roughness_test.cpp +171 -0
  287. terraingenpy-0.1.1.dev91/tests/unit/layers/sand_shadow_test.cpp +182 -0
  288. terraingenpy-0.1.1.dev91/tests/unit/layers/sphere_layers_test.cpp +216 -0
  289. terraingenpy-0.1.1.dev91/tests/unit/layers/strata_test.cpp +241 -0
  290. terraingenpy-0.1.1.dev91/tests/unit/mesh/io/icq_test.cpp +230 -0
  291. terraingenpy-0.1.1.dev91/tests/unit/mesh/mesh_test.cpp +160 -0
  292. terraingenpy-0.1.1.dev91/tests/unit/mesh/polyhedra_test.cpp +74 -0
  293. terraingenpy-0.1.1.dev91/tests/unit/noise/hash_test.cpp +82 -0
  294. terraingenpy-0.1.1.dev91/tests/unit/pipeline/features_test.cpp +231 -0
  295. terraingenpy-0.1.1.dev91/tests/unit/pipeline/terrain_tiles_test.cpp +336 -0
  296. terraingenpy-0.1.1.dev91/tests/unit/random/value_distribution_test.cpp +109 -0
  297. terraingenpy-0.1.1.dev91/tests/unit/raster/cell_loops_test.cpp +109 -0
  298. terraingenpy-0.1.1.dev91/tests/unit/raster/geotiff_test.cpp +513 -0
  299. terraingenpy-0.1.1.dev91/tests/unit/raster/resample_test.cpp +280 -0
  300. terraingenpy-0.1.1.dev91/tests/unit/sources/CMakeLists.txt +11 -0
  301. terraingenpy-0.1.1.dev91/tests/unit/sources/field_test.cpp +144 -0
  302. terraingenpy-0.1.1.dev91/tests/unit/sources/flat_source_test.cpp +62 -0
  303. terraingenpy-0.1.1.dev91/tests/unit/sources/geotiff_source_test.cpp +399 -0
  304. terraingenpy-0.1.1.dev91/tests/unit/sources/raster_source_test.cpp +167 -0
  305. terraingenpy-0.1.1.dev91/tests/unit/sources/source_chain_test.cpp +158 -0
  306. terraingenpy-0.1.1.dev91/tests/unit/util/CMakeLists.txt +21 -0
  307. terraingenpy-0.1.1.dev91/tests/unit/util/fft_test.cpp +51 -0
  308. terraingenpy-0.1.1.dev91/tests/unit/util/geometry_test.cpp +63 -0
  309. terraingenpy-0.1.1.dev91/tests/unit/util/span_test.cpp +139 -0
  310. terraingenpy-0.1.1.dev91/tests/unit/util/surface_test.cpp +679 -0
  311. terraingenpy-0.1.1.dev77/.pre-commit-config.yaml +0 -58
  312. terraingenpy-0.1.1.dev77/CHANGELOG.md +0 -84
  313. terraingenpy-0.1.1.dev77/CMakeLists.txt +0 -150
  314. terraingenpy-0.1.1.dev77/CONTRIBUTING.md +0 -47
  315. terraingenpy-0.1.1.dev77/PKG-INFO +0 -250
  316. terraingenpy-0.1.1.dev77/README.md +0 -194
  317. terraingenpy-0.1.1.dev77/examples/config/albedo/example_albedo_blast_zone.json +0 -101
  318. terraingenpy-0.1.1.dev77/examples/config/albedo/example_albedo_fresh_crater.json +0 -145
  319. terraingenpy-0.1.1.dev77/examples/config/albedo/example_albedo_new_crater.json +0 -133
  320. terraingenpy-0.1.1.dev77/examples/config/albedo/example_albedo_oblique_rays.json +0 -105
  321. terraingenpy-0.1.1.dev77/examples/config/albedo/example_albedo_rgb.json +0 -61
  322. terraingenpy-0.1.1.dev77/examples/config/boulders/example_boulders_max_slope.json +0 -47
  323. terraingenpy-0.1.1.dev77/examples/config/boulders/example_boulders_rolling.json +0 -48
  324. terraingenpy-0.1.1.dev77/examples/config/boulders/example_boulders_shapes.json +0 -64
  325. terraingenpy-0.1.1.dev77/examples/config/planets/example_planets_mars_bedforms.json +0 -53
  326. terraingenpy-0.1.1.dev77/examples/config/planets/example_planets_mars_dunes.json +0 -71
  327. terraingenpy-0.1.1.dev77/examples/config/planets/example_planets_mars_exposure.json +0 -62
  328. terraingenpy-0.1.1.dev77/examples/config/planets/example_planets_mars_pavement.json +0 -72
  329. terraingenpy-0.1.1.dev77/examples/config/planets/example_planets_mars_sand_shadows.json +0 -65
  330. terraingenpy-0.1.1.dev77/examples/config/planets/example_planets_mars_strata.json +0 -65
  331. terraingenpy-0.1.1.dev77/examples/config/planets/example_planets_mars_ventifacts.json +0 -67
  332. terraingenpy-0.1.1.dev77/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -110
  333. terraingenpy-0.1.1.dev77/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -125
  334. terraingenpy-0.1.1.dev77/examples/cpp/craters/example_craters_manual.cpp +0 -107
  335. terraingenpy-0.1.1.dev77/examples/cpp/sources/example_sources_raster_detail.cpp +0 -128
  336. terraingenpy-0.1.1.dev77/examples/python/albedo/example_albedo_options.py +0 -146
  337. terraingenpy-0.1.1.dev77/examples/python/boulders/example_boulders_positioning.py +0 -100
  338. terraingenpy-0.1.1.dev77/examples/python/craters/example_craters_irregularity.py +0 -95
  339. terraingenpy-0.1.1.dev77/examples/python/planets/example_planets_mars.py +0 -82
  340. terraingenpy-0.1.1.dev77/examples/python/planets/example_planets_mars_dunes.py +0 -64
  341. terraingenpy-0.1.1.dev77/examples/python/planets/example_planets_mars_exposure.py +0 -103
  342. terraingenpy-0.1.1.dev77/terraingen/CMakeLists.txt +0 -126
  343. terraingenpy-0.1.1.dev77/terraingen/albedo/blast_zones.cpp +0 -115
  344. terraingenpy-0.1.1.dev77/terraingen/albedo/blast_zones.h +0 -77
  345. terraingenpy-0.1.1.dev77/terraingen/albedo/crater_albedo.cpp +0 -862
  346. terraingenpy-0.1.1.dev77/terraingen/albedo/crater_albedo.h +0 -361
  347. terraingenpy-0.1.1.dev77/terraingen/albedo/maturity.h +0 -37
  348. terraingenpy-0.1.1.dev77/terraingen/albedo/photometry.h +0 -50
  349. terraingenpy-0.1.1.dev77/terraingen/albedo/raster_albedo.h +0 -98
  350. terraingenpy-0.1.1.dev77/terraingen/albedo/rock_albedo.cpp +0 -122
  351. terraingenpy-0.1.1.dev77/terraingen/albedo/rock_albedo.h +0 -72
  352. terraingenpy-0.1.1.dev77/terraingen/albedo/slope_albedo.h +0 -74
  353. terraingenpy-0.1.1.dev77/terraingen/albedo/splotches.cpp +0 -463
  354. terraingenpy-0.1.1.dev77/terraingen/albedo/splotches.h +0 -169
  355. terraingenpy-0.1.1.dev77/terraingen/albedo/synthetic.h +0 -79
  356. terraingenpy-0.1.1.dev77/terraingen/app/CMakeLists.txt +0 -30
  357. terraingenpy-0.1.1.dev77/terraingen/app/gui/CMakeLists.txt +0 -7
  358. terraingenpy-0.1.1.dev77/terraingen/app/gui/config_editor.cpp +0 -919
  359. terraingenpy-0.1.1.dev77/terraingen/config/build.cpp +0 -807
  360. terraingenpy-0.1.1.dev77/terraingen/config/build.h +0 -152
  361. terraingenpy-0.1.1.dev77/terraingen/config/config.h +0 -880
  362. terraingenpy-0.1.1.dev77/terraingen/config/feature_lists.cpp +0 -274
  363. terraingenpy-0.1.1.dev77/terraingen/config/fields/albedo.h +0 -562
  364. terraingenpy-0.1.1.dev77/terraingen/config/fields/boulders.h +0 -535
  365. terraingenpy-0.1.1.dev77/terraingen/config/fields/common.h +0 -196
  366. terraingenpy-0.1.1.dev77/terraingen/config/fields/craters.h +0 -431
  367. terraingenpy-0.1.1.dev77/terraingen/config/fields/enums.h +0 -370
  368. terraingenpy-0.1.1.dev77/terraingen/config/fields/json_io.h +0 -329
  369. terraingenpy-0.1.1.dev77/terraingen/config/fields/layers.h +0 -529
  370. terraingenpy-0.1.1.dev77/terraingen/config/fields/materials.h +0 -56
  371. terraingenpy-0.1.1.dev77/terraingen/config/fields/outputs.h +0 -177
  372. terraingenpy-0.1.1.dev77/terraingen/config/fields/ranges.h +0 -114
  373. terraingenpy-0.1.1.dev77/terraingen/config/generate.cpp +0 -431
  374. terraingenpy-0.1.1.dev77/terraingen/config/generate.h +0 -104
  375. terraingenpy-0.1.1.dev77/terraingen/config/json.cpp +0 -162
  376. terraingenpy-0.1.1.dev77/terraingen/config/schema.cpp +0 -244
  377. terraingenpy-0.1.1.dev77/terraingen/config/validate.cpp +0 -768
  378. terraingenpy-0.1.1.dev77/terraingen/distribution/composition.cpp +0 -67
  379. terraingenpy-0.1.1.dev77/terraingen/distribution/composition.h +0 -111
  380. terraingenpy-0.1.1.dev77/terraingen/distribution/golombek_rapp.cpp +0 -40
  381. terraingenpy-0.1.1.dev77/terraingen/distribution/piecewise_uniform.h +0 -55
  382. terraingenpy-0.1.1.dev77/terraingen/distribution/power_law.h +0 -71
  383. terraingenpy-0.1.1.dev77/terraingen/distribution/sp8023.cpp +0 -125
  384. terraingenpy-0.1.1.dev77/terraingen/gpu/cuda.cpp +0 -331
  385. terraingenpy-0.1.1.dev77/terraingen/gpu/cuda.h +0 -54
  386. terraingenpy-0.1.1.dev77/terraingen/gpu/device.h +0 -103
  387. terraingenpy-0.1.1.dev77/terraingen/gpu/kernel.cpp +0 -149
  388. terraingenpy-0.1.1.dev77/terraingen/gpu/kernel.h +0 -40
  389. terraingenpy-0.1.1.dev77/terraingen/gpu/metal.cpp +0 -196
  390. terraingenpy-0.1.1.dev77/terraingen/gpu/metal.h +0 -49
  391. terraingenpy-0.1.1.dev77/terraingen/gpu/program.h +0 -23
  392. terraingenpy-0.1.1.dev77/terraingen/gpu/vulkan.cpp +0 -570
  393. terraingenpy-0.1.1.dev77/terraingen/gpu/vulkan.h +0 -73
  394. terraingenpy-0.1.1.dev77/terraingen/layers/CMakeLists.txt +0 -76
  395. terraingenpy-0.1.1.dev77/terraingen/layers/bedforms.cpp +0 -200
  396. terraingenpy-0.1.1.dev77/terraingen/layers/bedforms.h +0 -108
  397. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/abundance.cpp +0 -383
  398. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder.h +0 -88
  399. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_clusters.cpp +0 -60
  400. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_fragments.cpp +0 -111
  401. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_layer.cpp +0 -926
  402. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_layer.h +0 -366
  403. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_models.cpp +0 -318
  404. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_models.h +0 -93
  405. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_options.cpp +0 -262
  406. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_options.h +0 -409
  407. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_shape.cpp +0 -476
  408. terraingenpy-0.1.1.dev77/terraingen/layers/boulders/boulder_shape.h +0 -112
  409. terraingenpy-0.1.1.dev77/terraingen/layers/craters/crater.cpp +0 -91
  410. terraingenpy-0.1.1.dev77/terraingen/layers/craters/crater.h +0 -148
  411. terraingenpy-0.1.1.dev77/terraingen/layers/craters/crater_layer.h +0 -136
  412. terraingenpy-0.1.1.dev77/terraingen/layers/craters/crater_placer.cpp +0 -32
  413. terraingenpy-0.1.1.dev77/terraingen/layers/craters/crater_placer.h +0 -48
  414. terraingenpy-0.1.1.dev77/terraingen/layers/craters/degradation/diffusion.cpp +0 -329
  415. terraingenpy-0.1.1.dev77/terraingen/layers/craters/degradation/diffusion.h +0 -150
  416. terraingenpy-0.1.1.dev77/terraingen/layers/craters/degradation/state.h +0 -38
  417. terraingenpy-0.1.1.dev77/terraingen/layers/craters/generation/cell_cache.h +0 -63
  418. terraingenpy-0.1.1.dev77/terraingen/layers/craters/generation/population.h +0 -158
  419. terraingenpy-0.1.1.dev77/terraingen/layers/craters/profiles/complex.cpp +0 -89
  420. terraingenpy-0.1.1.dev77/terraingen/layers/craters/profiles/complex.h +0 -82
  421. terraingenpy-0.1.1.dev77/terraingen/layers/craters/rays.cpp +0 -46
  422. terraingenpy-0.1.1.dev77/terraingen/layers/craters/rays.h +0 -40
  423. terraingenpy-0.1.1.dev77/terraingen/layers/craters/secondaries.cpp +0 -397
  424. terraingenpy-0.1.1.dev77/terraingen/layers/craters/secondary_model.cpp +0 -257
  425. terraingenpy-0.1.1.dev77/terraingen/layers/craters/secondary_model.h +0 -218
  426. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/apply.cpp +0 -1169
  427. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/apply.h +0 -93
  428. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/apply_options.h +0 -166
  429. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/attributes.h +0 -30
  430. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/irregularity.cpp +0 -347
  431. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/irregularity.h +0 -135
  432. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/prepared.cpp +0 -27
  433. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/prepared.h +0 -51
  434. terraingenpy-0.1.1.dev77/terraingen/layers/craters/shaping/slope.h +0 -82
  435. terraingenpy-0.1.1.dev77/terraingen/layers/density_map.cpp +0 -118
  436. terraingenpy-0.1.1.dev77/terraingen/layers/density_map.h +0 -131
  437. terraingenpy-0.1.1.dev77/terraingen/layers/dunes.cpp +0 -634
  438. terraingenpy-0.1.1.dev77/terraingen/layers/dunes.h +0 -229
  439. terraingenpy-0.1.1.dev77/terraingen/layers/evaluation_cache.h +0 -59
  440. terraingenpy-0.1.1.dev77/terraingen/layers/exposure.h +0 -78
  441. terraingenpy-0.1.1.dev77/terraingen/layers/fade.h +0 -42
  442. terraingenpy-0.1.1.dev77/terraingen/layers/ground.cpp +0 -41
  443. terraingenpy-0.1.1.dev77/terraingen/layers/ground.h +0 -79
  444. terraingenpy-0.1.1.dev77/terraingen/layers/kernel.h +0 -43
  445. terraingenpy-0.1.1.dev77/terraingen/layers/pavement.cpp +0 -260
  446. terraingenpy-0.1.1.dev77/terraingen/layers/pavement.h +0 -128
  447. terraingenpy-0.1.1.dev77/terraingen/layers/region.h +0 -109
  448. terraingenpy-0.1.1.dev77/terraingen/layers/roughness.cpp +0 -194
  449. terraingenpy-0.1.1.dev77/terraingen/layers/roughness.h +0 -94
  450. terraingenpy-0.1.1.dev77/terraingen/layers/sample_block.cpp +0 -55
  451. terraingenpy-0.1.1.dev77/terraingen/layers/sample_block.h +0 -85
  452. terraingenpy-0.1.1.dev77/terraingen/layers/sand_fill.cpp +0 -79
  453. terraingenpy-0.1.1.dev77/terraingen/layers/sand_fill.h +0 -73
  454. terraingenpy-0.1.1.dev77/terraingen/layers/sand_shadow.cpp +0 -149
  455. terraingenpy-0.1.1.dev77/terraingen/layers/sand_shadow.h +0 -101
  456. terraingenpy-0.1.1.dev77/terraingen/layers/strata.cpp +0 -140
  457. terraingenpy-0.1.1.dev77/terraingen/layers/strata.h +0 -103
  458. terraingenpy-0.1.1.dev77/terraingen/mesh/io/formats.h +0 -67
  459. terraingenpy-0.1.1.dev77/terraingen/mesh/io/gltf.cpp +0 -299
  460. terraingenpy-0.1.1.dev77/terraingen/mesh/io/icq.cpp +0 -220
  461. terraingenpy-0.1.1.dev77/terraingen/mesh/io/icq.h +0 -77
  462. terraingenpy-0.1.1.dev77/terraingen/mesh/io/mesh_io.h +0 -65
  463. terraingenpy-0.1.1.dev77/terraingen/noise/fractal.h +0 -316
  464. terraingenpy-0.1.1.dev77/terraingen/noise/hash.h +0 -77
  465. terraingenpy-0.1.1.dev77/terraingen/noise/noise_layers.h +0 -224
  466. terraingenpy-0.1.1.dev77/terraingen/noise/perlin.h +0 -165
  467. terraingenpy-0.1.1.dev77/terraingen/pipeline/body_mesh.cpp +0 -116
  468. terraingenpy-0.1.1.dev77/terraingen/pipeline/height_mesh.cpp +0 -70
  469. terraingenpy-0.1.1.dev77/terraingen/pipeline/materials.h +0 -50
  470. terraingenpy-0.1.1.dev77/terraingen/pipeline/terrain.cpp +0 -202
  471. terraingenpy-0.1.1.dev77/terraingen/pipeline/terrain.h +0 -147
  472. terraingenpy-0.1.1.dev77/terraingen/pipeline/tiles.h +0 -161
  473. terraingenpy-0.1.1.dev77/terraingen/python/src/albedo.cpp +0 -470
  474. terraingenpy-0.1.1.dev77/terraingen/python/src/boulders.cpp +0 -402
  475. terraingenpy-0.1.1.dev77/terraingen/python/src/craters.cpp +0 -499
  476. terraingenpy-0.1.1.dev77/terraingen/python/src/distribution.cpp +0 -377
  477. terraingenpy-0.1.1.dev77/terraingen/python/src/layers.cpp +0 -435
  478. terraingenpy-0.1.1.dev77/terraingen/python/src/materials.cpp +0 -106
  479. terraingenpy-0.1.1.dev77/terraingen/python/src/mesh.cpp +0 -228
  480. terraingenpy-0.1.1.dev77/terraingen/python/src/options.h +0 -211
  481. terraingenpy-0.1.1.dev77/terraingen/python/src/pipeline.cpp +0 -530
  482. terraingenpy-0.1.1.dev77/terraingen/python/src/sources.cpp +0 -187
  483. terraingenpy-0.1.1.dev77/terraingen/python/src/tables.h +0 -92
  484. terraingenpy-0.1.1.dev77/terraingen/python/src/util.cpp +0 -237
  485. terraingenpy-0.1.1.dev77/terraingen/python/terraingen/render.py +0 -237
  486. terraingenpy-0.1.1.dev77/terraingen/random/philox.h +0 -79
  487. terraingenpy-0.1.1.dev77/terraingen/random/samplers.cpp +0 -143
  488. terraingenpy-0.1.1.dev77/terraingen/random/streams.h +0 -143
  489. terraingenpy-0.1.1.dev77/terraingen/random/value_distribution.h +0 -50
  490. terraingenpy-0.1.1.dev77/terraingen/raster/cell_loops.cpp +0 -65
  491. terraingenpy-0.1.1.dev77/terraingen/raster/cell_loops.h +0 -116
  492. terraingenpy-0.1.1.dev77/terraingen/raster/geo_transform.h +0 -71
  493. terraingenpy-0.1.1.dev77/terraingen/raster/geotiff/geotiff.h +0 -171
  494. terraingenpy-0.1.1.dev77/terraingen/raster/geotiff/geotiff_read.cpp +0 -663
  495. terraingenpy-0.1.1.dev77/terraingen/raster/geotiff/tiff_codecs.cpp +0 -378
  496. terraingenpy-0.1.1.dev77/terraingen/raster/geotiff/tiff_codecs.h +0 -51
  497. terraingenpy-0.1.1.dev77/terraingen/raster/geotiff/tiff_format.h +0 -154
  498. terraingenpy-0.1.1.dev77/terraingen/raster/grid.h +0 -77
  499. terraingenpy-0.1.1.dev77/terraingen/raster/raster.h +0 -164
  500. terraingenpy-0.1.1.dev77/terraingen/raster/resample.cpp +0 -126
  501. terraingenpy-0.1.1.dev77/terraingen/raster/resample.h +0 -74
  502. terraingenpy-0.1.1.dev77/terraingen/sources/CMakeLists.txt +0 -12
  503. terraingenpy-0.1.1.dev77/terraingen/sources/field.cpp +0 -109
  504. terraingenpy-0.1.1.dev77/terraingen/sources/field.h +0 -115
  505. terraingenpy-0.1.1.dev77/terraingen/sources/geotiff_source.cpp +0 -170
  506. terraingenpy-0.1.1.dev77/terraingen/sources/geotiff_source.h +0 -108
  507. terraingenpy-0.1.1.dev77/terraingen/sources/source.h +0 -44
  508. terraingenpy-0.1.1.dev77/terraingen/sources/source_chain.cpp +0 -54
  509. terraingenpy-0.1.1.dev77/terraingen/sources/source_chain.h +0 -53
  510. terraingenpy-0.1.1.dev77/terraingen/sources/synthetic_terrain.h +0 -40
  511. terraingenpy-0.1.1.dev77/terraingen/terraingen.h +0 -134
  512. terraingenpy-0.1.1.dev77/terraingen/util/arithmetic.h +0 -22
  513. terraingenpy-0.1.1.dev77/terraingen/util/cells.h +0 -189
  514. terraingenpy-0.1.1.dev77/terraingen/util/cube_faces.h +0 -74
  515. terraingenpy-0.1.1.dev77/terraingen/util/cube_sphere_cells.cpp +0 -344
  516. terraingenpy-0.1.1.dev77/terraingen/util/fft.cpp +0 -48
  517. terraingenpy-0.1.1.dev77/terraingen/util/geometry.h +0 -139
  518. terraingenpy-0.1.1.dev77/terraingen/util/radial_shape.cpp +0 -159
  519. terraingenpy-0.1.1.dev77/terraingen/util/radial_shape.h +0 -95
  520. terraingenpy-0.1.1.dev77/terraingen/util/special_functions.cpp +0 -77
  521. terraingenpy-0.1.1.dev77/terraingen/util/surface.cpp +0 -334
  522. terraingenpy-0.1.1.dev77/terraingen/util/surface.h +0 -223
  523. terraingenpy-0.1.1.dev77/tests/benchmark/bench_craters.cpp +0 -58
  524. terraingenpy-0.1.1.dev77/tests/python/test_albedo.py +0 -301
  525. terraingenpy-0.1.1.dev77/tests/python/test_boulders.py +0 -311
  526. terraingenpy-0.1.1.dev77/tests/python/test_craters.py +0 -481
  527. terraingenpy-0.1.1.dev77/tests/python/test_layers.py +0 -436
  528. terraingenpy-0.1.1.dev77/tests/python/test_meshes.py +0 -207
  529. terraingenpy-0.1.1.dev77/tests/python/test_raster.py +0 -249
  530. terraingenpy-0.1.1.dev77/tests/python/test_render.py +0 -146
  531. terraingenpy-0.1.1.dev77/tests/python/test_sources.py +0 -157
  532. terraingenpy-0.1.1.dev77/tests/python/test_util.py +0 -206
  533. terraingenpy-0.1.1.dev77/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -94
  534. terraingenpy-0.1.1.dev77/tests/statistical/layers/craters/population_test.cpp +0 -129
  535. terraingenpy-0.1.1.dev77/tests/statistical/layers/roughness_test.cpp +0 -50
  536. terraingenpy-0.1.1.dev77/tests/unit/albedo/albedo_test.cpp +0 -427
  537. terraingenpy-0.1.1.dev77/tests/unit/albedo/bands_test.cpp +0 -71
  538. terraingenpy-0.1.1.dev77/tests/unit/albedo/blast_zones_test.cpp +0 -122
  539. terraingenpy-0.1.1.dev77/tests/unit/albedo/crater_albedo_test.cpp +0 -829
  540. terraingenpy-0.1.1.dev77/tests/unit/albedo/rock_albedo_test.cpp +0 -158
  541. terraingenpy-0.1.1.dev77/tests/unit/albedo/slope_albedo_test.cpp +0 -113
  542. terraingenpy-0.1.1.dev77/tests/unit/albedo/splotches_test.cpp +0 -392
  543. terraingenpy-0.1.1.dev77/tests/unit/app/cli_test.cpp +0 -273
  544. terraingenpy-0.1.1.dev77/tests/unit/app/gui/config_editor_test.cpp +0 -186
  545. terraingenpy-0.1.1.dev77/tests/unit/config/CMakeLists.txt +0 -19
  546. terraingenpy-0.1.1.dev77/tests/unit/config/build_test.cpp +0 -671
  547. terraingenpy-0.1.1.dev77/tests/unit/config/feature_lists_test.cpp +0 -140
  548. terraingenpy-0.1.1.dev77/tests/unit/config/generate_terrain_test.cpp +0 -595
  549. terraingenpy-0.1.1.dev77/tests/unit/config/json_io_test.cpp +0 -602
  550. terraingenpy-0.1.1.dev77/tests/unit/config/schema_test.cpp +0 -533
  551. terraingenpy-0.1.1.dev77/tests/unit/config/validate_config_test.cpp +0 -678
  552. terraingenpy-0.1.1.dev77/tests/unit/config/write_outputs_test.cpp +0 -349
  553. terraingenpy-0.1.1.dev77/tests/unit/distribution/golombek_rapp_test.cpp +0 -56
  554. terraingenpy-0.1.1.dev77/tests/unit/gpu/noise_test.cpp +0 -170
  555. terraingenpy-0.1.1.dev77/tests/unit/gpu/vulkan_test.cpp +0 -152
  556. terraingenpy-0.1.1.dev77/tests/unit/layers/CMakeLists.txt +0 -56
  557. terraingenpy-0.1.1.dev77/tests/unit/layers/bedforms_test.cpp +0 -159
  558. terraingenpy-0.1.1.dev77/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -311
  559. terraingenpy-0.1.1.dev77/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -1330
  560. terraingenpy-0.1.1.dev77/tests/unit/layers/boulders/boulder_models_test.cpp +0 -201
  561. terraingenpy-0.1.1.dev77/tests/unit/layers/boulders/boulder_options_test.cpp +0 -81
  562. terraingenpy-0.1.1.dev77/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -245
  563. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/ages/freshness_test.cpp +0 -166
  564. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/crater_layer_test.cpp +0 -197
  565. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/crater_test.cpp +0 -41
  566. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -227
  567. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/generation/population_test.cpp +0 -673
  568. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/generation/spacing_test.cpp +0 -164
  569. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/profiles/complex_test.cpp +0 -101
  570. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/secondaries_test.cpp +0 -534
  571. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/shaping/apply_test.cpp +0 -605
  572. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -491
  573. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -363
  574. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/shaping/slope_test.cpp +0 -303
  575. terraingenpy-0.1.1.dev77/tests/unit/layers/craters/sphere_test.cpp +0 -375
  576. terraingenpy-0.1.1.dev77/tests/unit/layers/density_map_test.cpp +0 -135
  577. terraingenpy-0.1.1.dev77/tests/unit/layers/dunes_test.cpp +0 -464
  578. terraingenpy-0.1.1.dev77/tests/unit/layers/exposure_test.cpp +0 -136
  579. terraingenpy-0.1.1.dev77/tests/unit/layers/layer_test.cpp +0 -56
  580. terraingenpy-0.1.1.dev77/tests/unit/layers/noise_relief_test.cpp +0 -291
  581. terraingenpy-0.1.1.dev77/tests/unit/layers/roughness_test.cpp +0 -149
  582. terraingenpy-0.1.1.dev77/tests/unit/layers/sand_shadow_test.cpp +0 -182
  583. terraingenpy-0.1.1.dev77/tests/unit/layers/sphere_layers_test.cpp +0 -215
  584. terraingenpy-0.1.1.dev77/tests/unit/layers/strata_test.cpp +0 -241
  585. terraingenpy-0.1.1.dev77/tests/unit/mesh/io/icq_test.cpp +0 -231
  586. terraingenpy-0.1.1.dev77/tests/unit/mesh/mesh_test.cpp +0 -160
  587. terraingenpy-0.1.1.dev77/tests/unit/mesh/polyhedra_test.cpp +0 -74
  588. terraingenpy-0.1.1.dev77/tests/unit/noise/hash_test.cpp +0 -81
  589. terraingenpy-0.1.1.dev77/tests/unit/pipeline/features_test.cpp +0 -143
  590. terraingenpy-0.1.1.dev77/tests/unit/pipeline/terrain_tiles_test.cpp +0 -337
  591. terraingenpy-0.1.1.dev77/tests/unit/random/value_distribution_test.cpp +0 -110
  592. terraingenpy-0.1.1.dev77/tests/unit/raster/cell_loops_test.cpp +0 -98
  593. terraingenpy-0.1.1.dev77/tests/unit/raster/geotiff_test.cpp +0 -419
  594. terraingenpy-0.1.1.dev77/tests/unit/raster/resample_test.cpp +0 -165
  595. terraingenpy-0.1.1.dev77/tests/unit/sources/CMakeLists.txt +0 -10
  596. terraingenpy-0.1.1.dev77/tests/unit/sources/field_test.cpp +0 -104
  597. terraingenpy-0.1.1.dev77/tests/unit/sources/flat_source_test.cpp +0 -56
  598. terraingenpy-0.1.1.dev77/tests/unit/sources/geotiff_source_test.cpp +0 -211
  599. terraingenpy-0.1.1.dev77/tests/unit/sources/source_chain_test.cpp +0 -139
  600. terraingenpy-0.1.1.dev77/tests/unit/util/CMakeLists.txt +0 -20
  601. terraingenpy-0.1.1.dev77/tests/unit/util/fft_test.cpp +0 -50
  602. terraingenpy-0.1.1.dev77/tests/unit/util/geometry_test.cpp +0 -64
  603. terraingenpy-0.1.1.dev77/tests/unit/util/surface_test.cpp +0 -680
  604. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.clang-format +0 -0
  605. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.clang-tidy +0 -0
  606. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.cmake-format.yaml +0 -0
  607. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.dockerignore +0 -0
  608. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.gitattributes +0 -0
  609. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  610. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  611. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  612. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.github/pull_request_template.md +0 -0
  613. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.github/scripts/install-lavapipe-windows.sh +0 -0
  614. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.github/workflows/ci.yml +0 -0
  615. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/.gitignore +0 -0
  616. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/CITATION.cff +0 -0
  617. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/Dockerfile +0 -0
  618. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/LICENSE +0 -0
  619. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/README.md +0 -0
  620. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_diff_4k.jpg +0 -0
  621. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_disp_4k.png +0 -0
  622. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
  623. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_rough_4k.exr +0 -0
  624. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_ao_2k.png +0 -0
  625. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_arm_2k.png +0 -0
  626. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_diff_2k.png +0 -0
  627. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_disp_2k.png +0 -0
  628. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_nor_dx_2k.exr +0 -0
  629. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_nor_gl_2k.exr +0 -0
  630. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_rough_2k.exr +0 -0
  631. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/BuildInfo.cmake +0 -0
  632. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/CoverageBadge.cmake +0 -0
  633. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/EmbedFile.cmake +0 -0
  634. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/Kernel.cpp.in +0 -0
  635. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/TerrainGenPackaging.cmake +0 -0
  636. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/TerrainGenSlang.cmake +0 -0
  637. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/TerrainGenTesting.cmake +0 -0
  638. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/terraingenConfig.cmake.in +0 -0
  639. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/benchmark.cmake +0 -0
  640. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/ernie.cmake +0 -0
  641. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/googletest.cmake +0 -0
  642. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/mesh_formats.cmake +0 -0
  643. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/miniz.cmake +0 -0
  644. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/nanobind.cmake +0 -0
  645. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/nvrtc.cmake +0 -0
  646. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/slang.cmake +0 -0
  647. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/volk.cmake +0 -0
  648. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/cmake/third_party/vulkan_headers.cmake +0 -0
  649. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/.gitignore +0 -0
  650. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/Makefile +0 -0
  651. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/README.md +0 -0
  652. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/api/cpp.md +0 -0
  653. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/api/python.md +0 -0
  654. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/concepts/index.md +0 -0
  655. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/css/extra.css +0 -0
  656. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/getting-started/command-line.md +0 -0
  657. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/getting-started/gui.md +0 -0
  658. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/getting-started/index.md +0 -0
  659. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/getting-started/installation.md +0 -0
  660. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/getting-started/quickstart.md +0 -0
  661. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/guides/index.md +0 -0
  662. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
  663. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg +0 -0
  664. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/index.md +0 -0
  665. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/overrides/home.html +0 -0
  666. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/overrides/partials/header.html +0 -0
  667. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/requirements.txt +0 -0
  668. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/scripts/generate_schema.py +0 -0
  669. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/docs/validation/index.md +0 -0
  670. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/README.md +0 -0
  671. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_fresh.json +0 -0
  672. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_freshness.json +0 -0
  673. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_steady_state.json +0 -0
  674. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_uniform.json +0 -0
  675. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
  676. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_moon_site.json +0 -0
  677. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
  678. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_synthetic.json +0 -0
  679. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_buried.json +0 -0
  680. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_ejecta.json +0 -0
  681. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_exposure.json +0 -0
  682. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_fragments.json +0 -0
  683. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_layer.json +0 -0
  684. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_models.json +0 -0
  685. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_patches.json +0 -0
  686. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_rock_abundance.json +0 -0
  687. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_scene.json +0 -0
  688. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_slope_map.json +0 -0
  689. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_sp8023.json +0 -0
  690. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
  691. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
  692. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_datum.json +0 -0
  693. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
  694. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_degradation_none.json +0 -0
  695. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_interior_replacement.json +0 -0
  696. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_irregular.json +0 -0
  697. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_manual.json +0 -0
  698. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_max_craters.json +0 -0
  699. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_profile_complex.json +0 -0
  700. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
  701. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
  702. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_secondaries.json +0 -0
  703. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_secondary_rays.json +0 -0
  704. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_simple.json +0 -0
  705. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_slopes.json +0 -0
  706. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
  707. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_spacing.json +0 -0
  708. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_texture.json +0 -0
  709. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_wall_marks.json +0 -0
  710. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
  711. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
  712. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -0
  713. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_power_law.json +0 -0
  714. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_tabulated.json +0 -0
  715. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
  716. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_viper.json +0 -0
  717. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/layers/example_layers_regions.json +0 -0
  718. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/layers/example_layers_roughness.json +0 -0
  719. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
  720. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
  721. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_craters.json +0 -0
  722. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
  723. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mercury_site.json +0 -0
  724. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
  725. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_moon_site.json +0 -0
  726. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_billow.json +0 -0
  727. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_cellular.json +0 -0
  728. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
  729. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_fbm.json +0 -0
  730. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_layered.json +0 -0
  731. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_ridged.json +0 -0
  732. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_roughness.json +0 -0
  733. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_voronoi.json +0 -0
  734. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/CMakeLists.txt +0 -0
  735. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/ages/example_ages_models.cpp +0 -0
  736. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
  737. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
  738. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/common/browser.cpp +0 -0
  739. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/common/browser.h +0 -0
  740. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/common/example.cpp +0 -0
  741. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/common/example.h +0 -0
  742. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/common/main.cpp +0 -0
  743. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/common/standalone_main.cpp +0 -0
  744. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/config/example_config_load.cpp +0 -0
  745. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
  746. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
  747. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
  748. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_simple.cpp +0 -0
  749. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
  750. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/layers/example_layers_custom.cpp +0 -0
  751. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/layers/example_layers_regions.cpp +0 -0
  752. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/planets/example_planets_moon.cpp +0 -0
  753. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
  754. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
  755. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
  756. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -0
  757. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
  758. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/__main__.py +0 -0
  759. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/_browser.py +0 -0
  760. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/_common.py +0 -0
  761. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/_harness.py +0 -0
  762. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/_images.py +0 -0
  763. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/ages/example_ages_models.py +0 -0
  764. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
  765. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/albedo/example_albedo_moon_site.py +0 -0
  766. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_exposure.py +0 -0
  767. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_layer.py +0 -0
  768. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_shapes.py +0 -0
  769. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_size_models.py +0 -0
  770. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/config/example_config_load.py +0 -0
  771. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_age_sweep.py +0 -0
  772. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_apply_options.py +0 -0
  773. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_degradation.py +0 -0
  774. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_manual.py +0 -0
  775. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_positioning.py +0 -0
  776. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_profiles.py +0 -0
  777. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
  778. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_secondaries.py +0 -0
  779. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_simple.py +0 -0
  780. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/distributions/example_distributions_csfd.py +0 -0
  781. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/distributions/example_distributions_custom.py +0 -0
  782. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/layers/example_layers_custom.py +0 -0
  783. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/layers/example_layers_regions.py +0 -0
  784. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_body_mesh.py +0 -0
  785. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_mercury.py +0 -0
  786. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_moon_site.py +0 -0
  787. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/sources/example_sources_chain.py +0 -0
  788. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/sources/example_sources_raster_detail.py +0 -0
  789. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_fbm.py +0 -0
  790. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
  791. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
  792. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_layered.py +0 -0
  793. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
  794. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
  795. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_point_queries.py +0 -0
  796. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_quadtree.py +0 -0
  797. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
  798. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/mkdocs.yml +0 -0
  799. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/pyproject.toml +0 -0
  800. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/CMakeLists.txt +0 -0
  801. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/albedo.cpp +0 -0
  802. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/albedo.h +0 -0
  803. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/bands.cpp +0 -0
  804. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/bands.h +0 -0
  805. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/brightness_statistics.cpp +0 -0
  806. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/brightness_statistics.h +0 -0
  807. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/maturity.cpp +0 -0
  808. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/photometry.cpp +0 -0
  809. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/raster_albedo.cpp +0 -0
  810. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/slope_albedo.cpp +0 -0
  811. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/albedo/synthetic.cpp +0 -0
  812. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/cli.cpp +0 -0
  813. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/cli.h +0 -0
  814. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/config_editor.h +0 -0
  815. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/gui_app.cpp +0 -0
  816. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/gui_app.h +0 -0
  817. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/run.cpp +0 -0
  818. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/run.h +0 -0
  819. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/run_none.cpp +0 -0
  820. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/terrain_scene.cpp +0 -0
  821. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/terrain_scene.h +0 -0
  822. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/widgets.h +0 -0
  823. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/app/main.cpp +0 -0
  824. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/CMakeLists.txt +0 -0
  825. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/config.cpp +0 -0
  826. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/checks.h +0 -0
  827. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/crater_models.h +0 -0
  828. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/fields.h +0 -0
  829. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/maps.h +0 -0
  830. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/sources.h +0 -0
  831. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/json.h +0 -0
  832. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/ranges.cpp +0 -0
  833. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/config/validate.h +0 -0
  834. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/CMakeLists.txt +0 -0
  835. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/equilibrium.cpp +0 -0
  836. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/equilibrium.h +0 -0
  837. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/exponential_chronology.cpp +0 -0
  838. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/exponential_chronology.h +0 -0
  839. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/golombek_rapp.h +0 -0
  840. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/ivanov.cpp +0 -0
  841. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/ivanov.h +0 -0
  842. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/log_polynomial.cpp +0 -0
  843. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/log_polynomial.h +0 -0
  844. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/minimum.cpp +0 -0
  845. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/minimum.h +0 -0
  846. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/moore.cpp +0 -0
  847. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/moore.h +0 -0
  848. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/neukum.cpp +0 -0
  849. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/neukum.h +0 -0
  850. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/piecewise_power_law.cpp +0 -0
  851. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/piecewise_power_law.h +0 -0
  852. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/piecewise_uniform.cpp +0 -0
  853. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/power_law.cpp +0 -0
  854. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/production_surface.cpp +0 -0
  855. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/production_surface.h +0 -0
  856. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/size_frequency.cpp +0 -0
  857. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/size_frequency.h +0 -0
  858. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/sp8023.h +0 -0
  859. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/spliced.cpp +0 -0
  860. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/spliced.h +0 -0
  861. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/summed.cpp +0 -0
  862. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/summed.h +0 -0
  863. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/synthterrain.cpp +0 -0
  864. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/synthterrain.h +0 -0
  865. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/tabulated.cpp +0 -0
  866. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/tabulated.h +0 -0
  867. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/viper.cpp +0 -0
  868. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/distribution/viper.h +0 -0
  869. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/gpu/CMakeLists.txt +0 -0
  870. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/gpu/backend.cpp +0 -0
  871. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/gpu/backend.h +0 -0
  872. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/gpu/kernel.slang +0 -0
  873. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/anchored_plane.cpp +0 -0
  874. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/anchored_plane.h +0 -0
  875. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/bisection.h +0 -0
  876. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_abundance.cpp +0 -0
  877. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_abundance.h +0 -0
  878. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_clusters.h +0 -0
  879. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_fragments.h +0 -0
  880. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_placer.h +0 -0
  881. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/ejecta_index.cpp +0 -0
  882. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/ejecta_index.h +0 -0
  883. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/age_model.cpp +0 -0
  884. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/age_model.h +0 -0
  885. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/freshness.cpp +0 -0
  886. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/freshness.h +0 -0
  887. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
  888. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/steady_state.h +0 -0
  889. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/crater_layer.cpp +0 -0
  890. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
  891. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
  892. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
  893. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/diffusivities.h +0 -0
  894. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
  895. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/freshness.h +0 -0
  896. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
  897. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/population.cpp +0 -0
  898. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/spacing.cpp +0 -0
  899. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/spacing.h +0 -0
  900. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
  901. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
  902. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
  903. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
  904. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/profile.h +0 -0
  905. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/secondaries.h +0 -0
  906. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
  907. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
  908. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -0
  909. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/crater_kernel.h +0 -0
  910. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/datum.cpp +0 -0
  911. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/datum.h +0 -0
  912. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
  913. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/morphometry.h +0 -0
  914. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/slope.cpp +0 -0
  915. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/detail.cpp +0 -0
  916. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/detail.h +0 -0
  917. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/exposure.cpp +0 -0
  918. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/fade.cpp +0 -0
  919. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/cell.h +0 -0
  920. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/crater_body_datums.slang +0 -0
  921. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/crater_datums.slang +0 -0
  922. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/craters.h +0 -0
  923. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/craters.slang +0 -0
  924. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/noise_relief.h +0 -0
  925. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/noise_relief.slang +0 -0
  926. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/lattice.h +0 -0
  927. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/layer.cpp +0 -0
  928. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/layer.h +0 -0
  929. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/material.cpp +0 -0
  930. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/material.h +0 -0
  931. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/noise_relief.cpp +0 -0
  932. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/noise_relief.h +0 -0
  933. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/region.cpp +0 -0
  934. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/transforms.cpp +0 -0
  935. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/layers/transforms.h +0 -0
  936. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/CMakeLists.txt +0 -0
  937. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/mesh_io.cpp +0 -0
  938. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/obj.cpp +0 -0
  939. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/stl.cpp +0 -0
  940. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/mesh.cpp +0 -0
  941. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/mesh.h +0 -0
  942. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/polyhedra.cpp +0 -0
  943. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/polyhedra.h +0 -0
  944. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/shape_model.cpp +0 -0
  945. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/mesh/shape_model.h +0 -0
  946. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/noise/CMakeLists.txt +0 -0
  947. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/noise/lattice.h +0 -0
  948. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/noise/simplex.h +0 -0
  949. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/noise/validate.cpp +0 -0
  950. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/noise/validate.h +0 -0
  951. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/noise/value.h +0 -0
  952. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/noise/worley.h +0 -0
  953. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/CMakeLists.txt +0 -0
  954. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/body_mesh.h +0 -0
  955. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/features.cpp +0 -0
  956. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/features.h +0 -0
  957. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/height_mesh.h +0 -0
  958. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/materials.cpp +0 -0
  959. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/tiles.cpp +0 -0
  960. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/CMakeLists.txt +0 -0
  961. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/arrays.h +0 -0
  962. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/bindings.h +0 -0
  963. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/casters.h +0 -0
  964. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/common.h +0 -0
  965. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/crater_models.cpp +0 -0
  966. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/gpu.cpp +0 -0
  967. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/module.cpp +0 -0
  968. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/noise.cpp +0 -0
  969. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/objects.h +0 -0
  970. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/random.cpp +0 -0
  971. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/raster.cpp +0 -0
  972. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/src/trampolines.h +0 -0
  973. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/python/terraingen/__init__.py +0 -0
  974. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/random/CMakeLists.txt +0 -0
  975. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/random/samplers.h +0 -0
  976. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/random/stream.cpp +0 -0
  977. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/random/stream.h +0 -0
  978. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/random/value_distribution.cpp +0 -0
  979. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/CMakeLists.txt +0 -0
  980. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/gaussian_blur.cpp +0 -0
  981. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/gaussian_blur.h +0 -0
  982. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/geotiff.cpp +0 -0
  983. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
  984. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
  985. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/grid.cpp +0 -0
  986. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/raster/raster_stats.h +0 -0
  987. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/sources/flat_source.cpp +0 -0
  988. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/sources/flat_source.h +0 -0
  989. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/sources/synthetic_terrain.cpp +0 -0
  990. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/CMakeLists.txt +0 -0
  991. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/build_info.cpp.in +0 -0
  992. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/build_info.h +0 -0
  993. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/checks.cpp +0 -0
  994. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/checks.h +0 -0
  995. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/fft.h +0 -0
  996. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/files.cpp +0 -0
  997. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/files.h +0 -0
  998. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/log.cpp +0 -0
  999. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/log.h +0 -0
  1000. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/lru_cache.h +0 -0
  1001. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/overloaded.h +0 -0
  1002. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/parallel.cpp +0 -0
  1003. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/parallel.h +0 -0
  1004. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/planar_cells.cpp +0 -0
  1005. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/portable.h +0 -0
  1006. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/special_functions.h +0 -0
  1007. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/text.cpp +0 -0
  1008. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/text.h +0 -0
  1009. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/version.cpp +0 -0
  1010. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/terraingen/util/version.h.in +0 -0
  1011. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/CMakeLists.txt +0 -0
  1012. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/benchmark/CMakeLists.txt +0 -0
  1013. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_boulders.cpp +0 -0
  1014. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_grids.cpp +0 -0
  1015. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_point_queries.cpp +0 -0
  1016. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_python_subclasses.py +0 -0
  1017. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/benchmark/fixtures.h +0 -0
  1018. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/golden/CMakeLists.txt +0 -0
  1019. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/golden/noise/kernels_test.cpp +0 -0
  1020. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/integration/CMakeLists.txt +0 -0
  1021. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/integration/build_info_stable.cmake +0 -0
  1022. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/integration/examples/CMakeLists.txt +0 -0
  1023. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/integration/package/CMakeLists.txt +0 -0
  1024. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/integration/package/main.cpp +0 -0
  1025. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/integration/package/test_debian_packages.cmake +0 -0
  1026. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/CMakeLists.txt +0 -0
  1027. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/conftest.py +0 -0
  1028. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_config.py +0 -0
  1029. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_crater_models.py +0 -0
  1030. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_distributions.py +0 -0
  1031. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_examples_harness.py +0 -0
  1032. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_gpu.py +0 -0
  1033. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_noise.py +0 -0
  1034. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_pipeline.py +0 -0
  1035. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_random.py +0 -0
  1036. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_stubs.py +0 -0
  1037. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/python/test_tiles.py +0 -0
  1038. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/statistical/CMakeLists.txt +0 -0
  1039. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/statistical/distribution/crater_references_test.cpp +0 -0
  1040. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
  1041. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
  1042. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/statistical/random/random_test.cpp +0 -0
  1043. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/support/log_capture.h +0 -0
  1044. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/support/lunar_craters.h +0 -0
  1045. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/support/raster_equality.h +0 -0
  1046. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/support/statistics.h +0 -0
  1047. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/support/temp_path.h +0 -0
  1048. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/CMakeLists.txt +0 -0
  1049. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/CMakeLists.txt +0 -0
  1050. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/photometry_test.cpp +0 -0
  1051. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/app/CMakeLists.txt +0 -0
  1052. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/app/gui/CMakeLists.txt +0 -0
  1053. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/app/gui/gui_app_test.cpp +0 -0
  1054. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
  1055. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/config/checks_test.cpp +0 -0
  1056. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/config/config_test.cpp +0 -0
  1057. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/config/configs.h +0 -0
  1058. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/config/json_parse_errors_test.cpp +0 -0
  1059. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/config/json_read_test.cpp +0 -0
  1060. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/config/ranges_test.cpp +0 -0
  1061. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/config/validate_sources_test.cpp +0 -0
  1062. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/CMakeLists.txt +0 -0
  1063. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/composition_test.cpp +0 -0
  1064. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/equilibrium_test.cpp +0 -0
  1065. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/exponential_chronology_test.cpp +0 -0
  1066. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/ivanov_test.cpp +0 -0
  1067. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
  1068. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/minimum_test.cpp +0 -0
  1069. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/moore_test.cpp +0 -0
  1070. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/neukum_test.cpp +0 -0
  1071. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
  1072. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/piecewise_uniform_test.cpp +0 -0
  1073. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/power_law_test.cpp +0 -0
  1074. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/production_surface_test.cpp +0 -0
  1075. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/size_frequency_test.cpp +0 -0
  1076. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/sp8023_test.cpp +0 -0
  1077. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/spliced_test.cpp +0 -0
  1078. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/summed_test.cpp +0 -0
  1079. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/synthterrain_test.cpp +0 -0
  1080. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/tabulated_test.cpp +0 -0
  1081. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/viper_test.cpp +0 -0
  1082. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/examples/CMakeLists.txt +0 -0
  1083. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/examples/example_browser_test.cpp +0 -0
  1084. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/examples/example_harness_test.cpp +0 -0
  1085. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/CMakeLists.txt +0 -0
  1086. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/backend_test.cpp +0 -0
  1087. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
  1088. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
  1089. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/anchored_plane_test.cpp +0 -0
  1090. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/bisection_test.cpp +0 -0
  1091. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -0
  1092. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
  1093. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
  1094. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
  1095. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
  1096. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
  1097. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
  1098. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
  1099. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
  1100. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/datum_test.cpp +0 -0
  1101. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
  1102. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/detail_test.cpp +0 -0
  1103. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
  1104. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/fade_test.cpp +0 -0
  1105. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/ground_test.cpp +0 -0
  1106. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/lattice_test.cpp +0 -0
  1107. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/pavement_test.cpp +0 -0
  1108. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/region_test.cpp +0 -0
  1109. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/sample_block_test.cpp +0 -0
  1110. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/sand_fill_test.cpp +0 -0
  1111. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/layers/transforms_test.cpp +0 -0
  1112. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/CMakeLists.txt +0 -0
  1113. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/io/mesh_io_test.cpp +0 -0
  1114. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/shape_model_test.cpp +0 -0
  1115. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/support.h +0 -0
  1116. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/CMakeLists.txt +0 -0
  1117. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/fractal_test.cpp +0 -0
  1118. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/noise3_test.cpp +0 -0
  1119. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/noise_layers_test.cpp +0 -0
  1120. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/perlin_test.cpp +0 -0
  1121. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/simplex_test.cpp +0 -0
  1122. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/validate_test.cpp +0 -0
  1123. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/value_test.cpp +0 -0
  1124. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/noise/worley_test.cpp +0 -0
  1125. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/CMakeLists.txt +0 -0
  1126. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/height_mesh_test.cpp +0 -0
  1127. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/materials_test.cpp +0 -0
  1128. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/terrain_test.cpp +0 -0
  1129. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/terrains.h +0 -0
  1130. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/tile_cache_test.cpp +0 -0
  1131. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/tiling_test.cpp +0 -0
  1132. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/random/CMakeLists.txt +0 -0
  1133. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/random/philox_test.cpp +0 -0
  1134. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/random/samplers_test.cpp +0 -0
  1135. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/random/stream_test.cpp +0 -0
  1136. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/CMakeLists.txt +0 -0
  1137. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
  1138. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/gdal_fixtures.h +0 -0
  1139. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
  1140. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/geo_transform_test.cpp +0 -0
  1141. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/geotiff_fixtures.inc +0 -0
  1142. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/grid_test.cpp +0 -0
  1143. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/raster_stats_test.cpp +0 -0
  1144. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/raster_test.cpp +0 -0
  1145. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/raster/tiff_format_test.cpp +0 -0
  1146. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
  1147. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/cells_test.cpp +0 -0
  1148. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/checks_test.cpp +0 -0
  1149. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/log_test.cpp +0 -0
  1150. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/lru_cache_test.cpp +0 -0
  1151. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/overloaded_test.cpp +0 -0
  1152. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/parallel_test.cpp +0 -0
  1153. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/radial_shape_test.cpp +0 -0
  1154. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/special_functions_test.cpp +0 -0
  1155. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/text_test.cpp +0 -0
  1156. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/tests/unit/util/version_test.cpp +0 -0
  1157. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/README.md +0 -0
  1158. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/cgltf/LICENSE +0 -0
  1159. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/cgltf/cgltf.h +0 -0
  1160. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/cgltf/cgltf_write.h +0 -0
  1161. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/miniz/LICENSE +0 -0
  1162. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/miniz/miniz.c +0 -0
  1163. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/miniz/miniz.h +0 -0
  1164. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/nlohmann/LICENSE.MIT +0 -0
  1165. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/nlohmann/json.hpp +0 -0
  1166. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/tinyobjloader/LICENSE +0 -0
  1167. {terraingenpy-0.1.1.dev77 → terraingenpy-0.1.1.dev91}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
@@ -0,0 +1,59 @@
1
+ # Vendored code in third_party/ directories stays byte-identical to upstream.
2
+ exclude: (^|/)third_party/
3
+
4
+ repos:
5
+ - repo: https://github.com/pre-commit/pre-commit-hooks
6
+ rev: v6.0.0
7
+ hooks:
8
+ - id: trailing-whitespace
9
+ - id: end-of-file-fixer
10
+ - id: check-added-large-files
11
+ - id: check-merge-conflict
12
+ - id: check-case-conflict
13
+ - id: mixed-line-ending
14
+ args: ["--fix=lf"]
15
+ - id: pretty-format-json
16
+ args: ["--autofix", "--indent=4", "--no-sort-keys"]
17
+ files: ^examples/
18
+
19
+ - repo: https://github.com/pre-commit/mirrors-clang-format
20
+ rev: v22.1.8
21
+ hooks:
22
+ - id: clang-format
23
+ types_or: [c++, c]
24
+ exclude: (^|/)third_party/
25
+
26
+ - repo: https://github.com/pocc/pre-commit-hooks
27
+ rev: v1.3.5
28
+ hooks:
29
+ - id: cppcheck
30
+ exclude: (^|/)third_party/
31
+ additional_dependencies: ["cppcheck==1.5.1"]
32
+ args:
33
+ - "--language=c++"
34
+ - "--std=c++17"
35
+ - "--enable=warning,performance,portability"
36
+ - "--suppress=missingInclude"
37
+ - "--include=terraingen/util/portable.h"
38
+ - "-U__SLANG__"
39
+ - "--suppress=passedByValue:terraingen/noise/*"
40
+ - "--suppress=normalCheckLevelMaxBranches"
41
+ - "--suppress=floatConversionOverflow:terraingen/python/src/noise.cpp"
42
+ - "--suppress=floatConversionOverflow:terraingen/python/src/mesh.cpp"
43
+ - "--suppress=assignBoolToPointer:terraingen/python/src/*"
44
+ - "--suppress=syntaxError:terraingen/gpu/metal.cpp"
45
+ - "--suppress=returnByReference:terraingen/raster/raster.h"
46
+ - "--error-exitcode=1"
47
+
48
+ - repo: https://github.com/astral-sh/ruff-pre-commit
49
+ rev: v0.17.1
50
+ hooks:
51
+ - id: ruff-check
52
+ args: ["--fix"]
53
+ - id: ruff-format
54
+
55
+ - repo: https://github.com/cheshirekow/cmake-format-precommit
56
+ rev: v0.6.13
57
+ hooks:
58
+ - id: cmake-format
59
+ additional_dependencies: ["pyyaml>=5.1"]
@@ -0,0 +1,91 @@
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
+ ### Added
11
+
12
+ - Piecewise uniform size-frequency distributions: counts per diameter band, given absolutely or as shares of a total.
13
+ - Radial wall marks on craters, ridges and grooves down the wall that are strongest where it is steepest.
14
+ - Thomas cluster process for boulder clusters, with Poisson-scattered centres whose clusters add where they overlap.
15
+ - 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).
16
+ - Boulders limited to a maximum slope, optionally rolling down steeper ground to gather at its foot.
17
+ - 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.
18
+ - Size slope maps that bend boulder sizes into a local power law, from an exponent or a mean diameter map.
19
+ - Crater and boulder catalogs with a completeness limit, above which they stand in for generated features.
20
+ - Configuration reference in the documentation, generated from the schema at build time, and machine-readable value ranges in the schema.
21
+ - Rock albedo: 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, with the scatter of randomly placed rocks.
22
+ - Slope albedo: steep ground kept immature by mass wasting, its optical maturity rising with slope beyond 20 degrees (Ikeda et al. 2022; Lucey et al. 2014).
23
+ - Crater shaping and datum fitting on the GPU on spheres, ellipsoids and shape models, not only on planes.
24
+ - Configurations are checked against every field's documented range, and errors name the exact field, such as `layers[2].reach`.
25
+ - Python options classes document every field with its description and unit, and gain `validate()` and a readable `repr`.
26
+ - `RasterSource`, heights from a raster in memory, shared rather than copied, low-passed and resampled as a GeoTIFF source is; `GeoTiffSource` is now a `RasterSource` of its band.
27
+ - Windowed GeoTIFF reads that decode only the strips or tiles a window meets, and a `region` for GeoTIFF sources that reads only the window it needs while giving the same heights there as the whole file.
28
+ - `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 and generates only smaller ones; `MinimumField` combines it with a catalog's limit.
29
+ - Midpoint displacement layer: random midpoint displacement (diamond-square) expansion of a DEM or any base lattice to finer spacings, as PANGU expands DEMs (Martin et al. 2014), keeping every coarser node so nested grids share their cells, with the scale and fractal dimension estimated from the base when not given.
30
+ - 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.
31
+ - 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.
32
+
33
+ ### Changed
34
+
35
+ - Breaking: every angle key in configurations and the Python options classes is now in degrees and ends in `_deg` (`wind_azimuth_deg`, `slip_face_angle_deg`, `heading_deg`, `crease_angle_deg`), azimuths counter-clockwise from +x (local east); the old keys are rejected. The rest of the Python API follows: `SyntheticAlbedo(hue_deg=, hue_noise_deg=)`, `hsv_to_rgb(hue_deg)`, `write_models(crease_angle_deg=)`, `TriangleMesh.with_creases(crease_angle_deg)`, `RigidTransform.rotation_x/y/z(angle_deg)`, `CubeSphereCells.direction(face, alpha_deg, beta_deg)`, `SlopeAlbedo.maturity_at(slope_deg)`, `Boulder` `yaw_deg`, `lean_deg`, `tilt_deg` and `tilt_azimuth_deg` (also the boulder table columns and the columns of boulder lists written as CSV or JSON), `BoulderFacet` `azimuth_deg` and `angle_deg`, `CraterImpact` `angle_deg` and `heading_deg`, `CraterOutline.heading_deg` and `RayDirection.azimuth_deg`; the C++ library keeps radians.
36
+ - 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; Surveyor boulders; noise relief scaled to its wavelength; and visible roughness, bedforms and dunes.
37
+ - Boulder layers default to the nominal NASA SP-8023 intercrater sizes rather than Golombek-Rapp; a `coverage`, `qa`, `qb` or `ejecta.coverage` that no Golombek-Rapp sizes use is now an error that names `"sizes": {"type": "golombek_rapp"}`.
38
+ - Boulder lists and models hold every boulder of the layer's diameter range; only the heightmap leaves out boulders too small to resolve.
39
+ - Boulder ejecta come from every crater layer before the boulder layer, not only the last one.
40
+ - The boulder layer's `exposure_spacing` key is now `ground_spacing` (Python `ground_spacing`), the spacing of every ground read the layer makes.
41
+ - Crater shaping has one implementation, the kernel, on every surface; craters on bodies and custom profiles may differ from before in the last digits.
42
+ - Random streams and hashes are unified, so boulder, albedo, dune, bedform and pavement outputs for a given seed differ from earlier versions; their statistics are unchanged.
43
+ - Every evaluation defaults to all threads, including `EvaluateAt`, `EvaluateTile` and Python `evaluate_tile`.
44
+ - The `materials` module is folded into `pipeline` (material maps) and `albedo` (Hapke photometry); include `terraingen/pipeline/materials.h` and `terraingen/albedo/photometry.h`.
45
+ - Python: `ExposureField.exposure` takes `(x, y, spacing=0.0, terrain=None, layers=0)` like the other ground queries, unbounded options read as `None` instead of infinity, `write_outputs` returns paths, a subclass missing a required method raises `TypeError`, and `CraterFeatures.write` is `write_list`.
46
+ - Python names: `cell_of` is `cell_at`, `point_of` is `coordinates`, `level_for` is `resolving_level`, `outline_of` is `irregular_outline`, `min_diameter_for_count` is `count_limit_diameter`, `singer_range_for_size` is `singer_max_range`, `SplotchOptions` is `SplotchAlbedoOptions` and `SlopeMaturityOptions` is `SlopeAlbedoOptions`.
47
+ - The CI coverage job builds at `-O1` without atomic counters, so it caches and runs several times faster.
48
+
49
+ - Density maps that count every feature take out the secondaries thrown from a layer's craters and the blocks thrown out around craters, and boulder patches and bedrock keep a map's mean, so nothing is counted twice.
50
+ - Boulder models settle onto a stable face by default instead of balancing on an edge or corner.
51
+ - Boulder generation logs under boulders rather than craters.
52
+ - Crater and boulder generation summaries log at debug level; `terraingen` ends with one line counting the files written instead of listing each, and feature outputs log how long they took.
53
+ - 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.
54
+ - Faster boulders: the ground beneath them is read in one batch, outputs over one region share the boulders placed for the first, models are placed in parallel, ejecta craters are found through a spatial index and shapes skip the roughness of fracture planes that cannot reach a vertex. The hero demo runs in about 10 s instead of 276 s.
55
+ - Martin, Parkes and Dunstan is the default crater profile.
56
+
57
+ ### Fixed
58
+
59
+ - Freshness degradation never makes a crater deeper than fresh: basins shallower than the cutoff keep their fresh shape.
60
+ - 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.
61
+ - Crater layers over other layers read the ground beneath their slopes and datums in batches rather than point by point, and point batches are evaluated in spatial order: the hero demo went from 433 s to 11 s with the same output.
62
+ - Secondary craters run on the GPU backend the terrain asks for instead of always on the CPU.
63
+ - A crater layer after a boulder layer no longer refits crater datums for every batch of ground reads.
64
+ - Tilted boulders are no longer cut off at tile edges and point queries.
65
+ - Crater and boulder lists honour a spacing finer than the grid.
66
+ - Zero-area regions and crater sizes below the models' range are rejected with a clear error instead of failing during generation.
67
+
68
+ ### Removed
69
+
70
+ - 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`).
71
+
72
+ ## [0.1.0] - 2026-10-18
73
+
74
+ Initial release.
75
+
76
+ ### Added
77
+
78
+ - C++20 library with Python bindings (`terraingenpy` on PyPI) for generating terrain from scratch or adding detail to existing DEMs.
79
+ - Craters and boulders from published size-frequency distributions, with crater ages, profiles, degradation, irregularity, secondaries and ejecta.
80
+ - Procedural 3D boulder models, and small boulders baked into the heightmap.
81
+ - Synthetic albedo with crater ejecta and rays that fade with age.
82
+ - Geologic features: dunes and ripples, layered strata, fractured bedrock, ventifacts and sand pooled in lows or behind boulders.
83
+ - Planes, spheres and ellipsoids, whole-body meshes, tiles and point queries.
84
+ - Deterministic output for a seed on any grid, tile or thread count.
85
+ - GPU acceleration on Vulkan, CUDA and Metal, detected at run time.
86
+ - `terraingen` command-line interface driven by JSON configurations.
87
+ - Examples in C++, Python and JSON.
88
+ - Release archives for Linux, macOS and Windows, Debian packages, and a Docker image.
89
+
90
+ [Unreleased]: https://github.com/alexmaietta/terraingen/compare/v0.1.0...HEAD
91
+ [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.1.1.dev91")
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 initialisers.
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 "metres", "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).
@@ -0,0 +1,250 @@
1
+ Metadata-Version: 2.1
2
+ Name: terraingenpy
3
+ Version: 0.1.1.dev91
4
+ Summary: Scientific terrain generation for planetary surfaces
5
+ Keywords: terrain,moon,mars,craters,planetary science,simulation
6
+ Author: Alex Maietta
7
+ License: BSD 3-Clause License
8
+
9
+ Copyright (c) 2026, Alex Maietta
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions are met:
13
+
14
+ 1. Redistributions of source code must retain the above copyright notice, this
15
+ list of conditions and the following disclaimer.
16
+
17
+ 2. Redistributions in binary form must reproduce the above copyright notice,
18
+ this list of conditions and the following disclaimer in the documentation
19
+ and/or other materials provided with the distribution.
20
+
21
+ 3. Neither the name of the copyright holder nor the names of its
22
+ contributors may be used to endorse or promote products derived from
23
+ this software without specific prior written permission.
24
+
25
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
+
36
+ Classifier: Development Status :: 3 - Alpha
37
+ Classifier: Intended Audience :: Science/Research
38
+ Classifier: License :: OSI Approved :: BSD License
39
+ Classifier: Operating System :: MacOS
40
+ Classifier: Operating System :: Microsoft :: Windows
41
+ Classifier: Operating System :: POSIX :: Linux
42
+ Classifier: Programming Language :: C++
43
+ Classifier: Programming Language :: Python :: 3
44
+ Classifier: Topic :: Scientific/Engineering :: Astronomy
45
+ Classifier: Topic :: Scientific/Engineering :: GIS
46
+ Project-URL: Homepage, https://github.com/alexmaietta/terraingen
47
+ Project-URL: Documentation, https://alexmaietta.github.io/terraingen/
48
+ Project-URL: Source, https://github.com/alexmaietta/terraingen
49
+ Project-URL: Issues, https://github.com/alexmaietta/terraingen/issues
50
+ Project-URL: Changelog, https://github.com/alexmaietta/terraingen/blob/main/CHANGELOG.md
51
+ Requires-Python: >=3.10
52
+ Requires-Dist: numpy>=1.22
53
+ Provides-Extra: test
54
+ Requires-Dist: pytest; extra == "test"
55
+ Description-Content-Type: text/markdown
56
+
57
+ > 🚧 **This project is in active beta development.** This means the API is unstable, features may be added or removed, and breaking changes are likely to occur frequently and without notice as the design is refined.
58
+
59
+ [![pipeline](https://img.shields.io/github/actions/workflow/status/alexmaietta/terraingen/ci.yml?branch=main&label=pipeline)](https://github.com/alexmaietta/terraingen/actions/workflows/ci.yml)
60
+ [![coverage](https://img.shields.io/endpoint?url=https://alexmaietta.github.io/terraingen/coverage/badge.json)](https://alexmaietta.github.io/terraingen/coverage/)
61
+ [![release](https://img.shields.io/github/v/release/alexmaietta/terraingen)](https://github.com/alexmaietta/terraingen/releases)
62
+ [![pypi](https://img.shields.io/pypi/v/terraingenpy)](https://pypi.org/project/terraingenpy/)
63
+ [![license](https://img.shields.io/badge/license-BSD_3--Clause-blue)](LICENSE)
64
+
65
+ # TerrainGen
66
+
67
+ A high-performance scientific terrain generation tool for interplanetary bodies.
68
+
69
+ ![Blue Moon MK1 SN101 lander at Connecting Ridge, with Mons Malapert in the background, split between the source elevation model and TerrainGen's upscaled terrain](https://raw.githubusercontent.com/alexmaietta/terraingen/main/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg)
70
+
71
+ *Blue Moon MK1 SN101 lander at Connecting Ridge near the lunar south pole, with Mons Malapert in the background. Left: the 5 m/px LOLA elevation models as they are. Right: the same terrain upscaled by TerrainGen.*
72
+
73
+ TerrainGen can:
74
+
75
+ - Generate synthetic terrain from scratch, or add fine detail to existing elevation models.
76
+ - Populate craters and boulders from cumulative size-frequency distributions.
77
+ - Model each crater's profile, age, degradation, irregularity.
78
+ - Bake small boulders into the heightmap, and generate procedural 3D boulder models for the large ones.
79
+ - Produce synthetic albedo maps with crater ejecta and rays that fade with crater age.
80
+ - Read GeoTIFF elevation and albedo maps, and ICQ, OBJ, glTF and STL shape models.
81
+ - Write GeoTIFF heightmaps and albedo, material and photometry maps, crater and boulder lists as CSV or JSON, and terrain, boulder and body meshes as glTF, OBJ or STL.
82
+ - Model complex geologic features such as complex and secondary craters, boulder ejecta fields, dunes and wind ripples, layered strata terraced into benches and cliffs, fractured bedrock pavement, wind-carved ventifacts, and sand pooled in lows or trailing behind boulders.
83
+ - Be extended through base classes in C++ or Python with custom size-frequency distributions, crater ages, profiles and degradation, albedo, sources, and layers.
84
+ - Perform GPU-accelerated operations for generating noise, craters, boulders, albedo, and more.
85
+ - Generate deterministic results for the same seed on any grid, tile or thread count.
86
+ - Integrate into simulations and other external workflows.
87
+
88
+ We also provide:
89
+
90
+ - A modular C++ library with Python bindings and minimal dependencies.
91
+ - Smart and tested defaults for various surface features.
92
+ - A command-line interface that generates terrain from JSON configuration files.
93
+ - A GUI for editing configurations and viewing the results in 3D.
94
+ - Examples in C++, Python and JSON.
95
+ - A standalone demo that streams TerrainGen detail into a planetary-scale renderer on the GPU while navigating around the Moon.
96
+ - Example integrations with third-party tools such as Project Chrono, IsaacLab, and Newton.
97
+
98
+ For more information on the concepts behind TerrainGen and the API, see our latest [documentation](https://alexmaietta.github.io/terraingen/).
99
+
100
+ ## Quick Start
101
+
102
+ We recommended getting started by installing `terraingenpy` from PyPi and running the GUI.
103
+
104
+ ```sh
105
+ pip install terraingenpy
106
+ terraingen --gui
107
+ ```
108
+
109
+ ## Requirements
110
+
111
+ - Linux (Ubuntu 22.04 or newer), macOS 14 or newer, or Windows 10 or newer, on x86_64 or arm64.
112
+ - Python 3.10 or newer for the Python package.
113
+ - Optional: a Vulkan, CUDA or Metal driver for GPU acceleration. Run `terraingen backends` to see what is available.
114
+
115
+ ## Installation
116
+
117
+ ### Releases
118
+
119
+ Every [release](https://github.com/alexmaietta/terraingen/releases) has the CLI, library, headers and CMake package for each platform, and `.deb` packages for Ubuntu and Debian. The [latest](https://github.com/alexmaietta/terraingen/releases/tag/latest) pre-release is built from `main` on every push.
120
+
121
+ ### Building from Source
122
+
123
+ You need CMake 3.22 or newer and a C++17 compiler (tested with GCC 11, Clang 14, Apple Clang 15 and MSVC 2022). CMake fetches everything else.
124
+
125
+ ```sh
126
+ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
127
+ cmake --build build -j 8
128
+ cmake --install build --prefix /usr/local
129
+ ```
130
+
131
+ To build the Python package from source, run `pip install .` instead.
132
+
133
+ ### Docker
134
+
135
+ ```sh
136
+ docker run --rm ghcr.io/alexmaietta/terraingen:latest terraingen --help
137
+ ```
138
+
139
+ The `dev` tag follows `main`.
140
+
141
+ ## Getting Started
142
+
143
+ ### Python
144
+
145
+ ```python
146
+ import terraingen
147
+
148
+ # A flat 513 x 513 grid with 2 m pixels
149
+ ground = terraingen.FlatSource(513, 513, 2.0)
150
+
151
+ # Fractal noise 40 m high with an 800 m wavelength
152
+ fractal = terraingen.FractalParams(seed=1, wavelength=800.0, amplitude=40.0)
153
+ noise = terraingen.NoiseLayer(fractal)
154
+ relief = terraingen.NoiseRelief([noise])
155
+
156
+ terrain = terraingen.Terrain(ground, [relief])
157
+ heights = terraingen.evaluate(terrain)
158
+ terraingen.write_geotiff("terrain.tif", heights)
159
+ ```
160
+
161
+ ### C++
162
+
163
+ ```cmake
164
+ find_package(terraingen REQUIRED)
165
+ target_link_libraries(app PRIVATE terraingen::terraingen)
166
+ ```
167
+
168
+ ```cpp
169
+ #include <terraingen/terraingen.h>
170
+
171
+ int main() {
172
+ // Fractal noise 40 m high with an 800 m wavelength
173
+ terraingen::NoiseLayer noise;
174
+ noise.fractal.seed = 1;
175
+ noise.fractal.wavelength = 800.0f;
176
+ noise.fractal.amplitude = 40.0f;
177
+
178
+ terraingen::SyntheticTerrainParams relief;
179
+ relief.layers = {noise};
180
+
181
+ // A flat 513 x 513 grid with 2 m pixels, plus the noise
182
+ terraingen::Terrain terrain;
183
+ terrain.source = std::make_shared<terraingen::FlatSource>(513, 513, 2.0);
184
+ terrain.layers.push_back(std::make_shared<terraingen::NoiseRelief>(relief));
185
+
186
+ terraingen::Raster<float> heights = terraingen::Evaluate(terrain);
187
+ terraingen::WriteGeoTiff("terrain.tif", heights);
188
+ }
189
+ ```
190
+
191
+ ### Examples
192
+
193
+ [examples/](examples/) has the same terrains as JSON configurations, C++ programs and Python scripts, covering basic terrains, craters, boulders, albedo, planets, DEM detail and tiles:
194
+
195
+ ```sh
196
+ terraingen examples/config/craters/example_craters_simple.json
197
+ ```
198
+
199
+ ### Demos
200
+
201
+ [demos/](demos/) has larger showcases, such as terrain over a whole asteroid built from the Itokawa shape model.
202
+
203
+ ## Contributing
204
+
205
+ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to build, test and submit changes.
206
+
207
+ ### Documentation
208
+
209
+ The [documentation](https://alexmaietta.github.io/terraingen/) is built with MkDocs and Doxygen from [docs/](docs/). Run `make -C docs build` to build it locally.
210
+
211
+ ### Code Coverage
212
+
213
+ The [coverage report](https://alexmaietta.github.io/terraingen/coverage/) is updated on every push to `main`. To generate it locally:
214
+
215
+ ```sh
216
+ cmake -S . -B build-coverage -DTERRAINGEN_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
217
+ cmake --build build-coverage -j 8 --target coverage
218
+ ```
219
+
220
+ ## Citation
221
+
222
+ If you use TerrainGen for published research, please cite:
223
+
224
+ ```bibtex
225
+ @software{maietta_terraingen,
226
+ author = {Maietta, Alex},
227
+ title = {{TerrainGen}: An open-source scientific terrain generation suite for planetary surfaces},
228
+ url = {https://github.com/alexmaietta/terraingen},
229
+ version = {0.1.0},
230
+ license = {BSD-3-Clause},
231
+ year = {2026}
232
+ }
233
+ ```
234
+
235
+ ## License
236
+
237
+ TerrainGen is licensed under the [BSD 3-Clause License](LICENSE).
238
+
239
+ Third-party code and assets keep their own licenses, listed in [third_party/README.md](third_party/README.md).
240
+
241
+ ## Acknowledgements
242
+
243
+ TerrainGen draws inspiration from existing lunar terrain generation tools:
244
+
245
+ | Name | Organization | Availability | Capabilities | Limitations |
246
+ | --- | --- | --- | --- | --- |
247
+ | [synthterrain](https://github.com/NeoGeographyToolkit/synthterrain) | NASA Ames | Open source (Apache-2.0) | Crater and boulder populations from size-frequency distributions, crater profiles and DEMs on flat terrain | Doesn't generate surface detail or upscale existing DEMs, not actively contributed to. |
248
+ | [lunasynth](https://github.com/nasa-jpl/lunasynth) | NASA JPL | Open source (Apache-2.0) | Adds craters and boulders to a lunar base DEM, down to 1 cm pixels, and renders images under varying camera and sun positions | Project is not actively-maintained |
249
+ | [DLES Terrain Crafting](https://doi.org/10.1109/AERO63441.2025.11068736) | NASA JSC | Not publicly released (paper) | Enhances LOLA and NAC-derived DEMs of the lunar south pole to 20 cm with synthetic craters and boulders, including hand-placed craters from imagery | Not publicly released, relies on manual crater counting, stamps craters from four template shapes, leaves blending rings around craters and smooth interpolated ground between them, and doesn't produce albedo maps. |
250
+ | [PANGU](https://pangu.software/) | University of Dundee / STAR-Dundee | Commercial (free for ESA projects) | Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation | Requires a paid license outside ESA projects, and ships as standalone command-line tools and GUIs rather than a library to integrate into a project. |