terraingenpy 0.1.0.dev279__tar.gz → 0.1.1.dev6__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 (774) hide show
  1. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/workflows/ci.yml +28 -0
  2. terraingenpy-0.1.1.dev6/CHANGELOG.md +29 -0
  3. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/CMakeLists.txt +1 -1
  4. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/PKG-INFO +101 -5
  5. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/README.md +100 -4
  6. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/TerrainGenSlang.cmake +7 -14
  7. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/kernel.cpp +1 -1
  8. terraingenpy-0.1.1.dev6/terraingen/gpu/kernel.slang +37 -0
  9. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/CMakeLists.txt +5 -5
  10. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/population.cpp +29 -1
  11. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply.cpp +257 -17
  12. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/datum.cpp +4 -7
  13. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/datum.h +9 -0
  14. terraingenpy-0.1.1.dev6/terraingen/layers/kernels/crater_datums.slang +34 -0
  15. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernels/craters.h +112 -0
  16. terraingenpy-0.1.1.dev6/terraingen/layers/kernels/craters.slang +40 -0
  17. terraingenpy-0.1.1.dev6/terraingen/layers/kernels/noise_relief.slang +24 -0
  18. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/cube_sphere_cells.cpp +37 -1
  19. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/generation/population_test.cpp +20 -0
  20. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +64 -0
  21. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/surface_test.cpp +36 -0
  22. terraingenpy-0.1.0.dev279/CHANGELOG.md +0 -8
  23. terraingenpy-0.1.0.dev279/cmake/CraterKernel.slang.in +0 -58
  24. terraingenpy-0.1.0.dev279/cmake/Kernel.slang.in +0 -43
  25. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.clang-format +0 -0
  26. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.clang-tidy +0 -0
  27. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.cmake-format.yaml +0 -0
  28. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.dockerignore +0 -0
  29. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.gitattributes +0 -0
  30. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  31. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  32. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  33. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/pull_request_template.md +0 -0
  34. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/scripts/install-lavapipe-windows.sh +0 -0
  35. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.gitignore +0 -0
  36. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.pre-commit-config.yaml +0 -0
  37. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/CITATION.cff +0 -0
  38. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/CONTRIBUTING.md +0 -0
  39. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/Dockerfile +0 -0
  40. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/LICENSE +0 -0
  41. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/README.md +0 -0
  42. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_diff_4k.jpg +0 -0
  43. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_disp_4k.png +0 -0
  44. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
  45. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_rough_4k.exr +0 -0
  46. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/BuildInfo.cmake +0 -0
  47. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/CoverageBadge.cmake +0 -0
  48. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/EmbedFile.cmake +0 -0
  49. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/Kernel.cpp.in +0 -0
  50. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/TerrainGenPackaging.cmake +0 -0
  51. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/TerrainGenTesting.cmake +0 -0
  52. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/terraingenConfig.cmake.in +0 -0
  53. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/benchmark.cmake +0 -0
  54. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/ernie.cmake +0 -0
  55. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/googletest.cmake +0 -0
  56. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/mesh_formats.cmake +0 -0
  57. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/miniz.cmake +0 -0
  58. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/nanobind.cmake +0 -0
  59. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/nvrtc.cmake +0 -0
  60. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/slang.cmake +0 -0
  61. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/volk.cmake +0 -0
  62. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/vulkan_headers.cmake +0 -0
  63. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/.gitignore +0 -0
  64. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/Makefile +0 -0
  65. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/README.md +0 -0
  66. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/api/cpp.md +0 -0
  67. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/api/python.md +0 -0
  68. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/concepts/index.md +0 -0
  69. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/css/extra.css +0 -0
  70. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/command-line.md +0 -0
  71. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/gui.md +0 -0
  72. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/index.md +0 -0
  73. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/installation.md +0 -0
  74. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/quickstart.md +0 -0
  75. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/guides/index.md +0 -0
  76. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/index.md +0 -0
  77. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/overrides/home.html +0 -0
  78. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/overrides/partials/header.html +0 -0
  79. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/requirements.txt +0 -0
  80. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/validation/index.md +0 -0
  81. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/README.md +0 -0
  82. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/ages/example_ages_fresh.json +0 -0
  83. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/ages/example_ages_steady_state.json +0 -0
  84. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/ages/example_ages_uniform.json +0 -0
  85. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
  86. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
  87. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
  88. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_moon_site.json +0 -0
  89. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_new_crater.json +0 -0
  90. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
  91. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_rgb.json +0 -0
  92. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_synthetic.json +0 -0
  93. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_buried.json +0 -0
  94. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_ejecta.json +0 -0
  95. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_exposure.json +0 -0
  96. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_fragments.json +0 -0
  97. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_layer.json +0 -0
  98. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_models.json +0 -0
  99. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_patches.json +0 -0
  100. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_scene.json +0 -0
  101. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_shapes.json +0 -0
  102. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_sp8023.json +0 -0
  103. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_datum.json +0 -0
  104. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
  105. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_degradation_none.json +0 -0
  106. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_interior_replacement.json +0 -0
  107. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_irregular.json +0 -0
  108. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_manual.json +0 -0
  109. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_max_craters.json +0 -0
  110. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_profile_complex.json +0 -0
  111. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
  112. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
  113. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_secondaries.json +0 -0
  114. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_secondary_rays.json +0 -0
  115. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_simple.json +0 -0
  116. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
  117. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_spacing.json +0 -0
  118. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_texture.json +0 -0
  119. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
  120. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
  121. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_power_law.json +0 -0
  122. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_tabulated.json +0 -0
  123. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
  124. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_viper.json +0 -0
  125. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/layers/example_layers_regions.json +0 -0
  126. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/layers/example_layers_roughness.json +0 -0
  127. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
  128. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
  129. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
  130. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_craters.json +0 -0
  131. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_dunes.json +0 -0
  132. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_exposure.json +0 -0
  133. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_pavement.json +0 -0
  134. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
  135. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_sand_shadows.json +0 -0
  136. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_strata.json +0 -0
  137. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_ventifacts.json +0 -0
  138. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mercury_site.json +0 -0
  139. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
  140. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_moon_site.json +0 -0
  141. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_billow.json +0 -0
  142. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_cellular.json +0 -0
  143. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
  144. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_fbm.json +0 -0
  145. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_layered.json +0 -0
  146. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_ridged.json +0 -0
  147. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_roughness.json +0 -0
  148. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_voronoi.json +0 -0
  149. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/CMakeLists.txt +0 -0
  150. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/ages/example_ages_models.cpp +0 -0
  151. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -0
  152. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
  153. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
  154. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
  155. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/browser.cpp +0 -0
  156. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/browser.h +0 -0
  157. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/example.cpp +0 -0
  158. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/example.h +0 -0
  159. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/main.cpp +0 -0
  160. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/standalone_main.cpp +0 -0
  161. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/config/example_config_load.cpp +0 -0
  162. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
  163. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_manual.cpp +0 -0
  164. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
  165. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
  166. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_simple.cpp +0 -0
  167. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
  168. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/layers/example_layers_custom.cpp +0 -0
  169. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/layers/example_layers_regions.cpp +0 -0
  170. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/planets/example_planets_moon.cpp +0 -0
  171. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
  172. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
  173. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
  174. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
  175. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -0
  176. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
  177. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/__main__.py +0 -0
  178. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_browser.py +0 -0
  179. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_common.py +0 -0
  180. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_harness.py +0 -0
  181. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_images.py +0 -0
  182. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/ages/example_ages_models.py +0 -0
  183. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
  184. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/albedo/example_albedo_moon_site.py +0 -0
  185. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/albedo/example_albedo_options.py +0 -0
  186. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_exposure.py +0 -0
  187. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_layer.py +0 -0
  188. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_positioning.py +0 -0
  189. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_shapes.py +0 -0
  190. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_size_models.py +0 -0
  191. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/config/example_config_load.py +0 -0
  192. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_age_sweep.py +0 -0
  193. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_apply_options.py +0 -0
  194. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_degradation.py +0 -0
  195. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_irregularity.py +0 -0
  196. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_manual.py +0 -0
  197. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_positioning.py +0 -0
  198. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_profiles.py +0 -0
  199. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
  200. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_secondaries.py +0 -0
  201. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_simple.py +0 -0
  202. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/distributions/example_distributions_csfd.py +0 -0
  203. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/distributions/example_distributions_custom.py +0 -0
  204. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/layers/example_layers_custom.py +0 -0
  205. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/layers/example_layers_regions.py +0 -0
  206. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_body_mesh.py +0 -0
  207. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mars.py +0 -0
  208. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mars_dunes.py +0 -0
  209. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mars_exposure.py +0 -0
  210. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mercury.py +0 -0
  211. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_moon_site.py +0 -0
  212. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/sources/example_sources_chain.py +0 -0
  213. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/sources/example_sources_raster_detail.py +0 -0
  214. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_fbm.py +0 -0
  215. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
  216. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
  217. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_layered.py +0 -0
  218. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
  219. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
  220. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_point_queries.py +0 -0
  221. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_quadtree.py +0 -0
  222. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
  223. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/mkdocs.yml +0 -0
  224. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/pyproject.toml +0 -0
  225. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/CMakeLists.txt +0 -0
  226. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/CMakeLists.txt +0 -0
  227. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/albedo.cpp +0 -0
  228. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/albedo.h +0 -0
  229. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/blast_zones.cpp +0 -0
  230. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/blast_zones.h +0 -0
  231. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/crater_albedo.cpp +0 -0
  232. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/crater_albedo.h +0 -0
  233. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/maturity.cpp +0 -0
  234. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/maturity.h +0 -0
  235. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/raster_albedo.cpp +0 -0
  236. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/raster_albedo.h +0 -0
  237. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/splotches.cpp +0 -0
  238. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/splotches.h +0 -0
  239. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/synthetic.cpp +0 -0
  240. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/synthetic.h +0 -0
  241. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/CMakeLists.txt +0 -0
  242. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/cli.cpp +0 -0
  243. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/cli.h +0 -0
  244. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/CMakeLists.txt +0 -0
  245. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/config_editor.cpp +0 -0
  246. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/config_editor.h +0 -0
  247. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/gui_app.cpp +0 -0
  248. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/gui_app.h +0 -0
  249. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/run.cpp +0 -0
  250. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/run.h +0 -0
  251. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/run_none.cpp +0 -0
  252. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/terrain_scene.cpp +0 -0
  253. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/terrain_scene.h +0 -0
  254. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/main.cpp +0 -0
  255. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/CMakeLists.txt +0 -0
  256. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/build.cpp +0 -0
  257. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/build.h +0 -0
  258. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/config.cpp +0 -0
  259. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/config.h +0 -0
  260. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/feature_lists.cpp +0 -0
  261. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/albedo.h +0 -0
  262. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/boulders.h +0 -0
  263. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/checks.h +0 -0
  264. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/common.h +0 -0
  265. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/crater_models.h +0 -0
  266. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/craters.h +0 -0
  267. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/enums.h +0 -0
  268. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/fields.h +0 -0
  269. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/json_io.h +0 -0
  270. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/layers.h +0 -0
  271. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/materials.h +0 -0
  272. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/outputs.h +0 -0
  273. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/sources.h +0 -0
  274. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/generate.cpp +0 -0
  275. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/generate.h +0 -0
  276. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/json.cpp +0 -0
  277. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/json.h +0 -0
  278. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/schema.cpp +0 -0
  279. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/validate.cpp +0 -0
  280. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/validate.h +0 -0
  281. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/CMakeLists.txt +0 -0
  282. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/combined.cpp +0 -0
  283. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/combined.h +0 -0
  284. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/equilibrium.cpp +0 -0
  285. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/equilibrium.h +0 -0
  286. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/golombek_rapp.cpp +0 -0
  287. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/golombek_rapp.h +0 -0
  288. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/ivanov.cpp +0 -0
  289. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/ivanov.h +0 -0
  290. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/log_polynomial.cpp +0 -0
  291. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/log_polynomial.h +0 -0
  292. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/minimum.cpp +0 -0
  293. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/minimum.h +0 -0
  294. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/moore.cpp +0 -0
  295. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/moore.h +0 -0
  296. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/neukum.cpp +0 -0
  297. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/neukum.h +0 -0
  298. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/piecewise_power_law.cpp +0 -0
  299. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/piecewise_power_law.h +0 -0
  300. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/power_law.cpp +0 -0
  301. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/power_law.h +0 -0
  302. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/production_surface.cpp +0 -0
  303. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/production_surface.h +0 -0
  304. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/size_frequency.cpp +0 -0
  305. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/size_frequency.h +0 -0
  306. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/sp8023.cpp +0 -0
  307. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/sp8023.h +0 -0
  308. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/spliced.cpp +0 -0
  309. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/spliced.h +0 -0
  310. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/summed.cpp +0 -0
  311. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/summed.h +0 -0
  312. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/synthterrain.cpp +0 -0
  313. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/synthterrain.h +0 -0
  314. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/tabulated.cpp +0 -0
  315. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/tabulated.h +0 -0
  316. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/viper.cpp +0 -0
  317. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/viper.h +0 -0
  318. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/CMakeLists.txt +0 -0
  319. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/backend.cpp +0 -0
  320. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/backend.h +0 -0
  321. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/cuda.cpp +0 -0
  322. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/cuda.h +0 -0
  323. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/kernel.h +0 -0
  324. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/metal.cpp +0 -0
  325. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/metal.h +0 -0
  326. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/program.h +0 -0
  327. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/vulkan.cpp +0 -0
  328. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/vulkan.h +0 -0
  329. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/bedforms.cpp +0 -0
  330. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/bedforms.h +0 -0
  331. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/abundance.cpp +0 -0
  332. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder.h +0 -0
  333. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_fragments.cpp +0 -0
  334. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_fragments.h +0 -0
  335. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_layer.cpp +0 -0
  336. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_layer.h +0 -0
  337. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_models.cpp +0 -0
  338. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_models.h +0 -0
  339. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_options.cpp +0 -0
  340. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_options.h +0 -0
  341. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_placer.h +0 -0
  342. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_shape.cpp +0 -0
  343. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_shape.h +0 -0
  344. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/age_model.cpp +0 -0
  345. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/age_model.h +0 -0
  346. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
  347. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/steady_state.h +0 -0
  348. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater.cpp +0 -0
  349. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater.h +0 -0
  350. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_layer.cpp +0 -0
  351. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_layer.h +0 -0
  352. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_placer.cpp +0 -0
  353. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_placer.h +0 -0
  354. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
  355. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
  356. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusion.cpp +0 -0
  357. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusion.h +0 -0
  358. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
  359. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusivities.h +0 -0
  360. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
  361. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/freshness.h +0 -0
  362. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/state.h +0 -0
  363. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
  364. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/cell_cache.h +0 -0
  365. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/population.h +0 -0
  366. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/spacing.cpp +0 -0
  367. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/spacing.h +0 -0
  368. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/complex.cpp +0 -0
  369. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/complex.h +0 -0
  370. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
  371. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
  372. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
  373. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
  374. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/profile.h +0 -0
  375. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/rays.cpp +0 -0
  376. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/rays.h +0 -0
  377. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/secondaries.cpp +0 -0
  378. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/secondaries.h +0 -0
  379. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply.h +0 -0
  380. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
  381. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply_options.h +0 -0
  382. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
  383. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/attributes.h +0 -0
  384. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -0
  385. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/crater_kernel.h +0 -0
  386. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/irregularity.cpp +0 -0
  387. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/irregularity.h +0 -0
  388. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
  389. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/morphometry.h +0 -0
  390. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/prepared.cpp +0 -0
  391. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/prepared.h +0 -0
  392. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/detail.cpp +0 -0
  393. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/detail.h +0 -0
  394. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/dunes.cpp +0 -0
  395. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/dunes.h +0 -0
  396. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/evaluation_cache.h +0 -0
  397. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/exposure.cpp +0 -0
  398. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/exposure.h +0 -0
  399. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/fade.cpp +0 -0
  400. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/fade.h +0 -0
  401. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/ground.h +0 -0
  402. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernel.h +0 -0
  403. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernels/cell.h +0 -0
  404. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernels/noise_relief.h +0 -0
  405. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/layer.cpp +0 -0
  406. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/layer.h +0 -0
  407. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/material.cpp +0 -0
  408. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/material.h +0 -0
  409. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/noise_relief.cpp +0 -0
  410. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/noise_relief.h +0 -0
  411. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/pavement.cpp +0 -0
  412. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/pavement.h +0 -0
  413. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/region.cpp +0 -0
  414. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/region.h +0 -0
  415. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/roughness.cpp +0 -0
  416. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/roughness.h +0 -0
  417. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sample_block.cpp +0 -0
  418. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sample_block.h +0 -0
  419. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_fill.cpp +0 -0
  420. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_fill.h +0 -0
  421. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_shadow.cpp +0 -0
  422. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_shadow.h +0 -0
  423. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/strata.cpp +0 -0
  424. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/strata.h +0 -0
  425. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/transforms.cpp +0 -0
  426. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/transforms.h +0 -0
  427. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/materials/CMakeLists.txt +0 -0
  428. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/materials/materials.cpp +0 -0
  429. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/materials/materials.h +0 -0
  430. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/CMakeLists.txt +0 -0
  431. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/formats.h +0 -0
  432. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/gltf.cpp +0 -0
  433. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/icq.cpp +0 -0
  434. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/icq.h +0 -0
  435. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/mesh_io.cpp +0 -0
  436. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/mesh_io.h +0 -0
  437. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/obj.cpp +0 -0
  438. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/stl.cpp +0 -0
  439. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/mesh.cpp +0 -0
  440. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/mesh.h +0 -0
  441. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/polyhedra.cpp +0 -0
  442. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/polyhedra.h +0 -0
  443. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/shape_model.cpp +0 -0
  444. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/shape_model.h +0 -0
  445. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/CMakeLists.txt +0 -0
  446. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/fractal.h +0 -0
  447. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/hash.h +0 -0
  448. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/lattice.h +0 -0
  449. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/noise_layers.h +0 -0
  450. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/perlin.h +0 -0
  451. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/simplex.h +0 -0
  452. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/validate.cpp +0 -0
  453. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/validate.h +0 -0
  454. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/value.h +0 -0
  455. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/worley.h +0 -0
  456. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/CMakeLists.txt +0 -0
  457. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/body_mesh.cpp +0 -0
  458. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/body_mesh.h +0 -0
  459. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/features.cpp +0 -0
  460. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/features.h +0 -0
  461. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/height_mesh.cpp +0 -0
  462. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/height_mesh.h +0 -0
  463. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/terrain.cpp +0 -0
  464. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/terrain.h +0 -0
  465. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/tiles.cpp +0 -0
  466. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/tiles.h +0 -0
  467. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/CMakeLists.txt +0 -0
  468. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/albedo.cpp +0 -0
  469. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/bindings.h +0 -0
  470. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/boulders.cpp +0 -0
  471. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/casters.h +0 -0
  472. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/common.h +0 -0
  473. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/crater_models.cpp +0 -0
  474. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/craters.cpp +0 -0
  475. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/distribution.cpp +0 -0
  476. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/gpu.cpp +0 -0
  477. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/layers.cpp +0 -0
  478. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/materials.cpp +0 -0
  479. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/mesh.cpp +0 -0
  480. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/module.cpp +0 -0
  481. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/noise.cpp +0 -0
  482. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/objects.h +0 -0
  483. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/pipeline.cpp +0 -0
  484. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/random.cpp +0 -0
  485. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/raster.cpp +0 -0
  486. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/sources.cpp +0 -0
  487. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/tables.h +0 -0
  488. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/trampolines.h +0 -0
  489. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/util.cpp +0 -0
  490. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/terraingen/__init__.py +0 -0
  491. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/terraingen/render.py +0 -0
  492. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/CMakeLists.txt +0 -0
  493. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/philox.h +0 -0
  494. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/samplers.cpp +0 -0
  495. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/samplers.h +0 -0
  496. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/stream.cpp +0 -0
  497. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/stream.h +0 -0
  498. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/value_distribution.cpp +0 -0
  499. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/value_distribution.h +0 -0
  500. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/CMakeLists.txt +0 -0
  501. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/cell_loops.cpp +0 -0
  502. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/cell_loops.h +0 -0
  503. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/gaussian_blur.cpp +0 -0
  504. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/gaussian_blur.h +0 -0
  505. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geo_transform.h +0 -0
  506. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff.cpp +0 -0
  507. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff.h +0 -0
  508. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff_read.cpp +0 -0
  509. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
  510. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
  511. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
  512. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
  513. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_format.h +0 -0
  514. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/grid.cpp +0 -0
  515. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/grid.h +0 -0
  516. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/raster.h +0 -0
  517. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/raster_stats.h +0 -0
  518. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/resample.cpp +0 -0
  519. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/resample.h +0 -0
  520. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/CMakeLists.txt +0 -0
  521. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/flat_source.cpp +0 -0
  522. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/flat_source.h +0 -0
  523. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/geotiff_source.cpp +0 -0
  524. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/geotiff_source.h +0 -0
  525. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/source.h +0 -0
  526. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/source_chain.cpp +0 -0
  527. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/source_chain.h +0 -0
  528. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/synthetic_terrain.cpp +0 -0
  529. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/synthetic_terrain.h +0 -0
  530. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/terraingen.h +0 -0
  531. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/CMakeLists.txt +0 -0
  532. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/build_info.cpp.in +0 -0
  533. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/build_info.h +0 -0
  534. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/cells.h +0 -0
  535. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/checks.cpp +0 -0
  536. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/checks.h +0 -0
  537. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/cube_faces.h +0 -0
  538. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/fft.cpp +0 -0
  539. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/fft.h +0 -0
  540. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/geometry.h +0 -0
  541. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/log.cpp +0 -0
  542. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/log.h +0 -0
  543. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/lru_cache.h +0 -0
  544. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/overloaded.h +0 -0
  545. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/parallel.cpp +0 -0
  546. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/parallel.h +0 -0
  547. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/planar_cells.cpp +0 -0
  548. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/portable.h +0 -0
  549. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/radial_shape.cpp +0 -0
  550. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/radial_shape.h +0 -0
  551. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/special_functions.cpp +0 -0
  552. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/special_functions.h +0 -0
  553. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/surface.cpp +0 -0
  554. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/surface.h +0 -0
  555. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/version.cpp +0 -0
  556. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/version.h.in +0 -0
  557. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/CMakeLists.txt +0 -0
  558. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/CMakeLists.txt +0 -0
  559. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_craters.cpp +0 -0
  560. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_grids.cpp +0 -0
  561. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_point_queries.cpp +0 -0
  562. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_python_subclasses.py +0 -0
  563. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/fixtures.h +0 -0
  564. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/golden/CMakeLists.txt +0 -0
  565. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/golden/noise/kernels_test.cpp +0 -0
  566. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/CMakeLists.txt +0 -0
  567. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/build_info_stable.cmake +0 -0
  568. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/examples/CMakeLists.txt +0 -0
  569. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/package/CMakeLists.txt +0 -0
  570. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/package/main.cpp +0 -0
  571. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/package/test_debian_packages.cmake +0 -0
  572. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/CMakeLists.txt +0 -0
  573. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/conftest.py +0 -0
  574. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_albedo.py +0 -0
  575. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_boulders.py +0 -0
  576. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_config.py +0 -0
  577. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_crater_models.py +0 -0
  578. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_craters.py +0 -0
  579. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_distributions.py +0 -0
  580. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_examples_harness.py +0 -0
  581. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_gpu.py +0 -0
  582. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_layers.py +0 -0
  583. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_meshes.py +0 -0
  584. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_noise.py +0 -0
  585. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_pipeline.py +0 -0
  586. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_random.py +0 -0
  587. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_raster.py +0 -0
  588. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_render.py +0 -0
  589. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_sources.py +0 -0
  590. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_stubs.py +0 -0
  591. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_tiles.py +0 -0
  592. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_util.py +0 -0
  593. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/CMakeLists.txt +0 -0
  594. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/distribution/crater_references_test.cpp +0 -0
  595. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
  596. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -0
  597. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
  598. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/craters/population_test.cpp +0 -0
  599. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/roughness_test.cpp +0 -0
  600. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/random/random_test.cpp +0 -0
  601. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/log_capture.h +0 -0
  602. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/lunar_craters.h +0 -0
  603. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/raster_equality.h +0 -0
  604. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/statistics.h +0 -0
  605. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/temp_path.h +0 -0
  606. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/CMakeLists.txt +0 -0
  607. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/CMakeLists.txt +0 -0
  608. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/albedo_test.cpp +0 -0
  609. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/blast_zones_test.cpp +0 -0
  610. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/crater_albedo_test.cpp +0 -0
  611. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/splotches_test.cpp +0 -0
  612. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/CMakeLists.txt +0 -0
  613. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/cli_test.cpp +0 -0
  614. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/CMakeLists.txt +0 -0
  615. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/config_editor_test.cpp +0 -0
  616. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/gui_app_test.cpp +0 -0
  617. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
  618. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/CMakeLists.txt +0 -0
  619. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/build_test.cpp +0 -0
  620. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/checks_test.cpp +0 -0
  621. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/config_test.cpp +0 -0
  622. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/configs.h +0 -0
  623. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/feature_lists_test.cpp +0 -0
  624. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/generate_terrain_test.cpp +0 -0
  625. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/json_io_test.cpp +0 -0
  626. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/json_parse_errors_test.cpp +0 -0
  627. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/json_read_test.cpp +0 -0
  628. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/schema_test.cpp +0 -0
  629. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/validate_config_test.cpp +0 -0
  630. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/validate_sources_test.cpp +0 -0
  631. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/write_outputs_test.cpp +0 -0
  632. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/CMakeLists.txt +0 -0
  633. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/combined_test.cpp +0 -0
  634. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/equilibrium_test.cpp +0 -0
  635. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
  636. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/ivanov_test.cpp +0 -0
  637. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
  638. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/minimum_test.cpp +0 -0
  639. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/moore_test.cpp +0 -0
  640. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/neukum_test.cpp +0 -0
  641. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
  642. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/power_law_test.cpp +0 -0
  643. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/production_surface_test.cpp +0 -0
  644. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/size_frequency_test.cpp +0 -0
  645. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/sp8023_test.cpp +0 -0
  646. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/spliced_test.cpp +0 -0
  647. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/summed_test.cpp +0 -0
  648. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/synthterrain_test.cpp +0 -0
  649. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/tabulated_test.cpp +0 -0
  650. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/viper_test.cpp +0 -0
  651. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/examples/CMakeLists.txt +0 -0
  652. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/examples/example_browser_test.cpp +0 -0
  653. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/examples/example_harness_test.cpp +0 -0
  654. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/CMakeLists.txt +0 -0
  655. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/backend_test.cpp +0 -0
  656. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
  657. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
  658. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/noise_test.cpp +0 -0
  659. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/vulkan_test.cpp +0 -0
  660. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/CMakeLists.txt +0 -0
  661. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/bedforms_test.cpp +0 -0
  662. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -0
  663. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -0
  664. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_models_test.cpp +0 -0
  665. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_options_test.cpp +0 -0
  666. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
  667. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
  668. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
  669. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/crater_layer_test.cpp +0 -0
  670. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/crater_test.cpp +0 -0
  671. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
  672. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -0
  673. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
  674. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
  675. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
  676. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
  677. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
  678. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
  679. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/secondaries_test.cpp +0 -0
  680. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/apply_test.cpp +0 -0
  681. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
  682. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/datum_test.cpp +0 -0
  683. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -0
  684. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
  685. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/sphere_test.cpp +0 -0
  686. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/detail_test.cpp +0 -0
  687. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/dunes_test.cpp +0 -0
  688. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
  689. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/exposure_test.cpp +0 -0
  690. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/fade_test.cpp +0 -0
  691. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/layer_test.cpp +0 -0
  692. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/noise_relief_test.cpp +0 -0
  693. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/pavement_test.cpp +0 -0
  694. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/region_test.cpp +0 -0
  695. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/roughness_test.cpp +0 -0
  696. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sample_block_test.cpp +0 -0
  697. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sand_fill_test.cpp +0 -0
  698. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sand_shadow_test.cpp +0 -0
  699. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sphere_layers_test.cpp +0 -0
  700. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/strata_test.cpp +0 -0
  701. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/transforms_test.cpp +0 -0
  702. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/materials/CMakeLists.txt +0 -0
  703. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/materials/materials_test.cpp +0 -0
  704. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/CMakeLists.txt +0 -0
  705. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/io/icq_test.cpp +0 -0
  706. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/io/mesh_io_test.cpp +0 -0
  707. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/mesh_test.cpp +0 -0
  708. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/polyhedra_test.cpp +0 -0
  709. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/shape_model_test.cpp +0 -0
  710. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/support.h +0 -0
  711. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/CMakeLists.txt +0 -0
  712. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/fractal_test.cpp +0 -0
  713. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/hash_test.cpp +0 -0
  714. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/noise3_test.cpp +0 -0
  715. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/noise_layers_test.cpp +0 -0
  716. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/perlin_test.cpp +0 -0
  717. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/simplex_test.cpp +0 -0
  718. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/validate_test.cpp +0 -0
  719. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/value_test.cpp +0 -0
  720. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/worley_test.cpp +0 -0
  721. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/CMakeLists.txt +0 -0
  722. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/features_test.cpp +0 -0
  723. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/height_mesh_test.cpp +0 -0
  724. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/terrain_test.cpp +0 -0
  725. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/terrain_tiles_test.cpp +0 -0
  726. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/terrains.h +0 -0
  727. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/tile_cache_test.cpp +0 -0
  728. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/tiling_test.cpp +0 -0
  729. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/CMakeLists.txt +0 -0
  730. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/philox_test.cpp +0 -0
  731. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/samplers_test.cpp +0 -0
  732. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/stream_test.cpp +0 -0
  733. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/value_distribution_test.cpp +0 -0
  734. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/CMakeLists.txt +0 -0
  735. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/cell_loops_test.cpp +0 -0
  736. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
  737. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/gdal_fixtures.h +0 -0
  738. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
  739. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/geo_transform_test.cpp +0 -0
  740. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/geotiff_fixtures.inc +0 -0
  741. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/geotiff_test.cpp +0 -0
  742. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/grid_test.cpp +0 -0
  743. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/raster_stats_test.cpp +0 -0
  744. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/raster_test.cpp +0 -0
  745. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/resample_test.cpp +0 -0
  746. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/tiff_format_test.cpp +0 -0
  747. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/CMakeLists.txt +0 -0
  748. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/flat_source_test.cpp +0 -0
  749. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/geotiff_source_test.cpp +0 -0
  750. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/source_chain_test.cpp +0 -0
  751. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
  752. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/CMakeLists.txt +0 -0
  753. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/cells_test.cpp +0 -0
  754. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/checks_test.cpp +0 -0
  755. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/fft_test.cpp +0 -0
  756. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/geometry_test.cpp +0 -0
  757. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/log_test.cpp +0 -0
  758. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/lru_cache_test.cpp +0 -0
  759. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/overloaded_test.cpp +0 -0
  760. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/parallel_test.cpp +0 -0
  761. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/radial_shape_test.cpp +0 -0
  762. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/special_functions_test.cpp +0 -0
  763. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/version_test.cpp +0 -0
  764. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/README.md +0 -0
  765. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/cgltf/LICENSE +0 -0
  766. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/cgltf/cgltf.h +0 -0
  767. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/cgltf/cgltf_write.h +0 -0
  768. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/miniz/LICENSE +0 -0
  769. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/miniz/miniz.c +0 -0
  770. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/miniz/miniz.h +0 -0
  771. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/nlohmann/LICENSE.MIT +0 -0
  772. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/nlohmann/json.hpp +0 -0
  773. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/tinyobjloader/LICENSE +0 -0
  774. {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
@@ -451,6 +451,34 @@ jobs:
451
451
  path: dist
452
452
  - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
453
453
 
454
+ # The "latest" pre-release: main's packages and their checksums, replaced on every push to main.
455
+ # Marked as a pre-release and never as the latest release, so versioned releases stay the default.
456
+ latest:
457
+ needs: [lint, test, packages, package-test]
458
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
459
+ runs-on: ubuntu-24.04
460
+ timeout-minutes: 10
461
+ permissions:
462
+ contents: write
463
+ steps:
464
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
465
+ with:
466
+ pattern: "packages-*"
467
+ merge-multiple: true
468
+ path: assets
469
+ - name: Flatten
470
+ run: find assets -mindepth 2 -type f -exec mv -t assets {} + && find assets -mindepth 1 -type d -empty -delete
471
+ - name: Checksums
472
+ run: cd assets && sha256sum -- * > SHA256SUMS
473
+ - name: Release
474
+ env:
475
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
476
+ run: |
477
+ gh release delete latest --repo "$GITHUB_REPOSITORY" --cleanup-tag --yes || true
478
+ gh release create latest assets/* --repo "$GITHUB_REPOSITORY" --target "$GITHUB_SHA" \
479
+ --prerelease --latest=false --title "Latest (main)" \
480
+ --notes "Built from main at $GITHUB_SHA. For versioned binaries, use a tagged release."
481
+
454
482
  # A GitHub release for each v* tag, with every wheel, the sdist, the packages and their checksums.
455
483
  release:
456
484
  needs: [lint, test, wheel, sdist, package-test, docker]
@@ -0,0 +1,29 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.0] - 2026-10-18
11
+
12
+ Initial release.
13
+
14
+ ### Added
15
+
16
+ - C++20 library with Python bindings (`terraingenpy` on PyPI) for generating terrain from scratch or adding detail to existing DEMs.
17
+ - Craters and boulders from published size-frequency distributions, with crater ages, profiles, degradation, irregularity, secondaries and ejecta.
18
+ - Procedural 3D boulder models, and small boulders baked into the heightmap.
19
+ - Synthetic albedo with crater ejecta and rays that fade with age.
20
+ - Geologic features: dunes and ripples, layered strata, fractured bedrock, ventifacts and sand pooled in lows or behind boulders.
21
+ - Planes, spheres and ellipsoids, whole-body meshes, tiles and point queries.
22
+ - Deterministic output for a seed on any grid, tile or thread count.
23
+ - GPU acceleration on Vulkan, CUDA and Metal, detected at run time.
24
+ - `terraingen` command-line interface driven by JSON configurations.
25
+ - Examples in C++, Python and JSON.
26
+ - Release archives for Linux, macOS and Windows, Debian packages, and a Docker image.
27
+
28
+ [Unreleased]: https://github.com/alexmaietta/terraingen/compare/v0.1.0...HEAD
29
+ [0.1.0]: https://github.com/alexmaietta/terraingen/releases/tag/v0.1.0
@@ -8,7 +8,7 @@ endif()
8
8
 
9
9
  # The release being worked towards, such as 0.1.0, or for a development build a PEP 440 pre-release of
10
10
  # it, such as 0.1.0.dev42, which only the Python package carries.
11
- set(TERRAINGEN_FULL_VERSION "0.1.0.dev279")
11
+ set(TERRAINGEN_FULL_VERSION "0.1.1.dev6")
12
12
  string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" TERRAINGEN_VERSION "${TERRAINGEN_FULL_VERSION}")
13
13
 
14
14
  project(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: terraingenpy
3
- Version: 0.1.0.dev279
3
+ Version: 0.1.1.dev6
4
4
  Summary: Scientific terrain generation for planetary surfaces
5
5
  Keywords: terrain,moon,mars,craters,planetary science,simulation
6
6
  Author: Alex Maietta
@@ -94,7 +94,7 @@ We also provide:
94
94
 
95
95
  For more information on the concepts behind TerrainGen and the API, see our latest [documentation](https://alexmaietta.github.io/terraingen/).
96
96
 
97
- ## Getting Started
97
+ ## Quick Start
98
98
 
99
99
  We recommended getting started by installing `terraingenpy` from PyPi and running the GUI.
100
100
 
@@ -103,21 +103,117 @@ pip install terraingenpy
103
103
  terraingen --gui
104
104
  ```
105
105
 
106
+ ## Requirements
107
+
108
+ - Linux (Ubuntu 22.04 or newer), macOS 14 or newer, or Windows 10 or newer, on x86_64 or arm64.
109
+ - Python 3.10 or newer for the Python package.
110
+ - Optional: a Vulkan, CUDA or Metal driver for GPU acceleration. Run `terraingen backends` to see what is available.
111
+
112
+ ## Installation
113
+
114
+ ### Releases
115
+
116
+ 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.
117
+
118
+ ### Building from Source
119
+
120
+ You need CMake 3.22 or newer and a C++20 compiler (GCC 11, Clang 14, Apple Clang 15 or MSVC 2022). CMake fetches everything else.
121
+
122
+ ```sh
123
+ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
124
+ cmake --build build -j 8
125
+ cmake --install build --prefix /usr/local
126
+ ```
127
+
128
+ To build the Python package from source, run `pip install .` instead.
129
+
130
+ ### Docker
131
+
132
+ ```sh
133
+ docker run --rm ghcr.io/alexmaietta/terraingen:latest terraingen --help
134
+ ```
135
+
136
+ The `dev` tag follows `main`.
137
+
138
+ ## Getting Started
139
+
106
140
  ### Python
107
141
 
142
+ ```python
143
+ import terraingen
144
+
145
+ # A flat 513 x 513 grid with 2 m pixels
146
+ ground = terraingen.FlatSource(513, 513, 2.0)
147
+
148
+ # Fractal noise 40 m high with an 800 m wavelength
149
+ fractal = terraingen.FractalParams(seed=1, wavelength=800.0, amplitude=40.0)
150
+ noise = terraingen.NoiseLayer(fractal)
151
+ relief = terraingen.NoiseRelief([noise])
152
+
153
+ terrain = terraingen.Terrain(ground, [relief])
154
+ heights = terraingen.evaluate(terrain)
155
+ terraingen.write_geotiff("terrain.tif", heights)
156
+ ```
157
+
108
158
  ### C++
109
159
 
160
+ ```cmake
161
+ find_package(terraingen REQUIRED)
162
+ target_link_libraries(app PRIVATE terraingen::terraingen)
163
+ ```
164
+
165
+ ```cpp
166
+ #include <terraingen/terraingen.h>
167
+
168
+ int main() {
169
+ // Fractal noise 40 m high with an 800 m wavelength
170
+ terraingen::NoiseLayer noise;
171
+ noise.fractal.seed = 1;
172
+ noise.fractal.wavelength = 800.0f;
173
+ noise.fractal.amplitude = 40.0f;
174
+
175
+ terraingen::SyntheticTerrainParams relief;
176
+ relief.layers = {noise};
177
+
178
+ // A flat 513 x 513 grid with 2 m pixels, plus the noise
179
+ terraingen::Terrain terrain;
180
+ terrain.source = std::make_shared<terraingen::FlatSource>(513, 513, 2.0);
181
+ terrain.layers.push_back(std::make_shared<terraingen::NoiseRelief>(relief));
182
+
183
+ terraingen::Raster<float> heights = terraingen::Evaluate(terrain);
184
+ terraingen::WriteGeoTiff("terrain.tif", heights);
185
+ }
186
+ ```
187
+
110
188
  ### Examples
111
189
 
112
- ## Installation
190
+ [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:
191
+
192
+ ```sh
193
+ terraingen examples/config/craters/example_craters_simple.json
194
+ ```
195
+
196
+ ### Demos
113
197
 
198
+ [demos/](demos/) has larger showcases, such as terrain over a whole asteroid built from the Itokawa shape model.
114
199
 
115
200
  ## Contributing
116
201
 
202
+ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to build, test and submit changes.
203
+
117
204
  ### Documentation
118
205
 
206
+ 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.
207
+
119
208
  ### Code Coverage
120
209
 
210
+ The [coverage report](https://alexmaietta.github.io/terraingen/coverage/) is updated on every push to `main`. To generate it locally:
211
+
212
+ ```sh
213
+ cmake -S . -B build-coverage -DTERRAINGEN_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
214
+ cmake --build build-coverage -j 8 --target coverage
215
+ ```
216
+
121
217
  ## Citation
122
218
 
123
219
  If you use TerrainGen for published research, please cite:
@@ -147,5 +243,5 @@ TerrainGen draws inspiration from existing lunar terrain generation tools:
147
243
  | --- | --- | --- | --- | --- |
148
244
  | [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. |
149
245
  | [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 |
150
- | [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, |
151
- | [PANGU](https://pangu.software/) | University of Dundee / STAR-Dundee | Commercial | Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation | Commercial software |
246
+ | [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. |
247
+ | [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. |
@@ -38,7 +38,7 @@ We also provide:
38
38
 
39
39
  For more information on the concepts behind TerrainGen and the API, see our latest [documentation](https://alexmaietta.github.io/terraingen/).
40
40
 
41
- ## Getting Started
41
+ ## Quick Start
42
42
 
43
43
  We recommended getting started by installing `terraingenpy` from PyPi and running the GUI.
44
44
 
@@ -47,21 +47,117 @@ pip install terraingenpy
47
47
  terraingen --gui
48
48
  ```
49
49
 
50
+ ## Requirements
51
+
52
+ - Linux (Ubuntu 22.04 or newer), macOS 14 or newer, or Windows 10 or newer, on x86_64 or arm64.
53
+ - Python 3.10 or newer for the Python package.
54
+ - Optional: a Vulkan, CUDA or Metal driver for GPU acceleration. Run `terraingen backends` to see what is available.
55
+
56
+ ## Installation
57
+
58
+ ### Releases
59
+
60
+ 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.
61
+
62
+ ### Building from Source
63
+
64
+ You need CMake 3.22 or newer and a C++20 compiler (GCC 11, Clang 14, Apple Clang 15 or MSVC 2022). CMake fetches everything else.
65
+
66
+ ```sh
67
+ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
68
+ cmake --build build -j 8
69
+ cmake --install build --prefix /usr/local
70
+ ```
71
+
72
+ To build the Python package from source, run `pip install .` instead.
73
+
74
+ ### Docker
75
+
76
+ ```sh
77
+ docker run --rm ghcr.io/alexmaietta/terraingen:latest terraingen --help
78
+ ```
79
+
80
+ The `dev` tag follows `main`.
81
+
82
+ ## Getting Started
83
+
50
84
  ### Python
51
85
 
86
+ ```python
87
+ import terraingen
88
+
89
+ # A flat 513 x 513 grid with 2 m pixels
90
+ ground = terraingen.FlatSource(513, 513, 2.0)
91
+
92
+ # Fractal noise 40 m high with an 800 m wavelength
93
+ fractal = terraingen.FractalParams(seed=1, wavelength=800.0, amplitude=40.0)
94
+ noise = terraingen.NoiseLayer(fractal)
95
+ relief = terraingen.NoiseRelief([noise])
96
+
97
+ terrain = terraingen.Terrain(ground, [relief])
98
+ heights = terraingen.evaluate(terrain)
99
+ terraingen.write_geotiff("terrain.tif", heights)
100
+ ```
101
+
52
102
  ### C++
53
103
 
104
+ ```cmake
105
+ find_package(terraingen REQUIRED)
106
+ target_link_libraries(app PRIVATE terraingen::terraingen)
107
+ ```
108
+
109
+ ```cpp
110
+ #include <terraingen/terraingen.h>
111
+
112
+ int main() {
113
+ // Fractal noise 40 m high with an 800 m wavelength
114
+ terraingen::NoiseLayer noise;
115
+ noise.fractal.seed = 1;
116
+ noise.fractal.wavelength = 800.0f;
117
+ noise.fractal.amplitude = 40.0f;
118
+
119
+ terraingen::SyntheticTerrainParams relief;
120
+ relief.layers = {noise};
121
+
122
+ // A flat 513 x 513 grid with 2 m pixels, plus the noise
123
+ terraingen::Terrain terrain;
124
+ terrain.source = std::make_shared<terraingen::FlatSource>(513, 513, 2.0);
125
+ terrain.layers.push_back(std::make_shared<terraingen::NoiseRelief>(relief));
126
+
127
+ terraingen::Raster<float> heights = terraingen::Evaluate(terrain);
128
+ terraingen::WriteGeoTiff("terrain.tif", heights);
129
+ }
130
+ ```
131
+
54
132
  ### Examples
55
133
 
56
- ## Installation
134
+ [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:
135
+
136
+ ```sh
137
+ terraingen examples/config/craters/example_craters_simple.json
138
+ ```
139
+
140
+ ### Demos
57
141
 
142
+ [demos/](demos/) has larger showcases, such as terrain over a whole asteroid built from the Itokawa shape model.
58
143
 
59
144
  ## Contributing
60
145
 
146
+ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to build, test and submit changes.
147
+
61
148
  ### Documentation
62
149
 
150
+ 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.
151
+
63
152
  ### Code Coverage
64
153
 
154
+ The [coverage report](https://alexmaietta.github.io/terraingen/coverage/) is updated on every push to `main`. To generate it locally:
155
+
156
+ ```sh
157
+ cmake -S . -B build-coverage -DTERRAINGEN_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
158
+ cmake --build build-coverage -j 8 --target coverage
159
+ ```
160
+
65
161
  ## Citation
66
162
 
67
163
  If you use TerrainGen for published research, please cite:
@@ -91,5 +187,5 @@ TerrainGen draws inspiration from existing lunar terrain generation tools:
91
187
  | --- | --- | --- | --- | --- |
92
188
  | [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. |
93
189
  | [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 |
94
- | [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, |
95
- | [PANGU](https://pangu.software/) | University of Dundee / STAR-Dundee | Commercial | Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation | Commercial software |
190
+ | [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. |
191
+ | [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. |
@@ -73,24 +73,17 @@ function(terraingen_add_slang_kernel target symbol source)
73
73
  spirv_1_3)
74
74
  endfunction()
75
75
 
76
- # terraingen_add_kernel(<target> <symbol> <type> <header>): compiles the kernel terraingen::<type>
77
- # for every GPU backend the build supports and defines `CompiledKernel<type>()` in <target>. <header>,
78
- # relative to the repository root, is a kernel header (see util/portable.h) declaring the plain
79
- # struct <type>, `float ApplyCell(<type> kernel, float height, CellPosition position)` and the
80
- # `CompiledKernel` specialization; the generated entry point (cmake/Kernel.slang.in) applies it to grid
81
- # cells for RunKernel. A form the build cannot make is embedded empty. TEMPLATE names another
82
- # entry point, for kernels that bind more buffers (cmake/CraterKernel.slang.in).
83
- function(terraingen_add_kernel target symbol type header)
84
- cmake_parse_arguments(PARSE_ARGV 4 ARG "" "TEMPLATE" "")
85
- if(NOT ARG_TEMPLATE)
86
- set(ARG_TEMPLATE "${PROJECT_SOURCE_DIR}/cmake/Kernel.slang.in")
87
- endif()
76
+ # terraingen_add_kernel(<target> <symbol> <type> <header> <source>): compiles the Slang compute
77
+ # kernel <source> (entry point "main", including terraingen/gpu/kernel.slang) for every GPU backend
78
+ # the build supports and defines `CompiledKernel<type>()` in <target>. <header>, relative to the
79
+ # repository root, is the kernel header (see util/portable.h) declaring the plain struct <type>
80
+ # that <source> binds and the `CompiledKernel` specialization. A form the build cannot make is
81
+ # embedded empty.
82
+ function(terraingen_add_kernel target symbol type header source)
88
83
  set(KERNEL_TYPE "${type}")
89
84
  set(KERNEL_HEADER "${header}")
90
85
  set(KERNEL_SYMBOL "${symbol}")
91
86
  set(directory "${CMAKE_CURRENT_BINARY_DIR}/kernels")
92
- set(source "${directory}/${symbol}.slang")
93
- configure_file("${ARG_TEMPLATE}" "${source}" @ONLY)
94
87
  configure_file("${PROJECT_SOURCE_DIR}/cmake/Kernel.cpp.in" "${directory}/${symbol}_program.cpp"
95
88
  @ONLY)
96
89
  target_sources(${target} PRIVATE "${directory}/${symbol}_program.cpp")
@@ -24,7 +24,7 @@ constexpr std::size_t kGroupSide = 16;
24
24
  /// Most workgroups Vulkan guarantees in one dimension of a dispatch; CUDA and Metal allow more.
25
25
  constexpr std::size_t kMaxGroups = 65535;
26
26
 
27
- /// The push constants of kernels (`cmake/Kernel.slang.in`).
27
+ /// The push constants of kernels (`terraingen/gpu/kernel.slang`).
28
28
  struct KernelParams {
29
29
  std::uint32_t width = 0;
30
30
  std::uint32_t rows = 0;
@@ -0,0 +1,37 @@
1
+ // What every TerrainGen compute kernel binds first: the grid strip's heights and its column and
2
+ // row positions, and the layout of the push constants of RunKernel (terraingen/gpu/kernel.cpp).
3
+ // Kernel sources include this, bind their kernel struct at 3 and any extra buffers from 4 on, and
4
+ // declare `params` after every buffer: Metal numbers buffers in declaration order and RunKernel
5
+ // passes the push constants after the last one.
6
+
7
+ [[vk::binding(0, 0)]] RWStructuredBuffer<float> heights;
8
+ [[vk::binding(1, 0)]] StructuredBuffer<float> xs;
9
+ [[vk::binding(2, 0)]] StructuredBuffer<float> ys;
10
+
11
+ struct Params {
12
+ uint width;
13
+ uint rows;
14
+ uint noData;
15
+ float noDataValue;
16
+ uint firstRow;
17
+ };
18
+
19
+ namespace terraingen {
20
+
21
+ static const uint kNoDataNone = 0u;
22
+ static const uint kNoDataNan = 1u;
23
+
24
+ /// Whether the thread `id` falls inside the strip.
25
+ bool InStrip(Params params, uint3 id) {
26
+ return id.x < params.width && id.y < params.rows;
27
+ }
28
+
29
+ /// Whether `height` is the grid's no-data value, which kernels leave as it is.
30
+ bool IsNoData(Params params, float height) {
31
+ if (params.noData == kNoDataNan) {
32
+ return isnan(height);
33
+ }
34
+ return params.noData != kNoDataNone && height == params.noDataValue;
35
+ }
36
+
37
+ } // namespace terraingen
@@ -58,8 +58,8 @@ terraingen_add_library(
58
58
  terraingen_sources
59
59
  terraingen_util)
60
60
  terraingen_add_kernel(terraingen_layers terraingen_kernel_noise_relief NoiseReliefKernel
61
- terraingen/layers/kernels/noise_relief.h)
62
- terraingen_add_kernel(
63
- terraingen_layers terraingen_kernel_craters CraterShapeKernel
64
- terraingen/layers/kernels/craters.h TEMPLATE
65
- "${PROJECT_SOURCE_DIR}/cmake/CraterKernel.slang.in")
61
+ terraingen/layers/kernels/noise_relief.h kernels/noise_relief.slang)
62
+ terraingen_add_kernel(terraingen_layers terraingen_kernel_craters CraterShapeKernel
63
+ terraingen/layers/kernels/craters.h kernels/craters.slang)
64
+ terraingen_add_kernel(terraingen_layers terraingen_kernel_crater_datums CraterDatumKernel
65
+ terraingen/layers/kernels/craters.h kernels/crater_datums.slang)
@@ -163,11 +163,12 @@ class Generation {
163
163
  CraterList craters;
164
164
  craters.Reserve(static_cast<std::size_t>(expected));
165
165
  for (const BandPlan& entry : plan) {
166
+ const BandRegion region = BandRegionOf(entry.band);
166
167
  for (const CellIndex& cell : entry.cells) {
167
168
  const std::shared_ptr<const CraterList> drawn = DrawCell(entry.band, cell);
168
169
  for (std::size_t n = 0; n < drawn->Size(); ++n) {
169
170
  const Crater crater = drawn->At(n);
170
- if (InRegion(crater, CandidateMargin(crater.diameter))) {
171
+ if (InBandRegion(region, crater)) {
171
172
  craters.Append(crater);
172
173
  }
173
174
  }
@@ -176,6 +177,33 @@ class Generation {
176
177
  return craters;
177
178
  }
178
179
 
180
+ /// The region expanded by the candidate margins of a band's smallest and largest craters,
181
+ /// which bound every margin in between since `Expand` and `CandidateMargin` only grow.
182
+ struct BandRegion {
183
+ CraterBand band;
184
+ Bounds2d inner;
185
+ Bounds2d outer;
186
+ };
187
+
188
+ BandRegion BandRegionOf(const CraterBand& band) const {
189
+ return {band, surface_.Expand(region_, CandidateMargin(band.low)),
190
+ surface_.Expand(region_, CandidateMargin(band.high))};
191
+ }
192
+
193
+ /// `InRegion` with the crater's candidate margin, expanding the region only for craters of the
194
+ /// band between its inner and outer regions.
195
+ bool InBandRegion(const BandRegion& region, const Crater& crater) const {
196
+ if (!(crater.diameter >= region.band.low && crater.diameter <= region.band.high)) {
197
+ return InRegion(crater, CandidateMargin(crater.diameter));
198
+ }
199
+ const Vec2d centre{crater.x, crater.y};
200
+ if (!surface_.Contains(region.outer, centre)) {
201
+ return false;
202
+ }
203
+ return surface_.Contains(region.inner, centre) ||
204
+ InRegion(crater, CandidateMargin(crater.diameter));
205
+ }
206
+
179
207
  std::shared_ptr<const CraterList> DrawCell(const CraterBand& band,
180
208
  const CellIndex& cell) const {
181
209
  if (options_.cellCraters) {