terraingenpy 0.1.1.dev82__tar.gz → 0.1.1.dev95__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 (889) hide show
  1. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/CHANGELOG.md +10 -1
  2. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/CMakeLists.txt +1 -1
  3. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/PKG-INFO +1 -1
  4. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/README.md +3 -3
  5. terraingenpy-0.1.1.dev95/examples/config/boulders/example_boulders_manual.json +76 -0
  6. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_max_slope.json +1 -1
  7. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_rolling.json +1 -1
  8. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_shapes.json +1 -1
  9. terraingenpy-0.1.1.dev95/examples/config/craters/example_craters_manual_depth.json +62 -0
  10. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_pavement.json +1 -1
  11. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_sand_shadows.json +1 -1
  12. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_strata.json +2 -2
  13. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_ventifacts.json +2 -2
  14. terraingenpy-0.1.1.dev95/examples/config/terrain/example_terrain_hierarchy.json +53 -0
  15. terraingenpy-0.1.1.dev95/examples/cpp/boulders/example_boulders_manual.cpp +165 -0
  16. terraingenpy-0.1.1.dev95/examples/cpp/craters/example_craters_manual_depth.cpp +118 -0
  17. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/albedo/example_albedo_options.py +7 -2
  18. terraingenpy-0.1.1.dev95/examples/python/boulders/example_boulders_manual.py +121 -0
  19. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_positioning.py +1 -1
  20. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_irregularity.py +2 -2
  21. terraingenpy-0.1.1.dev95/examples/python/craters/example_craters_manual_depth.py +100 -0
  22. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/CMakeLists.txt +1 -0
  23. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/build.cpp +87 -13
  24. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/config.h +118 -10
  25. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/feature_lists.cpp +4 -4
  26. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/boulders.h +42 -2
  27. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/common.h +34 -0
  28. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/craters.h +14 -0
  29. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/enums.h +44 -0
  30. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/fields.h +4 -0
  31. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/layers.h +34 -0
  32. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/outputs.h +56 -0
  33. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/sources.h +13 -1
  34. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/generate.cpp +114 -10
  35. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/generate.h +4 -3
  36. terraingenpy-0.1.1.dev95/terraingen/config/hierarchy.cpp +293 -0
  37. terraingenpy-0.1.1.dev95/terraingen/config/hierarchy.h +61 -0
  38. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/validate.cpp +108 -21
  39. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/validate.h +2 -1
  40. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/CMakeLists.txt +3 -0
  41. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/abundance.cpp +5 -5
  42. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder.h +61 -2
  43. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_layer.cpp +84 -24
  44. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_layer.h +17 -6
  45. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_models.cpp +9 -2
  46. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_models.h +7 -1
  47. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_options.cpp +36 -0
  48. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_options.h +18 -5
  49. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater.cpp +18 -2
  50. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater.h +31 -4
  51. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/population.h +2 -1
  52. terraingenpy-0.1.1.dev95/terraingen/layers/craters/generation/resolved_limit.cpp +45 -0
  53. terraingenpy-0.1.1.dev95/terraingen/layers/craters/generation/resolved_limit.h +31 -0
  54. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply.cpp +8 -9
  55. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply.h +2 -1
  56. terraingenpy-0.1.1.dev95/terraingen/layers/craters/shaping/explicit_state.cpp +143 -0
  57. terraingenpy-0.1.1.dev95/terraingen/layers/craters/shaping/explicit_state.h +37 -0
  58. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/prepared.cpp +6 -2
  59. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/prepared.h +7 -2
  60. terraingenpy-0.1.1.dev95/terraingen/layers/midpoint_displacement.cpp +368 -0
  61. terraingenpy-0.1.1.dev95/terraingen/layers/midpoint_displacement.h +150 -0
  62. terraingenpy-0.1.1.dev95/terraingen/pipeline/height_mesh.cpp +133 -0
  63. terraingenpy-0.1.1.dev95/terraingen/pipeline/height_mesh.h +35 -0
  64. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/albedo.cpp +12 -11
  65. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/boulders.cpp +67 -23
  66. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/craters.cpp +65 -18
  67. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/layers.cpp +36 -0
  68. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/mesh.cpp +18 -8
  69. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/options.h +37 -0
  70. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/pipeline.cpp +21 -10
  71. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/sources.cpp +73 -7
  72. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/tables.h +10 -9
  73. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/util.cpp +9 -3
  74. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/terraingen/render.py +1 -1
  75. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/streams.h +3 -1
  76. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/cell_loops.cpp +12 -0
  77. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/cell_loops.h +9 -0
  78. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff.h +11 -0
  79. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff_read.cpp +45 -16
  80. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_format.h +4 -0
  81. terraingenpy-0.1.1.dev95/terraingen/raster/resample.cpp +168 -0
  82. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/resample.h +32 -0
  83. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/CMakeLists.txt +1 -0
  84. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/field.cpp +16 -0
  85. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/field.h +18 -0
  86. terraingenpy-0.1.1.dev95/terraingen/sources/geotiff_source.cpp +111 -0
  87. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/geotiff_source.h +30 -32
  88. terraingenpy-0.1.1.dev95/terraingen/sources/raster_source.cpp +214 -0
  89. terraingenpy-0.1.1.dev95/terraingen/sources/raster_source.h +181 -0
  90. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/source.h +12 -0
  91. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/source_chain.cpp +9 -0
  92. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/source_chain.h +4 -0
  93. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/terraingen.h +3 -0
  94. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/geometry.h +8 -0
  95. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_albedo.py +7 -3
  96. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_boulders.py +54 -5
  97. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_craters.py +61 -1
  98. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_layers.py +26 -2
  99. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_meshes.py +3 -5
  100. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_pipeline.py +37 -0
  101. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_raster.py +1 -1
  102. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_render.py +3 -3
  103. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_sources.py +82 -0
  104. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_util.py +5 -0
  105. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/CMakeLists.txt +1 -0
  106. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/angles_test.cpp +28 -0
  107. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/build_test.cpp +187 -2
  108. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/feature_lists_test.cpp +24 -5
  109. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/generate_terrain_test.cpp +138 -0
  110. terraingenpy-0.1.1.dev95/tests/unit/config/hierarchy_test.cpp +219 -0
  111. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/json_io_test.cpp +85 -3
  112. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/schema_test.cpp +29 -3
  113. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/validate_config_test.cpp +147 -0
  114. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/write_outputs_test.cpp +5 -4
  115. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/CMakeLists.txt +4 -0
  116. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_layer_test.cpp +1 -1
  117. terraingenpy-0.1.1.dev95/tests/unit/layers/boulders/manual_boulder_test.cpp +351 -0
  118. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/crater_layer_test.cpp +80 -0
  119. terraingenpy-0.1.1.dev95/tests/unit/layers/craters/crater_test.cpp +129 -0
  120. terraingenpy-0.1.1.dev95/tests/unit/layers/craters/generation/resolved_limit_test.cpp +97 -0
  121. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/apply_test.cpp +3 -1
  122. terraingenpy-0.1.1.dev95/tests/unit/layers/craters/shaping/explicit_state_test.cpp +272 -0
  123. terraingenpy-0.1.1.dev95/tests/unit/layers/midpoint_displacement_test.cpp +348 -0
  124. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/features_test.cpp +88 -0
  125. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/height_mesh_test.cpp +38 -0
  126. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/cell_loops_test.cpp +11 -0
  127. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/geotiff_test.cpp +89 -0
  128. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/resample_test.cpp +115 -0
  129. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/sources/CMakeLists.txt +1 -0
  130. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/sources/field_test.cpp +18 -0
  131. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/sources/flat_source_test.cpp +6 -0
  132. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/sources/geotiff_source_test.cpp +162 -0
  133. terraingenpy-0.1.1.dev95/tests/unit/sources/raster_source_test.cpp +167 -0
  134. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/sources/source_chain_test.cpp +19 -0
  135. terraingenpy-0.1.1.dev82/terraingen/pipeline/height_mesh.cpp +0 -71
  136. terraingenpy-0.1.1.dev82/terraingen/pipeline/height_mesh.h +0 -21
  137. terraingenpy-0.1.1.dev82/terraingen/raster/resample.cpp +0 -126
  138. terraingenpy-0.1.1.dev82/terraingen/sources/geotiff_source.cpp +0 -170
  139. terraingenpy-0.1.1.dev82/tests/unit/layers/craters/crater_test.cpp +0 -54
  140. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.clang-format +0 -0
  141. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.clang-tidy +0 -0
  142. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.cmake-format.yaml +0 -0
  143. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.dockerignore +0 -0
  144. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.gitattributes +0 -0
  145. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  146. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  147. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  148. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.github/pull_request_template.md +0 -0
  149. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.github/scripts/install-lavapipe-windows.sh +0 -0
  150. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.github/workflows/ci.yml +0 -0
  151. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.gitignore +0 -0
  152. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/.pre-commit-config.yaml +0 -0
  153. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/CITATION.cff +0 -0
  154. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/CONTRIBUTING.md +0 -0
  155. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/Dockerfile +0 -0
  156. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/LICENSE +0 -0
  157. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/README.md +0 -0
  158. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/README.md +0 -0
  159. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_diff_4k.jpg +0 -0
  160. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_disp_4k.png +0 -0
  161. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
  162. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_rough_4k.exr +0 -0
  163. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_ao_2k.png +0 -0
  164. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_arm_2k.png +0 -0
  165. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_diff_2k.png +0 -0
  166. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_disp_2k.png +0 -0
  167. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_nor_dx_2k.exr +0 -0
  168. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_nor_gl_2k.exr +0 -0
  169. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_rough_2k.exr +0 -0
  170. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/BuildInfo.cmake +0 -0
  171. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/CoverageBadge.cmake +0 -0
  172. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/EmbedFile.cmake +0 -0
  173. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/Kernel.cpp.in +0 -0
  174. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/TerrainGenPackaging.cmake +0 -0
  175. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/TerrainGenSlang.cmake +0 -0
  176. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/TerrainGenTesting.cmake +0 -0
  177. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/terraingenConfig.cmake.in +0 -0
  178. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/benchmark.cmake +0 -0
  179. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/ernie.cmake +0 -0
  180. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/googletest.cmake +0 -0
  181. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/mesh_formats.cmake +0 -0
  182. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/miniz.cmake +0 -0
  183. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/nanobind.cmake +0 -0
  184. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/nvrtc.cmake +0 -0
  185. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/slang.cmake +0 -0
  186. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/volk.cmake +0 -0
  187. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/cmake/third_party/vulkan_headers.cmake +0 -0
  188. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/.gitignore +0 -0
  189. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/Makefile +0 -0
  190. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/README.md +0 -0
  191. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/api/cpp.md +0 -0
  192. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/api/python.md +0 -0
  193. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/concepts/index.md +0 -0
  194. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/css/extra.css +0 -0
  195. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/getting-started/command-line.md +0 -0
  196. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/getting-started/gui.md +0 -0
  197. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/getting-started/index.md +0 -0
  198. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/getting-started/installation.md +0 -0
  199. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/getting-started/quickstart.md +0 -0
  200. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/guides/index.md +0 -0
  201. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
  202. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg +0 -0
  203. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/index.md +0 -0
  204. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/overrides/home.html +0 -0
  205. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/overrides/partials/header.html +0 -0
  206. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/requirements.txt +0 -0
  207. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/scripts/generate_schema.py +0 -0
  208. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/docs/validation/index.md +0 -0
  209. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_fresh.json +0 -0
  210. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_freshness.json +0 -0
  211. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_steady_state.json +0 -0
  212. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_uniform.json +0 -0
  213. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
  214. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
  215. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
  216. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_moon_site.json +0 -0
  217. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_new_crater.json +0 -0
  218. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
  219. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_rgb.json +0 -0
  220. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
  221. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_synthetic.json +0 -0
  222. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_buried.json +0 -0
  223. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_ejecta.json +0 -0
  224. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_exposure.json +0 -0
  225. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_fragments.json +0 -0
  226. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_layer.json +0 -0
  227. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_models.json +0 -0
  228. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_patches.json +0 -0
  229. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_rock_abundance.json +0 -0
  230. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_scene.json +0 -0
  231. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_slope_map.json +0 -0
  232. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_sp8023.json +0 -0
  233. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
  234. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
  235. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_datum.json +0 -0
  236. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
  237. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_degradation_none.json +0 -0
  238. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_interior_replacement.json +0 -0
  239. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_irregular.json +0 -0
  240. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_manual.json +0 -0
  241. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_max_craters.json +0 -0
  242. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_profile_complex.json +0 -0
  243. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
  244. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
  245. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_secondaries.json +0 -0
  246. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_secondary_rays.json +0 -0
  247. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_simple.json +0 -0
  248. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_slopes.json +0 -0
  249. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
  250. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_spacing.json +0 -0
  251. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_texture.json +0 -0
  252. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_wall_marks.json +0 -0
  253. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
  254. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
  255. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -0
  256. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_power_law.json +0 -0
  257. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_tabulated.json +0 -0
  258. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
  259. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_viper.json +0 -0
  260. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/layers/example_layers_regions.json +0 -0
  261. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/layers/example_layers_roughness.json +0 -0
  262. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
  263. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
  264. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
  265. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_craters.json +0 -0
  266. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_dunes.json +0 -0
  267. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_exposure.json +0 -0
  268. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
  269. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mercury_site.json +0 -0
  270. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
  271. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_moon_site.json +0 -0
  272. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_billow.json +0 -0
  273. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_cellular.json +0 -0
  274. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
  275. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_fbm.json +0 -0
  276. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_layered.json +0 -0
  277. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_ridged.json +0 -0
  278. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_roughness.json +0 -0
  279. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_voronoi.json +0 -0
  280. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/CMakeLists.txt +0 -0
  281. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/ages/example_ages_models.cpp +0 -0
  282. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -0
  283. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
  284. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
  285. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
  286. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/common/browser.cpp +0 -0
  287. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/common/browser.h +0 -0
  288. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/common/example.cpp +0 -0
  289. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/common/example.h +0 -0
  290. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/common/main.cpp +0 -0
  291. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/common/standalone_main.cpp +0 -0
  292. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/config/example_config_load.cpp +0 -0
  293. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
  294. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_manual.cpp +0 -0
  295. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
  296. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
  297. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_simple.cpp +0 -0
  298. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
  299. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/layers/example_layers_custom.cpp +0 -0
  300. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/layers/example_layers_regions.cpp +0 -0
  301. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/planets/example_planets_moon.cpp +0 -0
  302. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
  303. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
  304. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
  305. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
  306. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -0
  307. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
  308. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/__main__.py +0 -0
  309. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/_browser.py +0 -0
  310. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/_common.py +0 -0
  311. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/_harness.py +0 -0
  312. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/_images.py +0 -0
  313. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/ages/example_ages_models.py +0 -0
  314. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
  315. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/albedo/example_albedo_moon_site.py +0 -0
  316. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_exposure.py +0 -0
  317. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_layer.py +0 -0
  318. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_shapes.py +0 -0
  319. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_size_models.py +0 -0
  320. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/config/example_config_load.py +0 -0
  321. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_age_sweep.py +0 -0
  322. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_apply_options.py +0 -0
  323. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_degradation.py +0 -0
  324. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_manual.py +0 -0
  325. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_positioning.py +0 -0
  326. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_profiles.py +0 -0
  327. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
  328. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_secondaries.py +0 -0
  329. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_simple.py +0 -0
  330. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/distributions/example_distributions_csfd.py +0 -0
  331. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/distributions/example_distributions_custom.py +0 -0
  332. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/layers/example_layers_custom.py +0 -0
  333. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/layers/example_layers_regions.py +0 -0
  334. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_body_mesh.py +0 -0
  335. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mars.py +0 -0
  336. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mars_dunes.py +0 -0
  337. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mars_exposure.py +0 -0
  338. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mercury.py +0 -0
  339. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_moon_site.py +0 -0
  340. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/sources/example_sources_chain.py +0 -0
  341. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/sources/example_sources_raster_detail.py +0 -0
  342. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_fbm.py +0 -0
  343. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
  344. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
  345. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_layered.py +0 -0
  346. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
  347. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
  348. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_point_queries.py +0 -0
  349. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_quadtree.py +0 -0
  350. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
  351. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/mkdocs.yml +0 -0
  352. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/pyproject.toml +0 -0
  353. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/CMakeLists.txt +0 -0
  354. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/CMakeLists.txt +0 -0
  355. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/albedo.cpp +0 -0
  356. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/albedo.h +0 -0
  357. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/bands.cpp +0 -0
  358. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/bands.h +0 -0
  359. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/blast_zones.cpp +0 -0
  360. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/blast_zones.h +0 -0
  361. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/brightness_statistics.cpp +0 -0
  362. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/brightness_statistics.h +0 -0
  363. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/crater_albedo.cpp +0 -0
  364. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/crater_albedo.h +0 -0
  365. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/maturity.cpp +0 -0
  366. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/maturity.h +0 -0
  367. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/photometry.cpp +0 -0
  368. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/photometry.h +0 -0
  369. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/raster_albedo.cpp +0 -0
  370. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/raster_albedo.h +0 -0
  371. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/rock_albedo.cpp +0 -0
  372. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/rock_albedo.h +0 -0
  373. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/slope_albedo.cpp +0 -0
  374. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/slope_albedo.h +0 -0
  375. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/splotches.cpp +0 -0
  376. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/splotches.h +0 -0
  377. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/synthetic.cpp +0 -0
  378. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/albedo/synthetic.h +0 -0
  379. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/CMakeLists.txt +0 -0
  380. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/cli.cpp +0 -0
  381. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/cli.h +0 -0
  382. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/CMakeLists.txt +0 -0
  383. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/config_editor.cpp +0 -0
  384. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/config_editor.h +0 -0
  385. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/gui_app.cpp +0 -0
  386. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/gui_app.h +0 -0
  387. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/run.cpp +0 -0
  388. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/run.h +0 -0
  389. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/run_none.cpp +0 -0
  390. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/terrain_scene.cpp +0 -0
  391. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/terrain_scene.h +0 -0
  392. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/widgets.h +0 -0
  393. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/app/main.cpp +0 -0
  394. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/build.h +0 -0
  395. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/config.cpp +0 -0
  396. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/albedo.h +0 -0
  397. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/checks.h +0 -0
  398. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/crater_models.h +0 -0
  399. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/json_io.h +0 -0
  400. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/maps.h +0 -0
  401. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/materials.h +0 -0
  402. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/ranges.h +0 -0
  403. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/json.cpp +0 -0
  404. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/json.h +0 -0
  405. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/ranges.cpp +0 -0
  406. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/config/schema.cpp +0 -0
  407. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/CMakeLists.txt +0 -0
  408. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/composition.cpp +0 -0
  409. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/composition.h +0 -0
  410. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/equilibrium.cpp +0 -0
  411. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/equilibrium.h +0 -0
  412. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/exponential_chronology.cpp +0 -0
  413. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/exponential_chronology.h +0 -0
  414. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/golombek_rapp.cpp +0 -0
  415. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/golombek_rapp.h +0 -0
  416. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/ivanov.cpp +0 -0
  417. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/ivanov.h +0 -0
  418. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/log_polynomial.cpp +0 -0
  419. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/log_polynomial.h +0 -0
  420. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/minimum.cpp +0 -0
  421. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/minimum.h +0 -0
  422. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/moore.cpp +0 -0
  423. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/moore.h +0 -0
  424. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/neukum.cpp +0 -0
  425. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/neukum.h +0 -0
  426. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_power_law.cpp +0 -0
  427. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_power_law.h +0 -0
  428. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_uniform.cpp +0 -0
  429. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_uniform.h +0 -0
  430. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/power_law.cpp +0 -0
  431. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/power_law.h +0 -0
  432. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/production_surface.cpp +0 -0
  433. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/production_surface.h +0 -0
  434. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/size_frequency.cpp +0 -0
  435. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/size_frequency.h +0 -0
  436. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/sp8023.cpp +0 -0
  437. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/sp8023.h +0 -0
  438. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/spliced.cpp +0 -0
  439. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/spliced.h +0 -0
  440. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/summed.cpp +0 -0
  441. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/summed.h +0 -0
  442. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/synthterrain.cpp +0 -0
  443. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/synthterrain.h +0 -0
  444. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/tabulated.cpp +0 -0
  445. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/tabulated.h +0 -0
  446. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/viper.cpp +0 -0
  447. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/distribution/viper.h +0 -0
  448. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/CMakeLists.txt +0 -0
  449. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/backend.cpp +0 -0
  450. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/backend.h +0 -0
  451. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/cuda.cpp +0 -0
  452. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/cuda.h +0 -0
  453. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/device.h +0 -0
  454. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/kernel.cpp +0 -0
  455. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/kernel.h +0 -0
  456. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/kernel.slang +0 -0
  457. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/metal.cpp +0 -0
  458. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/metal.h +0 -0
  459. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/program.h +0 -0
  460. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/vulkan.cpp +0 -0
  461. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/gpu/vulkan.h +0 -0
  462. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/anchored_plane.cpp +0 -0
  463. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/anchored_plane.h +0 -0
  464. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/bedforms.cpp +0 -0
  465. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/bedforms.h +0 -0
  466. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/bisection.h +0 -0
  467. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_abundance.cpp +0 -0
  468. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_abundance.h +0 -0
  469. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_clusters.cpp +0 -0
  470. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_clusters.h +0 -0
  471. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_fragments.cpp +0 -0
  472. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_fragments.h +0 -0
  473. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_placer.h +0 -0
  474. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_shape.cpp +0 -0
  475. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_shape.h +0 -0
  476. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/ejecta_index.cpp +0 -0
  477. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/ejecta_index.h +0 -0
  478. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/age_model.cpp +0 -0
  479. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/age_model.h +0 -0
  480. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/freshness.cpp +0 -0
  481. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/freshness.h +0 -0
  482. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
  483. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/steady_state.h +0 -0
  484. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_layer.cpp +0 -0
  485. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_layer.h +0 -0
  486. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_placer.cpp +0 -0
  487. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_placer.h +0 -0
  488. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
  489. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
  490. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusion.cpp +0 -0
  491. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusion.h +0 -0
  492. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
  493. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusivities.h +0 -0
  494. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
  495. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/freshness.h +0 -0
  496. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/state.h +0 -0
  497. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
  498. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/cell_cache.h +0 -0
  499. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/population.cpp +0 -0
  500. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/spacing.cpp +0 -0
  501. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/spacing.h +0 -0
  502. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/complex.cpp +0 -0
  503. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/complex.h +0 -0
  504. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
  505. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
  506. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
  507. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
  508. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/profile.h +0 -0
  509. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/rays.cpp +0 -0
  510. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/rays.h +0 -0
  511. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondaries.cpp +0 -0
  512. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondaries.h +0 -0
  513. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondary_model.cpp +0 -0
  514. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondary_model.h +0 -0
  515. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
  516. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply_options.h +0 -0
  517. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
  518. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/attributes.h +0 -0
  519. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -0
  520. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/crater_kernel.h +0 -0
  521. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/datum.cpp +0 -0
  522. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/datum.h +0 -0
  523. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/irregularity.cpp +0 -0
  524. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/irregularity.h +0 -0
  525. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
  526. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/morphometry.h +0 -0
  527. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/slope.cpp +0 -0
  528. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/slope.h +0 -0
  529. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/density_map.cpp +0 -0
  530. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/density_map.h +0 -0
  531. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/detail.cpp +0 -0
  532. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/detail.h +0 -0
  533. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/dunes.cpp +0 -0
  534. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/dunes.h +0 -0
  535. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/evaluation_cache.h +0 -0
  536. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/exposure.cpp +0 -0
  537. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/exposure.h +0 -0
  538. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/fade.cpp +0 -0
  539. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/fade.h +0 -0
  540. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/ground.cpp +0 -0
  541. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/ground.h +0 -0
  542. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernel.h +0 -0
  543. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/cell.h +0 -0
  544. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/crater_body_datums.slang +0 -0
  545. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/crater_datums.slang +0 -0
  546. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/craters.h +0 -0
  547. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/craters.slang +0 -0
  548. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/noise_relief.h +0 -0
  549. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/noise_relief.slang +0 -0
  550. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/lattice.h +0 -0
  551. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/layer.cpp +0 -0
  552. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/layer.h +0 -0
  553. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/material.cpp +0 -0
  554. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/material.h +0 -0
  555. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/noise_relief.cpp +0 -0
  556. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/noise_relief.h +0 -0
  557. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/pavement.cpp +0 -0
  558. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/pavement.h +0 -0
  559. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/region.cpp +0 -0
  560. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/region.h +0 -0
  561. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/roughness.cpp +0 -0
  562. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/roughness.h +0 -0
  563. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/sample_block.cpp +0 -0
  564. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/sample_block.h +0 -0
  565. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_fill.cpp +0 -0
  566. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_fill.h +0 -0
  567. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_shadow.cpp +0 -0
  568. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_shadow.h +0 -0
  569. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/strata.cpp +0 -0
  570. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/strata.h +0 -0
  571. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/transforms.cpp +0 -0
  572. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/layers/transforms.h +0 -0
  573. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/CMakeLists.txt +0 -0
  574. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/formats.h +0 -0
  575. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/gltf.cpp +0 -0
  576. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/icq.cpp +0 -0
  577. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/icq.h +0 -0
  578. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/mesh_io.cpp +0 -0
  579. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/mesh_io.h +0 -0
  580. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/obj.cpp +0 -0
  581. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/stl.cpp +0 -0
  582. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/mesh.cpp +0 -0
  583. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/mesh.h +0 -0
  584. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/polyhedra.cpp +0 -0
  585. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/polyhedra.h +0 -0
  586. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/shape_model.cpp +0 -0
  587. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/mesh/shape_model.h +0 -0
  588. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/CMakeLists.txt +0 -0
  589. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/fractal.h +0 -0
  590. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/hash.h +0 -0
  591. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/lattice.h +0 -0
  592. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/noise_layers.h +0 -0
  593. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/perlin.h +0 -0
  594. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/simplex.h +0 -0
  595. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/validate.cpp +0 -0
  596. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/validate.h +0 -0
  597. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/value.h +0 -0
  598. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/noise/worley.h +0 -0
  599. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/CMakeLists.txt +0 -0
  600. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/body_mesh.cpp +0 -0
  601. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/body_mesh.h +0 -0
  602. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/features.cpp +0 -0
  603. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/features.h +0 -0
  604. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/materials.cpp +0 -0
  605. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/materials.h +0 -0
  606. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/terrain.cpp +0 -0
  607. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/terrain.h +0 -0
  608. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/tiles.cpp +0 -0
  609. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/tiles.h +0 -0
  610. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/CMakeLists.txt +0 -0
  611. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/arrays.h +0 -0
  612. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/bindings.h +0 -0
  613. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/casters.h +0 -0
  614. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/common.h +0 -0
  615. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/crater_models.cpp +0 -0
  616. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/distribution.cpp +0 -0
  617. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/gpu.cpp +0 -0
  618. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/materials.cpp +0 -0
  619. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/module.cpp +0 -0
  620. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/noise.cpp +0 -0
  621. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/objects.h +0 -0
  622. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/random.cpp +0 -0
  623. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/raster.cpp +0 -0
  624. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/src/trampolines.h +0 -0
  625. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/python/terraingen/__init__.py +0 -0
  626. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/CMakeLists.txt +0 -0
  627. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/philox.h +0 -0
  628. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/samplers.cpp +0 -0
  629. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/samplers.h +0 -0
  630. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/stream.cpp +0 -0
  631. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/stream.h +0 -0
  632. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/value_distribution.cpp +0 -0
  633. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/random/value_distribution.h +0 -0
  634. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/CMakeLists.txt +0 -0
  635. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/gaussian_blur.cpp +0 -0
  636. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/gaussian_blur.h +0 -0
  637. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geo_transform.h +0 -0
  638. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff.cpp +0 -0
  639. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
  640. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
  641. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
  642. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
  643. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/grid.cpp +0 -0
  644. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/grid.h +0 -0
  645. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/raster.h +0 -0
  646. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/raster/raster_stats.h +0 -0
  647. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/flat_source.cpp +0 -0
  648. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/flat_source.h +0 -0
  649. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/synthetic_terrain.cpp +0 -0
  650. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/sources/synthetic_terrain.h +0 -0
  651. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/CMakeLists.txt +0 -0
  652. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/arithmetic.h +0 -0
  653. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/bits.h +0 -0
  654. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/build_info.cpp.in +0 -0
  655. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/build_info.h +0 -0
  656. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/cells.h +0 -0
  657. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/checks.cpp +0 -0
  658. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/checks.h +0 -0
  659. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/cube_faces.h +0 -0
  660. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/cube_sphere_cells.cpp +0 -0
  661. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/fft.cpp +0 -0
  662. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/fft.h +0 -0
  663. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/files.cpp +0 -0
  664. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/files.h +0 -0
  665. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/log.cpp +0 -0
  666. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/log.h +0 -0
  667. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/lru_cache.h +0 -0
  668. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/overloaded.h +0 -0
  669. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/parallel.cpp +0 -0
  670. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/parallel.h +0 -0
  671. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/planar_cells.cpp +0 -0
  672. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/portable.h +0 -0
  673. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/radial_shape.cpp +0 -0
  674. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/radial_shape.h +0 -0
  675. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/span.h +0 -0
  676. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/special_functions.cpp +0 -0
  677. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/special_functions.h +0 -0
  678. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/surface.cpp +0 -0
  679. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/surface.h +0 -0
  680. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/text.cpp +0 -0
  681. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/text.h +0 -0
  682. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/version.cpp +0 -0
  683. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/terraingen/util/version.h.in +0 -0
  684. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/CMakeLists.txt +0 -0
  685. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/benchmark/CMakeLists.txt +0 -0
  686. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_boulders.cpp +0 -0
  687. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_craters.cpp +0 -0
  688. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_grids.cpp +0 -0
  689. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_point_queries.cpp +0 -0
  690. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_python_subclasses.py +0 -0
  691. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/benchmark/fixtures.h +0 -0
  692. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/golden/CMakeLists.txt +0 -0
  693. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/golden/noise/kernels_test.cpp +0 -0
  694. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/integration/CMakeLists.txt +0 -0
  695. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/integration/build_info_stable.cmake +0 -0
  696. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/integration/examples/CMakeLists.txt +0 -0
  697. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/integration/package/CMakeLists.txt +0 -0
  698. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/integration/package/main.cpp +0 -0
  699. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/integration/package/test_debian_packages.cmake +0 -0
  700. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/CMakeLists.txt +0 -0
  701. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/conftest.py +0 -0
  702. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_config.py +0 -0
  703. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_crater_models.py +0 -0
  704. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_distributions.py +0 -0
  705. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_examples_harness.py +0 -0
  706. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_gpu.py +0 -0
  707. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_noise.py +0 -0
  708. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_random.py +0 -0
  709. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_stubs.py +0 -0
  710. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/python/test_tiles.py +0 -0
  711. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/CMakeLists.txt +0 -0
  712. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/distribution/crater_references_test.cpp +0 -0
  713. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
  714. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -0
  715. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
  716. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/craters/population_test.cpp +0 -0
  717. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/roughness_test.cpp +0 -0
  718. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/statistical/random/random_test.cpp +0 -0
  719. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/support/log_capture.h +0 -0
  720. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/support/lunar_craters.h +0 -0
  721. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/support/raster_equality.h +0 -0
  722. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/support/statistics.h +0 -0
  723. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/support/temp_path.h +0 -0
  724. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/CMakeLists.txt +0 -0
  725. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/CMakeLists.txt +0 -0
  726. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/albedo_test.cpp +0 -0
  727. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/bands_test.cpp +0 -0
  728. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/blast_zones_test.cpp +0 -0
  729. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/crater_albedo_test.cpp +0 -0
  730. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/photometry_test.cpp +0 -0
  731. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/rock_albedo_test.cpp +0 -0
  732. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/slope_albedo_test.cpp +0 -0
  733. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/splotches_test.cpp +0 -0
  734. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/app/CMakeLists.txt +0 -0
  735. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/app/cli_test.cpp +0 -0
  736. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/CMakeLists.txt +0 -0
  737. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/config_editor_test.cpp +0 -0
  738. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/gui_app_test.cpp +0 -0
  739. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
  740. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/checks_test.cpp +0 -0
  741. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/config_test.cpp +0 -0
  742. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/configs.h +0 -0
  743. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/json_parse_errors_test.cpp +0 -0
  744. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/json_read_test.cpp +0 -0
  745. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/ranges_test.cpp +0 -0
  746. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/config/validate_sources_test.cpp +0 -0
  747. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/CMakeLists.txt +0 -0
  748. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/composition_test.cpp +0 -0
  749. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/equilibrium_test.cpp +0 -0
  750. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/exponential_chronology_test.cpp +0 -0
  751. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
  752. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/ivanov_test.cpp +0 -0
  753. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
  754. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/minimum_test.cpp +0 -0
  755. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/moore_test.cpp +0 -0
  756. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/neukum_test.cpp +0 -0
  757. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
  758. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/piecewise_uniform_test.cpp +0 -0
  759. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/power_law_test.cpp +0 -0
  760. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/production_surface_test.cpp +0 -0
  761. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/size_frequency_test.cpp +0 -0
  762. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/sp8023_test.cpp +0 -0
  763. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/spliced_test.cpp +0 -0
  764. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/summed_test.cpp +0 -0
  765. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/synthterrain_test.cpp +0 -0
  766. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/tabulated_test.cpp +0 -0
  767. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/viper_test.cpp +0 -0
  768. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/examples/CMakeLists.txt +0 -0
  769. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/examples/example_browser_test.cpp +0 -0
  770. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/examples/example_harness_test.cpp +0 -0
  771. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/CMakeLists.txt +0 -0
  772. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/backend_test.cpp +0 -0
  773. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
  774. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
  775. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/noise_test.cpp +0 -0
  776. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/vulkan_test.cpp +0 -0
  777. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/anchored_plane_test.cpp +0 -0
  778. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/bedforms_test.cpp +0 -0
  779. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/bisection_test.cpp +0 -0
  780. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -0
  781. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_models_test.cpp +0 -0
  782. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_options_test.cpp +0 -0
  783. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
  784. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -0
  785. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
  786. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/ages/freshness_test.cpp +0 -0
  787. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
  788. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
  789. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -0
  790. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
  791. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
  792. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/generation/population_test.cpp +0 -0
  793. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
  794. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
  795. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
  796. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
  797. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/secondaries_test.cpp +0 -0
  798. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
  799. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -0
  800. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/datum_test.cpp +0 -0
  801. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -0
  802. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
  803. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/slope_test.cpp +0 -0
  804. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/sphere_test.cpp +0 -0
  805. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/density_map_test.cpp +0 -0
  806. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/detail_test.cpp +0 -0
  807. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/dunes_test.cpp +0 -0
  808. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
  809. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/exposure_test.cpp +0 -0
  810. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/fade_test.cpp +0 -0
  811. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/ground_test.cpp +0 -0
  812. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/lattice_test.cpp +0 -0
  813. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/layer_test.cpp +0 -0
  814. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/noise_relief_test.cpp +0 -0
  815. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/pavement_test.cpp +0 -0
  816. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/region_test.cpp +0 -0
  817. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/roughness_test.cpp +0 -0
  818. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sample_block_test.cpp +0 -0
  819. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sand_fill_test.cpp +0 -0
  820. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sand_shadow_test.cpp +0 -0
  821. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sphere_layers_test.cpp +0 -0
  822. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/strata_test.cpp +0 -0
  823. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/layers/transforms_test.cpp +0 -0
  824. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/CMakeLists.txt +0 -0
  825. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/io/icq_test.cpp +0 -0
  826. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/io/mesh_io_test.cpp +0 -0
  827. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/mesh_test.cpp +0 -0
  828. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/polyhedra_test.cpp +0 -0
  829. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/shape_model_test.cpp +0 -0
  830. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/support.h +0 -0
  831. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/CMakeLists.txt +0 -0
  832. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/fractal_test.cpp +0 -0
  833. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/hash_test.cpp +0 -0
  834. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/noise3_test.cpp +0 -0
  835. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/noise_layers_test.cpp +0 -0
  836. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/perlin_test.cpp +0 -0
  837. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/simplex_test.cpp +0 -0
  838. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/validate_test.cpp +0 -0
  839. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/value_test.cpp +0 -0
  840. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/noise/worley_test.cpp +0 -0
  841. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/CMakeLists.txt +0 -0
  842. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/materials_test.cpp +0 -0
  843. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/terrain_test.cpp +0 -0
  844. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/terrain_tiles_test.cpp +0 -0
  845. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/terrains.h +0 -0
  846. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/tile_cache_test.cpp +0 -0
  847. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/tiling_test.cpp +0 -0
  848. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/random/CMakeLists.txt +0 -0
  849. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/random/philox_test.cpp +0 -0
  850. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/random/samplers_test.cpp +0 -0
  851. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/random/stream_test.cpp +0 -0
  852. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/random/value_distribution_test.cpp +0 -0
  853. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/CMakeLists.txt +0 -0
  854. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
  855. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/gdal_fixtures.h +0 -0
  856. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
  857. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/geo_transform_test.cpp +0 -0
  858. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/geotiff_fixtures.inc +0 -0
  859. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/grid_test.cpp +0 -0
  860. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/raster_stats_test.cpp +0 -0
  861. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/raster_test.cpp +0 -0
  862. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/raster/tiff_format_test.cpp +0 -0
  863. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
  864. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/CMakeLists.txt +0 -0
  865. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/cells_test.cpp +0 -0
  866. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/checks_test.cpp +0 -0
  867. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/fft_test.cpp +0 -0
  868. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/geometry_test.cpp +0 -0
  869. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/log_test.cpp +0 -0
  870. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/lru_cache_test.cpp +0 -0
  871. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/overloaded_test.cpp +0 -0
  872. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/parallel_test.cpp +0 -0
  873. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/radial_shape_test.cpp +0 -0
  874. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/span_test.cpp +0 -0
  875. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/special_functions_test.cpp +0 -0
  876. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/surface_test.cpp +0 -0
  877. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/text_test.cpp +0 -0
  878. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/tests/unit/util/version_test.cpp +0 -0
  879. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/README.md +0 -0
  880. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/cgltf/LICENSE +0 -0
  881. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/cgltf/cgltf.h +0 -0
  882. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/cgltf/cgltf_write.h +0 -0
  883. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/miniz/LICENSE +0 -0
  884. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/miniz/miniz.c +0 -0
  885. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/miniz/miniz.h +0 -0
  886. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/nlohmann/LICENSE.MIT +0 -0
  887. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/nlohmann/json.hpp +0 -0
  888. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/tinyobjloader/LICENSE +0 -0
  889. {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev95}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
@@ -23,10 +23,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
23
23
  - Crater shaping and datum fitting on the GPU on spheres, ellipsoids and shape models, not only on planes.
24
24
  - Configurations are checked against every field's documented range, and errors name the exact field, such as `layers[2].reach`.
25
25
  - Python options classes document every field with its description and unit, and gain `validate()` and a readable `repr`.
26
+ - `RasterSource`, heights from a raster in memory, shared rather than copied, low-passed and resampled as a GeoTIFF source is; `GeoTiffSource` is now a `RasterSource` of its band.
27
+ - Windowed GeoTIFF reads that decode only the strips or tiles a window meets, and a `region` for GeoTIFF sources that reads only the window it needs while giving the same heights there as the whole file.
28
+ - `Source::ResolutionAt`, the cell size of the data behind each height, and `UnresolvedCraterLimit`, a completeness limit that leaves the craters a DEM already resolves to it and generates only smaller ones; `MinimumField` combines it with a catalog's limit.
29
+ - Midpoint displacement layer: random midpoint displacement (diamond-square) expansion of a DEM or any base lattice to finer spacings, as PANGU expands DEMs (Martin et al. 2014), keeping every coarser node so nested grids share their cells, with the scale and fractal dimension estimated from the base when not given.
30
+ - Manual craters with an explicit rim-to-floor depth and rim height, in place of what the degradation model and age give; diffusion profiles solve for the age that reaches the depth.
31
+ - Manual boulders that fix any of their height, burial, yaw, lean, tilt, rest, wear and shape seed; unset fields are drawn as for generated boulders, and fixed ones are neither re-settled nor broken.
32
+ - Multi-resolution hierarchies: a `hierarchy` section nests squares in a base grid, each level twice as fine (or `factor` times) on its parent's cell centres, writes heightmaps, meshes, lists and maps per grid as `region_{region}_level_{level}` with a JSON manifest, blends each level's edges into its parent's so meshes meet without gaps, cuts meshes out under finer levels and hangs skirts, and rejects overlapping regions.
33
+ - Terrain meshes take `cutouts`, a `skirt` and a frame `site`.
34
+ - Configuration keys `region` (`min_x`, `min_y`, `max_x`, `max_y` in CRS units) on raster bases and `dem_detail` layers to read only a window of a DEM, and `unresolved_pixels_across` on crater layers to generate only the craters the base DEM does not already resolve, combined with any catalog `completeness`.
26
35
 
27
36
  ### Changed
28
37
 
29
- - Breaking: every angle key in configurations and the Python options classes is now in degrees and ends in `_deg` (`wind_azimuth_deg`, `slip_face_angle_deg`, `heading_deg`, `crease_angle_deg`), azimuths counter-clockwise from +x (local east); the old keys are rejected.
38
+ - Breaking: every angle key in configurations and the Python options classes is now in degrees and ends in `_deg` (`wind_azimuth_deg`, `slip_face_angle_deg`, `heading_deg`, `crease_angle_deg`), azimuths counter-clockwise from +x (local east); the old keys are rejected. The rest of the Python API follows: `SyntheticAlbedo(hue_deg=, hue_noise_deg=)`, `hsv_to_rgb(hue_deg)`, `write_models(crease_angle_deg=)`, `TriangleMesh.with_creases(crease_angle_deg)`, `RigidTransform.rotation_x/y/z(angle_deg)`, `CubeSphereCells.direction(face, alpha_deg, beta_deg)`, `SlopeAlbedo.maturity_at(slope_deg)`, `Boulder` `yaw_deg`, `lean_deg`, `tilt_deg` and `tilt_azimuth_deg` (also the boulder table columns and the columns of boulder lists written as CSV or JSON), `BoulderFacet` `azimuth_deg` and `angle_deg`, `CraterImpact` `angle_deg` and `heading_deg`, `CraterOutline.heading_deg` and `RayDirection.azimuth_deg`; the C++ library keeps radians.
30
39
  - Defaults give a plausible lunar terrain at 1 m per pixel in which every height layer shows: craters from a production surface capped below the Trask equilibrium with steady-state ages, diffusion and irregular outlines; Surveyor boulders; noise relief scaled to its wavelength; and visible roughness, bedforms and dunes.
31
40
  - Boulder layers default to the nominal NASA SP-8023 intercrater sizes rather than Golombek-Rapp; a `coverage`, `qa`, `qb` or `ejecta.coverage` that no Golombek-Rapp sizes use is now an error that names `"sizes": {"type": "golombek_rapp"}`.
32
41
  - Boulder lists and models hold every boulder of the layer's diameter range; only the heightmap leaves out boulders too small to resolve.
@@ -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.1.dev82")
11
+ set(TERRAINGEN_FULL_VERSION "0.1.1.dev95")
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.1.dev82
3
+ Version: 0.1.1.dev95
4
4
  Summary: Scientific terrain generation for planetary surfaces
5
5
  Keywords: terrain,moon,mars,craters,planetary science,simulation
6
6
  Author: Alex Maietta
@@ -54,11 +54,11 @@ Options:
54
54
 
55
55
  | Category | Config | C++ | Python |
56
56
  | --- | --- | --- | --- |
57
- | terrain | `example_terrain_billow`, `_cellular`, `_domain_warp`, `_fbm`, `_layered`, `_ridged`, `_roughness`, `_voronoi` | `example_terrain_fbm`, `_layered` | `example_terrain_fbm`, `_fractal_types`, `_hurst_sweep`, `_layered`, `_noise_kernels` |
58
- | craters | `example_craters_datum`, `_degradation_diffusion`, `_degradation_none`, `_interior_replacement`, `_irregular`, `_manual`, `_max_craters`, `_profile_complex`, `_profile_martin_parkes_dunstan`, `_rim_smoothing_soft`, `_secondaries`, `_secondary_rays`, `_simple`, `_smoothed_rims`, `_spacing` | `example_craters_degradation`, `_manual`, `_profiles`, `_secondaries`, `_simple` | `example_craters_age_sweep`, `_apply_options`, `_degradation`, `_irregularity`, `_manual`, `_positioning`, `_profiles`, `_rim_smoothing`, `_secondaries`, `_simple` |
57
+ | terrain | `example_terrain_billow`, `_cellular`, `_domain_warp`, `_fbm`, `_hierarchy`, `_layered`, `_ridged`, `_roughness`, `_voronoi` | `example_terrain_fbm`, `_layered` | `example_terrain_fbm`, `_fractal_types`, `_hurst_sweep`, `_layered`, `_noise_kernels` |
58
+ | craters | `example_craters_datum`, `_degradation_diffusion`, `_degradation_none`, `_interior_replacement`, `_irregular`, `_manual`, `_manual_depth`, `_max_craters`, `_profile_complex`, `_profile_martin_parkes_dunstan`, `_rim_smoothing_soft`, `_secondaries`, `_secondary_rays`, `_simple`, `_smoothed_rims`, `_spacing` | `example_craters_degradation`, `_manual`, `_manual_depth`, `_profiles`, `_secondaries`, `_simple` | `example_craters_age_sweep`, `_apply_options`, `_degradation`, `_irregularity`, `_manual`, `_manual_depth`, `_positioning`, `_profiles`, `_rim_smoothing`, `_secondaries`, `_simple` |
59
59
  | distributions | `example_distributions_moore_rough_mare`, `_piecewise_power_law`, `_power_law`, `_tabulated`, `_trask_equilibrium`, `_viper` | `example_distributions_csfd` | `example_distributions_csfd`, `_custom` |
60
60
  | ages | `example_ages_fresh`, `_freshness`, `_steady_state`, `_uniform` | `example_ages_models` | `example_ages_models` |
61
- | boulders | `example_boulders_buried`, `_ejecta`, `_fragments`, `_exposure`, `_layer`, `_models`, `_patches`, `_scene`, `_shapes`, `_sp8023` | `example_boulders_ejecta`, `_layer`, `_shapes` | `example_boulders_exposure`, `_layer`, `_positioning`, `_shapes`, `_size_models` |
61
+ | boulders | `example_boulders_buried`, `_ejecta`, `_fragments`, `_exposure`, `_layer`, `_manual`, `_models`, `_patches`, `_scene`, `_shapes`, `_sp8023` | `example_boulders_ejecta`, `_layer`, `_manual`, `_shapes` | `example_boulders_exposure`, `_layer`, `_manual`, `_positioning`, `_shapes`, `_size_models` |
62
62
  | albedo | `example_albedo_blast_zone`, `_crater_rays`, `_fresh_crater`, `_moon_site`, `_new_crater`, `_oblique_rays`, `_rgb`, `_synthetic` | `example_albedo_crater_rays` | `example_albedo_crater_rays`, `_moon_site`, `_options` |
63
63
  | layers | `example_layers_regions`, `_roughness`, `_scale_and_clamp` | `example_layers_custom`, `_regions` | `example_layers_custom`, `_regions` |
64
64
  | planets | `example_planets_asteroid_body_mesh`, `_mars_bedforms`, `_mars_craters`, `_mars_dunes`, `_mars_exposure`, `_mars_pavement`, `_mars_sand_fill`, `_mars_sand_shadows`, `_mars_strata`, `_mars_ventifacts`, `_mercury_site`, `_moon_body_mesh`, `_moon_site` | `example_planets_moon` | `example_planets_body_mesh`, `_mars`, `_mars_dunes`, `_mars_exposure`, `_mercury`, `_moon_site` |
@@ -0,0 +1,76 @@
1
+ {
2
+ "schema_version": 1,
3
+ "layers": [
4
+ {
5
+ "type": "boulders",
6
+ "seed": 1,
7
+ "coverage": 0.03,
8
+ "sizes": {
9
+ "type": "golombek_rapp"
10
+ },
11
+ "min_diameter": 0.1,
12
+ "max_diameter": 1.0,
13
+ "models": {
14
+ "min_diameter": 0.5
15
+ },
16
+ "manual": [
17
+ {
18
+ "x": -6,
19
+ "y": 4,
20
+ "diameter": 1.6,
21
+ "id": 101,
22
+ "height": 0.9,
23
+ "burial": 0.3,
24
+ "yaw_deg": 30,
25
+ "lean_deg": 5,
26
+ "tilt_deg": 15,
27
+ "tilt_azimuth_deg": 90,
28
+ "wear": 0.2,
29
+ "rest": "side",
30
+ "shape_seed": 7
31
+ },
32
+ {
33
+ "x": 5,
34
+ "y": 3,
35
+ "diameter": 1.2,
36
+ "yaw_deg": 90,
37
+ "burial": 0.5
38
+ },
39
+ {
40
+ "x": 0,
41
+ "y": -6,
42
+ "diameter": 1.0
43
+ }
44
+ ]
45
+ }
46
+ ],
47
+ "outputs": [
48
+ {
49
+ "type": "heightmap",
50
+ "path": "example_boulders_manual.tif",
51
+ "region": {
52
+ "width": 801,
53
+ "height": 801,
54
+ "pixel_size": 0.05
55
+ }
56
+ },
57
+ {
58
+ "type": "boulder_list",
59
+ "path": "example_boulders_manual.csv",
60
+ "region": {
61
+ "width": 801,
62
+ "height": 801,
63
+ "pixel_size": 0.05
64
+ }
65
+ },
66
+ {
67
+ "type": "boulder_models",
68
+ "path": "example_boulders_manual.glb",
69
+ "region": {
70
+ "width": 801,
71
+ "height": 801,
72
+ "pixel_size": 0.05
73
+ }
74
+ }
75
+ ]
76
+ }
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "min_diameter": 0.2,
23
23
  "max_diameter": 3,
24
- "max_slope_deg": 20.05352282957881
24
+ "max_slope_deg": 20.0
25
25
  }
26
26
  ],
27
27
  "outputs": [
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "min_diameter": 0.2,
23
23
  "max_diameter": 3,
24
- "max_slope_deg": 20.05352282957881,
24
+ "max_slope_deg": 20.0,
25
25
  "roll_distance": 15
26
26
  }
27
27
  ],
@@ -25,7 +25,7 @@
25
25
  "max_height_ratio": 0.9,
26
26
  "min_burial": 0.0,
27
27
  "max_burial": 0.1,
28
- "max_lean_deg": 28.64788975654116,
28
+ "max_lean_deg": 30.0,
29
29
  "relief": "shape",
30
30
  "models": {
31
31
  "min_diameter": 0.6
@@ -0,0 +1,62 @@
1
+ {
2
+ "schema_version": 1,
3
+ "layers": [
4
+ {
5
+ "type": "craters",
6
+ "generate": false,
7
+ "profile": {
8
+ "type": "martin_parkes_dunstan"
9
+ },
10
+ "degradation": {
11
+ "type": "freshness"
12
+ },
13
+ "manual": [
14
+ {
15
+ "x": -22,
16
+ "y": 20,
17
+ "diameter": 20,
18
+ "depth": 3.0,
19
+ "rim_height": 0.8
20
+ },
21
+ {
22
+ "x": 22,
23
+ "y": 22,
24
+ "diameter": 16,
25
+ "depth": 1.2
26
+ },
27
+ {
28
+ "x": -20,
29
+ "y": -22,
30
+ "diameter": 24,
31
+ "depth": 2.0,
32
+ "rim_height": 0.3
33
+ },
34
+ {
35
+ "x": 22,
36
+ "y": -20,
37
+ "diameter": 18
38
+ }
39
+ ]
40
+ }
41
+ ],
42
+ "outputs": [
43
+ {
44
+ "type": "heightmap",
45
+ "path": "example_craters_manual_depth.tif",
46
+ "region": {
47
+ "width": 401,
48
+ "height": 401,
49
+ "pixel_size": 0.25
50
+ }
51
+ },
52
+ {
53
+ "type": "crater_list",
54
+ "path": "example_craters_manual_depth.csv",
55
+ "region": {
56
+ "width": 401,
57
+ "height": 401,
58
+ "pixel_size": 0.25
59
+ }
60
+ }
61
+ ]
62
+ }
@@ -18,7 +18,7 @@
18
18
  "crack_width": 0.04,
19
19
  "crack_depth": 0.08,
20
20
  "edge_rounding": 0.02,
21
- "max_tilt_deg": 3.437746770784939,
21
+ "max_tilt_deg": 3.5,
22
22
  "max_step": 0.04,
23
23
  "octaves": 3,
24
24
  "gain": 0.55,
@@ -24,7 +24,7 @@
24
24
  },
25
25
  {
26
26
  "type": "sand_shadow",
27
- "wind_azimuth_deg": 28.64788975654116,
27
+ "wind_azimuth_deg": 30.0,
28
28
  "length_ratio": 2.0
29
29
  }
30
30
  ],
@@ -16,8 +16,8 @@
16
16
  "type": "strata",
17
17
  "bed_thickness": 4,
18
18
  "thickness_variation": 0.5,
19
- "dip_deg": 1.7188733853924696,
20
- "dip_azimuth_deg": 45.83662361046586,
19
+ "dip_deg": 1.5,
20
+ "dip_azimuth_deg": 45.0,
21
21
  "sharpness": 5,
22
22
  "cliff_share": 0.3
23
23
  },
@@ -24,8 +24,8 @@
24
24
  "relief": "shape",
25
25
  "ventifacts": {
26
26
  "share": 0.39,
27
- "wind_azimuth_deg": 45.83662361046586,
28
- "second_wind_azimuth_deg": 246.371851906254,
27
+ "wind_azimuth_deg": 45.0,
28
+ "second_wind_azimuth_deg": 245.0,
29
29
  "keel_share": 0.31
30
30
  }
31
31
  }
@@ -0,0 +1,53 @@
1
+ {
2
+ "schema_version": 1,
3
+ "layers": [
4
+ {
5
+ "type": "noise",
6
+ "stack": [
7
+ {
8
+ "seed": 3,
9
+ "wavelength": 600,
10
+ "amplitude": 30,
11
+ "octaves": 5
12
+ }
13
+ ]
14
+ },
15
+ {
16
+ "type": "midpoint_displacement",
17
+ "pixel_size": 4,
18
+ "origin_x": -512,
19
+ "origin_y": 512,
20
+ "fractal_dimension": 2.3,
21
+ "scale": 0.4,
22
+ "base": "source"
23
+ }
24
+ ],
25
+ "hierarchy": {
26
+ "path": "example_terrain_hierarchy/region_{region}_level_{level}",
27
+ "base": {
28
+ "width": 257,
29
+ "height": 257,
30
+ "pixel_size": 4
31
+ },
32
+ "regions": [
33
+ {
34
+ "centre_x": -150,
35
+ "centre_y": 100,
36
+ "size": 256,
37
+ "levels": 3
38
+ },
39
+ {
40
+ "centre_x": 250,
41
+ "centre_y": -200,
42
+ "size": 128,
43
+ "levels": 2
44
+ }
45
+ ],
46
+ "products": [
47
+ "heightmap",
48
+ "terrain_mesh"
49
+ ],
50
+ "skirt": 2,
51
+ "manifest": "example_terrain_hierarchy/manifest.json"
52
+ }
53
+ }
@@ -0,0 +1,165 @@
1
+ /// Hand-placed boulders on a small flat site, as for a rover test scene: one with its whole pose
2
+ /// and shape fixed, one with only its yaw and burial fixed and one given only its position and
3
+ /// diameter, among a sparse generated population. Fields left unset are drawn as for generated
4
+ /// boulders, and boulders 0.5 m or larger are placed as 3D boulder models. Writes the heights,
5
+ /// the boulder list and the models as a glTF scene. The same terrain as
6
+ /// examples/config/boulders/example_boulders_manual.json.
7
+ ///
8
+ /// example_boulders_manual [--output-dir DIR] [--test]
9
+ /// terraingen-examples boulders_manual
10
+
11
+ #include "common/example.h"
12
+ #include "terraingen/terraingen.h"
13
+
14
+ #include <cstddef>
15
+ #include <cstdint>
16
+ #include <filesystem>
17
+ #include <memory>
18
+ #include <string>
19
+ #include <vector>
20
+
21
+ namespace {
22
+
23
+ /// A manual boulder at (`x`, `y`), `diameter` long, fixing nothing else.
24
+ terraingen::ManualBoulder Plain(double x, double y, double diameter) {
25
+ terraingen::ManualBoulder boulder;
26
+ boulder.x = x;
27
+ boulder.y = y;
28
+ boulder.diameter = diameter;
29
+ return boulder;
30
+ }
31
+
32
+ /// The name of `rest` as the configs write it.
33
+ const char* RestName(terraingen::BoulderRest rest) {
34
+ switch (rest) {
35
+ case terraingen::BoulderRest::Side:
36
+ return "side";
37
+ case terraingen::BoulderRest::End:
38
+ return "end";
39
+ default:
40
+ return "face";
41
+ }
42
+ }
43
+
44
+ /// The placed boulder of ID `id`, or null.
45
+ const terraingen::Boulder* Find(const std::vector<terraingen::Boulder>& boulders,
46
+ std::uint64_t id) {
47
+ for (const terraingen::Boulder& boulder : boulders) {
48
+ if (boulder.id == id) {
49
+ return &boulder;
50
+ }
51
+ }
52
+ return nullptr;
53
+ }
54
+
55
+ class BouldersManual : public terraingen::examples::Example {
56
+ public:
57
+ using Example::Example;
58
+
59
+ void Generate() override {
60
+ terraingen::ManualBoulder posed = Plain(-6.0, 4.0, 1.6);
61
+ posed.id = 101;
62
+ posed.height = 0.9;
63
+ posed.burial = 0.3;
64
+ posed.yaw = 30.0 * terraingen::kDegree;
65
+ posed.lean = 5.0 * terraingen::kDegree;
66
+ posed.tilt = 15.0 * terraingen::kDegree;
67
+ posed.tiltAzimuth = 90.0 * terraingen::kDegree;
68
+ posed.wear = 0.2;
69
+ posed.rest = terraingen::BoulderRest::Side;
70
+ posed.shapeSeed = 7u;
71
+ terraingen::ManualBoulder partly = Plain(5.0, 3.0, 1.2);
72
+ partly.yaw = 90.0 * terraingen::kDegree;
73
+ partly.burial = 0.5;
74
+ manual_ = {posed, partly, Plain(0.0, -6.0, 1.0)};
75
+
76
+ terraingen::BoulderLayerOptions options;
77
+ options.sizes.coverage = 0.03;
78
+ options.sizes.minDiameter = 0.1;
79
+ options.sizes.maxDiameter = 1.0;
80
+ options.rendering.models.minDiameter = 0.5;
81
+ options.manual = manual_;
82
+
83
+ terraingen::Terrain terrain;
84
+ terrain.source = std::make_shared<terraingen::FlatSource>(801, 801, 0.05);
85
+ terrain.layers.push_back(std::make_shared<terraingen::BoulderLayer>(options));
86
+
87
+ evaluated_ = terraingen::Evaluate(terrain);
88
+ boulders_ =
89
+ terraingen::PlacedBoulders(terrain, terraingen::RasterGrid::FromRaster(evaluated_));
90
+ Out() << boulders_.boulders.size() << " boulders, " << boulders_.models.size()
91
+ << " of them boulder models\n";
92
+ for (const terraingen::ManualBoulder& manual : manual_) {
93
+ const terraingen::Boulder* b =
94
+ Find(boulders_.boulders, terraingen::ManualBoulderId(manual));
95
+ if (b == nullptr) {
96
+ continue;
97
+ }
98
+ Out() << "boulder " << b->id << " at (" << b->x << ", " << b->y << "), " << b->diameter
99
+ << " m long, " << b->height << " m high, burial " << b->burial << ", yaw "
100
+ << b->yaw * terraingen::kRadian << " deg, lean " << b->lean * terraingen::kRadian
101
+ << " deg, tilt " << b->tilt * terraingen::kRadian << " deg toward "
102
+ << b->tiltAzimuth * terraingen::kRadian << " deg, wear " << b->wear << ", rest "
103
+ << RestName(b->rest) << ", shape seed "
104
+ << (b->shapeSeed ? std::to_string(*b->shapeSeed) : std::string("from its ID"))
105
+ << "\n";
106
+ }
107
+ Show("heights", evaluated_);
108
+ }
109
+
110
+ void Save(const std::filesystem::path& dir) override {
111
+ const auto heights = dir / "example_boulders_manual.tif";
112
+ const auto list = dir / "example_boulders_manual.csv";
113
+ const auto models = dir / "example_boulders_manual.glb";
114
+ terraingen::WriteGeoTiff(heights, evaluated_);
115
+ terraingen::WriteBoulderList(boulders_.boulders, list, terraingen::ListFormat::Csv);
116
+ terraingen::WriteBoulderModels(boulders_.models, models);
117
+ Out() << "Wrote " << heights.string() << ", " << list.string() << " and " << models.string()
118
+ << "\n";
119
+ }
120
+
121
+ void Test() override {
122
+ Check(evaluated_.Width() == 801 && evaluated_.Height() == 801, "the heights are 801 x 801");
123
+ Check(terraingen::ComputeStats(evaluated_).validCount == evaluated_.Size(),
124
+ "every height is finite");
125
+ const terraingen::ManualBoulder& posed = manual_[0];
126
+ const terraingen::Boulder* p = Find(boulders_.boulders, 101);
127
+ Check(p != nullptr, "the posed boulder keeps its ID");
128
+ Check(p != nullptr && p->x == posed.x && p->y == posed.y && p->diameter == posed.diameter &&
129
+ p->height == posed.height && p->burial == posed.burial && p->yaw == posed.yaw &&
130
+ p->lean == posed.lean && p->tilt == posed.tilt &&
131
+ p->tiltAzimuth == posed.tiltAzimuth && p->wear == posed.wear &&
132
+ p->rest == terraingen::BoulderRest::Side && p->shapeSeed == posed.shapeSeed,
133
+ "the posed boulder has every field it fixes");
134
+ const terraingen::ManualBoulder& partly = manual_[1];
135
+ const terraingen::Boulder* q =
136
+ Find(boulders_.boulders, terraingen::ManualBoulderId(partly));
137
+ Check(q != nullptr && q->yaw == partly.yaw && q->burial == partly.burial &&
138
+ q->diameter == partly.diameter && !q->shapeSeed,
139
+ "the partly posed boulder has its yaw and burial");
140
+ const terraingen::Boulder* r =
141
+ Find(boulders_.boulders, terraingen::ManualBoulderId(manual_[2]));
142
+ Check(r != nullptr && r->diameter == 1.0 && r->height > 0.0,
143
+ "the boulder given only a diameter is drawn the rest of the way");
144
+ std::size_t manualModels = 0;
145
+ for (const terraingen::BoulderModel& model : boulders_.models) {
146
+ for (const terraingen::ManualBoulder& manual : manual_) {
147
+ if (model.boulder.id == terraingen::ManualBoulderId(manual)) {
148
+ ++manualModels;
149
+ }
150
+ }
151
+ }
152
+ Check(manualModels == manual_.size(), "every manual boulder is a boulder model");
153
+ Check(boulders_.boulders.size() > 20 && boulders_.boulders.size() < 2000,
154
+ "a sparse generated population around them");
155
+ }
156
+
157
+ private:
158
+ std::vector<terraingen::ManualBoulder> manual_;
159
+ terraingen::Raster<float> evaluated_;
160
+ terraingen::BoulderFeatures boulders_;
161
+ };
162
+
163
+ } // namespace
164
+
165
+ TERRAINGEN_EXAMPLE(BouldersManual, "Hand-placed boulders with a fixed pose among generated ones")
@@ -0,0 +1,118 @@
1
+ /// Hand-placed craters given an explicit rim-to-floor depth, one with its rim height as well, on a
2
+ /// small flat site under the Martin-Parkes-Dunstan profile, which honours both; one more crater
3
+ /// gives only its diameter and takes its depth from the degradation model. The same terrain as
4
+ /// examples/config/craters/example_craters_manual_depth.json.
5
+ ///
6
+ /// example_craters_manual_depth [--output-dir DIR] [--test]
7
+ /// terraingen-examples craters_manual_depth
8
+
9
+ #include "common/example.h"
10
+ #include "terraingen/terraingen.h"
11
+
12
+ #include <cmath>
13
+ #include <cstddef>
14
+ #include <filesystem>
15
+ #include <memory>
16
+ #include <vector>
17
+
18
+ namespace {
19
+
20
+ /// A manual crater at (`x`, `y`), `diameter` across, `depth` deep from rim to floor, with its
21
+ /// rim `rimHeight` above the surface (NaN derives it from the depth).
22
+ terraingen::Crater Deep(double x, double y, double diameter, double depth,
23
+ double rimHeight = std::nan("")) {
24
+ return terraingen::Crater{x, y, diameter, 0.0, 0u, true, depth, rimHeight};
25
+ }
26
+
27
+ class CratersManualDepth : public terraingen::examples::Example {
28
+ public:
29
+ using Example::Example;
30
+
31
+ void Generate() override {
32
+ const auto ages = std::make_shared<terraingen::UniformAges>(1.0);
33
+ const terraingen::CraterModels models{
34
+ std::make_shared<terraingen::PowerLawSfd>(1e-6, 2.0), ages,
35
+ std::make_shared<terraingen::FreshnessDegradation>(
36
+ ages, terraingen::LunarFreshCraterMorphometry),
37
+ std::make_shared<terraingen::MartinParkesDunstanProfile>()};
38
+ terraingen::CraterLayerOptions options;
39
+ options.generate = false;
40
+ manual_ = {
41
+ Deep(-22.0, 20.0, 20.0, 3.0, 0.8),
42
+ Deep(22.0, 22.0, 16.0, 1.2),
43
+ Deep(-20.0, -22.0, 24.0, 2.0, 0.3),
44
+ terraingen::Crater{22.0, -20.0, 18.0},
45
+ };
46
+ for (const terraingen::Crater& crater : manual_) {
47
+ options.generation.manual.Append(crater);
48
+ }
49
+
50
+ terraingen::Terrain terrain;
51
+ terrain.source = std::make_shared<terraingen::FlatSource>(401, 401, 0.25);
52
+ terrain.layers.push_back(std::make_shared<terraingen::CraterLayer>(models, options));
53
+
54
+ evaluated_ = terraingen::Evaluate(terrain);
55
+ craters_ =
56
+ terraingen::PlacedCraters(terrain, terraingen::RasterGrid::FromRaster(evaluated_));
57
+ for (std::size_t i = 0; i < craters_.craters.Size(); ++i) {
58
+ const terraingen::Crater crater = craters_.craters.At(i);
59
+ const terraingen::CraterAttributes& attributes = craters_.attributes[i];
60
+ Out() << crater.diameter << " m crater, ";
61
+ if (std::isnan(crater.depth)) {
62
+ Out() << "depth from the model";
63
+ } else {
64
+ Out() << "asked " << crater.depth << " m deep";
65
+ }
66
+ if (!std::isnan(crater.rimHeight)) {
67
+ Out() << " with a " << crater.rimHeight << " m rim";
68
+ }
69
+ Out() << ": floor " << attributes.floorDepth << " m below and rim "
70
+ << attributes.rimHeight << " m above the surface, rim to floor "
71
+ << attributes.floorDepth + attributes.rimHeight << " m\n";
72
+ }
73
+ Show("heights", evaluated_);
74
+ }
75
+
76
+ void Save(const std::filesystem::path& dir) override {
77
+ const auto path = dir / "example_craters_manual_depth.tif";
78
+ terraingen::WriteGeoTiff(path, evaluated_);
79
+ Out() << "Wrote " << path.string() << "\n";
80
+ }
81
+
82
+ void Test() override {
83
+ const terraingen::CraterList& craters = craters_.craters;
84
+ Check(evaluated_.Width() == 401 && evaluated_.Height() == 401, "the heights are 401 x 401");
85
+ Check(terraingen::ComputeStats(evaluated_).validCount == evaluated_.Size(),
86
+ "every height is finite");
87
+ Check(craters.Size() == manual_.size() && craters_.attributes.size() == craters.Size(),
88
+ "exactly the four hand-placed craters, each with attributes");
89
+ bool depths = true;
90
+ bool rims = true;
91
+ bool modelled = false;
92
+ for (std::size_t i = 0; i < craters.Size(); ++i) {
93
+ const terraingen::Crater crater = craters.At(i);
94
+ const terraingen::CraterAttributes& a = craters_.attributes[i];
95
+ const double tolerance = 1e-3 * crater.diameter;
96
+ if (std::isnan(crater.depth)) {
97
+ modelled = a.floorDepth + a.rimHeight > 1.0;
98
+ continue;
99
+ }
100
+ depths = depths && std::fabs(a.floorDepth + a.rimHeight - crater.depth) < tolerance;
101
+ rims = rims && (std::isnan(crater.rimHeight) ||
102
+ std::fabs(a.rimHeight - crater.rimHeight) < tolerance);
103
+ }
104
+ Check(depths, "each crater given a depth is that deep from rim to floor");
105
+ Check(rims, "each crater given a rim height has that rim");
106
+ Check(modelled, "the crater given only a diameter takes its depth from the model");
107
+ Check(terraingen::ComputeStats(evaluated_).min < -1.0, "the craters are cut into the site");
108
+ }
109
+
110
+ private:
111
+ std::vector<terraingen::Crater> manual_;
112
+ terraingen::Raster<float> evaluated_;
113
+ terraingen::CraterFeatures craters_;
114
+ };
115
+
116
+ } // namespace
117
+
118
+ TERRAINGEN_EXAMPLE(CratersManualDepth, "Hand-placed craters of chosen depth and rim height")
@@ -1,6 +1,6 @@
1
1
  """Albedo options: colour, maps with detail, and how bright crater material behaves.
2
2
 
3
- - `SyntheticAlbedo(rgb=True, hue, saturation, ...)` gives three bands from a colour and its noise.
3
+ - `SyntheticAlbedo(rgb=True, hue_deg, saturation, ...)` gives three bands from a colour and its noise.
4
4
  - `RasterAlbedo` interpolates an albedo map and adds sub-cell detail carrying the map's measured
5
5
  roughness down (`AlbedoDetail`).
6
6
  - `CraterAlbedoOptions` sets how much brighter fresh craters, their ejecta and their rays are, how
@@ -37,7 +37,12 @@ class Example(_common.Example):
37
37
  terraingen.FractalParams(seed=6, wavelength=600.0, amplitude=0.04, octaves=6)
38
38
  )
39
39
  colour = terraingen.SyntheticAlbedo(
40
- rgb=True, hue=30.0, saturation=0.12, value=0.14, hue_noise=[hue_noise], value_noise=[value_noise]
40
+ rgb=True,
41
+ hue_deg=30.0,
42
+ saturation=0.12,
43
+ value=0.14,
44
+ hue_noise_deg=[hue_noise],
45
+ value_noise=[value_noise],
41
46
  )
42
47
  self.rgb = np.stack(
43
48
  [band.values for band in terraingen.evaluate_albedo(terraingen.Albedo(colour), grid)], axis=-1