terraingenpy 0.1.1.dev25__tar.gz → 0.1.1.dev73__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 (1186) hide show
  1. terraingenpy-0.1.1.dev73/.github/workflows/ci.yml +513 -0
  2. terraingenpy-0.1.1.dev73/CHANGELOG.md +83 -0
  3. terraingenpy-0.1.1.dev73/CMakeLists.txt +150 -0
  4. terraingenpy-0.1.1.dev73/PKG-INFO +250 -0
  5. terraingenpy-0.1.1.dev73/README.md +194 -0
  6. terraingenpy-0.1.1.dev73/examples/config/boulders/example_boulders_exposure.json +48 -0
  7. terraingenpy-0.1.1.dev73/examples/config/boulders/example_boulders_rock_abundance.json +68 -0
  8. terraingenpy-0.1.1.dev73/examples/config/distributions/example_distributions_piecewise_uniform.json +65 -0
  9. terraingenpy-0.1.1.dev73/examples/config/planets/example_planets_mars_craters.json +60 -0
  10. terraingenpy-0.1.1.dev73/examples/cpp/albedo/example_albedo_crater_rays.cpp +110 -0
  11. terraingenpy-0.1.1.dev73/examples/cpp/tiles/example_tiles_quadtree.cpp +155 -0
  12. terraingenpy-0.1.1.dev73/examples/python/craters/example_craters_simple.py +73 -0
  13. terraingenpy-0.1.1.dev73/examples/python/tiles/example_tiles_quadtree.py +97 -0
  14. terraingenpy-0.1.1.dev73/terraingen/CMakeLists.txt +126 -0
  15. terraingenpy-0.1.1.dev73/terraingen/albedo/CMakeLists.txt +22 -0
  16. terraingenpy-0.1.1.dev73/terraingen/albedo/albedo.cpp +157 -0
  17. terraingenpy-0.1.1.dev73/terraingen/albedo/albedo.h +133 -0
  18. terraingenpy-0.1.1.dev73/terraingen/albedo/bands.cpp +66 -0
  19. terraingenpy-0.1.1.dev73/terraingen/albedo/bands.h +49 -0
  20. terraingenpy-0.1.1.dev73/terraingen/albedo/blast_zones.cpp +115 -0
  21. terraingenpy-0.1.1.dev73/terraingen/albedo/brightness_statistics.cpp +81 -0
  22. terraingenpy-0.1.1.dev73/terraingen/albedo/brightness_statistics.h +28 -0
  23. terraingenpy-0.1.1.dev73/terraingen/albedo/crater_albedo.cpp +862 -0
  24. terraingenpy-0.1.1.dev73/terraingen/albedo/crater_albedo.h +361 -0
  25. terraingenpy-0.1.1.dev73/terraingen/albedo/photometry.cpp +93 -0
  26. terraingenpy-0.1.1.dev73/terraingen/albedo/photometry.h +50 -0
  27. terraingenpy-0.1.1.dev73/terraingen/albedo/raster_albedo.cpp +150 -0
  28. terraingenpy-0.1.1.dev73/terraingen/albedo/raster_albedo.h +98 -0
  29. terraingenpy-0.1.1.dev73/terraingen/albedo/rock_albedo.cpp +122 -0
  30. terraingenpy-0.1.1.dev73/terraingen/albedo/rock_albedo.h +72 -0
  31. terraingenpy-0.1.1.dev73/terraingen/albedo/slope_albedo.cpp +155 -0
  32. terraingenpy-0.1.1.dev73/terraingen/albedo/slope_albedo.h +74 -0
  33. terraingenpy-0.1.1.dev73/terraingen/albedo/splotches.cpp +463 -0
  34. terraingenpy-0.1.1.dev73/terraingen/albedo/splotches.h +169 -0
  35. terraingenpy-0.1.1.dev73/terraingen/albedo/synthetic.cpp +86 -0
  36. terraingenpy-0.1.1.dev73/terraingen/albedo/synthetic.h +79 -0
  37. terraingenpy-0.1.1.dev73/terraingen/app/CMakeLists.txt +30 -0
  38. terraingenpy-0.1.1.dev73/terraingen/app/cli.cpp +347 -0
  39. terraingenpy-0.1.1.dev73/terraingen/app/cli.h +64 -0
  40. terraingenpy-0.1.1.dev73/terraingen/app/gui/CMakeLists.txt +7 -0
  41. terraingenpy-0.1.1.dev73/terraingen/app/gui/config_editor.cpp +919 -0
  42. terraingenpy-0.1.1.dev73/terraingen/app/gui/gui_app.cpp +499 -0
  43. terraingenpy-0.1.1.dev73/terraingen/app/gui/gui_app.h +142 -0
  44. terraingenpy-0.1.1.dev73/terraingen/app/gui/run.cpp +31 -0
  45. terraingenpy-0.1.1.dev73/terraingen/app/gui/run.h +24 -0
  46. terraingenpy-0.1.1.dev73/terraingen/app/gui/terrain_scene.cpp +94 -0
  47. terraingenpy-0.1.1.dev73/terraingen/app/gui/widgets.h +34 -0
  48. terraingenpy-0.1.1.dev73/terraingen/config/CMakeLists.txt +25 -0
  49. terraingenpy-0.1.1.dev73/terraingen/config/build.cpp +803 -0
  50. terraingenpy-0.1.1.dev73/terraingen/config/build.h +152 -0
  51. terraingenpy-0.1.1.dev73/terraingen/config/config.cpp +93 -0
  52. terraingenpy-0.1.1.dev73/terraingen/config/config.h +872 -0
  53. terraingenpy-0.1.1.dev73/terraingen/config/feature_lists.cpp +274 -0
  54. terraingenpy-0.1.1.dev73/terraingen/config/fields/albedo.h +562 -0
  55. terraingenpy-0.1.1.dev73/terraingen/config/fields/boulders.h +530 -0
  56. terraingenpy-0.1.1.dev73/terraingen/config/fields/checks.h +69 -0
  57. terraingenpy-0.1.1.dev73/terraingen/config/fields/common.h +196 -0
  58. terraingenpy-0.1.1.dev73/terraingen/config/fields/crater_models.h +279 -0
  59. terraingenpy-0.1.1.dev73/terraingen/config/fields/craters.h +424 -0
  60. terraingenpy-0.1.1.dev73/terraingen/config/fields/enums.h +368 -0
  61. terraingenpy-0.1.1.dev73/terraingen/config/fields/json_io.h +329 -0
  62. terraingenpy-0.1.1.dev73/terraingen/config/fields/layers.h +529 -0
  63. terraingenpy-0.1.1.dev73/terraingen/config/fields/materials.h +56 -0
  64. terraingenpy-0.1.1.dev73/terraingen/config/fields/outputs.h +177 -0
  65. terraingenpy-0.1.1.dev73/terraingen/config/fields/ranges.h +114 -0
  66. terraingenpy-0.1.1.dev73/terraingen/config/fields/sources.h +127 -0
  67. terraingenpy-0.1.1.dev73/terraingen/config/generate.cpp +431 -0
  68. terraingenpy-0.1.1.dev73/terraingen/config/generate.h +104 -0
  69. terraingenpy-0.1.1.dev73/terraingen/config/json.cpp +162 -0
  70. terraingenpy-0.1.1.dev73/terraingen/config/json.h +85 -0
  71. terraingenpy-0.1.1.dev73/terraingen/config/ranges.cpp +89 -0
  72. terraingenpy-0.1.1.dev73/terraingen/config/validate.cpp +739 -0
  73. terraingenpy-0.1.1.dev73/terraingen/config/validate.h +51 -0
  74. terraingenpy-0.1.1.dev73/terraingen/distribution/CMakeLists.txt +26 -0
  75. terraingenpy-0.1.1.dev73/terraingen/distribution/composition.cpp +67 -0
  76. terraingenpy-0.1.1.dev73/terraingen/distribution/composition.h +111 -0
  77. terraingenpy-0.1.1.dev73/terraingen/distribution/exponential_chronology.cpp +31 -0
  78. terraingenpy-0.1.1.dev73/terraingen/distribution/exponential_chronology.h +25 -0
  79. terraingenpy-0.1.1.dev73/terraingen/distribution/ivanov.cpp +29 -0
  80. terraingenpy-0.1.1.dev73/terraingen/distribution/minimum.cpp +54 -0
  81. terraingenpy-0.1.1.dev73/terraingen/distribution/minimum.h +46 -0
  82. terraingenpy-0.1.1.dev73/terraingen/distribution/neukum.cpp +43 -0
  83. terraingenpy-0.1.1.dev73/terraingen/distribution/piecewise_power_law.cpp +59 -0
  84. terraingenpy-0.1.1.dev73/terraingen/distribution/production_surface.cpp +35 -0
  85. terraingenpy-0.1.1.dev73/terraingen/distribution/size_frequency.cpp +166 -0
  86. terraingenpy-0.1.1.dev73/terraingen/distribution/size_frequency.h +126 -0
  87. terraingenpy-0.1.1.dev73/terraingen/distribution/sp8023.cpp +125 -0
  88. terraingenpy-0.1.1.dev73/terraingen/distribution/sp8023.h +22 -0
  89. terraingenpy-0.1.1.dev73/terraingen/distribution/spliced.cpp +65 -0
  90. terraingenpy-0.1.1.dev73/terraingen/distribution/summed.cpp +54 -0
  91. terraingenpy-0.1.1.dev73/terraingen/distribution/summed.h +46 -0
  92. terraingenpy-0.1.1.dev73/terraingen/distribution/synthterrain.cpp +19 -0
  93. terraingenpy-0.1.1.dev73/terraingen/distribution/synthterrain.h +22 -0
  94. terraingenpy-0.1.1.dev73/terraingen/gpu/backend.cpp +183 -0
  95. terraingenpy-0.1.1.dev73/terraingen/gpu/backend.h +70 -0
  96. terraingenpy-0.1.1.dev73/terraingen/gpu/cuda.cpp +331 -0
  97. terraingenpy-0.1.1.dev73/terraingen/gpu/cuda.h +54 -0
  98. terraingenpy-0.1.1.dev73/terraingen/gpu/device.h +103 -0
  99. terraingenpy-0.1.1.dev73/terraingen/gpu/kernel.cpp +149 -0
  100. terraingenpy-0.1.1.dev73/terraingen/gpu/kernel.h +40 -0
  101. terraingenpy-0.1.1.dev73/terraingen/gpu/metal.cpp +196 -0
  102. terraingenpy-0.1.1.dev73/terraingen/gpu/metal.h +49 -0
  103. terraingenpy-0.1.1.dev73/terraingen/gpu/vulkan.cpp +570 -0
  104. terraingenpy-0.1.1.dev73/terraingen/gpu/vulkan.h +73 -0
  105. terraingenpy-0.1.1.dev73/terraingen/layers/CMakeLists.txt +75 -0
  106. terraingenpy-0.1.1.dev73/terraingen/layers/anchored_plane.cpp +22 -0
  107. terraingenpy-0.1.1.dev73/terraingen/layers/anchored_plane.h +27 -0
  108. terraingenpy-0.1.1.dev73/terraingen/layers/bedforms.cpp +200 -0
  109. terraingenpy-0.1.1.dev73/terraingen/layers/bedforms.h +108 -0
  110. terraingenpy-0.1.1.dev73/terraingen/layers/bisection.h +36 -0
  111. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/abundance.cpp +383 -0
  112. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_abundance.cpp +176 -0
  113. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_abundance.h +82 -0
  114. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_clusters.cpp +60 -0
  115. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_clusters.h +46 -0
  116. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_fragments.cpp +111 -0
  117. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_layer.cpp +926 -0
  118. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_layer.h +366 -0
  119. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_models.cpp +318 -0
  120. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_models.h +93 -0
  121. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_options.cpp +262 -0
  122. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_options.h +409 -0
  123. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_placer.h +41 -0
  124. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_shape.cpp +476 -0
  125. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_shape.h +112 -0
  126. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/ejecta_index.cpp +91 -0
  127. terraingenpy-0.1.1.dev73/terraingen/layers/boulders/ejecta_index.h +53 -0
  128. terraingenpy-0.1.1.dev73/terraingen/layers/craters/ages/steady_state.cpp +58 -0
  129. terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater.cpp +91 -0
  130. terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater.h +148 -0
  131. terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_layer.cpp +212 -0
  132. terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_layer.h +136 -0
  133. terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_placer.cpp +32 -0
  134. terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_placer.h +48 -0
  135. terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusion.cpp +329 -0
  136. terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusion.h +150 -0
  137. terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusivities.cpp +47 -0
  138. terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusivities.h +47 -0
  139. terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/cell_cache.cpp +31 -0
  140. terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/cell_cache.h +63 -0
  141. terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/population.cpp +368 -0
  142. terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/population.h +158 -0
  143. terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/spacing.cpp +180 -0
  144. terraingenpy-0.1.1.dev73/terraingen/layers/craters/rays.cpp +46 -0
  145. terraingenpy-0.1.1.dev73/terraingen/layers/craters/secondaries.cpp +397 -0
  146. terraingenpy-0.1.1.dev73/terraingen/layers/craters/secondary_model.cpp +257 -0
  147. terraingenpy-0.1.1.dev73/terraingen/layers/craters/secondary_model.h +218 -0
  148. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/apply.cpp +1169 -0
  149. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/apply.h +93 -0
  150. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/apply_options.cpp +112 -0
  151. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/crater_kernel.cpp +302 -0
  152. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/crater_kernel.h +63 -0
  153. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/datum.cpp +94 -0
  154. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/datum.h +87 -0
  155. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/irregularity.cpp +347 -0
  156. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/irregularity.h +135 -0
  157. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/prepared.cpp +27 -0
  158. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/prepared.h +51 -0
  159. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/slope.cpp +61 -0
  160. terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/slope.h +82 -0
  161. terraingenpy-0.1.1.dev73/terraingen/layers/dunes.cpp +634 -0
  162. terraingenpy-0.1.1.dev73/terraingen/layers/dunes.h +229 -0
  163. terraingenpy-0.1.1.dev73/terraingen/layers/evaluation_cache.h +59 -0
  164. terraingenpy-0.1.1.dev73/terraingen/layers/exposure.cpp +108 -0
  165. terraingenpy-0.1.1.dev73/terraingen/layers/exposure.h +78 -0
  166. terraingenpy-0.1.1.dev73/terraingen/layers/ground.cpp +41 -0
  167. terraingenpy-0.1.1.dev73/terraingen/layers/ground.h +79 -0
  168. terraingenpy-0.1.1.dev73/terraingen/layers/kernel.h +43 -0
  169. terraingenpy-0.1.1.dev73/terraingen/layers/kernels/crater_body_datums.slang +39 -0
  170. terraingenpy-0.1.1.dev73/terraingen/layers/kernels/craters.h +842 -0
  171. terraingenpy-0.1.1.dev73/terraingen/layers/kernels/craters.slang +58 -0
  172. terraingenpy-0.1.1.dev73/terraingen/layers/lattice.h +34 -0
  173. terraingenpy-0.1.1.dev73/terraingen/layers/layer.cpp +50 -0
  174. terraingenpy-0.1.1.dev73/terraingen/layers/noise_relief.cpp +37 -0
  175. terraingenpy-0.1.1.dev73/terraingen/layers/pavement.cpp +260 -0
  176. terraingenpy-0.1.1.dev73/terraingen/layers/pavement.h +128 -0
  177. terraingenpy-0.1.1.dev73/terraingen/layers/region.cpp +240 -0
  178. terraingenpy-0.1.1.dev73/terraingen/layers/roughness.cpp +194 -0
  179. terraingenpy-0.1.1.dev73/terraingen/layers/sample_block.cpp +55 -0
  180. terraingenpy-0.1.1.dev73/terraingen/layers/sample_block.h +85 -0
  181. terraingenpy-0.1.1.dev73/terraingen/layers/sand_fill.cpp +79 -0
  182. terraingenpy-0.1.1.dev73/terraingen/layers/sand_fill.h +73 -0
  183. terraingenpy-0.1.1.dev73/terraingen/layers/sand_shadow.cpp +149 -0
  184. terraingenpy-0.1.1.dev73/terraingen/layers/sand_shadow.h +101 -0
  185. terraingenpy-0.1.1.dev73/terraingen/layers/strata.cpp +140 -0
  186. terraingenpy-0.1.1.dev73/terraingen/layers/strata.h +103 -0
  187. terraingenpy-0.1.1.dev73/terraingen/mesh/io/formats.h +67 -0
  188. terraingenpy-0.1.1.dev73/terraingen/mesh/io/gltf.cpp +299 -0
  189. terraingenpy-0.1.1.dev73/terraingen/mesh/io/icq.cpp +220 -0
  190. terraingenpy-0.1.1.dev73/terraingen/mesh/io/icq.h +77 -0
  191. terraingenpy-0.1.1.dev73/terraingen/mesh/io/mesh_io.cpp +108 -0
  192. terraingenpy-0.1.1.dev73/terraingen/mesh/io/mesh_io.h +65 -0
  193. terraingenpy-0.1.1.dev73/terraingen/mesh/io/obj.cpp +111 -0
  194. terraingenpy-0.1.1.dev73/terraingen/mesh/io/stl.cpp +135 -0
  195. terraingenpy-0.1.1.dev73/terraingen/mesh/mesh.cpp +239 -0
  196. terraingenpy-0.1.1.dev73/terraingen/mesh/mesh.h +119 -0
  197. terraingenpy-0.1.1.dev73/terraingen/mesh/polyhedra.cpp +173 -0
  198. terraingenpy-0.1.1.dev73/terraingen/mesh/shape_model.cpp +182 -0
  199. terraingenpy-0.1.1.dev73/terraingen/noise/fractal.h +316 -0
  200. terraingenpy-0.1.1.dev73/terraingen/noise/hash.h +77 -0
  201. terraingenpy-0.1.1.dev73/terraingen/pipeline/CMakeLists.txt +15 -0
  202. terraingenpy-0.1.1.dev73/terraingen/pipeline/body_mesh.cpp +116 -0
  203. terraingenpy-0.1.1.dev73/terraingen/pipeline/body_mesh.h +37 -0
  204. terraingenpy-0.1.1.dev73/terraingen/pipeline/features.cpp +19 -0
  205. terraingenpy-0.1.1.dev73/terraingen/pipeline/features.h +22 -0
  206. terraingenpy-0.1.1.dev73/terraingen/pipeline/materials.cpp +123 -0
  207. terraingenpy-0.1.1.dev73/terraingen/pipeline/materials.h +50 -0
  208. terraingenpy-0.1.1.dev73/terraingen/pipeline/terrain.cpp +202 -0
  209. terraingenpy-0.1.1.dev73/terraingen/pipeline/terrain.h +147 -0
  210. terraingenpy-0.1.1.dev73/terraingen/pipeline/tiles.cpp +187 -0
  211. terraingenpy-0.1.1.dev73/terraingen/pipeline/tiles.h +161 -0
  212. terraingenpy-0.1.1.dev73/terraingen/python/src/albedo.cpp +470 -0
  213. terraingenpy-0.1.1.dev73/terraingen/python/src/arrays.h +70 -0
  214. terraingenpy-0.1.1.dev73/terraingen/python/src/boulders.cpp +402 -0
  215. terraingenpy-0.1.1.dev73/terraingen/python/src/common.h +49 -0
  216. terraingenpy-0.1.1.dev73/terraingen/python/src/crater_models.cpp +345 -0
  217. terraingenpy-0.1.1.dev73/terraingen/python/src/craters.cpp +499 -0
  218. terraingenpy-0.1.1.dev73/terraingen/python/src/distribution.cpp +377 -0
  219. terraingenpy-0.1.1.dev73/terraingen/python/src/layers.cpp +435 -0
  220. terraingenpy-0.1.1.dev73/terraingen/python/src/materials.cpp +106 -0
  221. terraingenpy-0.1.1.dev73/terraingen/python/src/mesh.cpp +228 -0
  222. terraingenpy-0.1.1.dev73/terraingen/python/src/noise.cpp +370 -0
  223. terraingenpy-0.1.1.dev73/terraingen/python/src/objects.h +121 -0
  224. terraingenpy-0.1.1.dev73/terraingen/python/src/options.h +211 -0
  225. terraingenpy-0.1.1.dev73/terraingen/python/src/pipeline.cpp +530 -0
  226. terraingenpy-0.1.1.dev73/terraingen/python/src/random.cpp +137 -0
  227. terraingenpy-0.1.1.dev73/terraingen/python/src/raster.cpp +289 -0
  228. terraingenpy-0.1.1.dev73/terraingen/python/src/sources.cpp +187 -0
  229. terraingenpy-0.1.1.dev73/terraingen/python/src/tables.h +92 -0
  230. terraingenpy-0.1.1.dev73/terraingen/python/src/trampolines.h +85 -0
  231. terraingenpy-0.1.1.dev73/terraingen/python/src/util.cpp +237 -0
  232. terraingenpy-0.1.1.dev73/terraingen/python/terraingen/render.py +237 -0
  233. terraingenpy-0.1.1.dev73/terraingen/random/samplers.cpp +143 -0
  234. terraingenpy-0.1.1.dev73/terraingen/random/samplers.h +66 -0
  235. terraingenpy-0.1.1.dev73/terraingen/random/stream.h +71 -0
  236. terraingenpy-0.1.1.dev73/terraingen/random/streams.h +143 -0
  237. terraingenpy-0.1.1.dev73/terraingen/random/value_distribution.cpp +75 -0
  238. terraingenpy-0.1.1.dev73/terraingen/random/value_distribution.h +44 -0
  239. terraingenpy-0.1.1.dev73/terraingen/raster/cell_loops.h +116 -0
  240. terraingenpy-0.1.1.dev73/terraingen/raster/geo_transform.h +71 -0
  241. terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/geotiff_read.cpp +663 -0
  242. terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/geotiff_write.cpp +304 -0
  243. terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/tiff_format.cpp +129 -0
  244. terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/tiff_format.h +154 -0
  245. terraingenpy-0.1.1.dev73/terraingen/raster/grid.cpp +112 -0
  246. terraingenpy-0.1.1.dev73/terraingen/raster/grid.h +77 -0
  247. terraingenpy-0.1.1.dev73/terraingen/raster/raster.h +164 -0
  248. terraingenpy-0.1.1.dev73/terraingen/raster/raster_stats.h +48 -0
  249. terraingenpy-0.1.1.dev73/terraingen/raster/resample.cpp +126 -0
  250. terraingenpy-0.1.1.dev73/terraingen/sources/field.cpp +109 -0
  251. terraingenpy-0.1.1.dev73/terraingen/sources/field.h +115 -0
  252. terraingenpy-0.1.1.dev73/terraingen/sources/flat_source.h +56 -0
  253. terraingenpy-0.1.1.dev73/terraingen/sources/geotiff_source.cpp +170 -0
  254. terraingenpy-0.1.1.dev73/terraingen/sources/source_chain.cpp +54 -0
  255. terraingenpy-0.1.1.dev73/terraingen/terraingen.h +133 -0
  256. terraingenpy-0.1.1.dev73/terraingen/util/CMakeLists.txt +18 -0
  257. terraingenpy-0.1.1.dev73/terraingen/util/arithmetic.h +22 -0
  258. terraingenpy-0.1.1.dev73/terraingen/util/cells.h +189 -0
  259. terraingenpy-0.1.1.dev73/terraingen/util/checks.cpp +46 -0
  260. terraingenpy-0.1.1.dev73/terraingen/util/checks.h +50 -0
  261. terraingenpy-0.1.1.dev73/terraingen/util/cube_faces.h +74 -0
  262. terraingenpy-0.1.1.dev73/terraingen/util/cube_sphere_cells.cpp +344 -0
  263. terraingenpy-0.1.1.dev73/terraingen/util/files.cpp +33 -0
  264. terraingenpy-0.1.1.dev73/terraingen/util/files.h +19 -0
  265. terraingenpy-0.1.1.dev73/terraingen/util/geometry.h +139 -0
  266. terraingenpy-0.1.1.dev73/terraingen/util/log.cpp +124 -0
  267. terraingenpy-0.1.1.dev73/terraingen/util/log.h +110 -0
  268. terraingenpy-0.1.1.dev73/terraingen/util/planar_cells.cpp +64 -0
  269. terraingenpy-0.1.1.dev73/terraingen/util/radial_shape.cpp +159 -0
  270. terraingenpy-0.1.1.dev73/terraingen/util/radial_shape.h +95 -0
  271. terraingenpy-0.1.1.dev73/terraingen/util/surface.cpp +334 -0
  272. terraingenpy-0.1.1.dev73/terraingen/util/surface.h +223 -0
  273. terraingenpy-0.1.1.dev73/terraingen/util/text.cpp +30 -0
  274. terraingenpy-0.1.1.dev73/terraingen/util/text.h +23 -0
  275. terraingenpy-0.1.1.dev73/terraingen/util/version.h.in +29 -0
  276. terraingenpy-0.1.1.dev73/tests/CMakeLists.txt +51 -0
  277. terraingenpy-0.1.1.dev73/tests/integration/examples/CMakeLists.txt +66 -0
  278. terraingenpy-0.1.1.dev73/tests/python/test_albedo.py +301 -0
  279. terraingenpy-0.1.1.dev73/tests/python/test_boulders.py +311 -0
  280. terraingenpy-0.1.1.dev73/tests/python/test_config.py +190 -0
  281. terraingenpy-0.1.1.dev73/tests/python/test_crater_models.py +248 -0
  282. terraingenpy-0.1.1.dev73/tests/python/test_craters.py +481 -0
  283. terraingenpy-0.1.1.dev73/tests/python/test_distributions.py +241 -0
  284. terraingenpy-0.1.1.dev73/tests/python/test_layers.py +436 -0
  285. terraingenpy-0.1.1.dev73/tests/python/test_pipeline.py +224 -0
  286. terraingenpy-0.1.1.dev73/tests/python/test_raster.py +249 -0
  287. terraingenpy-0.1.1.dev73/tests/python/test_sources.py +157 -0
  288. terraingenpy-0.1.1.dev73/tests/python/test_tiles.py +107 -0
  289. terraingenpy-0.1.1.dev73/tests/python/test_util.py +206 -0
  290. terraingenpy-0.1.1.dev73/tests/statistical/layers/boulders/boulder_layer_test.cpp +94 -0
  291. terraingenpy-0.1.1.dev73/tests/unit/CMakeLists.txt +18 -0
  292. terraingenpy-0.1.1.dev73/tests/unit/albedo/CMakeLists.txt +14 -0
  293. terraingenpy-0.1.1.dev73/tests/unit/albedo/albedo_test.cpp +427 -0
  294. terraingenpy-0.1.1.dev73/tests/unit/albedo/bands_test.cpp +71 -0
  295. terraingenpy-0.1.1.dev73/tests/unit/albedo/blast_zones_test.cpp +122 -0
  296. terraingenpy-0.1.1.dev73/tests/unit/albedo/crater_albedo_test.cpp +829 -0
  297. terraingenpy-0.1.1.dev73/tests/unit/albedo/photometry_test.cpp +69 -0
  298. terraingenpy-0.1.1.dev73/tests/unit/albedo/rock_albedo_test.cpp +158 -0
  299. terraingenpy-0.1.1.dev73/tests/unit/albedo/slope_albedo_test.cpp +113 -0
  300. terraingenpy-0.1.1.dev73/tests/unit/albedo/splotches_test.cpp +392 -0
  301. terraingenpy-0.1.1.dev73/tests/unit/app/cli_test.cpp +273 -0
  302. terraingenpy-0.1.1.dev73/tests/unit/config/CMakeLists.txt +19 -0
  303. terraingenpy-0.1.1.dev73/tests/unit/config/build_test.cpp +662 -0
  304. terraingenpy-0.1.1.dev73/tests/unit/config/checks_test.cpp +59 -0
  305. terraingenpy-0.1.1.dev73/tests/unit/config/config_test.cpp +60 -0
  306. terraingenpy-0.1.1.dev73/tests/unit/config/configs.h +262 -0
  307. terraingenpy-0.1.1.dev73/tests/unit/config/feature_lists_test.cpp +140 -0
  308. terraingenpy-0.1.1.dev73/tests/unit/config/generate_terrain_test.cpp +595 -0
  309. terraingenpy-0.1.1.dev73/tests/unit/config/json_io_test.cpp +574 -0
  310. terraingenpy-0.1.1.dev73/tests/unit/config/json_read_test.cpp +152 -0
  311. terraingenpy-0.1.1.dev73/tests/unit/config/ranges_test.cpp +168 -0
  312. terraingenpy-0.1.1.dev73/tests/unit/config/schema_test.cpp +522 -0
  313. terraingenpy-0.1.1.dev73/tests/unit/config/validate_config_test.cpp +601 -0
  314. terraingenpy-0.1.1.dev73/tests/unit/config/validate_sources_test.cpp +302 -0
  315. terraingenpy-0.1.1.dev73/tests/unit/distribution/CMakeLists.txt +25 -0
  316. terraingenpy-0.1.1.dev73/tests/unit/distribution/composition_test.cpp +135 -0
  317. terraingenpy-0.1.1.dev73/tests/unit/distribution/exponential_chronology_test.cpp +39 -0
  318. terraingenpy-0.1.1.dev73/tests/unit/distribution/piecewise_uniform_test.cpp +131 -0
  319. terraingenpy-0.1.1.dev73/tests/unit/distribution/sp8023_test.cpp +53 -0
  320. terraingenpy-0.1.1.dev73/tests/unit/distribution/synthterrain_test.cpp +22 -0
  321. terraingenpy-0.1.1.dev73/tests/unit/distribution/tabulated_test.cpp +134 -0
  322. terraingenpy-0.1.1.dev73/tests/unit/gpu/backend_test.cpp +179 -0
  323. terraingenpy-0.1.1.dev73/tests/unit/gpu/noise_test.cpp +170 -0
  324. terraingenpy-0.1.1.dev73/tests/unit/gpu/vulkan_test.cpp +152 -0
  325. terraingenpy-0.1.1.dev73/tests/unit/layers/CMakeLists.txt +55 -0
  326. terraingenpy-0.1.1.dev73/tests/unit/layers/anchored_plane_test.cpp +24 -0
  327. terraingenpy-0.1.1.dev73/tests/unit/layers/bisection_test.cpp +29 -0
  328. terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_fragments_test.cpp +311 -0
  329. terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_layer_test.cpp +1330 -0
  330. terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_models_test.cpp +201 -0
  331. terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_options_test.cpp +81 -0
  332. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/crater_layer_test.cpp +197 -0
  333. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/degradation/diffusion_test.cpp +227 -0
  334. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/generation/cell_cache_test.cpp +76 -0
  335. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/generation/population_test.cpp +673 -0
  336. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/secondaries_test.cpp +534 -0
  337. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/apply_test.cpp +605 -0
  338. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +491 -0
  339. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/datum_test.cpp +96 -0
  340. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/irregularity_test.cpp +363 -0
  341. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/slope_test.cpp +303 -0
  342. terraingenpy-0.1.1.dev73/tests/unit/layers/craters/sphere_test.cpp +375 -0
  343. terraingenpy-0.1.1.dev73/tests/unit/layers/exposure_test.cpp +136 -0
  344. terraingenpy-0.1.1.dev73/tests/unit/layers/ground_test.cpp +61 -0
  345. terraingenpy-0.1.1.dev73/tests/unit/layers/lattice_test.cpp +32 -0
  346. terraingenpy-0.1.1.dev73/tests/unit/layers/sample_block_test.cpp +127 -0
  347. terraingenpy-0.1.1.dev73/tests/unit/mesh/io/mesh_io_test.cpp +203 -0
  348. terraingenpy-0.1.1.dev73/tests/unit/mesh/mesh_test.cpp +160 -0
  349. terraingenpy-0.1.1.dev73/tests/unit/noise/hash_test.cpp +81 -0
  350. terraingenpy-0.1.1.dev73/tests/unit/pipeline/CMakeLists.txt +12 -0
  351. terraingenpy-0.1.1.dev73/tests/unit/pipeline/features_test.cpp +143 -0
  352. terraingenpy-0.1.1.dev73/tests/unit/pipeline/materials_test.cpp +161 -0
  353. terraingenpy-0.1.1.dev73/tests/unit/pipeline/terrain_test.cpp +417 -0
  354. terraingenpy-0.1.1.dev73/tests/unit/pipeline/terrain_tiles_test.cpp +337 -0
  355. terraingenpy-0.1.1.dev73/tests/unit/pipeline/tile_cache_test.cpp +43 -0
  356. terraingenpy-0.1.1.dev73/tests/unit/pipeline/tiling_test.cpp +85 -0
  357. terraingenpy-0.1.1.dev73/tests/unit/random/stream_test.cpp +108 -0
  358. terraingenpy-0.1.1.dev73/tests/unit/random/value_distribution_test.cpp +64 -0
  359. terraingenpy-0.1.1.dev73/tests/unit/raster/geo_transform_test.cpp +67 -0
  360. terraingenpy-0.1.1.dev73/tests/unit/raster/geotiff_test.cpp +419 -0
  361. terraingenpy-0.1.1.dev73/tests/unit/raster/grid_test.cpp +89 -0
  362. terraingenpy-0.1.1.dev73/tests/unit/raster/raster_test.cpp +86 -0
  363. terraingenpy-0.1.1.dev73/tests/unit/raster/tiff_format_test.cpp +123 -0
  364. terraingenpy-0.1.1.dev73/tests/unit/sources/flat_source_test.cpp +56 -0
  365. terraingenpy-0.1.1.dev73/tests/unit/util/CMakeLists.txt +20 -0
  366. terraingenpy-0.1.1.dev73/tests/unit/util/cells_test.cpp +87 -0
  367. terraingenpy-0.1.1.dev73/tests/unit/util/checks_test.cpp +66 -0
  368. terraingenpy-0.1.1.dev73/tests/unit/util/geometry_test.cpp +64 -0
  369. terraingenpy-0.1.1.dev73/tests/unit/util/surface_test.cpp +680 -0
  370. terraingenpy-0.1.1.dev73/tests/unit/util/text_test.cpp +72 -0
  371. terraingenpy-0.1.1.dev25/.github/workflows/ci.yml +0 -514
  372. terraingenpy-0.1.1.dev25/CHANGELOG.md +0 -59
  373. terraingenpy-0.1.1.dev25/CMakeLists.txt +0 -144
  374. terraingenpy-0.1.1.dev25/PKG-INFO +0 -248
  375. terraingenpy-0.1.1.dev25/README.md +0 -192
  376. terraingenpy-0.1.1.dev25/examples/config/boulders/example_boulders_exposure.json +0 -48
  377. terraingenpy-0.1.1.dev25/examples/config/boulders/example_boulders_rock_abundance.json +0 -65
  378. terraingenpy-0.1.1.dev25/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -61
  379. terraingenpy-0.1.1.dev25/examples/config/planets/example_planets_mars_craters.json +0 -53
  380. terraingenpy-0.1.1.dev25/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -110
  381. terraingenpy-0.1.1.dev25/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -155
  382. terraingenpy-0.1.1.dev25/examples/python/craters/example_craters_simple.py +0 -73
  383. terraingenpy-0.1.1.dev25/examples/python/tiles/example_tiles_quadtree.py +0 -97
  384. terraingenpy-0.1.1.dev25/terraingen/CMakeLists.txt +0 -127
  385. terraingenpy-0.1.1.dev25/terraingen/albedo/CMakeLists.txt +0 -19
  386. terraingenpy-0.1.1.dev25/terraingen/albedo/albedo.cpp +0 -136
  387. terraingenpy-0.1.1.dev25/terraingen/albedo/albedo.h +0 -122
  388. terraingenpy-0.1.1.dev25/terraingen/albedo/blast_zones.cpp +0 -135
  389. terraingenpy-0.1.1.dev25/terraingen/albedo/crater_albedo.cpp +0 -846
  390. terraingenpy-0.1.1.dev25/terraingen/albedo/crater_albedo.h +0 -346
  391. terraingenpy-0.1.1.dev25/terraingen/albedo/raster_albedo.cpp +0 -221
  392. terraingenpy-0.1.1.dev25/terraingen/albedo/raster_albedo.h +0 -113
  393. terraingenpy-0.1.1.dev25/terraingen/albedo/rock_albedo.cpp +0 -134
  394. terraingenpy-0.1.1.dev25/terraingen/albedo/rock_albedo.h +0 -72
  395. terraingenpy-0.1.1.dev25/terraingen/albedo/slope_albedo.cpp +0 -167
  396. terraingenpy-0.1.1.dev25/terraingen/albedo/slope_albedo.h +0 -74
  397. terraingenpy-0.1.1.dev25/terraingen/albedo/splotches.cpp +0 -458
  398. terraingenpy-0.1.1.dev25/terraingen/albedo/splotches.h +0 -166
  399. terraingenpy-0.1.1.dev25/terraingen/albedo/synthetic.cpp +0 -86
  400. terraingenpy-0.1.1.dev25/terraingen/albedo/synthetic.h +0 -78
  401. terraingenpy-0.1.1.dev25/terraingen/app/CMakeLists.txt +0 -30
  402. terraingenpy-0.1.1.dev25/terraingen/app/cli.cpp +0 -282
  403. terraingenpy-0.1.1.dev25/terraingen/app/cli.h +0 -66
  404. terraingenpy-0.1.1.dev25/terraingen/app/gui/CMakeLists.txt +0 -7
  405. terraingenpy-0.1.1.dev25/terraingen/app/gui/config_editor.cpp +0 -929
  406. terraingenpy-0.1.1.dev25/terraingen/app/gui/gui_app.cpp +0 -521
  407. terraingenpy-0.1.1.dev25/terraingen/app/gui/gui_app.h +0 -134
  408. terraingenpy-0.1.1.dev25/terraingen/app/gui/run.cpp +0 -31
  409. terraingenpy-0.1.1.dev25/terraingen/app/gui/run.h +0 -24
  410. terraingenpy-0.1.1.dev25/terraingen/app/gui/terrain_scene.cpp +0 -94
  411. terraingenpy-0.1.1.dev25/terraingen/config/CMakeLists.txt +0 -25
  412. terraingenpy-0.1.1.dev25/terraingen/config/build.cpp +0 -781
  413. terraingenpy-0.1.1.dev25/terraingen/config/build.h +0 -103
  414. terraingenpy-0.1.1.dev25/terraingen/config/config.cpp +0 -44
  415. terraingenpy-0.1.1.dev25/terraingen/config/config.h +0 -803
  416. terraingenpy-0.1.1.dev25/terraingen/config/feature_lists.cpp +0 -209
  417. terraingenpy-0.1.1.dev25/terraingen/config/fields/albedo.h +0 -564
  418. terraingenpy-0.1.1.dev25/terraingen/config/fields/boulders.h +0 -469
  419. terraingenpy-0.1.1.dev25/terraingen/config/fields/checks.h +0 -72
  420. terraingenpy-0.1.1.dev25/terraingen/config/fields/common.h +0 -105
  421. terraingenpy-0.1.1.dev25/terraingen/config/fields/crater_models.h +0 -278
  422. terraingenpy-0.1.1.dev25/terraingen/config/fields/craters.h +0 -427
  423. terraingenpy-0.1.1.dev25/terraingen/config/fields/enums.h +0 -367
  424. terraingenpy-0.1.1.dev25/terraingen/config/fields/json_io.h +0 -316
  425. terraingenpy-0.1.1.dev25/terraingen/config/fields/layers.h +0 -520
  426. terraingenpy-0.1.1.dev25/terraingen/config/fields/materials.h +0 -53
  427. terraingenpy-0.1.1.dev25/terraingen/config/fields/outputs.h +0 -167
  428. terraingenpy-0.1.1.dev25/terraingen/config/fields/sources.h +0 -107
  429. terraingenpy-0.1.1.dev25/terraingen/config/generate.cpp +0 -395
  430. terraingenpy-0.1.1.dev25/terraingen/config/generate.h +0 -102
  431. terraingenpy-0.1.1.dev25/terraingen/config/json.cpp +0 -181
  432. terraingenpy-0.1.1.dev25/terraingen/config/json.h +0 -82
  433. terraingenpy-0.1.1.dev25/terraingen/config/validate.cpp +0 -673
  434. terraingenpy-0.1.1.dev25/terraingen/config/validate.h +0 -49
  435. terraingenpy-0.1.1.dev25/terraingen/distribution/CMakeLists.txt +0 -25
  436. terraingenpy-0.1.1.dev25/terraingen/distribution/combined.cpp +0 -39
  437. terraingenpy-0.1.1.dev25/terraingen/distribution/combined.h +0 -43
  438. terraingenpy-0.1.1.dev25/terraingen/distribution/ivanov.cpp +0 -35
  439. terraingenpy-0.1.1.dev25/terraingen/distribution/minimum.cpp +0 -72
  440. terraingenpy-0.1.1.dev25/terraingen/distribution/minimum.h +0 -40
  441. terraingenpy-0.1.1.dev25/terraingen/distribution/neukum.cpp +0 -48
  442. terraingenpy-0.1.1.dev25/terraingen/distribution/piecewise_power_law.cpp +0 -70
  443. terraingenpy-0.1.1.dev25/terraingen/distribution/production_surface.cpp +0 -35
  444. terraingenpy-0.1.1.dev25/terraingen/distribution/size_frequency.cpp +0 -148
  445. terraingenpy-0.1.1.dev25/terraingen/distribution/size_frequency.h +0 -124
  446. terraingenpy-0.1.1.dev25/terraingen/distribution/sp8023.cpp +0 -126
  447. terraingenpy-0.1.1.dev25/terraingen/distribution/sp8023.h +0 -24
  448. terraingenpy-0.1.1.dev25/terraingen/distribution/spliced.cpp +0 -84
  449. terraingenpy-0.1.1.dev25/terraingen/distribution/summed.cpp +0 -63
  450. terraingenpy-0.1.1.dev25/terraingen/distribution/summed.h +0 -43
  451. terraingenpy-0.1.1.dev25/terraingen/distribution/synthterrain.cpp +0 -19
  452. terraingenpy-0.1.1.dev25/terraingen/distribution/synthterrain.h +0 -24
  453. terraingenpy-0.1.1.dev25/terraingen/gpu/backend.cpp +0 -172
  454. terraingenpy-0.1.1.dev25/terraingen/gpu/backend.h +0 -63
  455. terraingenpy-0.1.1.dev25/terraingen/gpu/cuda.cpp +0 -300
  456. terraingenpy-0.1.1.dev25/terraingen/gpu/cuda.h +0 -67
  457. terraingenpy-0.1.1.dev25/terraingen/gpu/kernel.cpp +0 -121
  458. terraingenpy-0.1.1.dev25/terraingen/gpu/kernel.h +0 -37
  459. terraingenpy-0.1.1.dev25/terraingen/gpu/metal.cpp +0 -190
  460. terraingenpy-0.1.1.dev25/terraingen/gpu/metal.h +0 -52
  461. terraingenpy-0.1.1.dev25/terraingen/gpu/vulkan.cpp +0 -565
  462. terraingenpy-0.1.1.dev25/terraingen/gpu/vulkan.h +0 -80
  463. terraingenpy-0.1.1.dev25/terraingen/layers/CMakeLists.txt +0 -69
  464. terraingenpy-0.1.1.dev25/terraingen/layers/bedforms.cpp +0 -205
  465. terraingenpy-0.1.1.dev25/terraingen/layers/bedforms.h +0 -107
  466. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/abundance.cpp +0 -355
  467. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_fragments.cpp +0 -113
  468. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_layer.cpp +0 -905
  469. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_layer.h +0 -303
  470. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_models.cpp +0 -293
  471. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_models.h +0 -73
  472. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_options.cpp +0 -495
  473. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_options.h +0 -477
  474. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_placer.h +0 -39
  475. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_shape.cpp +0 -472
  476. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_shape.h +0 -107
  477. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/ejecta_index.cpp +0 -90
  478. terraingenpy-0.1.1.dev25/terraingen/layers/boulders/ejecta_index.h +0 -46
  479. terraingenpy-0.1.1.dev25/terraingen/layers/craters/ages/steady_state.cpp +0 -63
  480. terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater.cpp +0 -91
  481. terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater.h +0 -140
  482. terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_layer.cpp +0 -225
  483. terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_layer.h +0 -134
  484. terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_placer.cpp +0 -21
  485. terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_placer.h +0 -42
  486. terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusion.cpp +0 -289
  487. terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusion.h +0 -144
  488. terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusivities.cpp +0 -26
  489. terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusivities.h +0 -25
  490. terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/cell_cache.cpp +0 -33
  491. terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/cell_cache.h +0 -68
  492. terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/population.cpp +0 -377
  493. terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/population.h +0 -152
  494. terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/spacing.cpp +0 -182
  495. terraingenpy-0.1.1.dev25/terraingen/layers/craters/rays.cpp +0 -50
  496. terraingenpy-0.1.1.dev25/terraingen/layers/craters/secondaries.cpp +0 -389
  497. terraingenpy-0.1.1.dev25/terraingen/layers/craters/secondary_model.cpp +0 -259
  498. terraingenpy-0.1.1.dev25/terraingen/layers/craters/secondary_model.h +0 -187
  499. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/apply.cpp +0 -850
  500. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/apply.h +0 -83
  501. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/apply_options.cpp +0 -118
  502. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -196
  503. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/crater_kernel.h +0 -42
  504. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/datum.cpp +0 -191
  505. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/datum.h +0 -127
  506. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/irregularity.cpp +0 -352
  507. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/irregularity.h +0 -135
  508. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/prepared.cpp +0 -27
  509. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/prepared.h +0 -51
  510. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/slope.cpp +0 -84
  511. terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/slope.h +0 -91
  512. terraingenpy-0.1.1.dev25/terraingen/layers/dunes.cpp +0 -615
  513. terraingenpy-0.1.1.dev25/terraingen/layers/dunes.h +0 -206
  514. terraingenpy-0.1.1.dev25/terraingen/layers/evaluation_cache.h +0 -59
  515. terraingenpy-0.1.1.dev25/terraingen/layers/exposure.cpp +0 -105
  516. terraingenpy-0.1.1.dev25/terraingen/layers/exposure.h +0 -80
  517. terraingenpy-0.1.1.dev25/terraingen/layers/ground.h +0 -55
  518. terraingenpy-0.1.1.dev25/terraingen/layers/kernel.h +0 -52
  519. terraingenpy-0.1.1.dev25/terraingen/layers/kernels/craters.h +0 -733
  520. terraingenpy-0.1.1.dev25/terraingen/layers/kernels/craters.slang +0 -40
  521. terraingenpy-0.1.1.dev25/terraingen/layers/layer.cpp +0 -61
  522. terraingenpy-0.1.1.dev25/terraingen/layers/noise_relief.cpp +0 -46
  523. terraingenpy-0.1.1.dev25/terraingen/layers/pavement.cpp +0 -257
  524. terraingenpy-0.1.1.dev25/terraingen/layers/pavement.h +0 -126
  525. terraingenpy-0.1.1.dev25/terraingen/layers/region.cpp +0 -243
  526. terraingenpy-0.1.1.dev25/terraingen/layers/roughness.cpp +0 -197
  527. terraingenpy-0.1.1.dev25/terraingen/layers/sample_block.cpp +0 -49
  528. terraingenpy-0.1.1.dev25/terraingen/layers/sample_block.h +0 -61
  529. terraingenpy-0.1.1.dev25/terraingen/layers/sand_fill.cpp +0 -80
  530. terraingenpy-0.1.1.dev25/terraingen/layers/sand_fill.h +0 -65
  531. terraingenpy-0.1.1.dev25/terraingen/layers/sand_shadow.cpp +0 -163
  532. terraingenpy-0.1.1.dev25/terraingen/layers/sand_shadow.h +0 -101
  533. terraingenpy-0.1.1.dev25/terraingen/layers/strata.cpp +0 -150
  534. terraingenpy-0.1.1.dev25/terraingen/layers/strata.h +0 -102
  535. terraingenpy-0.1.1.dev25/terraingen/materials/CMakeLists.txt +0 -9
  536. terraingenpy-0.1.1.dev25/terraingen/materials/materials.cpp +0 -200
  537. terraingenpy-0.1.1.dev25/terraingen/materials/materials.h +0 -87
  538. terraingenpy-0.1.1.dev25/terraingen/mesh/io/formats.h +0 -61
  539. terraingenpy-0.1.1.dev25/terraingen/mesh/io/gltf.cpp +0 -308
  540. terraingenpy-0.1.1.dev25/terraingen/mesh/io/icq.cpp +0 -222
  541. terraingenpy-0.1.1.dev25/terraingen/mesh/io/icq.h +0 -75
  542. terraingenpy-0.1.1.dev25/terraingen/mesh/io/mesh_io.cpp +0 -129
  543. terraingenpy-0.1.1.dev25/terraingen/mesh/io/mesh_io.h +0 -64
  544. terraingenpy-0.1.1.dev25/terraingen/mesh/io/obj.cpp +0 -114
  545. terraingenpy-0.1.1.dev25/terraingen/mesh/io/stl.cpp +0 -155
  546. terraingenpy-0.1.1.dev25/terraingen/mesh/mesh.cpp +0 -232
  547. terraingenpy-0.1.1.dev25/terraingen/mesh/mesh.h +0 -106
  548. terraingenpy-0.1.1.dev25/terraingen/mesh/polyhedra.cpp +0 -173
  549. terraingenpy-0.1.1.dev25/terraingen/mesh/shape_model.cpp +0 -189
  550. terraingenpy-0.1.1.dev25/terraingen/noise/fractal.h +0 -312
  551. terraingenpy-0.1.1.dev25/terraingen/noise/hash.h +0 -52
  552. terraingenpy-0.1.1.dev25/terraingen/pipeline/CMakeLists.txt +0 -14
  553. terraingenpy-0.1.1.dev25/terraingen/pipeline/body_mesh.cpp +0 -94
  554. terraingenpy-0.1.1.dev25/terraingen/pipeline/body_mesh.h +0 -37
  555. terraingenpy-0.1.1.dev25/terraingen/pipeline/features.cpp +0 -23
  556. terraingenpy-0.1.1.dev25/terraingen/pipeline/features.h +0 -22
  557. terraingenpy-0.1.1.dev25/terraingen/pipeline/terrain.cpp +0 -192
  558. terraingenpy-0.1.1.dev25/terraingen/pipeline/terrain.h +0 -113
  559. terraingenpy-0.1.1.dev25/terraingen/pipeline/tiles.cpp +0 -191
  560. terraingenpy-0.1.1.dev25/terraingen/pipeline/tiles.h +0 -166
  561. terraingenpy-0.1.1.dev25/terraingen/python/src/albedo.cpp +0 -617
  562. terraingenpy-0.1.1.dev25/terraingen/python/src/boulders.cpp +0 -519
  563. terraingenpy-0.1.1.dev25/terraingen/python/src/common.h +0 -78
  564. terraingenpy-0.1.1.dev25/terraingen/python/src/crater_models.cpp +0 -333
  565. terraingenpy-0.1.1.dev25/terraingen/python/src/craters.cpp +0 -594
  566. terraingenpy-0.1.1.dev25/terraingen/python/src/distribution.cpp +0 -390
  567. terraingenpy-0.1.1.dev25/terraingen/python/src/layers.cpp +0 -570
  568. terraingenpy-0.1.1.dev25/terraingen/python/src/materials.cpp +0 -112
  569. terraingenpy-0.1.1.dev25/terraingen/python/src/mesh.cpp +0 -240
  570. terraingenpy-0.1.1.dev25/terraingen/python/src/noise.cpp +0 -412
  571. terraingenpy-0.1.1.dev25/terraingen/python/src/objects.h +0 -96
  572. terraingenpy-0.1.1.dev25/terraingen/python/src/pipeline.cpp +0 -550
  573. terraingenpy-0.1.1.dev25/terraingen/python/src/random.cpp +0 -157
  574. terraingenpy-0.1.1.dev25/terraingen/python/src/raster.cpp +0 -299
  575. terraingenpy-0.1.1.dev25/terraingen/python/src/sources.cpp +0 -195
  576. terraingenpy-0.1.1.dev25/terraingen/python/src/tables.h +0 -100
  577. terraingenpy-0.1.1.dev25/terraingen/python/src/trampolines.h +0 -72
  578. terraingenpy-0.1.1.dev25/terraingen/python/src/util.cpp +0 -237
  579. terraingenpy-0.1.1.dev25/terraingen/python/terraingen/render.py +0 -244
  580. terraingenpy-0.1.1.dev25/terraingen/random/samplers.cpp +0 -134
  581. terraingenpy-0.1.1.dev25/terraingen/random/samplers.h +0 -59
  582. terraingenpy-0.1.1.dev25/terraingen/random/stream.h +0 -57
  583. terraingenpy-0.1.1.dev25/terraingen/random/value_distribution.cpp +0 -77
  584. terraingenpy-0.1.1.dev25/terraingen/random/value_distribution.h +0 -48
  585. terraingenpy-0.1.1.dev25/terraingen/raster/cell_loops.h +0 -114
  586. terraingenpy-0.1.1.dev25/terraingen/raster/geo_transform.h +0 -66
  587. terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/geotiff_read.cpp +0 -656
  588. terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/geotiff_write.cpp +0 -291
  589. terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/tiff_format.cpp +0 -67
  590. terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/tiff_format.h +0 -136
  591. terraingenpy-0.1.1.dev25/terraingen/raster/grid.cpp +0 -104
  592. terraingenpy-0.1.1.dev25/terraingen/raster/grid.h +0 -67
  593. terraingenpy-0.1.1.dev25/terraingen/raster/raster.h +0 -154
  594. terraingenpy-0.1.1.dev25/terraingen/raster/raster_stats.h +0 -48
  595. terraingenpy-0.1.1.dev25/terraingen/raster/resample.cpp +0 -127
  596. terraingenpy-0.1.1.dev25/terraingen/sources/field.cpp +0 -100
  597. terraingenpy-0.1.1.dev25/terraingen/sources/field.h +0 -109
  598. terraingenpy-0.1.1.dev25/terraingen/sources/flat_source.h +0 -44
  599. terraingenpy-0.1.1.dev25/terraingen/sources/geotiff_source.cpp +0 -170
  600. terraingenpy-0.1.1.dev25/terraingen/sources/source_chain.cpp +0 -67
  601. terraingenpy-0.1.1.dev25/terraingen/terraingen.h +0 -131
  602. terraingenpy-0.1.1.dev25/terraingen/util/CMakeLists.txt +0 -16
  603. terraingenpy-0.1.1.dev25/terraingen/util/cells.h +0 -168
  604. terraingenpy-0.1.1.dev25/terraingen/util/checks.cpp +0 -40
  605. terraingenpy-0.1.1.dev25/terraingen/util/checks.h +0 -45
  606. terraingenpy-0.1.1.dev25/terraingen/util/cube_faces.h +0 -63
  607. terraingenpy-0.1.1.dev25/terraingen/util/cube_sphere_cells.cpp +0 -312
  608. terraingenpy-0.1.1.dev25/terraingen/util/geometry.h +0 -95
  609. terraingenpy-0.1.1.dev25/terraingen/util/log.cpp +0 -128
  610. terraingenpy-0.1.1.dev25/terraingen/util/log.h +0 -105
  611. terraingenpy-0.1.1.dev25/terraingen/util/planar_cells.cpp +0 -52
  612. terraingenpy-0.1.1.dev25/terraingen/util/radial_shape.cpp +0 -146
  613. terraingenpy-0.1.1.dev25/terraingen/util/radial_shape.h +0 -88
  614. terraingenpy-0.1.1.dev25/terraingen/util/surface.cpp +0 -338
  615. terraingenpy-0.1.1.dev25/terraingen/util/surface.h +0 -216
  616. terraingenpy-0.1.1.dev25/terraingen/util/version.h.in +0 -31
  617. terraingenpy-0.1.1.dev25/tests/CMakeLists.txt +0 -50
  618. terraingenpy-0.1.1.dev25/tests/integration/examples/CMakeLists.txt +0 -58
  619. terraingenpy-0.1.1.dev25/tests/python/test_albedo.py +0 -293
  620. terraingenpy-0.1.1.dev25/tests/python/test_boulders.py +0 -284
  621. terraingenpy-0.1.1.dev25/tests/python/test_config.py +0 -182
  622. terraingenpy-0.1.1.dev25/tests/python/test_crater_models.py +0 -236
  623. terraingenpy-0.1.1.dev25/tests/python/test_craters.py +0 -453
  624. terraingenpy-0.1.1.dev25/tests/python/test_distributions.py +0 -232
  625. terraingenpy-0.1.1.dev25/tests/python/test_layers.py +0 -431
  626. terraingenpy-0.1.1.dev25/tests/python/test_pipeline.py +0 -223
  627. terraingenpy-0.1.1.dev25/tests/python/test_raster.py +0 -239
  628. terraingenpy-0.1.1.dev25/tests/python/test_sources.py +0 -143
  629. terraingenpy-0.1.1.dev25/tests/python/test_tiles.py +0 -105
  630. terraingenpy-0.1.1.dev25/tests/python/test_util.py +0 -206
  631. terraingenpy-0.1.1.dev25/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -93
  632. terraingenpy-0.1.1.dev25/tests/unit/CMakeLists.txt +0 -19
  633. terraingenpy-0.1.1.dev25/tests/unit/albedo/CMakeLists.txt +0 -12
  634. terraingenpy-0.1.1.dev25/tests/unit/albedo/albedo_test.cpp +0 -410
  635. terraingenpy-0.1.1.dev25/tests/unit/albedo/blast_zones_test.cpp +0 -122
  636. terraingenpy-0.1.1.dev25/tests/unit/albedo/crater_albedo_test.cpp +0 -830
  637. terraingenpy-0.1.1.dev25/tests/unit/albedo/rock_albedo_test.cpp +0 -158
  638. terraingenpy-0.1.1.dev25/tests/unit/albedo/slope_albedo_test.cpp +0 -113
  639. terraingenpy-0.1.1.dev25/tests/unit/albedo/splotches_test.cpp +0 -372
  640. terraingenpy-0.1.1.dev25/tests/unit/app/cli_test.cpp +0 -261
  641. terraingenpy-0.1.1.dev25/tests/unit/config/CMakeLists.txt +0 -18
  642. terraingenpy-0.1.1.dev25/tests/unit/config/build_test.cpp +0 -550
  643. terraingenpy-0.1.1.dev25/tests/unit/config/checks_test.cpp +0 -53
  644. terraingenpy-0.1.1.dev25/tests/unit/config/config_test.cpp +0 -60
  645. terraingenpy-0.1.1.dev25/tests/unit/config/configs.h +0 -260
  646. terraingenpy-0.1.1.dev25/tests/unit/config/feature_lists_test.cpp +0 -139
  647. terraingenpy-0.1.1.dev25/tests/unit/config/generate_terrain_test.cpp +0 -588
  648. terraingenpy-0.1.1.dev25/tests/unit/config/json_io_test.cpp +0 -566
  649. terraingenpy-0.1.1.dev25/tests/unit/config/json_read_test.cpp +0 -152
  650. terraingenpy-0.1.1.dev25/tests/unit/config/schema_test.cpp +0 -519
  651. terraingenpy-0.1.1.dev25/tests/unit/config/validate_config_test.cpp +0 -554
  652. terraingenpy-0.1.1.dev25/tests/unit/config/validate_sources_test.cpp +0 -302
  653. terraingenpy-0.1.1.dev25/tests/unit/distribution/CMakeLists.txt +0 -24
  654. terraingenpy-0.1.1.dev25/tests/unit/distribution/combined_test.cpp +0 -61
  655. terraingenpy-0.1.1.dev25/tests/unit/distribution/piecewise_uniform_test.cpp +0 -131
  656. terraingenpy-0.1.1.dev25/tests/unit/distribution/sp8023_test.cpp +0 -53
  657. terraingenpy-0.1.1.dev25/tests/unit/distribution/synthterrain_test.cpp +0 -22
  658. terraingenpy-0.1.1.dev25/tests/unit/distribution/tabulated_test.cpp +0 -134
  659. terraingenpy-0.1.1.dev25/tests/unit/gpu/backend_test.cpp +0 -151
  660. terraingenpy-0.1.1.dev25/tests/unit/gpu/noise_test.cpp +0 -166
  661. terraingenpy-0.1.1.dev25/tests/unit/gpu/vulkan_test.cpp +0 -109
  662. terraingenpy-0.1.1.dev25/tests/unit/layers/CMakeLists.txt +0 -51
  663. terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -310
  664. terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -1246
  665. terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_models_test.cpp +0 -179
  666. terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_options_test.cpp +0 -62
  667. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/crater_layer_test.cpp +0 -200
  668. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -183
  669. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -77
  670. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/generation/population_test.cpp +0 -660
  671. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/secondaries_test.cpp +0 -500
  672. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/apply_test.cpp +0 -573
  673. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -292
  674. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/datum_test.cpp +0 -115
  675. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -361
  676. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/slope_test.cpp +0 -305
  677. terraingenpy-0.1.1.dev25/tests/unit/layers/craters/sphere_test.cpp +0 -212
  678. terraingenpy-0.1.1.dev25/tests/unit/layers/exposure_test.cpp +0 -134
  679. terraingenpy-0.1.1.dev25/tests/unit/layers/sample_block_test.cpp +0 -96
  680. terraingenpy-0.1.1.dev25/tests/unit/materials/CMakeLists.txt +0 -1
  681. terraingenpy-0.1.1.dev25/tests/unit/materials/materials_test.cpp +0 -211
  682. terraingenpy-0.1.1.dev25/tests/unit/mesh/io/mesh_io_test.cpp +0 -192
  683. terraingenpy-0.1.1.dev25/tests/unit/mesh/mesh_test.cpp +0 -134
  684. terraingenpy-0.1.1.dev25/tests/unit/noise/hash_test.cpp +0 -61
  685. terraingenpy-0.1.1.dev25/tests/unit/pipeline/CMakeLists.txt +0 -11
  686. terraingenpy-0.1.1.dev25/tests/unit/pipeline/features_test.cpp +0 -105
  687. terraingenpy-0.1.1.dev25/tests/unit/pipeline/terrain_test.cpp +0 -367
  688. terraingenpy-0.1.1.dev25/tests/unit/pipeline/terrain_tiles_test.cpp +0 -337
  689. terraingenpy-0.1.1.dev25/tests/unit/pipeline/tile_cache_test.cpp +0 -44
  690. terraingenpy-0.1.1.dev25/tests/unit/pipeline/tiling_test.cpp +0 -85
  691. terraingenpy-0.1.1.dev25/tests/unit/random/stream_test.cpp +0 -77
  692. terraingenpy-0.1.1.dev25/tests/unit/random/value_distribution_test.cpp +0 -63
  693. terraingenpy-0.1.1.dev25/tests/unit/raster/geo_transform_test.cpp +0 -61
  694. terraingenpy-0.1.1.dev25/tests/unit/raster/geotiff_test.cpp +0 -386
  695. terraingenpy-0.1.1.dev25/tests/unit/raster/grid_test.cpp +0 -78
  696. terraingenpy-0.1.1.dev25/tests/unit/raster/raster_test.cpp +0 -72
  697. terraingenpy-0.1.1.dev25/tests/unit/raster/tiff_format_test.cpp +0 -93
  698. terraingenpy-0.1.1.dev25/tests/unit/sources/flat_source_test.cpp +0 -46
  699. terraingenpy-0.1.1.dev25/tests/unit/util/CMakeLists.txt +0 -19
  700. terraingenpy-0.1.1.dev25/tests/unit/util/cells_test.cpp +0 -63
  701. terraingenpy-0.1.1.dev25/tests/unit/util/checks_test.cpp +0 -56
  702. terraingenpy-0.1.1.dev25/tests/unit/util/geometry_test.cpp +0 -41
  703. terraingenpy-0.1.1.dev25/tests/unit/util/surface_test.cpp +0 -668
  704. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.clang-format +0 -0
  705. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.clang-tidy +0 -0
  706. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.cmake-format.yaml +0 -0
  707. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.dockerignore +0 -0
  708. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.gitattributes +0 -0
  709. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  710. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  711. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  712. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/pull_request_template.md +0 -0
  713. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/scripts/install-lavapipe-windows.sh +0 -0
  714. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.gitignore +0 -0
  715. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.pre-commit-config.yaml +0 -0
  716. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/CITATION.cff +0 -0
  717. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/CONTRIBUTING.md +0 -0
  718. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/Dockerfile +0 -0
  719. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/LICENSE +0 -0
  720. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/README.md +0 -0
  721. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_diff_4k.jpg +0 -0
  722. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_disp_4k.png +0 -0
  723. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
  724. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_rough_4k.exr +0 -0
  725. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_ao_2k.png +0 -0
  726. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_arm_2k.png +0 -0
  727. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_diff_2k.png +0 -0
  728. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_disp_2k.png +0 -0
  729. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_nor_dx_2k.exr +0 -0
  730. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_nor_gl_2k.exr +0 -0
  731. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_rough_2k.exr +0 -0
  732. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/BuildInfo.cmake +0 -0
  733. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/CoverageBadge.cmake +0 -0
  734. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/EmbedFile.cmake +0 -0
  735. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/Kernel.cpp.in +0 -0
  736. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/TerrainGenPackaging.cmake +0 -0
  737. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/TerrainGenSlang.cmake +0 -0
  738. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/TerrainGenTesting.cmake +0 -0
  739. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/terraingenConfig.cmake.in +0 -0
  740. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/benchmark.cmake +0 -0
  741. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/ernie.cmake +0 -0
  742. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/googletest.cmake +0 -0
  743. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/mesh_formats.cmake +0 -0
  744. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/miniz.cmake +0 -0
  745. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/nanobind.cmake +0 -0
  746. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/nvrtc.cmake +0 -0
  747. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/slang.cmake +0 -0
  748. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/volk.cmake +0 -0
  749. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/vulkan_headers.cmake +0 -0
  750. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/.gitignore +0 -0
  751. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/Makefile +0 -0
  752. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/README.md +0 -0
  753. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/api/cpp.md +0 -0
  754. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/api/python.md +0 -0
  755. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/concepts/index.md +0 -0
  756. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/css/extra.css +0 -0
  757. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/command-line.md +0 -0
  758. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/gui.md +0 -0
  759. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/index.md +0 -0
  760. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/installation.md +0 -0
  761. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/quickstart.md +0 -0
  762. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/guides/index.md +0 -0
  763. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
  764. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg +0 -0
  765. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/index.md +0 -0
  766. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/overrides/home.html +0 -0
  767. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/overrides/partials/header.html +0 -0
  768. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/requirements.txt +0 -0
  769. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/scripts/generate_schema.py +0 -0
  770. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/validation/index.md +0 -0
  771. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/README.md +0 -0
  772. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/ages/example_ages_fresh.json +0 -0
  773. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/ages/example_ages_steady_state.json +0 -0
  774. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/ages/example_ages_uniform.json +0 -0
  775. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
  776. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
  777. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
  778. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_moon_site.json +0 -0
  779. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_new_crater.json +0 -0
  780. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
  781. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_rgb.json +0 -0
  782. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
  783. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_synthetic.json +0 -0
  784. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_buried.json +0 -0
  785. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_ejecta.json +0 -0
  786. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_fragments.json +0 -0
  787. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_layer.json +0 -0
  788. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_max_slope.json +0 -0
  789. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_models.json +0 -0
  790. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_patches.json +0 -0
  791. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_rolling.json +0 -0
  792. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_scene.json +0 -0
  793. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_shapes.json +0 -0
  794. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_slope_map.json +0 -0
  795. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_sp8023.json +0 -0
  796. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
  797. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
  798. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_datum.json +0 -0
  799. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
  800. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_degradation_none.json +0 -0
  801. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_interior_replacement.json +0 -0
  802. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_irregular.json +0 -0
  803. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_manual.json +0 -0
  804. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_max_craters.json +0 -0
  805. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_profile_complex.json +0 -0
  806. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
  807. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
  808. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_secondaries.json +0 -0
  809. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_secondary_rays.json +0 -0
  810. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_simple.json +0 -0
  811. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_slopes.json +0 -0
  812. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
  813. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_spacing.json +0 -0
  814. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_texture.json +0 -0
  815. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_wall_marks.json +0 -0
  816. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
  817. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
  818. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_power_law.json +0 -0
  819. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_tabulated.json +0 -0
  820. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
  821. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_viper.json +0 -0
  822. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/layers/example_layers_regions.json +0 -0
  823. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/layers/example_layers_roughness.json +0 -0
  824. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
  825. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
  826. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
  827. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_dunes.json +0 -0
  828. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_exposure.json +0 -0
  829. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_pavement.json +0 -0
  830. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
  831. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_sand_shadows.json +0 -0
  832. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_strata.json +0 -0
  833. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_ventifacts.json +0 -0
  834. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mercury_site.json +0 -0
  835. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
  836. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_moon_site.json +0 -0
  837. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_billow.json +0 -0
  838. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_cellular.json +0 -0
  839. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
  840. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_fbm.json +0 -0
  841. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_layered.json +0 -0
  842. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_ridged.json +0 -0
  843. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_roughness.json +0 -0
  844. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_voronoi.json +0 -0
  845. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/CMakeLists.txt +0 -0
  846. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/ages/example_ages_models.cpp +0 -0
  847. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
  848. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
  849. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
  850. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/browser.cpp +0 -0
  851. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/browser.h +0 -0
  852. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/example.cpp +0 -0
  853. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/example.h +0 -0
  854. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/main.cpp +0 -0
  855. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/standalone_main.cpp +0 -0
  856. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/config/example_config_load.cpp +0 -0
  857. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
  858. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_manual.cpp +0 -0
  859. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
  860. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
  861. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_simple.cpp +0 -0
  862. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
  863. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/layers/example_layers_custom.cpp +0 -0
  864. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/layers/example_layers_regions.cpp +0 -0
  865. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/planets/example_planets_moon.cpp +0 -0
  866. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
  867. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
  868. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
  869. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
  870. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
  871. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/__main__.py +0 -0
  872. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_browser.py +0 -0
  873. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_common.py +0 -0
  874. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_harness.py +0 -0
  875. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_images.py +0 -0
  876. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/ages/example_ages_models.py +0 -0
  877. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
  878. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/albedo/example_albedo_moon_site.py +0 -0
  879. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/albedo/example_albedo_options.py +0 -0
  880. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_exposure.py +0 -0
  881. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_layer.py +0 -0
  882. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_positioning.py +0 -0
  883. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_shapes.py +0 -0
  884. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_size_models.py +0 -0
  885. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/config/example_config_load.py +0 -0
  886. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_age_sweep.py +0 -0
  887. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_apply_options.py +0 -0
  888. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_degradation.py +0 -0
  889. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_irregularity.py +0 -0
  890. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_manual.py +0 -0
  891. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_positioning.py +0 -0
  892. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_profiles.py +0 -0
  893. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
  894. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_secondaries.py +0 -0
  895. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/distributions/example_distributions_csfd.py +0 -0
  896. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/distributions/example_distributions_custom.py +0 -0
  897. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/layers/example_layers_custom.py +0 -0
  898. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/layers/example_layers_regions.py +0 -0
  899. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_body_mesh.py +0 -0
  900. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mars.py +0 -0
  901. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mars_dunes.py +0 -0
  902. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mars_exposure.py +0 -0
  903. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mercury.py +0 -0
  904. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_moon_site.py +0 -0
  905. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/sources/example_sources_chain.py +0 -0
  906. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/sources/example_sources_raster_detail.py +0 -0
  907. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_fbm.py +0 -0
  908. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
  909. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
  910. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_layered.py +0 -0
  911. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
  912. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
  913. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/tiles/example_tiles_point_queries.py +0 -0
  914. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
  915. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/mkdocs.yml +0 -0
  916. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/pyproject.toml +0 -0
  917. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/albedo/blast_zones.h +0 -0
  918. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/albedo/maturity.cpp +0 -0
  919. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/albedo/maturity.h +0 -0
  920. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/gui/config_editor.h +0 -0
  921. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/gui/run_none.cpp +0 -0
  922. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/gui/terrain_scene.h +0 -0
  923. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/main.cpp +0 -0
  924. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/config/fields/fields.h +0 -0
  925. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/config/fields/maps.h +0 -0
  926. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/config/schema.cpp +0 -0
  927. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/equilibrium.cpp +0 -0
  928. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/equilibrium.h +0 -0
  929. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/golombek_rapp.cpp +0 -0
  930. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/golombek_rapp.h +0 -0
  931. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/ivanov.h +0 -0
  932. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/log_polynomial.cpp +0 -0
  933. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/log_polynomial.h +0 -0
  934. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/moore.cpp +0 -0
  935. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/moore.h +0 -0
  936. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/neukum.h +0 -0
  937. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/piecewise_power_law.h +0 -0
  938. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/piecewise_uniform.cpp +0 -0
  939. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/piecewise_uniform.h +0 -0
  940. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/power_law.cpp +0 -0
  941. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/power_law.h +0 -0
  942. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/production_surface.h +0 -0
  943. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/spliced.h +0 -0
  944. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/tabulated.cpp +0 -0
  945. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/tabulated.h +0 -0
  946. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/viper.cpp +0 -0
  947. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/viper.h +0 -0
  948. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/gpu/CMakeLists.txt +0 -0
  949. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/gpu/kernel.slang +0 -0
  950. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/gpu/program.h +0 -0
  951. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/boulders/boulder.h +0 -0
  952. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/boulders/boulder_fragments.h +0 -0
  953. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/ages/age_model.cpp +0 -0
  954. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/ages/age_model.h +0 -0
  955. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/ages/steady_state.h +0 -0
  956. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
  957. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
  958. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
  959. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/freshness.h +0 -0
  960. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/state.h +0 -0
  961. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/generation/spacing.h +0 -0
  962. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/complex.cpp +0 -0
  963. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/complex.h +0 -0
  964. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
  965. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
  966. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
  967. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
  968. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/profile.h +0 -0
  969. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/rays.h +0 -0
  970. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/secondaries.h +0 -0
  971. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/apply_options.h +0 -0
  972. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
  973. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/attributes.h +0 -0
  974. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
  975. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/morphometry.h +0 -0
  976. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/density_map.cpp +0 -0
  977. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/density_map.h +0 -0
  978. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/detail.cpp +0 -0
  979. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/detail.h +0 -0
  980. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/fade.cpp +0 -0
  981. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/fade.h +0 -0
  982. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/cell.h +0 -0
  983. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/crater_datums.slang +0 -0
  984. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/noise_relief.h +0 -0
  985. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/noise_relief.slang +0 -0
  986. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/layer.h +0 -0
  987. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/material.cpp +0 -0
  988. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/material.h +0 -0
  989. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/noise_relief.h +0 -0
  990. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/region.h +0 -0
  991. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/roughness.h +0 -0
  992. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/transforms.cpp +0 -0
  993. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/transforms.h +0 -0
  994. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/mesh/CMakeLists.txt +0 -0
  995. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/mesh/polyhedra.h +0 -0
  996. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/mesh/shape_model.h +0 -0
  997. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/CMakeLists.txt +0 -0
  998. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/lattice.h +0 -0
  999. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/noise_layers.h +0 -0
  1000. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/perlin.h +0 -0
  1001. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/simplex.h +0 -0
  1002. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/validate.cpp +0 -0
  1003. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/validate.h +0 -0
  1004. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/value.h +0 -0
  1005. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/worley.h +0 -0
  1006. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/pipeline/height_mesh.cpp +0 -0
  1007. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/pipeline/height_mesh.h +0 -0
  1008. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/CMakeLists.txt +0 -0
  1009. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/bindings.h +0 -0
  1010. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/casters.h +0 -0
  1011. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/gpu.cpp +0 -0
  1012. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/module.cpp +0 -0
  1013. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/terraingen/__init__.py +0 -0
  1014. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/random/CMakeLists.txt +0 -0
  1015. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/random/philox.h +0 -0
  1016. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/random/stream.cpp +0 -0
  1017. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/CMakeLists.txt +0 -0
  1018. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/cell_loops.cpp +0 -0
  1019. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/gaussian_blur.cpp +0 -0
  1020. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/gaussian_blur.h +0 -0
  1021. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/geotiff.cpp +0 -0
  1022. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/geotiff.h +0 -0
  1023. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
  1024. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
  1025. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/resample.h +0 -0
  1026. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/CMakeLists.txt +0 -0
  1027. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/flat_source.cpp +0 -0
  1028. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/geotiff_source.h +0 -0
  1029. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/source.h +0 -0
  1030. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/source_chain.h +0 -0
  1031. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/synthetic_terrain.cpp +0 -0
  1032. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/synthetic_terrain.h +0 -0
  1033. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/build_info.cpp.in +0 -0
  1034. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/build_info.h +0 -0
  1035. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/fft.cpp +0 -0
  1036. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/fft.h +0 -0
  1037. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/lru_cache.h +0 -0
  1038. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/overloaded.h +0 -0
  1039. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/parallel.cpp +0 -0
  1040. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/parallel.h +0 -0
  1041. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/portable.h +0 -0
  1042. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/special_functions.cpp +0 -0
  1043. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/special_functions.h +0 -0
  1044. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/version.cpp +0 -0
  1045. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/CMakeLists.txt +0 -0
  1046. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_boulders.cpp +0 -0
  1047. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_craters.cpp +0 -0
  1048. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_grids.cpp +0 -0
  1049. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_point_queries.cpp +0 -0
  1050. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_python_subclasses.py +0 -0
  1051. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/fixtures.h +0 -0
  1052. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/golden/CMakeLists.txt +0 -0
  1053. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/golden/noise/kernels_test.cpp +0 -0
  1054. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/CMakeLists.txt +0 -0
  1055. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/build_info_stable.cmake +0 -0
  1056. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/package/CMakeLists.txt +0 -0
  1057. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/package/main.cpp +0 -0
  1058. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/package/test_debian_packages.cmake +0 -0
  1059. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/CMakeLists.txt +0 -0
  1060. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/conftest.py +0 -0
  1061. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_examples_harness.py +0 -0
  1062. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_gpu.py +0 -0
  1063. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_meshes.py +0 -0
  1064. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_noise.py +0 -0
  1065. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_random.py +0 -0
  1066. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_render.py +0 -0
  1067. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_stubs.py +0 -0
  1068. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/CMakeLists.txt +0 -0
  1069. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/distribution/crater_references_test.cpp +0 -0
  1070. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
  1071. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
  1072. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/layers/craters/population_test.cpp +0 -0
  1073. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/layers/roughness_test.cpp +0 -0
  1074. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/random/random_test.cpp +0 -0
  1075. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/log_capture.h +0 -0
  1076. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/lunar_craters.h +0 -0
  1077. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/raster_equality.h +0 -0
  1078. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/statistics.h +0 -0
  1079. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/temp_path.h +0 -0
  1080. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/CMakeLists.txt +0 -0
  1081. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/CMakeLists.txt +0 -0
  1082. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/config_editor_test.cpp +0 -0
  1083. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/gui_app_test.cpp +0 -0
  1084. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
  1085. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/config/json_parse_errors_test.cpp +0 -0
  1086. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/config/write_outputs_test.cpp +0 -0
  1087. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/equilibrium_test.cpp +0 -0
  1088. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
  1089. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/ivanov_test.cpp +0 -0
  1090. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
  1091. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/minimum_test.cpp +0 -0
  1092. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/moore_test.cpp +0 -0
  1093. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/neukum_test.cpp +0 -0
  1094. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
  1095. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/power_law_test.cpp +0 -0
  1096. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/production_surface_test.cpp +0 -0
  1097. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/size_frequency_test.cpp +0 -0
  1098. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/spliced_test.cpp +0 -0
  1099. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/summed_test.cpp +0 -0
  1100. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/viper_test.cpp +0 -0
  1101. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/examples/CMakeLists.txt +0 -0
  1102. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/examples/example_browser_test.cpp +0 -0
  1103. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/examples/example_harness_test.cpp +0 -0
  1104. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/gpu/CMakeLists.txt +0 -0
  1105. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
  1106. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
  1107. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/bedforms_test.cpp +0 -0
  1108. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
  1109. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -0
  1110. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
  1111. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
  1112. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/crater_test.cpp +0 -0
  1113. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
  1114. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
  1115. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
  1116. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
  1117. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
  1118. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
  1119. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
  1120. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
  1121. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/density_map_test.cpp +0 -0
  1122. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/detail_test.cpp +0 -0
  1123. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/dunes_test.cpp +0 -0
  1124. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
  1125. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/fade_test.cpp +0 -0
  1126. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/layer_test.cpp +0 -0
  1127. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/noise_relief_test.cpp +0 -0
  1128. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/pavement_test.cpp +0 -0
  1129. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/region_test.cpp +0 -0
  1130. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/roughness_test.cpp +0 -0
  1131. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/sand_fill_test.cpp +0 -0
  1132. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/sand_shadow_test.cpp +0 -0
  1133. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/sphere_layers_test.cpp +0 -0
  1134. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/strata_test.cpp +0 -0
  1135. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/transforms_test.cpp +0 -0
  1136. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/CMakeLists.txt +0 -0
  1137. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/io/icq_test.cpp +0 -0
  1138. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/polyhedra_test.cpp +0 -0
  1139. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/shape_model_test.cpp +0 -0
  1140. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/support.h +0 -0
  1141. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/CMakeLists.txt +0 -0
  1142. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/fractal_test.cpp +0 -0
  1143. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/noise3_test.cpp +0 -0
  1144. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/noise_layers_test.cpp +0 -0
  1145. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/perlin_test.cpp +0 -0
  1146. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/simplex_test.cpp +0 -0
  1147. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/validate_test.cpp +0 -0
  1148. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/value_test.cpp +0 -0
  1149. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/worley_test.cpp +0 -0
  1150. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/pipeline/height_mesh_test.cpp +0 -0
  1151. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/pipeline/terrains.h +0 -0
  1152. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/random/CMakeLists.txt +0 -0
  1153. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/random/philox_test.cpp +0 -0
  1154. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/random/samplers_test.cpp +0 -0
  1155. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/CMakeLists.txt +0 -0
  1156. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/cell_loops_test.cpp +0 -0
  1157. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
  1158. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/gdal_fixtures.h +0 -0
  1159. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
  1160. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/geotiff_fixtures.inc +0 -0
  1161. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/raster_stats_test.cpp +0 -0
  1162. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/resample_test.cpp +0 -0
  1163. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/CMakeLists.txt +0 -0
  1164. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/field_test.cpp +0 -0
  1165. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/geotiff_source_test.cpp +0 -0
  1166. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/source_chain_test.cpp +0 -0
  1167. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
  1168. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/fft_test.cpp +0 -0
  1169. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/log_test.cpp +0 -0
  1170. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/lru_cache_test.cpp +0 -0
  1171. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/overloaded_test.cpp +0 -0
  1172. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/parallel_test.cpp +0 -0
  1173. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/radial_shape_test.cpp +0 -0
  1174. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/special_functions_test.cpp +0 -0
  1175. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/version_test.cpp +0 -0
  1176. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/README.md +0 -0
  1177. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/cgltf/LICENSE +0 -0
  1178. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/cgltf/cgltf.h +0 -0
  1179. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/cgltf/cgltf_write.h +0 -0
  1180. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/miniz/LICENSE +0 -0
  1181. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/miniz/miniz.c +0 -0
  1182. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/miniz/miniz.h +0 -0
  1183. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/nlohmann/LICENSE.MIT +0 -0
  1184. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/nlohmann/json.hpp +0 -0
  1185. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/tinyobjloader/LICENSE +0 -0
  1186. {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
@@ -0,0 +1,513 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ["v*"]
7
+ pull_request:
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ # The version's pre-release suffix: .devN on main (N commits since the last release tag), none on
19
+ # release tags (which must match CMakeLists.txt) or pull requests.
20
+ version:
21
+ runs-on: ubuntu-24.04
22
+ timeout-minutes: 5
23
+ outputs:
24
+ version: ${{ steps.version.outputs.version }}
25
+ suffix: ${{ steps.version.outputs.suffix }}
26
+ steps:
27
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
28
+ with:
29
+ fetch-depth: 0
30
+ - id: version
31
+ run: |
32
+ project=$(sed -nE 's/^set\(TERRAINGEN_FULL_VERSION "([0-9]+\.[0-9]+\.[0-9]+)"\)$/\1/p' CMakeLists.txt)
33
+ suffix=""
34
+ if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
35
+ if [[ "${GITHUB_REF_NAME#v}" != "$project" ]]; then
36
+ echo "::error::Tag $GITHUB_REF_NAME does not match CMakeLists.txt's version $project"
37
+ exit 1
38
+ fi
39
+ elif [[ "$GITHUB_EVENT_NAME" == push && "$GITHUB_REF" == refs/heads/main ]]; then
40
+ if last=$(git describe --tags --abbrev=0 --match 'v*' 2>/dev/null); then
41
+ suffix=".dev$(git rev-list --count "$last..HEAD")"
42
+ else
43
+ suffix=".dev$(git rev-list --count HEAD)"
44
+ fi
45
+ fi
46
+ {
47
+ echo "version=$project$suffix"
48
+ echo "suffix=$suffix"
49
+ } >> "$GITHUB_OUTPUT"
50
+ echo "Version $project$suffix"
51
+
52
+ lint:
53
+ runs-on: ubuntu-24.04
54
+ timeout-minutes: 15
55
+ steps:
56
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
57
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
58
+ with:
59
+ python-version: "3.12"
60
+ - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
61
+ with:
62
+ path: ~/.cache/pre-commit
63
+ key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
64
+ - run: python -m pip install pre-commit
65
+ - run: pre-commit run --all-files --show-diff-on-failure
66
+ - name: Lint workflows
67
+ run: docker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:1.7.12 -color
68
+
69
+ # Build and every test, with the GPU tests on Mesa's lavapipe, the software Vulkan driver, which
70
+ # TerrainGen uses only when TERRAINGEN_DEVICE names it. The runners have no NVIDIA GPU, so the
71
+ # CUDA kernels are compiled to PTX but not run.
72
+ test:
73
+ name: test (${{ matrix.name }})
74
+ runs-on: ${{ matrix.os }}
75
+ timeout-minutes: 60
76
+ strategy:
77
+ fail-fast: false
78
+ matrix:
79
+ include:
80
+ # The oldest supported Ubuntu, compiler and Python.
81
+ - { name: ubuntu-22.04-gcc-11, os: ubuntu-22.04, cc: gcc-11, cxx: g++-11, python: "3.10" }
82
+ - { name: ubuntu-22.04-arm-gcc-11, os: ubuntu-22.04-arm, cc: gcc-11, cxx: g++-11 }
83
+ - { name: ubuntu-24.04-clang-18, os: ubuntu-24.04, cc: clang-18, cxx: clang++-18 }
84
+ - { name: macos-14, os: macos-14 }
85
+ - { name: windows-2022-msvc, os: windows-2022 }
86
+ env:
87
+ CC: ${{ matrix.cc }}
88
+ CXX: ${{ matrix.cxx }}
89
+ CCACHE_DIR: ${{ github.workspace }}/.ccache
90
+ TERRAINGEN_DEVICE: "0"
91
+ steps:
92
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
93
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
94
+ with:
95
+ python-version: ${{ matrix.python || '3.12' }}
96
+ - run: python -m pip install numpy pytest ninja
97
+ # MSVC on the path for the Ninja generator.
98
+ - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
99
+ if: runner.os == 'Windows'
100
+ - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24
101
+ if: runner.os != 'Windows'
102
+ with:
103
+ key: ${{ matrix.name }}
104
+ max-size: 500M
105
+ - name: Install lavapipe
106
+ if: runner.os == 'Linux'
107
+ run: |
108
+ sudo apt-get update
109
+ sudo apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1
110
+ icd=$(find /usr/share/vulkan/icd.d -name 'lvp_icd*.json' | head -n1)
111
+ echo "VK_DRIVER_FILES=$icd" >> "$GITHUB_ENV"
112
+ echo "VK_ICD_FILENAMES=$icd" >> "$GITHUB_ENV"
113
+ - name: Install lavapipe
114
+ if: runner.os == 'Windows'
115
+ shell: bash
116
+ run: .github/scripts/install-lavapipe-windows.sh
117
+ - name: Install lavapipe
118
+ if: runner.os == 'macOS'
119
+ run: |
120
+ brew install mesa vulkan-loader
121
+ prefix=$(brew --prefix)
122
+ icd=$(find "$prefix/share/vulkan/icd.d" -name 'lvp_icd*.json' | head -n1)
123
+ {
124
+ echo "VK_DRIVER_FILES=$icd"
125
+ echo "VK_ICD_FILENAMES=$icd"
126
+ echo "DYLD_FALLBACK_LIBRARY_PATH=$prefix/lib"
127
+ } >> "$GITHUB_ENV"
128
+ - name: Configure
129
+ shell: bash
130
+ run: >
131
+ cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DTERRAINGEN_BUILD_BENCHMARKS=OFF
132
+ "-DPython_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')"
133
+ ${{ runner.os != 'Windows' && '-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache' || '' }}
134
+ - name: Build
135
+ run: cmake --build build --parallel 4
136
+ - name: Backends
137
+ shell: bash
138
+ run: build/bin/terraingen backends
139
+ - name: Test
140
+ run: ctest --test-dir build --parallel 4 --output-on-failure --timeout 1200
141
+
142
+ # Line coverage of the library, from the tests on lavapipe; GitHub Pages publishes the report from
143
+ # main (pages job).
144
+ coverage:
145
+ runs-on: ubuntu-24.04
146
+ timeout-minutes: 60
147
+ env:
148
+ CCACHE_DIR: ${{ github.workspace }}/.ccache
149
+ TERRAINGEN_DEVICE: "0"
150
+ steps:
151
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
152
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
153
+ with:
154
+ python-version: "3.12"
155
+ - run: python -m pip install gcovr numpy pytest ninja
156
+ - uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24
157
+ with:
158
+ key: coverage
159
+ max-size: 1G
160
+ - name: Install lavapipe
161
+ run: |
162
+ sudo apt-get update
163
+ sudo apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1
164
+ - name: Configure
165
+ run: >
166
+ cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug -DTERRAINGEN_COVERAGE=ON
167
+ -DTERRAINGEN_BUILD_BENCHMARKS=OFF
168
+ "-DPython_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')"
169
+ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
170
+ # Everything first: the coverage target builds only the test programs, not the command and
171
+ # examples that the integration tests run.
172
+ - name: Build
173
+ run: cmake --build build --parallel 4
174
+ # The tests four at a time (ctest reads CTEST_PARALLEL_LEVEL), the long examples first.
175
+ - name: Test and report
176
+ env:
177
+ CTEST_PARALLEL_LEVEL: "4"
178
+ run: cmake --build build --target coverage
179
+ - name: Summary
180
+ if: always()
181
+ run: cat build/coverage/summary.md >> "$GITHUB_STEP_SUMMARY" || true
182
+ - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
183
+ if: always()
184
+ with:
185
+ name: coverage-report
186
+ path: build/coverage/
187
+ if-no-files-found: ignore
188
+ retention-days: 7
189
+
190
+ # One job per platform and Python (pyproject.toml's [tool.cibuildwheel] has the rest), so each
191
+ # platform's wheels build side by side.
192
+ wheel:
193
+ name: wheel (${{ matrix.os }}, ${{ matrix.python }})
194
+ needs: version
195
+ runs-on: ${{ matrix.os }}
196
+ timeout-minutes: 45
197
+ strategy:
198
+ fail-fast: false
199
+ matrix:
200
+ os: [ubuntu-24.04, ubuntu-24.04-arm, macos-15-intel, macos-14, windows-2022]
201
+ python: [cp310, cp311, cp312]
202
+ steps:
203
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
204
+ - name: Version
205
+ shell: bash
206
+ run: >
207
+ sed -i.bak -E 's/^set\(TERRAINGEN_FULL_VERSION "([0-9.]+)"\)$/set(TERRAINGEN_FULL_VERSION "\1${{ needs.version.outputs.suffix }}")/'
208
+ CMakeLists.txt
209
+ - uses: pypa/cibuildwheel@b3395e271a35f73dad77f21802abe9b986dfe299 # v4.3.1
210
+ env:
211
+ CIBW_BUILD: "${{ matrix.python }}-*"
212
+ with:
213
+ output-dir: wheelhouse
214
+ - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
215
+ with:
216
+ name: wheel-${{ matrix.os }}-${{ matrix.python }}
217
+ path: wheelhouse/*.whl
218
+
219
+ # The sdist, then a wheel built from it and imported, as pip does for platforms without wheels.
220
+ sdist:
221
+ needs: version
222
+ runs-on: ubuntu-24.04
223
+ timeout-minutes: 30
224
+ steps:
225
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
226
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
227
+ with:
228
+ python-version: "3.12"
229
+ - name: Version
230
+ run: >
231
+ sed -i -E 's/^set\(TERRAINGEN_FULL_VERSION "([0-9.]+)"\)$/set(TERRAINGEN_FULL_VERSION "\1${{ needs.version.outputs.suffix }}")/'
232
+ CMakeLists.txt
233
+ - run: python -m pip install build
234
+ - run: python -m build --sdist
235
+ - name: Install from the sdist
236
+ run: |
237
+ python -m pip install dist/*.tar.gz
238
+ cd "$RUNNER_TEMP" && python -c "import terraingen; print(terraingen.__version__)" && terraingen backends
239
+ - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
240
+ with:
241
+ name: sdist
242
+ path: dist/*.tar.gz
243
+
244
+ # The documentation, built against the Linux wheel, for every push and pull request; another
245
+ # platform's wheel failing does not skip it.
246
+ docs:
247
+ needs: wheel
248
+ if: ${{ !cancelled() }}
249
+ runs-on: ubuntu-24.04
250
+ timeout-minutes: 20
251
+ steps:
252
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
253
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
254
+ with:
255
+ python-version: "3.12"
256
+ cache: pip
257
+ cache-dependency-path: docs/requirements.txt
258
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
259
+ with:
260
+ name: wheel-ubuntu-24.04-cp312
261
+ path: wheel
262
+ - name: Install Doxygen, TerrainGen and the docs requirements
263
+ run: |
264
+ sudo apt-get update && sudo apt-get install -y --no-install-recommends doxygen
265
+ python -m pip install wheel/*.whl -r docs/requirements.txt
266
+ - name: Build
267
+ run: make -C docs build
268
+ - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
269
+ with:
270
+ name: site
271
+ path: site
272
+ retention-days: 3
273
+
274
+ # The documentation with the coverage report under coverage/ (and coverage/badge.json for the
275
+ # README badge), on GitHub Pages from main. A failed coverage run leaves the report out.
276
+ pages:
277
+ needs: [docs, coverage]
278
+ if: ${{ !cancelled() && needs.docs.result == 'success' && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
279
+ runs-on: ubuntu-24.04
280
+ timeout-minutes: 10
281
+ permissions:
282
+ contents: read
283
+ pages: write
284
+ id-token: write
285
+ environment:
286
+ name: github-pages
287
+ url: ${{ steps.deployment.outputs.page_url }}
288
+ steps:
289
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
290
+ with:
291
+ name: site
292
+ path: site
293
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
294
+ continue-on-error: true
295
+ with:
296
+ name: coverage-report
297
+ path: site/coverage
298
+ - uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
299
+ with:
300
+ path: site
301
+ - id: deployment
302
+ uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
303
+
304
+ # The CLI, library, headers and CMake package for each platform as an archive, and Debian packages
305
+ # (terraingen, terraingen-dev) built on the oldest supported Ubuntu.
306
+ packages:
307
+ name: packages (${{ matrix.platform }})
308
+ needs: version
309
+ runs-on: ${{ matrix.os }}
310
+ timeout-minutes: 45
311
+ strategy:
312
+ fail-fast: false
313
+ matrix:
314
+ include:
315
+ - { platform: linux-x86_64, os: ubuntu-22.04 }
316
+ - { platform: linux-aarch64, os: ubuntu-22.04-arm }
317
+ - { platform: macos-arm64, os: macos-14 }
318
+ - { platform: macos-x86_64, os: macos-15-intel }
319
+ - { platform: windows-x86_64, os: windows-2022 }
320
+ env:
321
+ ARCHIVE: terraingen-${{ needs.version.outputs.version }}-${{ matrix.platform }}
322
+ steps:
323
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
324
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
325
+ with:
326
+ python-version: "3.12"
327
+ - run: python -m pip install ninja
328
+ - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
329
+ if: runner.os == 'Windows'
330
+ - name: Version
331
+ shell: bash
332
+ run: >
333
+ sed -i.bak -E 's/^set\(TERRAINGEN_FULL_VERSION "([0-9.]+)"\)$/set(TERRAINGEN_FULL_VERSION "\1${{ needs.version.outputs.suffix }}")/'
334
+ CMakeLists.txt
335
+ - name: Build
336
+ shell: bash
337
+ run: |
338
+ cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DTERRAINGEN_BUILD_TESTS=OFF \
339
+ -DTERRAINGEN_BUILD_BENCHMARKS=OFF -DTERRAINGEN_BUILD_EXAMPLES=OFF \
340
+ -DTERRAINGEN_BUILD_PYTHON=OFF -DTERRAINGEN_INSTALL=ON
341
+ cmake --build build --parallel 4
342
+ cmake --install build --prefix "$ARCHIVE"
343
+ cp LICENSE README.md CHANGELOG.md "$ARCHIVE/"
344
+ - name: Archive
345
+ if: runner.os == 'Windows'
346
+ shell: pwsh
347
+ run: Compress-Archive -Path "$env:ARCHIVE" -DestinationPath "$env:ARCHIVE.zip"
348
+ - name: Archive
349
+ if: runner.os != 'Windows'
350
+ run: tar -czf "$ARCHIVE.tar.gz" "$ARCHIVE"
351
+ - name: Debian packages
352
+ if: runner.os == 'Linux'
353
+ run: cpack --config build/CPackConfig.cmake -G DEB -B debs
354
+ - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
355
+ with:
356
+ name: packages-${{ matrix.platform }}
357
+ path: |
358
+ ${{ env.ARCHIVE }}.zip
359
+ ${{ env.ARCHIVE }}.tar.gz
360
+ debs/*.deb
361
+ if-no-files-found: error
362
+
363
+ # The Debian packages installed on clean distributions, where the program must run and list its
364
+ # backends. Only the Linux packages matter here, so another platform's failure does not skip it; a
365
+ # missing Linux package fails its download.
366
+ package-test:
367
+ name: package-test (${{ matrix.image }}, ${{ matrix.arch }})
368
+ needs: packages
369
+ if: ${{ !cancelled() }}
370
+ runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
371
+ timeout-minutes: 15
372
+ strategy:
373
+ fail-fast: false
374
+ matrix:
375
+ arch: [x86_64, aarch64]
376
+ image: ["ubuntu:22.04", "ubuntu:24.04", "debian:12"]
377
+ container: ${{ matrix.image }}
378
+ steps:
379
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
380
+ with:
381
+ name: packages-linux-${{ matrix.arch }}
382
+ - name: Install
383
+ run: |
384
+ apt-get update
385
+ apt-get install -y --no-install-recommends ./debs/*.deb
386
+ - name: Run
387
+ run: |
388
+ terraingen --version
389
+ terraingen backends
390
+
391
+ # The Dockerfile's image, built and tested on the oldest supported Ubuntu; pushed to GHCR from main
392
+ # (dev) and release tags.
393
+ docker:
394
+ needs: [version, lint, test]
395
+ runs-on: ubuntu-24.04
396
+ timeout-minutes: 45
397
+ permissions:
398
+ contents: read
399
+ packages: write
400
+ steps:
401
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
402
+ - name: Build
403
+ run: docker build --target dev -t terraingen:test .
404
+ - name: Smoke test
405
+ run: |
406
+ docker run --rm terraingen:test terraingen --version
407
+ docker run --rm terraingen:test terraingen backends
408
+ docker run --rm terraingen:test python -c "import terraingen; print(terraingen.__version__)"
409
+ - name: Push
410
+ if: github.event_name == 'push'
411
+ env:
412
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
413
+ run: |
414
+ image=ghcr.io/${GITHUB_REPOSITORY,,}
415
+ echo "$GH_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin
416
+ if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
417
+ version=${GITHUB_REF_NAME#v}
418
+ tags=("$version" "${version%.*}" latest)
419
+ else
420
+ tags=(dev)
421
+ fi
422
+ for tag in "${tags[@]}"; do
423
+ docker tag terraingen:test "$image:$tag"
424
+ docker push "$image:$tag"
425
+ done
426
+
427
+ # Wheels and the sdist to PyPI by Trusted Publishing (no stored token): X.Y.Z.devN from main,
428
+ # X.Y.Z from release tags, once every platform's build, tests and packages pass.
429
+ pypi:
430
+ needs: [lint, test, wheel, sdist, package-test]
431
+ if: >
432
+ github.event_name == 'push' &&
433
+ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v'))
434
+ runs-on: ubuntu-24.04
435
+ timeout-minutes: 10
436
+ environment:
437
+ name: pypi
438
+ url: https://pypi.org/project/terraingenpy/
439
+ permissions:
440
+ id-token: write
441
+ steps:
442
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
443
+ with:
444
+ pattern: wheel-*
445
+ merge-multiple: true
446
+ path: dist
447
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
448
+ with:
449
+ name: sdist
450
+ path: dist
451
+ - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
452
+
453
+ # The "latest" pre-release: main's packages and their checksums, replaced on every push to main.
454
+ # Marked as a pre-release and never as the latest release, so versioned releases stay the default.
455
+ latest:
456
+ needs: [lint, test, packages, package-test]
457
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
458
+ runs-on: ubuntu-24.04
459
+ timeout-minutes: 10
460
+ permissions:
461
+ contents: write
462
+ steps:
463
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
464
+ with:
465
+ pattern: "packages-*"
466
+ merge-multiple: true
467
+ path: assets
468
+ - name: Flatten
469
+ run: find assets -mindepth 2 -type f -exec mv -t assets {} + && find assets -mindepth 1 -type d -empty -delete
470
+ - name: Checksums
471
+ run: cd assets && sha256sum -- * > SHA256SUMS
472
+ - name: Release
473
+ env:
474
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
475
+ run: |
476
+ gh release delete latest --repo "$GITHUB_REPOSITORY" --cleanup-tag --yes || true
477
+ gh release create latest assets/* --repo "$GITHUB_REPOSITORY" --target "$GITHUB_SHA" \
478
+ --prerelease --latest=false --title "Latest (main)" \
479
+ --notes "Built from main at $GITHUB_SHA. For versioned binaries, use a tagged release."
480
+
481
+ # A GitHub release for each v* tag, with every wheel, the sdist, the packages and their checksums.
482
+ release:
483
+ needs: [lint, test, wheel, sdist, package-test, docker]
484
+ if: startsWith(github.ref, 'refs/tags/v')
485
+ runs-on: ubuntu-24.04
486
+ timeout-minutes: 10
487
+ permissions:
488
+ contents: write
489
+ steps:
490
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
491
+ with:
492
+ pattern: "wheel-*"
493
+ merge-multiple: true
494
+ path: assets
495
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
496
+ with:
497
+ name: sdist
498
+ path: assets
499
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
500
+ with:
501
+ pattern: "packages-*"
502
+ merge-multiple: true
503
+ path: assets
504
+ - name: Flatten
505
+ run: find assets -mindepth 2 -type f -exec mv -t assets {} + && find assets -mindepth 1 -type d -empty -delete
506
+ - name: Checksums
507
+ run: cd assets && sha256sum -- * > SHA256SUMS
508
+ - name: Release
509
+ env:
510
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
511
+ run: >
512
+ gh release create "$GITHUB_REF_NAME" assets/*
513
+ --repo "$GITHUB_REPOSITORY" --title "TerrainGen ${GITHUB_REF_NAME#v}" --generate-notes
@@ -0,0 +1,83 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ - Piecewise uniform size-frequency distributions: counts per diameter band, given absolutely or as shares of a total.
13
+ - Radial wall marks on craters, ridges and grooves down the wall that are strongest where it is steepest.
14
+ - Thomas cluster process for boulder clusters, with Poisson-scattered centres whose clusters add where they overlap.
15
+ - Craters on slopes: floors offset downslope and rims and ejecta lowered upslope (Plescia et al. 2019), and faster wear toward a critical gradient (Roering et al. 1999).
16
+ - Boulders limited to a maximum slope, optionally rolling down steeper ground to gather at its foot.
17
+ - Density maps from GeoTIFFs or constants: a scale, a count in a diameter range, or an areal fraction such as rock abundance, which set crater and boulder densities point by point.
18
+ - Size slope maps that bend boulder sizes into a local power law, from an exponent or a mean diameter map.
19
+ - Crater and boulder catalogs with a completeness limit, above which they stand in for generated features.
20
+ - Configuration reference in the documentation, generated from the schema at build time, and machine-readable value ranges in the schema.
21
+ - Rock albedo: boulders brighter than the regolith (Holt 1981; Marshal et al. 2023), and a speckle of the share of each sample covered by boulders too small to resolve, with the scatter of randomly placed rocks.
22
+ - Slope albedo: steep ground kept immature by mass wasting, its optical maturity rising with slope beyond 20 degrees (Ikeda et al. 2022; Lucey et al. 2014).
23
+ - Crater shaping and datum fitting on the GPU on spheres, ellipsoids and shape models, not only on planes.
24
+ - Configurations are checked against every field's documented range, and errors name the exact field, such as `layers[2].reach`.
25
+ - Python options classes document every field with its description and unit, and gain `validate()` and a readable `repr`.
26
+
27
+ ### Changed
28
+
29
+ - 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.
30
+ - Boulder lists and models hold every boulder of the layer's diameter range; only the heightmap leaves out boulders too small to resolve.
31
+ - Boulder ejecta come from every crater layer before the boulder layer, not only the last one.
32
+ - The boulder layer's `exposure_spacing` key is now `ground_spacing` (Python `ground_spacing`), the spacing of every ground read the layer makes.
33
+ - Crater shaping has one implementation, the kernel, on every surface; craters on bodies and custom profiles may differ from before in the last digits.
34
+ - Random streams and hashes are unified, so boulder, albedo, dune, bedform and pavement outputs for a given seed differ from earlier versions; their statistics are unchanged.
35
+ - Every evaluation defaults to all threads, including `EvaluateAt`, `EvaluateTile` and Python `evaluate_tile`.
36
+ - The `materials` module is folded into `pipeline` (material maps) and `albedo` (Hapke photometry); include `terraingen/pipeline/materials.h` and `terraingen/albedo/photometry.h`.
37
+ - Python: `ExposureField.exposure` takes `(x, y, spacing=0.0, terrain=None, layers=0)` like the other ground queries, unbounded options read as `None` instead of infinity, `write_outputs` returns paths, a subclass missing a required method raises `TypeError`, and `CraterFeatures.write` is `write_list`.
38
+ - Python names: `cell_of` is `cell_at`, `point_of` is `coordinates`, `level_for` is `resolving_level`, `outline_of` is `irregular_outline`, `min_diameter_for_count` is `count_limit_diameter`, `singer_range_for_size` is `singer_max_range`, `SplotchOptions` is `SplotchAlbedoOptions` and `SlopeMaturityOptions` is `SlopeAlbedoOptions`.
39
+ - The CI coverage job builds at `-O1` without atomic counters, so it caches and runs several times faster.
40
+
41
+ - Density maps that count every feature take out the secondaries thrown from a layer's craters and the blocks thrown out around craters, and boulder patches and bedrock keep a map's mean, so nothing is counted twice.
42
+ - Boulder models settle onto a stable face by default instead of balancing on an edge or corner.
43
+ - Boulder generation logs under boulders rather than craters.
44
+ - Crater and boulder generation summaries log at debug level; `terraingen` ends with one line counting the files written instead of listing each, and feature outputs log how long they took.
45
+ - Generation logs each grid as it is evaluated, with the time of every layer, the albedo and the materials, and ends with each step's total and share.
46
+ - Faster boulders: the ground beneath them is read in one batch, outputs over one region share the boulders placed for the first, models are placed in parallel, ejecta craters are found through a spatial index and shapes skip the roughness of fracture planes that cannot reach a vertex. The hero demo runs in about 10 s instead of 276 s.
47
+ - Martin, Parkes and Dunstan is the default crater profile.
48
+
49
+ ### Fixed
50
+
51
+ - Freshness degradation never makes a crater deeper than fresh: basins shallower than the cutoff keep their fresh shape.
52
+ - Small craters inside larger ones on sloping ground no longer stand as raised mounds: datums are fitted to the slope-shaped relief that is applied.
53
+ - Crater layers over other layers read the ground beneath their slopes and datums in batches rather than point by point, and point batches are evaluated in spatial order: the hero demo went from 433 s to 11 s with the same output.
54
+ - Secondary craters run on the GPU backend the terrain asks for instead of always on the CPU.
55
+ - A crater layer after a boulder layer no longer refits crater datums for every batch of ground reads.
56
+ - Tilted boulders are no longer cut off at tile edges and point queries.
57
+ - Crater and boulder lists honour a spacing finer than the grid.
58
+ - Zero-area regions and crater sizes below the models' range are rejected with a clear error instead of failing during generation.
59
+
60
+ ### Removed
61
+
62
+ - Python `crater_blend_weight` (use `CraterBlend.weight`), `CraterAgeModel.lifetime_gyr` (use `lifetime_at`) and the flat selection aliases on crater irregularity, crater albedo and secondary options (use `selection`).
63
+
64
+ ## [0.1.0] - 2026-10-18
65
+
66
+ Initial release.
67
+
68
+ ### Added
69
+
70
+ - C++20 library with Python bindings (`terraingenpy` on PyPI) for generating terrain from scratch or adding detail to existing DEMs.
71
+ - Craters and boulders from published size-frequency distributions, with crater ages, profiles, degradation, irregularity, secondaries and ejecta.
72
+ - Procedural 3D boulder models, and small boulders baked into the heightmap.
73
+ - Synthetic albedo with crater ejecta and rays that fade with age.
74
+ - Geologic features: dunes and ripples, layered strata, fractured bedrock, ventifacts and sand pooled in lows or behind boulders.
75
+ - Planes, spheres and ellipsoids, whole-body meshes, tiles and point queries.
76
+ - Deterministic output for a seed on any grid, tile or thread count.
77
+ - GPU acceleration on Vulkan, CUDA and Metal, detected at run time.
78
+ - `terraingen` command-line interface driven by JSON configurations.
79
+ - Examples in C++, Python and JSON.
80
+ - Release archives for Linux, macOS and Windows, Debian packages, and a Docker image.
81
+
82
+ [Unreleased]: https://github.com/alexmaietta/terraingen/compare/v0.1.0...HEAD
83
+ [0.1.0]: https://github.com/alexmaietta/terraingen/releases/tag/v0.1.0