terraingenpy 0.1.0__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 (769) hide show
  1. terraingenpy-0.1.0/.clang-format +11 -0
  2. terraingenpy-0.1.0/.clang-tidy +18 -0
  3. terraingenpy-0.1.0/.cmake-format.yaml +11 -0
  4. terraingenpy-0.1.0/.dockerignore +23 -0
  5. terraingenpy-0.1.0/.gitattributes +37 -0
  6. terraingenpy-0.1.0/.github/ISSUE_TEMPLATE/bug_report.yml +40 -0
  7. terraingenpy-0.1.0/.github/ISSUE_TEMPLATE/config.yml +1 -0
  8. terraingenpy-0.1.0/.github/ISSUE_TEMPLATE/feature_request.yml +22 -0
  9. terraingenpy-0.1.0/.github/pull_request_template.md +7 -0
  10. terraingenpy-0.1.0/.github/scripts/install-lavapipe-windows.sh +25 -0
  11. terraingenpy-0.1.0/.github/workflows/ci.yml +514 -0
  12. terraingenpy-0.1.0/.gitignore +37 -0
  13. terraingenpy-0.1.0/.pre-commit-config.yaml +58 -0
  14. terraingenpy-0.1.0/CHANGELOG.md +8 -0
  15. terraingenpy-0.1.0/CITATION.cff +22 -0
  16. terraingenpy-0.1.0/CMakeLists.txt +144 -0
  17. terraingenpy-0.1.0/CONTRIBUTING.md +47 -0
  18. terraingenpy-0.1.0/Dockerfile +52 -0
  19. terraingenpy-0.1.0/LICENSE +28 -0
  20. terraingenpy-0.1.0/PKG-INFO +247 -0
  21. terraingenpy-0.1.0/README.md +191 -0
  22. terraingenpy-0.1.0/assets/textures/README.md +10 -0
  23. terraingenpy-0.1.0/assets/textures/moon_01_diff_4k.jpg +3 -0
  24. terraingenpy-0.1.0/assets/textures/moon_01_disp_4k.png +3 -0
  25. terraingenpy-0.1.0/assets/textures/moon_01_nor_gl_4k.exr +3 -0
  26. terraingenpy-0.1.0/assets/textures/moon_01_rough_4k.exr +3 -0
  27. terraingenpy-0.1.0/cmake/BuildInfo.cmake +47 -0
  28. terraingenpy-0.1.0/cmake/CoverageBadge.cmake +27 -0
  29. terraingenpy-0.1.0/cmake/CraterKernel.slang.in +58 -0
  30. terraingenpy-0.1.0/cmake/EmbedFile.cmake +15 -0
  31. terraingenpy-0.1.0/cmake/Kernel.cpp.in +27 -0
  32. terraingenpy-0.1.0/cmake/Kernel.slang.in +43 -0
  33. terraingenpy-0.1.0/cmake/TerrainGenPackaging.cmake +34 -0
  34. terraingenpy-0.1.0/cmake/TerrainGenSlang.cmake +136 -0
  35. terraingenpy-0.1.0/cmake/TerrainGenTesting.cmake +19 -0
  36. terraingenpy-0.1.0/cmake/terraingenConfig.cmake.in +8 -0
  37. terraingenpy-0.1.0/cmake/third_party/benchmark.cmake +18 -0
  38. terraingenpy-0.1.0/cmake/third_party/ernie.cmake +35 -0
  39. terraingenpy-0.1.0/cmake/third_party/googletest.cmake +17 -0
  40. terraingenpy-0.1.0/cmake/third_party/mesh_formats.cmake +6 -0
  41. terraingenpy-0.1.0/cmake/third_party/miniz.cmake +12 -0
  42. terraingenpy-0.1.0/cmake/third_party/nanobind.cmake +27 -0
  43. terraingenpy-0.1.0/cmake/third_party/nvrtc.cmake +41 -0
  44. terraingenpy-0.1.0/cmake/third_party/slang.cmake +41 -0
  45. terraingenpy-0.1.0/cmake/third_party/volk.cmake +23 -0
  46. terraingenpy-0.1.0/cmake/third_party/vulkan_headers.cmake +18 -0
  47. terraingenpy-0.1.0/docs/.gitignore +2 -0
  48. terraingenpy-0.1.0/docs/Makefile +16 -0
  49. terraingenpy-0.1.0/docs/README.md +23 -0
  50. terraingenpy-0.1.0/docs/api/cpp.md +1 -0
  51. terraingenpy-0.1.0/docs/api/python.md +1 -0
  52. terraingenpy-0.1.0/docs/concepts/index.md +1 -0
  53. terraingenpy-0.1.0/docs/css/extra.css +455 -0
  54. terraingenpy-0.1.0/docs/getting-started/command-line.md +1 -0
  55. terraingenpy-0.1.0/docs/getting-started/gui.md +1 -0
  56. terraingenpy-0.1.0/docs/getting-started/index.md +1 -0
  57. terraingenpy-0.1.0/docs/getting-started/installation.md +1 -0
  58. terraingenpy-0.1.0/docs/getting-started/quickstart.md +1 -0
  59. terraingenpy-0.1.0/docs/guides/index.md +1 -0
  60. terraingenpy-0.1.0/docs/index.md +7 -0
  61. terraingenpy-0.1.0/docs/overrides/home.html +26 -0
  62. terraingenpy-0.1.0/docs/overrides/partials/header.html +45 -0
  63. terraingenpy-0.1.0/docs/requirements.txt +8 -0
  64. terraingenpy-0.1.0/docs/validation/index.md +1 -0
  65. terraingenpy-0.1.0/examples/README.md +79 -0
  66. terraingenpy-0.1.0/examples/config/ages/example_ages_fresh.json +63 -0
  67. terraingenpy-0.1.0/examples/config/ages/example_ages_steady_state.json +67 -0
  68. terraingenpy-0.1.0/examples/config/ages/example_ages_uniform.json +64 -0
  69. terraingenpy-0.1.0/examples/config/albedo/example_albedo_blast_zone.json +101 -0
  70. terraingenpy-0.1.0/examples/config/albedo/example_albedo_crater_rays.json +91 -0
  71. terraingenpy-0.1.0/examples/config/albedo/example_albedo_fresh_crater.json +145 -0
  72. terraingenpy-0.1.0/examples/config/albedo/example_albedo_moon_site.json +105 -0
  73. terraingenpy-0.1.0/examples/config/albedo/example_albedo_new_crater.json +133 -0
  74. terraingenpy-0.1.0/examples/config/albedo/example_albedo_oblique_rays.json +105 -0
  75. terraingenpy-0.1.0/examples/config/albedo/example_albedo_rgb.json +61 -0
  76. terraingenpy-0.1.0/examples/config/albedo/example_albedo_synthetic.json +50 -0
  77. terraingenpy-0.1.0/examples/config/boulders/example_boulders_buried.json +60 -0
  78. terraingenpy-0.1.0/examples/config/boulders/example_boulders_ejecta.json +60 -0
  79. terraingenpy-0.1.0/examples/config/boulders/example_boulders_exposure.json +48 -0
  80. terraingenpy-0.1.0/examples/config/boulders/example_boulders_fragments.json +68 -0
  81. terraingenpy-0.1.0/examples/config/boulders/example_boulders_layer.json +70 -0
  82. terraingenpy-0.1.0/examples/config/boulders/example_boulders_models.json +55 -0
  83. terraingenpy-0.1.0/examples/config/boulders/example_boulders_patches.json +47 -0
  84. terraingenpy-0.1.0/examples/config/boulders/example_boulders_scene.json +64 -0
  85. terraingenpy-0.1.0/examples/config/boulders/example_boulders_shapes.json +61 -0
  86. terraingenpy-0.1.0/examples/config/boulders/example_boulders_sp8023.json +46 -0
  87. terraingenpy-0.1.0/examples/config/craters/example_craters_datum.json +58 -0
  88. terraingenpy-0.1.0/examples/config/craters/example_craters_degradation_diffusion.json +61 -0
  89. terraingenpy-0.1.0/examples/config/craters/example_craters_degradation_none.json +57 -0
  90. terraingenpy-0.1.0/examples/config/craters/example_craters_interior_replacement.json +62 -0
  91. terraingenpy-0.1.0/examples/config/craters/example_craters_irregular.json +66 -0
  92. terraingenpy-0.1.0/examples/config/craters/example_craters_manual.json +66 -0
  93. terraingenpy-0.1.0/examples/config/craters/example_craters_max_craters.json +64 -0
  94. terraingenpy-0.1.0/examples/config/craters/example_craters_profile_complex.json +70 -0
  95. terraingenpy-0.1.0/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +57 -0
  96. terraingenpy-0.1.0/examples/config/craters/example_craters_rim_smoothing_soft.json +63 -0
  97. terraingenpy-0.1.0/examples/config/craters/example_craters_secondaries.json +43 -0
  98. terraingenpy-0.1.0/examples/config/craters/example_craters_secondary_rays.json +71 -0
  99. terraingenpy-0.1.0/examples/config/craters/example_craters_simple.json +63 -0
  100. terraingenpy-0.1.0/examples/config/craters/example_craters_smoothed_rims.json +59 -0
  101. terraingenpy-0.1.0/examples/config/craters/example_craters_spacing.json +67 -0
  102. terraingenpy-0.1.0/examples/config/craters/example_craters_texture.json +65 -0
  103. terraingenpy-0.1.0/examples/config/distributions/example_distributions_moore_rough_mare.json +46 -0
  104. terraingenpy-0.1.0/examples/config/distributions/example_distributions_piecewise_power_law.json +57 -0
  105. terraingenpy-0.1.0/examples/config/distributions/example_distributions_power_law.json +47 -0
  106. terraingenpy-0.1.0/examples/config/distributions/example_distributions_tabulated.json +63 -0
  107. terraingenpy-0.1.0/examples/config/distributions/example_distributions_trask_equilibrium.json +45 -0
  108. terraingenpy-0.1.0/examples/config/distributions/example_distributions_viper.json +45 -0
  109. terraingenpy-0.1.0/examples/config/layers/example_layers_regions.json +118 -0
  110. terraingenpy-0.1.0/examples/config/layers/example_layers_roughness.json +34 -0
  111. terraingenpy-0.1.0/examples/config/layers/example_layers_scale_and_clamp.json +37 -0
  112. terraingenpy-0.1.0/examples/config/planets/example_planets_asteroid_body_mesh.json +48 -0
  113. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_bedforms.json +53 -0
  114. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_craters.json +53 -0
  115. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_dunes.json +71 -0
  116. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_exposure.json +59 -0
  117. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_pavement.json +72 -0
  118. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_sand_fill.json +68 -0
  119. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_sand_shadows.json +62 -0
  120. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_strata.json +65 -0
  121. terraingenpy-0.1.0/examples/config/planets/example_planets_mars_ventifacts.json +64 -0
  122. terraingenpy-0.1.0/examples/config/planets/example_planets_mercury_site.json +52 -0
  123. terraingenpy-0.1.0/examples/config/planets/example_planets_moon_body_mesh.json +57 -0
  124. terraingenpy-0.1.0/examples/config/planets/example_planets_moon_site.json +77 -0
  125. terraingenpy-0.1.0/examples/config/terrain/example_terrain_billow.json +28 -0
  126. terraingenpy-0.1.0/examples/config/terrain/example_terrain_cellular.json +28 -0
  127. terraingenpy-0.1.0/examples/config/terrain/example_terrain_domain_warp.json +29 -0
  128. terraingenpy-0.1.0/examples/config/terrain/example_terrain_fbm.json +27 -0
  129. terraingenpy-0.1.0/examples/config/terrain/example_terrain_layered.json +43 -0
  130. terraingenpy-0.1.0/examples/config/terrain/example_terrain_ridged.json +28 -0
  131. terraingenpy-0.1.0/examples/config/terrain/example_terrain_roughness.json +28 -0
  132. terraingenpy-0.1.0/examples/config/terrain/example_terrain_voronoi.json +35 -0
  133. terraingenpy-0.1.0/examples/cpp/CMakeLists.txt +39 -0
  134. terraingenpy-0.1.0/examples/cpp/ages/example_ages_models.cpp +164 -0
  135. terraingenpy-0.1.0/examples/cpp/albedo/example_albedo_crater_rays.cpp +110 -0
  136. terraingenpy-0.1.0/examples/cpp/boulders/example_boulders_ejecta.cpp +125 -0
  137. terraingenpy-0.1.0/examples/cpp/boulders/example_boulders_layer.cpp +111 -0
  138. terraingenpy-0.1.0/examples/cpp/boulders/example_boulders_shapes.cpp +100 -0
  139. terraingenpy-0.1.0/examples/cpp/common/browser.cpp +337 -0
  140. terraingenpy-0.1.0/examples/cpp/common/browser.h +72 -0
  141. terraingenpy-0.1.0/examples/cpp/common/example.cpp +293 -0
  142. terraingenpy-0.1.0/examples/cpp/common/example.h +177 -0
  143. terraingenpy-0.1.0/examples/cpp/common/main.cpp +21 -0
  144. terraingenpy-0.1.0/examples/cpp/common/standalone_main.cpp +13 -0
  145. terraingenpy-0.1.0/examples/cpp/config/example_config_load.cpp +66 -0
  146. terraingenpy-0.1.0/examples/cpp/craters/example_craters_degradation.cpp +137 -0
  147. terraingenpy-0.1.0/examples/cpp/craters/example_craters_manual.cpp +107 -0
  148. terraingenpy-0.1.0/examples/cpp/craters/example_craters_profiles.cpp +159 -0
  149. terraingenpy-0.1.0/examples/cpp/craters/example_craters_secondaries.cpp +112 -0
  150. terraingenpy-0.1.0/examples/cpp/craters/example_craters_simple.cpp +98 -0
  151. terraingenpy-0.1.0/examples/cpp/distributions/example_distributions_csfd.cpp +170 -0
  152. terraingenpy-0.1.0/examples/cpp/layers/example_layers_custom.cpp +167 -0
  153. terraingenpy-0.1.0/examples/cpp/layers/example_layers_regions.cpp +119 -0
  154. terraingenpy-0.1.0/examples/cpp/planets/example_planets_moon.cpp +145 -0
  155. terraingenpy-0.1.0/examples/cpp/sources/example_sources_raster_detail.cpp +128 -0
  156. terraingenpy-0.1.0/examples/cpp/terrain/example_terrain_fbm.cpp +75 -0
  157. terraingenpy-0.1.0/examples/cpp/terrain/example_terrain_layered.cpp +95 -0
  158. terraingenpy-0.1.0/examples/cpp/tiles/example_tiles_body_pyramid.cpp +189 -0
  159. terraingenpy-0.1.0/examples/cpp/tiles/example_tiles_quadtree.cpp +155 -0
  160. terraingenpy-0.1.0/examples/cpp/tiles/example_tiles_rover_contacts.cpp +162 -0
  161. terraingenpy-0.1.0/examples/python/__main__.py +38 -0
  162. terraingenpy-0.1.0/examples/python/_browser.py +128 -0
  163. terraingenpy-0.1.0/examples/python/_common.py +47 -0
  164. terraingenpy-0.1.0/examples/python/_harness.py +233 -0
  165. terraingenpy-0.1.0/examples/python/_images.py +131 -0
  166. terraingenpy-0.1.0/examples/python/ages/example_ages_models.py +94 -0
  167. terraingenpy-0.1.0/examples/python/albedo/example_albedo_crater_rays.py +89 -0
  168. terraingenpy-0.1.0/examples/python/albedo/example_albedo_moon_site.py +97 -0
  169. terraingenpy-0.1.0/examples/python/albedo/example_albedo_options.py +146 -0
  170. terraingenpy-0.1.0/examples/python/boulders/example_boulders_exposure.py +78 -0
  171. terraingenpy-0.1.0/examples/python/boulders/example_boulders_layer.py +97 -0
  172. terraingenpy-0.1.0/examples/python/boulders/example_boulders_positioning.py +100 -0
  173. terraingenpy-0.1.0/examples/python/boulders/example_boulders_shapes.py +105 -0
  174. terraingenpy-0.1.0/examples/python/boulders/example_boulders_size_models.py +88 -0
  175. terraingenpy-0.1.0/examples/python/config/example_config_load.py +65 -0
  176. terraingenpy-0.1.0/examples/python/craters/example_craters_age_sweep.py +85 -0
  177. terraingenpy-0.1.0/examples/python/craters/example_craters_apply_options.py +94 -0
  178. terraingenpy-0.1.0/examples/python/craters/example_craters_degradation.py +89 -0
  179. terraingenpy-0.1.0/examples/python/craters/example_craters_irregularity.py +95 -0
  180. terraingenpy-0.1.0/examples/python/craters/example_craters_manual.py +78 -0
  181. terraingenpy-0.1.0/examples/python/craters/example_craters_positioning.py +96 -0
  182. terraingenpy-0.1.0/examples/python/craters/example_craters_profiles.py +133 -0
  183. terraingenpy-0.1.0/examples/python/craters/example_craters_rim_smoothing.py +78 -0
  184. terraingenpy-0.1.0/examples/python/craters/example_craters_secondaries.py +89 -0
  185. terraingenpy-0.1.0/examples/python/craters/example_craters_simple.py +73 -0
  186. terraingenpy-0.1.0/examples/python/distributions/example_distributions_csfd.py +87 -0
  187. terraingenpy-0.1.0/examples/python/distributions/example_distributions_custom.py +85 -0
  188. terraingenpy-0.1.0/examples/python/layers/example_layers_custom.py +147 -0
  189. terraingenpy-0.1.0/examples/python/layers/example_layers_regions.py +97 -0
  190. terraingenpy-0.1.0/examples/python/planets/example_planets_body_mesh.py +95 -0
  191. terraingenpy-0.1.0/examples/python/planets/example_planets_mars.py +82 -0
  192. terraingenpy-0.1.0/examples/python/planets/example_planets_mars_dunes.py +64 -0
  193. terraingenpy-0.1.0/examples/python/planets/example_planets_mars_exposure.py +103 -0
  194. terraingenpy-0.1.0/examples/python/planets/example_planets_mercury.py +83 -0
  195. terraingenpy-0.1.0/examples/python/planets/example_planets_moon_site.py +102 -0
  196. terraingenpy-0.1.0/examples/python/sources/example_sources_chain.py +80 -0
  197. terraingenpy-0.1.0/examples/python/sources/example_sources_raster_detail.py +127 -0
  198. terraingenpy-0.1.0/examples/python/terrain/example_terrain_fbm.py +60 -0
  199. terraingenpy-0.1.0/examples/python/terrain/example_terrain_fractal_types.py +61 -0
  200. terraingenpy-0.1.0/examples/python/terrain/example_terrain_hurst_sweep.py +62 -0
  201. terraingenpy-0.1.0/examples/python/terrain/example_terrain_layered.py +73 -0
  202. terraingenpy-0.1.0/examples/python/terrain/example_terrain_noise_kernels.py +78 -0
  203. terraingenpy-0.1.0/examples/python/tiles/example_tiles_body_pyramid.py +108 -0
  204. terraingenpy-0.1.0/examples/python/tiles/example_tiles_point_queries.py +90 -0
  205. terraingenpy-0.1.0/examples/python/tiles/example_tiles_quadtree.py +97 -0
  206. terraingenpy-0.1.0/examples/python/tiles/example_tiles_rover_contacts.py +123 -0
  207. terraingenpy-0.1.0/mkdocs.yml +151 -0
  208. terraingenpy-0.1.0/pyproject.toml +94 -0
  209. terraingenpy-0.1.0/terraingen/CMakeLists.txt +127 -0
  210. terraingenpy-0.1.0/terraingen/albedo/CMakeLists.txt +17 -0
  211. terraingenpy-0.1.0/terraingen/albedo/albedo.cpp +132 -0
  212. terraingenpy-0.1.0/terraingen/albedo/albedo.h +122 -0
  213. terraingenpy-0.1.0/terraingen/albedo/blast_zones.cpp +135 -0
  214. terraingenpy-0.1.0/terraingen/albedo/blast_zones.h +77 -0
  215. terraingenpy-0.1.0/terraingen/albedo/crater_albedo.cpp +846 -0
  216. terraingenpy-0.1.0/terraingen/albedo/crater_albedo.h +346 -0
  217. terraingenpy-0.1.0/terraingen/albedo/maturity.cpp +27 -0
  218. terraingenpy-0.1.0/terraingen/albedo/maturity.h +37 -0
  219. terraingenpy-0.1.0/terraingen/albedo/raster_albedo.cpp +221 -0
  220. terraingenpy-0.1.0/terraingen/albedo/raster_albedo.h +113 -0
  221. terraingenpy-0.1.0/terraingen/albedo/splotches.cpp +458 -0
  222. terraingenpy-0.1.0/terraingen/albedo/splotches.h +166 -0
  223. terraingenpy-0.1.0/terraingen/albedo/synthetic.cpp +86 -0
  224. terraingenpy-0.1.0/terraingen/albedo/synthetic.h +78 -0
  225. terraingenpy-0.1.0/terraingen/app/CMakeLists.txt +30 -0
  226. terraingenpy-0.1.0/terraingen/app/cli.cpp +280 -0
  227. terraingenpy-0.1.0/terraingen/app/cli.h +66 -0
  228. terraingenpy-0.1.0/terraingen/app/gui/CMakeLists.txt +7 -0
  229. terraingenpy-0.1.0/terraingen/app/gui/config_editor.cpp +929 -0
  230. terraingenpy-0.1.0/terraingen/app/gui/config_editor.h +128 -0
  231. terraingenpy-0.1.0/terraingen/app/gui/gui_app.cpp +521 -0
  232. terraingenpy-0.1.0/terraingen/app/gui/gui_app.h +134 -0
  233. terraingenpy-0.1.0/terraingen/app/gui/run.cpp +31 -0
  234. terraingenpy-0.1.0/terraingen/app/gui/run.h +24 -0
  235. terraingenpy-0.1.0/terraingen/app/gui/run_none.cpp +17 -0
  236. terraingenpy-0.1.0/terraingen/app/gui/terrain_scene.cpp +94 -0
  237. terraingenpy-0.1.0/terraingen/app/gui/terrain_scene.h +36 -0
  238. terraingenpy-0.1.0/terraingen/app/main.cpp +10 -0
  239. terraingenpy-0.1.0/terraingen/config/CMakeLists.txt +25 -0
  240. terraingenpy-0.1.0/terraingen/config/build.cpp +677 -0
  241. terraingenpy-0.1.0/terraingen/config/build.h +91 -0
  242. terraingenpy-0.1.0/terraingen/config/config.cpp +44 -0
  243. terraingenpy-0.1.0/terraingen/config/config.h +729 -0
  244. terraingenpy-0.1.0/terraingen/config/feature_lists.cpp +209 -0
  245. terraingenpy-0.1.0/terraingen/config/fields/albedo.h +458 -0
  246. terraingenpy-0.1.0/terraingen/config/fields/boulders.h +385 -0
  247. terraingenpy-0.1.0/terraingen/config/fields/checks.h +72 -0
  248. terraingenpy-0.1.0/terraingen/config/fields/common.h +49 -0
  249. terraingenpy-0.1.0/terraingen/config/fields/crater_models.h +244 -0
  250. terraingenpy-0.1.0/terraingen/config/fields/craters.h +338 -0
  251. terraingenpy-0.1.0/terraingen/config/fields/enums.h +335 -0
  252. terraingenpy-0.1.0/terraingen/config/fields/fields.h +42 -0
  253. terraingenpy-0.1.0/terraingen/config/fields/json_io.h +316 -0
  254. terraingenpy-0.1.0/terraingen/config/fields/layers.h +463 -0
  255. terraingenpy-0.1.0/terraingen/config/fields/materials.h +49 -0
  256. terraingenpy-0.1.0/terraingen/config/fields/outputs.h +165 -0
  257. terraingenpy-0.1.0/terraingen/config/fields/sources.h +105 -0
  258. terraingenpy-0.1.0/terraingen/config/generate.cpp +297 -0
  259. terraingenpy-0.1.0/terraingen/config/generate.h +102 -0
  260. terraingenpy-0.1.0/terraingen/config/json.cpp +165 -0
  261. terraingenpy-0.1.0/terraingen/config/json.h +77 -0
  262. terraingenpy-0.1.0/terraingen/config/schema.cpp +235 -0
  263. terraingenpy-0.1.0/terraingen/config/validate.cpp +652 -0
  264. terraingenpy-0.1.0/terraingen/config/validate.h +49 -0
  265. terraingenpy-0.1.0/terraingen/distribution/CMakeLists.txt +24 -0
  266. terraingenpy-0.1.0/terraingen/distribution/combined.cpp +39 -0
  267. terraingenpy-0.1.0/terraingen/distribution/combined.h +43 -0
  268. terraingenpy-0.1.0/terraingen/distribution/equilibrium.cpp +15 -0
  269. terraingenpy-0.1.0/terraingen/distribution/equilibrium.h +17 -0
  270. terraingenpy-0.1.0/terraingen/distribution/golombek_rapp.cpp +40 -0
  271. terraingenpy-0.1.0/terraingen/distribution/golombek_rapp.h +47 -0
  272. terraingenpy-0.1.0/terraingen/distribution/ivanov.cpp +35 -0
  273. terraingenpy-0.1.0/terraingen/distribution/ivanov.h +26 -0
  274. terraingenpy-0.1.0/terraingen/distribution/log_polynomial.cpp +61 -0
  275. terraingenpy-0.1.0/terraingen/distribution/log_polynomial.h +46 -0
  276. terraingenpy-0.1.0/terraingen/distribution/minimum.cpp +72 -0
  277. terraingenpy-0.1.0/terraingen/distribution/minimum.h +40 -0
  278. terraingenpy-0.1.0/terraingen/distribution/moore.cpp +28 -0
  279. terraingenpy-0.1.0/terraingen/distribution/moore.h +22 -0
  280. terraingenpy-0.1.0/terraingen/distribution/neukum.cpp +48 -0
  281. terraingenpy-0.1.0/terraingen/distribution/neukum.h +32 -0
  282. terraingenpy-0.1.0/terraingen/distribution/piecewise_power_law.cpp +70 -0
  283. terraingenpy-0.1.0/terraingen/distribution/piecewise_power_law.h +48 -0
  284. terraingenpy-0.1.0/terraingen/distribution/power_law.cpp +34 -0
  285. terraingenpy-0.1.0/terraingen/distribution/power_law.h +71 -0
  286. terraingenpy-0.1.0/terraingen/distribution/production_surface.cpp +35 -0
  287. terraingenpy-0.1.0/terraingen/distribution/production_surface.h +52 -0
  288. terraingenpy-0.1.0/terraingen/distribution/size_frequency.cpp +148 -0
  289. terraingenpy-0.1.0/terraingen/distribution/size_frequency.h +124 -0
  290. terraingenpy-0.1.0/terraingen/distribution/sp8023.cpp +126 -0
  291. terraingenpy-0.1.0/terraingen/distribution/sp8023.h +24 -0
  292. terraingenpy-0.1.0/terraingen/distribution/spliced.cpp +84 -0
  293. terraingenpy-0.1.0/terraingen/distribution/spliced.h +52 -0
  294. terraingenpy-0.1.0/terraingen/distribution/summed.cpp +63 -0
  295. terraingenpy-0.1.0/terraingen/distribution/summed.h +43 -0
  296. terraingenpy-0.1.0/terraingen/distribution/synthterrain.cpp +19 -0
  297. terraingenpy-0.1.0/terraingen/distribution/synthterrain.h +24 -0
  298. terraingenpy-0.1.0/terraingen/distribution/tabulated.cpp +80 -0
  299. terraingenpy-0.1.0/terraingen/distribution/tabulated.h +55 -0
  300. terraingenpy-0.1.0/terraingen/distribution/viper.cpp +10 -0
  301. terraingenpy-0.1.0/terraingen/distribution/viper.h +14 -0
  302. terraingenpy-0.1.0/terraingen/gpu/CMakeLists.txt +25 -0
  303. terraingenpy-0.1.0/terraingen/gpu/backend.cpp +172 -0
  304. terraingenpy-0.1.0/terraingen/gpu/backend.h +63 -0
  305. terraingenpy-0.1.0/terraingen/gpu/cuda.cpp +300 -0
  306. terraingenpy-0.1.0/terraingen/gpu/cuda.h +67 -0
  307. terraingenpy-0.1.0/terraingen/gpu/kernel.cpp +121 -0
  308. terraingenpy-0.1.0/terraingen/gpu/kernel.h +37 -0
  309. terraingenpy-0.1.0/terraingen/gpu/metal.cpp +190 -0
  310. terraingenpy-0.1.0/terraingen/gpu/metal.h +52 -0
  311. terraingenpy-0.1.0/terraingen/gpu/program.h +23 -0
  312. terraingenpy-0.1.0/terraingen/gpu/vulkan.cpp +565 -0
  313. terraingenpy-0.1.0/terraingen/gpu/vulkan.h +80 -0
  314. terraingenpy-0.1.0/terraingen/layers/CMakeLists.txt +65 -0
  315. terraingenpy-0.1.0/terraingen/layers/bedforms.cpp +205 -0
  316. terraingenpy-0.1.0/terraingen/layers/bedforms.h +107 -0
  317. terraingenpy-0.1.0/terraingen/layers/boulders/abundance.cpp +162 -0
  318. terraingenpy-0.1.0/terraingen/layers/boulders/boulder.h +88 -0
  319. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_fragments.cpp +113 -0
  320. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_fragments.h +40 -0
  321. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_layer.cpp +740 -0
  322. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_layer.h +216 -0
  323. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_models.cpp +126 -0
  324. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_models.h +71 -0
  325. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_options.cpp +320 -0
  326. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_options.h +377 -0
  327. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_placer.h +39 -0
  328. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_shape.cpp +466 -0
  329. terraingenpy-0.1.0/terraingen/layers/boulders/boulder_shape.h +107 -0
  330. terraingenpy-0.1.0/terraingen/layers/craters/ages/age_model.cpp +61 -0
  331. terraingenpy-0.1.0/terraingen/layers/craters/ages/age_model.h +58 -0
  332. terraingenpy-0.1.0/terraingen/layers/craters/ages/steady_state.cpp +63 -0
  333. terraingenpy-0.1.0/terraingen/layers/craters/ages/steady_state.h +52 -0
  334. terraingenpy-0.1.0/terraingen/layers/craters/crater.cpp +91 -0
  335. terraingenpy-0.1.0/terraingen/layers/craters/crater.h +140 -0
  336. terraingenpy-0.1.0/terraingen/layers/craters/crater_layer.cpp +110 -0
  337. terraingenpy-0.1.0/terraingen/layers/craters/crater_layer.h +110 -0
  338. terraingenpy-0.1.0/terraingen/layers/craters/crater_placer.cpp +21 -0
  339. terraingenpy-0.1.0/terraingen/layers/craters/crater_placer.h +42 -0
  340. terraingenpy-0.1.0/terraingen/layers/craters/degradation/degradation_model.cpp +29 -0
  341. terraingenpy-0.1.0/terraingen/layers/craters/degradation/degradation_model.h +39 -0
  342. terraingenpy-0.1.0/terraingen/layers/craters/degradation/diffusion.cpp +285 -0
  343. terraingenpy-0.1.0/terraingen/layers/craters/degradation/diffusion.h +140 -0
  344. terraingenpy-0.1.0/terraingen/layers/craters/degradation/diffusivities.cpp +26 -0
  345. terraingenpy-0.1.0/terraingen/layers/craters/degradation/diffusivities.h +25 -0
  346. terraingenpy-0.1.0/terraingen/layers/craters/degradation/freshness.cpp +30 -0
  347. terraingenpy-0.1.0/terraingen/layers/craters/degradation/freshness.h +32 -0
  348. terraingenpy-0.1.0/terraingen/layers/craters/degradation/state.h +38 -0
  349. terraingenpy-0.1.0/terraingen/layers/craters/generation/cell_cache.cpp +33 -0
  350. terraingenpy-0.1.0/terraingen/layers/craters/generation/cell_cache.h +68 -0
  351. terraingenpy-0.1.0/terraingen/layers/craters/generation/population.cpp +360 -0
  352. terraingenpy-0.1.0/terraingen/layers/craters/generation/population.h +131 -0
  353. terraingenpy-0.1.0/terraingen/layers/craters/generation/spacing.cpp +179 -0
  354. terraingenpy-0.1.0/terraingen/layers/craters/generation/spacing.h +43 -0
  355. terraingenpy-0.1.0/terraingen/layers/craters/profiles/complex.cpp +89 -0
  356. terraingenpy-0.1.0/terraingen/layers/craters/profiles/complex.h +82 -0
  357. terraingenpy-0.1.0/terraingen/layers/craters/profiles/fassett_thomson.cpp +54 -0
  358. terraingenpy-0.1.0/terraingen/layers/craters/profiles/fassett_thomson.h +46 -0
  359. terraingenpy-0.1.0/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +44 -0
  360. terraingenpy-0.1.0/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +23 -0
  361. terraingenpy-0.1.0/terraingen/layers/craters/profiles/profile.h +29 -0
  362. terraingenpy-0.1.0/terraingen/layers/craters/rays.cpp +50 -0
  363. terraingenpy-0.1.0/terraingen/layers/craters/rays.h +40 -0
  364. terraingenpy-0.1.0/terraingen/layers/craters/secondaries.cpp +572 -0
  365. terraingenpy-0.1.0/terraingen/layers/craters/secondaries.h +170 -0
  366. terraingenpy-0.1.0/terraingen/layers/craters/shaping/apply.cpp +528 -0
  367. terraingenpy-0.1.0/terraingen/layers/craters/shaping/apply.h +81 -0
  368. terraingenpy-0.1.0/terraingen/layers/craters/shaping/apply_options.cpp +113 -0
  369. terraingenpy-0.1.0/terraingen/layers/craters/shaping/apply_options.h +161 -0
  370. terraingenpy-0.1.0/terraingen/layers/craters/shaping/attributes.cpp +22 -0
  371. terraingenpy-0.1.0/terraingen/layers/craters/shaping/attributes.h +30 -0
  372. terraingenpy-0.1.0/terraingen/layers/craters/shaping/crater_kernel.cpp +181 -0
  373. terraingenpy-0.1.0/terraingen/layers/craters/shaping/crater_kernel.h +42 -0
  374. terraingenpy-0.1.0/terraingen/layers/craters/shaping/datum.cpp +186 -0
  375. terraingenpy-0.1.0/terraingen/layers/craters/shaping/datum.h +117 -0
  376. terraingenpy-0.1.0/terraingen/layers/craters/shaping/irregularity.cpp +273 -0
  377. terraingenpy-0.1.0/terraingen/layers/craters/shaping/irregularity.h +104 -0
  378. terraingenpy-0.1.0/terraingen/layers/craters/shaping/morphometry.cpp +74 -0
  379. terraingenpy-0.1.0/terraingen/layers/craters/shaping/morphometry.h +48 -0
  380. terraingenpy-0.1.0/terraingen/layers/craters/shaping/prepared.cpp +27 -0
  381. terraingenpy-0.1.0/terraingen/layers/craters/shaping/prepared.h +49 -0
  382. terraingenpy-0.1.0/terraingen/layers/detail.cpp +31 -0
  383. terraingenpy-0.1.0/terraingen/layers/detail.h +32 -0
  384. terraingenpy-0.1.0/terraingen/layers/dunes.cpp +615 -0
  385. terraingenpy-0.1.0/terraingen/layers/dunes.h +206 -0
  386. terraingenpy-0.1.0/terraingen/layers/evaluation_cache.h +59 -0
  387. terraingenpy-0.1.0/terraingen/layers/exposure.cpp +105 -0
  388. terraingenpy-0.1.0/terraingen/layers/exposure.h +80 -0
  389. terraingenpy-0.1.0/terraingen/layers/fade.cpp +50 -0
  390. terraingenpy-0.1.0/terraingen/layers/fade.h +42 -0
  391. terraingenpy-0.1.0/terraingen/layers/ground.h +44 -0
  392. terraingenpy-0.1.0/terraingen/layers/kernel.h +52 -0
  393. terraingenpy-0.1.0/terraingen/layers/kernels/cell.h +16 -0
  394. terraingenpy-0.1.0/terraingen/layers/kernels/craters.h +546 -0
  395. terraingenpy-0.1.0/terraingen/layers/kernels/noise_relief.h +52 -0
  396. terraingenpy-0.1.0/terraingen/layers/layer.cpp +61 -0
  397. terraingenpy-0.1.0/terraingen/layers/layer.h +89 -0
  398. terraingenpy-0.1.0/terraingen/layers/material.cpp +37 -0
  399. terraingenpy-0.1.0/terraingen/layers/material.h +62 -0
  400. terraingenpy-0.1.0/terraingen/layers/noise_relief.cpp +46 -0
  401. terraingenpy-0.1.0/terraingen/layers/noise_relief.h +48 -0
  402. terraingenpy-0.1.0/terraingen/layers/pavement.cpp +257 -0
  403. terraingenpy-0.1.0/terraingen/layers/pavement.h +126 -0
  404. terraingenpy-0.1.0/terraingen/layers/region.cpp +243 -0
  405. terraingenpy-0.1.0/terraingen/layers/region.h +109 -0
  406. terraingenpy-0.1.0/terraingen/layers/roughness.cpp +197 -0
  407. terraingenpy-0.1.0/terraingen/layers/roughness.h +94 -0
  408. terraingenpy-0.1.0/terraingen/layers/sample_block.cpp +49 -0
  409. terraingenpy-0.1.0/terraingen/layers/sample_block.h +61 -0
  410. terraingenpy-0.1.0/terraingen/layers/sand_fill.cpp +80 -0
  411. terraingenpy-0.1.0/terraingen/layers/sand_fill.h +65 -0
  412. terraingenpy-0.1.0/terraingen/layers/sand_shadow.cpp +163 -0
  413. terraingenpy-0.1.0/terraingen/layers/sand_shadow.h +101 -0
  414. terraingenpy-0.1.0/terraingen/layers/strata.cpp +150 -0
  415. terraingenpy-0.1.0/terraingen/layers/strata.h +102 -0
  416. terraingenpy-0.1.0/terraingen/layers/transforms.cpp +55 -0
  417. terraingenpy-0.1.0/terraingen/layers/transforms.h +83 -0
  418. terraingenpy-0.1.0/terraingen/materials/CMakeLists.txt +9 -0
  419. terraingenpy-0.1.0/terraingen/materials/materials.cpp +200 -0
  420. terraingenpy-0.1.0/terraingen/materials/materials.h +87 -0
  421. terraingenpy-0.1.0/terraingen/mesh/CMakeLists.txt +17 -0
  422. terraingenpy-0.1.0/terraingen/mesh/io/formats.h +61 -0
  423. terraingenpy-0.1.0/terraingen/mesh/io/gltf.cpp +308 -0
  424. terraingenpy-0.1.0/terraingen/mesh/io/icq.cpp +222 -0
  425. terraingenpy-0.1.0/terraingen/mesh/io/icq.h +75 -0
  426. terraingenpy-0.1.0/terraingen/mesh/io/mesh_io.cpp +129 -0
  427. terraingenpy-0.1.0/terraingen/mesh/io/mesh_io.h +64 -0
  428. terraingenpy-0.1.0/terraingen/mesh/io/obj.cpp +114 -0
  429. terraingenpy-0.1.0/terraingen/mesh/io/stl.cpp +155 -0
  430. terraingenpy-0.1.0/terraingen/mesh/mesh.cpp +232 -0
  431. terraingenpy-0.1.0/terraingen/mesh/mesh.h +106 -0
  432. terraingenpy-0.1.0/terraingen/mesh/polyhedra.cpp +173 -0
  433. terraingenpy-0.1.0/terraingen/mesh/polyhedra.h +38 -0
  434. terraingenpy-0.1.0/terraingen/mesh/shape_model.cpp +189 -0
  435. terraingenpy-0.1.0/terraingen/mesh/shape_model.h +21 -0
  436. terraingenpy-0.1.0/terraingen/noise/CMakeLists.txt +3 -0
  437. terraingenpy-0.1.0/terraingen/noise/fractal.h +312 -0
  438. terraingenpy-0.1.0/terraingen/noise/hash.h +52 -0
  439. terraingenpy-0.1.0/terraingen/noise/lattice.h +121 -0
  440. terraingenpy-0.1.0/terraingen/noise/noise_layers.h +224 -0
  441. terraingenpy-0.1.0/terraingen/noise/perlin.h +165 -0
  442. terraingenpy-0.1.0/terraingen/noise/simplex.h +149 -0
  443. terraingenpy-0.1.0/terraingen/noise/validate.cpp +38 -0
  444. terraingenpy-0.1.0/terraingen/noise/validate.h +18 -0
  445. terraingenpy-0.1.0/terraingen/noise/value.h +73 -0
  446. terraingenpy-0.1.0/terraingen/noise/worley.h +122 -0
  447. terraingenpy-0.1.0/terraingen/pipeline/CMakeLists.txt +14 -0
  448. terraingenpy-0.1.0/terraingen/pipeline/body_mesh.cpp +94 -0
  449. terraingenpy-0.1.0/terraingen/pipeline/body_mesh.h +37 -0
  450. terraingenpy-0.1.0/terraingen/pipeline/features.cpp +23 -0
  451. terraingenpy-0.1.0/terraingen/pipeline/features.h +22 -0
  452. terraingenpy-0.1.0/terraingen/pipeline/height_mesh.cpp +70 -0
  453. terraingenpy-0.1.0/terraingen/pipeline/height_mesh.h +21 -0
  454. terraingenpy-0.1.0/terraingen/pipeline/terrain.cpp +125 -0
  455. terraingenpy-0.1.0/terraingen/pipeline/terrain.h +104 -0
  456. terraingenpy-0.1.0/terraingen/pipeline/tiles.cpp +191 -0
  457. terraingenpy-0.1.0/terraingen/pipeline/tiles.h +166 -0
  458. terraingenpy-0.1.0/terraingen/python/CMakeLists.txt +61 -0
  459. terraingenpy-0.1.0/terraingen/python/src/albedo.cpp +532 -0
  460. terraingenpy-0.1.0/terraingen/python/src/bindings.h +25 -0
  461. terraingenpy-0.1.0/terraingen/python/src/boulders.cpp +489 -0
  462. terraingenpy-0.1.0/terraingen/python/src/casters.h +84 -0
  463. terraingenpy-0.1.0/terraingen/python/src/common.h +78 -0
  464. terraingenpy-0.1.0/terraingen/python/src/crater_models.cpp +331 -0
  465. terraingenpy-0.1.0/terraingen/python/src/craters.cpp +556 -0
  466. terraingenpy-0.1.0/terraingen/python/src/distribution.cpp +365 -0
  467. terraingenpy-0.1.0/terraingen/python/src/gpu.cpp +46 -0
  468. terraingenpy-0.1.0/terraingen/python/src/layers.cpp +513 -0
  469. terraingenpy-0.1.0/terraingen/python/src/materials.cpp +112 -0
  470. terraingenpy-0.1.0/terraingen/python/src/mesh.cpp +240 -0
  471. terraingenpy-0.1.0/terraingen/python/src/module.cpp +25 -0
  472. terraingenpy-0.1.0/terraingen/python/src/noise.cpp +412 -0
  473. terraingenpy-0.1.0/terraingen/python/src/objects.h +96 -0
  474. terraingenpy-0.1.0/terraingen/python/src/pipeline.cpp +550 -0
  475. terraingenpy-0.1.0/terraingen/python/src/random.cpp +157 -0
  476. terraingenpy-0.1.0/terraingen/python/src/raster.cpp +299 -0
  477. terraingenpy-0.1.0/terraingen/python/src/sources.cpp +145 -0
  478. terraingenpy-0.1.0/terraingen/python/src/tables.h +100 -0
  479. terraingenpy-0.1.0/terraingen/python/src/trampolines.h +72 -0
  480. terraingenpy-0.1.0/terraingen/python/src/util.cpp +237 -0
  481. terraingenpy-0.1.0/terraingen/python/terraingen/__init__.py +39 -0
  482. terraingenpy-0.1.0/terraingen/python/terraingen/render.py +244 -0
  483. terraingenpy-0.1.0/terraingen/random/CMakeLists.txt +8 -0
  484. terraingenpy-0.1.0/terraingen/random/philox.h +79 -0
  485. terraingenpy-0.1.0/terraingen/random/samplers.cpp +134 -0
  486. terraingenpy-0.1.0/terraingen/random/samplers.h +59 -0
  487. terraingenpy-0.1.0/terraingen/random/stream.cpp +33 -0
  488. terraingenpy-0.1.0/terraingen/random/stream.h +57 -0
  489. terraingenpy-0.1.0/terraingen/random/value_distribution.cpp +77 -0
  490. terraingenpy-0.1.0/terraingen/random/value_distribution.h +48 -0
  491. terraingenpy-0.1.0/terraingen/raster/CMakeLists.txt +19 -0
  492. terraingenpy-0.1.0/terraingen/raster/cell_loops.cpp +65 -0
  493. terraingenpy-0.1.0/terraingen/raster/cell_loops.h +114 -0
  494. terraingenpy-0.1.0/terraingen/raster/gaussian_blur.cpp +93 -0
  495. terraingenpy-0.1.0/terraingen/raster/gaussian_blur.h +26 -0
  496. terraingenpy-0.1.0/terraingen/raster/geo_transform.h +66 -0
  497. terraingenpy-0.1.0/terraingen/raster/geotiff/geotiff.cpp +120 -0
  498. terraingenpy-0.1.0/terraingen/raster/geotiff/geotiff.h +171 -0
  499. terraingenpy-0.1.0/terraingen/raster/geotiff/geotiff_read.cpp +656 -0
  500. terraingenpy-0.1.0/terraingen/raster/geotiff/geotiff_write.cpp +291 -0
  501. terraingenpy-0.1.0/terraingen/raster/geotiff/tiff_codecs.cpp +378 -0
  502. terraingenpy-0.1.0/terraingen/raster/geotiff/tiff_codecs.h +51 -0
  503. terraingenpy-0.1.0/terraingen/raster/geotiff/tiff_format.cpp +67 -0
  504. terraingenpy-0.1.0/terraingen/raster/geotiff/tiff_format.h +136 -0
  505. terraingenpy-0.1.0/terraingen/raster/grid.cpp +104 -0
  506. terraingenpy-0.1.0/terraingen/raster/grid.h +67 -0
  507. terraingenpy-0.1.0/terraingen/raster/raster.h +154 -0
  508. terraingenpy-0.1.0/terraingen/raster/raster_stats.h +48 -0
  509. terraingenpy-0.1.0/terraingen/raster/resample.cpp +127 -0
  510. terraingenpy-0.1.0/terraingen/raster/resample.h +74 -0
  511. terraingenpy-0.1.0/terraingen/sources/CMakeLists.txt +11 -0
  512. terraingenpy-0.1.0/terraingen/sources/flat_source.cpp +30 -0
  513. terraingenpy-0.1.0/terraingen/sources/flat_source.h +44 -0
  514. terraingenpy-0.1.0/terraingen/sources/geotiff_source.cpp +170 -0
  515. terraingenpy-0.1.0/terraingen/sources/geotiff_source.h +108 -0
  516. terraingenpy-0.1.0/terraingen/sources/source.h +44 -0
  517. terraingenpy-0.1.0/terraingen/sources/source_chain.cpp +67 -0
  518. terraingenpy-0.1.0/terraingen/sources/source_chain.h +53 -0
  519. terraingenpy-0.1.0/terraingen/sources/synthetic_terrain.cpp +58 -0
  520. terraingenpy-0.1.0/terraingen/sources/synthetic_terrain.h +40 -0
  521. terraingenpy-0.1.0/terraingen/terraingen.h +127 -0
  522. terraingenpy-0.1.0/terraingen/util/CMakeLists.txt +16 -0
  523. terraingenpy-0.1.0/terraingen/util/build_info.cpp.in +11 -0
  524. terraingenpy-0.1.0/terraingen/util/build_info.h +22 -0
  525. terraingenpy-0.1.0/terraingen/util/cells.h +168 -0
  526. terraingenpy-0.1.0/terraingen/util/checks.cpp +40 -0
  527. terraingenpy-0.1.0/terraingen/util/checks.h +45 -0
  528. terraingenpy-0.1.0/terraingen/util/cube_faces.h +63 -0
  529. terraingenpy-0.1.0/terraingen/util/cube_sphere_cells.cpp +312 -0
  530. terraingenpy-0.1.0/terraingen/util/fft.cpp +48 -0
  531. terraingenpy-0.1.0/terraingen/util/fft.h +16 -0
  532. terraingenpy-0.1.0/terraingen/util/geometry.h +95 -0
  533. terraingenpy-0.1.0/terraingen/util/log.cpp +128 -0
  534. terraingenpy-0.1.0/terraingen/util/log.h +105 -0
  535. terraingenpy-0.1.0/terraingen/util/lru_cache.h +125 -0
  536. terraingenpy-0.1.0/terraingen/util/overloaded.h +16 -0
  537. terraingenpy-0.1.0/terraingen/util/parallel.cpp +147 -0
  538. terraingenpy-0.1.0/terraingen/util/parallel.h +23 -0
  539. terraingenpy-0.1.0/terraingen/util/planar_cells.cpp +52 -0
  540. terraingenpy-0.1.0/terraingen/util/portable.h +55 -0
  541. terraingenpy-0.1.0/terraingen/util/radial_shape.cpp +146 -0
  542. terraingenpy-0.1.0/terraingen/util/radial_shape.h +88 -0
  543. terraingenpy-0.1.0/terraingen/util/special_functions.cpp +77 -0
  544. terraingenpy-0.1.0/terraingen/util/special_functions.h +13 -0
  545. terraingenpy-0.1.0/terraingen/util/surface.cpp +338 -0
  546. terraingenpy-0.1.0/terraingen/util/surface.h +216 -0
  547. terraingenpy-0.1.0/terraingen/util/version.cpp +13 -0
  548. terraingenpy-0.1.0/terraingen/util/version.h.in +31 -0
  549. terraingenpy-0.1.0/tests/CMakeLists.txt +50 -0
  550. terraingenpy-0.1.0/tests/benchmark/CMakeLists.txt +29 -0
  551. terraingenpy-0.1.0/tests/benchmark/bench_craters.cpp +58 -0
  552. terraingenpy-0.1.0/tests/benchmark/bench_grids.cpp +112 -0
  553. terraingenpy-0.1.0/tests/benchmark/bench_point_queries.cpp +113 -0
  554. terraingenpy-0.1.0/tests/benchmark/bench_python_subclasses.py +144 -0
  555. terraingenpy-0.1.0/tests/benchmark/fixtures.h +43 -0
  556. terraingenpy-0.1.0/tests/golden/CMakeLists.txt +9 -0
  557. terraingenpy-0.1.0/tests/golden/noise/kernels_test.cpp +101 -0
  558. terraingenpy-0.1.0/tests/integration/CMakeLists.txt +47 -0
  559. terraingenpy-0.1.0/tests/integration/build_info_stable.cmake +66 -0
  560. terraingenpy-0.1.0/tests/integration/examples/CMakeLists.txt +58 -0
  561. terraingenpy-0.1.0/tests/integration/package/CMakeLists.txt +8 -0
  562. terraingenpy-0.1.0/tests/integration/package/main.cpp +28 -0
  563. terraingenpy-0.1.0/tests/integration/package/test_debian_packages.cmake +40 -0
  564. terraingenpy-0.1.0/tests/python/CMakeLists.txt +13 -0
  565. terraingenpy-0.1.0/tests/python/conftest.py +215 -0
  566. terraingenpy-0.1.0/tests/python/test_albedo.py +269 -0
  567. terraingenpy-0.1.0/tests/python/test_boulders.py +235 -0
  568. terraingenpy-0.1.0/tests/python/test_config.py +182 -0
  569. terraingenpy-0.1.0/tests/python/test_crater_models.py +236 -0
  570. terraingenpy-0.1.0/tests/python/test_craters.py +403 -0
  571. terraingenpy-0.1.0/tests/python/test_distributions.py +219 -0
  572. terraingenpy-0.1.0/tests/python/test_examples_harness.py +150 -0
  573. terraingenpy-0.1.0/tests/python/test_gpu.py +66 -0
  574. terraingenpy-0.1.0/tests/python/test_layers.py +431 -0
  575. terraingenpy-0.1.0/tests/python/test_meshes.py +207 -0
  576. terraingenpy-0.1.0/tests/python/test_noise.py +250 -0
  577. terraingenpy-0.1.0/tests/python/test_pipeline.py +223 -0
  578. terraingenpy-0.1.0/tests/python/test_random.py +114 -0
  579. terraingenpy-0.1.0/tests/python/test_raster.py +239 -0
  580. terraingenpy-0.1.0/tests/python/test_render.py +146 -0
  581. terraingenpy-0.1.0/tests/python/test_sources.py +112 -0
  582. terraingenpy-0.1.0/tests/python/test_stubs.py +39 -0
  583. terraingenpy-0.1.0/tests/python/test_tiles.py +105 -0
  584. terraingenpy-0.1.0/tests/python/test_util.py +206 -0
  585. terraingenpy-0.1.0/tests/statistical/CMakeLists.txt +29 -0
  586. terraingenpy-0.1.0/tests/statistical/distribution/crater_references_test.cpp +81 -0
  587. terraingenpy-0.1.0/tests/statistical/distribution/size_frequency_test.cpp +74 -0
  588. terraingenpy-0.1.0/tests/statistical/layers/boulders/boulder_layer_test.cpp +93 -0
  589. terraingenpy-0.1.0/tests/statistical/layers/craters/ages/ages_test.cpp +75 -0
  590. terraingenpy-0.1.0/tests/statistical/layers/craters/population_test.cpp +129 -0
  591. terraingenpy-0.1.0/tests/statistical/layers/roughness_test.cpp +50 -0
  592. terraingenpy-0.1.0/tests/statistical/random/random_test.cpp +161 -0
  593. terraingenpy-0.1.0/tests/support/log_capture.h +46 -0
  594. terraingenpy-0.1.0/tests/support/lunar_craters.h +51 -0
  595. terraingenpy-0.1.0/tests/support/raster_equality.h +24 -0
  596. terraingenpy-0.1.0/tests/support/statistics.h +50 -0
  597. terraingenpy-0.1.0/tests/support/temp_path.h +19 -0
  598. terraingenpy-0.1.0/tests/unit/CMakeLists.txt +19 -0
  599. terraingenpy-0.1.0/tests/unit/albedo/CMakeLists.txt +10 -0
  600. terraingenpy-0.1.0/tests/unit/albedo/albedo_test.cpp +410 -0
  601. terraingenpy-0.1.0/tests/unit/albedo/blast_zones_test.cpp +122 -0
  602. terraingenpy-0.1.0/tests/unit/albedo/crater_albedo_test.cpp +830 -0
  603. terraingenpy-0.1.0/tests/unit/albedo/splotches_test.cpp +372 -0
  604. terraingenpy-0.1.0/tests/unit/app/CMakeLists.txt +4 -0
  605. terraingenpy-0.1.0/tests/unit/app/cli_test.cpp +261 -0
  606. terraingenpy-0.1.0/tests/unit/app/gui/CMakeLists.txt +10 -0
  607. terraingenpy-0.1.0/tests/unit/app/gui/config_editor_test.cpp +186 -0
  608. terraingenpy-0.1.0/tests/unit/app/gui/gui_app_test.cpp +175 -0
  609. terraingenpy-0.1.0/tests/unit/app/gui/terrain_scene_test.cpp +90 -0
  610. terraingenpy-0.1.0/tests/unit/config/CMakeLists.txt +18 -0
  611. terraingenpy-0.1.0/tests/unit/config/build_test.cpp +433 -0
  612. terraingenpy-0.1.0/tests/unit/config/checks_test.cpp +53 -0
  613. terraingenpy-0.1.0/tests/unit/config/config_test.cpp +60 -0
  614. terraingenpy-0.1.0/tests/unit/config/configs.h +260 -0
  615. terraingenpy-0.1.0/tests/unit/config/feature_lists_test.cpp +139 -0
  616. terraingenpy-0.1.0/tests/unit/config/generate_terrain_test.cpp +562 -0
  617. terraingenpy-0.1.0/tests/unit/config/json_io_test.cpp +515 -0
  618. terraingenpy-0.1.0/tests/unit/config/json_parse_errors_test.cpp +139 -0
  619. terraingenpy-0.1.0/tests/unit/config/json_read_test.cpp +152 -0
  620. terraingenpy-0.1.0/tests/unit/config/schema_test.cpp +451 -0
  621. terraingenpy-0.1.0/tests/unit/config/validate_config_test.cpp +530 -0
  622. terraingenpy-0.1.0/tests/unit/config/validate_sources_test.cpp +302 -0
  623. terraingenpy-0.1.0/tests/unit/config/write_outputs_test.cpp +334 -0
  624. terraingenpy-0.1.0/tests/unit/distribution/CMakeLists.txt +23 -0
  625. terraingenpy-0.1.0/tests/unit/distribution/combined_test.cpp +61 -0
  626. terraingenpy-0.1.0/tests/unit/distribution/equilibrium_test.cpp +20 -0
  627. terraingenpy-0.1.0/tests/unit/distribution/golombek_rapp_test.cpp +56 -0
  628. terraingenpy-0.1.0/tests/unit/distribution/ivanov_test.cpp +34 -0
  629. terraingenpy-0.1.0/tests/unit/distribution/log_polynomial_test.cpp +66 -0
  630. terraingenpy-0.1.0/tests/unit/distribution/minimum_test.cpp +69 -0
  631. terraingenpy-0.1.0/tests/unit/distribution/moore_test.cpp +22 -0
  632. terraingenpy-0.1.0/tests/unit/distribution/neukum_test.cpp +134 -0
  633. terraingenpy-0.1.0/tests/unit/distribution/piecewise_power_law_test.cpp +91 -0
  634. terraingenpy-0.1.0/tests/unit/distribution/power_law_test.cpp +59 -0
  635. terraingenpy-0.1.0/tests/unit/distribution/production_surface_test.cpp +25 -0
  636. terraingenpy-0.1.0/tests/unit/distribution/size_frequency_test.cpp +139 -0
  637. terraingenpy-0.1.0/tests/unit/distribution/sp8023_test.cpp +53 -0
  638. terraingenpy-0.1.0/tests/unit/distribution/spliced_test.cpp +98 -0
  639. terraingenpy-0.1.0/tests/unit/distribution/summed_test.cpp +45 -0
  640. terraingenpy-0.1.0/tests/unit/distribution/synthterrain_test.cpp +22 -0
  641. terraingenpy-0.1.0/tests/unit/distribution/tabulated_test.cpp +134 -0
  642. terraingenpy-0.1.0/tests/unit/distribution/viper_test.cpp +12 -0
  643. terraingenpy-0.1.0/tests/unit/examples/CMakeLists.txt +14 -0
  644. terraingenpy-0.1.0/tests/unit/examples/example_browser_test.cpp +215 -0
  645. terraingenpy-0.1.0/tests/unit/examples/example_harness_test.cpp +227 -0
  646. terraingenpy-0.1.0/tests/unit/gpu/CMakeLists.txt +13 -0
  647. terraingenpy-0.1.0/tests/unit/gpu/backend_test.cpp +151 -0
  648. terraingenpy-0.1.0/tests/unit/gpu/kernels/hash_conformance.slang +28 -0
  649. terraingenpy-0.1.0/tests/unit/gpu/kernels/noise_conformance.slang +61 -0
  650. terraingenpy-0.1.0/tests/unit/gpu/noise_test.cpp +166 -0
  651. terraingenpy-0.1.0/tests/unit/gpu/vulkan_test.cpp +109 -0
  652. terraingenpy-0.1.0/tests/unit/layers/CMakeLists.txt +48 -0
  653. terraingenpy-0.1.0/tests/unit/layers/bedforms_test.cpp +159 -0
  654. terraingenpy-0.1.0/tests/unit/layers/boulders/boulder_fragments_test.cpp +253 -0
  655. terraingenpy-0.1.0/tests/unit/layers/boulders/boulder_layer_test.cpp +909 -0
  656. terraingenpy-0.1.0/tests/unit/layers/boulders/boulder_models_test.cpp +103 -0
  657. terraingenpy-0.1.0/tests/unit/layers/boulders/boulder_options_test.cpp +62 -0
  658. terraingenpy-0.1.0/tests/unit/layers/boulders/boulder_shape_test.cpp +245 -0
  659. terraingenpy-0.1.0/tests/unit/layers/craters/ages/age_model_test.cpp +50 -0
  660. terraingenpy-0.1.0/tests/unit/layers/craters/ages/steady_state_test.cpp +100 -0
  661. terraingenpy-0.1.0/tests/unit/layers/craters/crater_layer_test.cpp +165 -0
  662. terraingenpy-0.1.0/tests/unit/layers/craters/crater_test.cpp +41 -0
  663. terraingenpy-0.1.0/tests/unit/layers/craters/degradation/degradation_model_test.cpp +37 -0
  664. terraingenpy-0.1.0/tests/unit/layers/craters/degradation/diffusion_test.cpp +183 -0
  665. terraingenpy-0.1.0/tests/unit/layers/craters/degradation/freshness_test.cpp +42 -0
  666. terraingenpy-0.1.0/tests/unit/layers/craters/generation/cell_cache_test.cpp +77 -0
  667. terraingenpy-0.1.0/tests/unit/layers/craters/generation/population_test.cpp +560 -0
  668. terraingenpy-0.1.0/tests/unit/layers/craters/generation/spacing_test.cpp +120 -0
  669. terraingenpy-0.1.0/tests/unit/layers/craters/profiles/complex_test.cpp +101 -0
  670. terraingenpy-0.1.0/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +72 -0
  671. terraingenpy-0.1.0/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +71 -0
  672. terraingenpy-0.1.0/tests/unit/layers/craters/secondaries_test.cpp +400 -0
  673. terraingenpy-0.1.0/tests/unit/layers/craters/shaping/apply_test.cpp +573 -0
  674. terraingenpy-0.1.0/tests/unit/layers/craters/shaping/attributes_test.cpp +55 -0
  675. terraingenpy-0.1.0/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +216 -0
  676. terraingenpy-0.1.0/tests/unit/layers/craters/shaping/datum_test.cpp +115 -0
  677. terraingenpy-0.1.0/tests/unit/layers/craters/shaping/irregularity_test.cpp +263 -0
  678. terraingenpy-0.1.0/tests/unit/layers/craters/shaping/morphometry_test.cpp +86 -0
  679. terraingenpy-0.1.0/tests/unit/layers/craters/sphere_test.cpp +212 -0
  680. terraingenpy-0.1.0/tests/unit/layers/detail_test.cpp +46 -0
  681. terraingenpy-0.1.0/tests/unit/layers/dunes_test.cpp +464 -0
  682. terraingenpy-0.1.0/tests/unit/layers/evaluation_cache_test.cpp +25 -0
  683. terraingenpy-0.1.0/tests/unit/layers/exposure_test.cpp +134 -0
  684. terraingenpy-0.1.0/tests/unit/layers/fade_test.cpp +63 -0
  685. terraingenpy-0.1.0/tests/unit/layers/layer_test.cpp +56 -0
  686. terraingenpy-0.1.0/tests/unit/layers/noise_relief_test.cpp +291 -0
  687. terraingenpy-0.1.0/tests/unit/layers/pavement_test.cpp +192 -0
  688. terraingenpy-0.1.0/tests/unit/layers/region_test.cpp +165 -0
  689. terraingenpy-0.1.0/tests/unit/layers/roughness_test.cpp +149 -0
  690. terraingenpy-0.1.0/tests/unit/layers/sample_block_test.cpp +96 -0
  691. terraingenpy-0.1.0/tests/unit/layers/sand_fill_test.cpp +123 -0
  692. terraingenpy-0.1.0/tests/unit/layers/sand_shadow_test.cpp +182 -0
  693. terraingenpy-0.1.0/tests/unit/layers/sphere_layers_test.cpp +215 -0
  694. terraingenpy-0.1.0/tests/unit/layers/strata_test.cpp +241 -0
  695. terraingenpy-0.1.0/tests/unit/layers/transforms_test.cpp +87 -0
  696. terraingenpy-0.1.0/tests/unit/materials/CMakeLists.txt +1 -0
  697. terraingenpy-0.1.0/tests/unit/materials/materials_test.cpp +211 -0
  698. terraingenpy-0.1.0/tests/unit/mesh/CMakeLists.txt +10 -0
  699. terraingenpy-0.1.0/tests/unit/mesh/io/icq_test.cpp +231 -0
  700. terraingenpy-0.1.0/tests/unit/mesh/io/mesh_io_test.cpp +192 -0
  701. terraingenpy-0.1.0/tests/unit/mesh/mesh_test.cpp +134 -0
  702. terraingenpy-0.1.0/tests/unit/mesh/polyhedra_test.cpp +74 -0
  703. terraingenpy-0.1.0/tests/unit/mesh/shape_model_test.cpp +86 -0
  704. terraingenpy-0.1.0/tests/unit/mesh/support.h +42 -0
  705. terraingenpy-0.1.0/tests/unit/noise/CMakeLists.txt +14 -0
  706. terraingenpy-0.1.0/tests/unit/noise/fractal_test.cpp +199 -0
  707. terraingenpy-0.1.0/tests/unit/noise/hash_test.cpp +61 -0
  708. terraingenpy-0.1.0/tests/unit/noise/noise3_test.cpp +291 -0
  709. terraingenpy-0.1.0/tests/unit/noise/noise_layers_test.cpp +118 -0
  710. terraingenpy-0.1.0/tests/unit/noise/perlin_test.cpp +184 -0
  711. terraingenpy-0.1.0/tests/unit/noise/simplex_test.cpp +57 -0
  712. terraingenpy-0.1.0/tests/unit/noise/validate_test.cpp +60 -0
  713. terraingenpy-0.1.0/tests/unit/noise/value_test.cpp +63 -0
  714. terraingenpy-0.1.0/tests/unit/noise/worley_test.cpp +161 -0
  715. terraingenpy-0.1.0/tests/unit/pipeline/CMakeLists.txt +11 -0
  716. terraingenpy-0.1.0/tests/unit/pipeline/features_test.cpp +105 -0
  717. terraingenpy-0.1.0/tests/unit/pipeline/height_mesh_test.cpp +52 -0
  718. terraingenpy-0.1.0/tests/unit/pipeline/terrain_test.cpp +323 -0
  719. terraingenpy-0.1.0/tests/unit/pipeline/terrain_tiles_test.cpp +337 -0
  720. terraingenpy-0.1.0/tests/unit/pipeline/terrains.h +59 -0
  721. terraingenpy-0.1.0/tests/unit/pipeline/tile_cache_test.cpp +44 -0
  722. terraingenpy-0.1.0/tests/unit/pipeline/tiling_test.cpp +85 -0
  723. terraingenpy-0.1.0/tests/unit/random/CMakeLists.txt +9 -0
  724. terraingenpy-0.1.0/tests/unit/random/philox_test.cpp +61 -0
  725. terraingenpy-0.1.0/tests/unit/random/samplers_test.cpp +95 -0
  726. terraingenpy-0.1.0/tests/unit/random/stream_test.cpp +77 -0
  727. terraingenpy-0.1.0/tests/unit/random/value_distribution_test.cpp +63 -0
  728. terraingenpy-0.1.0/tests/unit/raster/CMakeLists.txt +14 -0
  729. terraingenpy-0.1.0/tests/unit/raster/cell_loops_test.cpp +98 -0
  730. terraingenpy-0.1.0/tests/unit/raster/gaussian_blur_test.cpp +69 -0
  731. terraingenpy-0.1.0/tests/unit/raster/gdal_fixtures.h +29 -0
  732. terraingenpy-0.1.0/tests/unit/raster/generate_geotiff_fixtures.py +186 -0
  733. terraingenpy-0.1.0/tests/unit/raster/geo_transform_test.cpp +61 -0
  734. terraingenpy-0.1.0/tests/unit/raster/geotiff_fixtures.inc +219 -0
  735. terraingenpy-0.1.0/tests/unit/raster/geotiff_test.cpp +386 -0
  736. terraingenpy-0.1.0/tests/unit/raster/grid_test.cpp +78 -0
  737. terraingenpy-0.1.0/tests/unit/raster/raster_stats_test.cpp +59 -0
  738. terraingenpy-0.1.0/tests/unit/raster/raster_test.cpp +72 -0
  739. terraingenpy-0.1.0/tests/unit/raster/resample_test.cpp +165 -0
  740. terraingenpy-0.1.0/tests/unit/raster/tiff_format_test.cpp +93 -0
  741. terraingenpy-0.1.0/tests/unit/sources/CMakeLists.txt +9 -0
  742. terraingenpy-0.1.0/tests/unit/sources/flat_source_test.cpp +46 -0
  743. terraingenpy-0.1.0/tests/unit/sources/geotiff_source_test.cpp +211 -0
  744. terraingenpy-0.1.0/tests/unit/sources/source_chain_test.cpp +139 -0
  745. terraingenpy-0.1.0/tests/unit/sources/synthetic_terrain_test.cpp +152 -0
  746. terraingenpy-0.1.0/tests/unit/util/CMakeLists.txt +19 -0
  747. terraingenpy-0.1.0/tests/unit/util/cells_test.cpp +63 -0
  748. terraingenpy-0.1.0/tests/unit/util/checks_test.cpp +56 -0
  749. terraingenpy-0.1.0/tests/unit/util/fft_test.cpp +50 -0
  750. terraingenpy-0.1.0/tests/unit/util/geometry_test.cpp +41 -0
  751. terraingenpy-0.1.0/tests/unit/util/log_test.cpp +142 -0
  752. terraingenpy-0.1.0/tests/unit/util/lru_cache_test.cpp +37 -0
  753. terraingenpy-0.1.0/tests/unit/util/overloaded_test.cpp +17 -0
  754. terraingenpy-0.1.0/tests/unit/util/parallel_test.cpp +68 -0
  755. terraingenpy-0.1.0/tests/unit/util/radial_shape_test.cpp +91 -0
  756. terraingenpy-0.1.0/tests/unit/util/special_functions_test.cpp +22 -0
  757. terraingenpy-0.1.0/tests/unit/util/surface_test.cpp +668 -0
  758. terraingenpy-0.1.0/tests/unit/util/version_test.cpp +26 -0
  759. terraingenpy-0.1.0/third_party/README.md +33 -0
  760. terraingenpy-0.1.0/third_party/cgltf/LICENSE +7 -0
  761. terraingenpy-0.1.0/third_party/cgltf/cgltf.h +7175 -0
  762. terraingenpy-0.1.0/third_party/cgltf/cgltf_write.h +1565 -0
  763. terraingenpy-0.1.0/third_party/miniz/LICENSE +22 -0
  764. terraingenpy-0.1.0/third_party/miniz/miniz.c +7922 -0
  765. terraingenpy-0.1.0/third_party/miniz/miniz.h +1510 -0
  766. terraingenpy-0.1.0/third_party/nlohmann/LICENSE.MIT +21 -0
  767. terraingenpy-0.1.0/third_party/nlohmann/json.hpp +25526 -0
  768. terraingenpy-0.1.0/third_party/tinyobjloader/LICENSE +42 -0
  769. terraingenpy-0.1.0/third_party/tinyobjloader/tiny_obj_loader.h +3499 -0
@@ -0,0 +1,11 @@
1
+ BasedOnStyle: LLVM
2
+ IndentWidth: 4
3
+ ColumnLimit: 100
4
+ PointerAlignment: Left
5
+ ReferenceAlignment: Left
6
+ BreakBeforeBraces: Attach
7
+ AllowShortFunctionsOnASingleLine: Empty
8
+ AllowShortIfStatementsOnASingleLine: Never
9
+ SortIncludes: CaseSensitive
10
+ IncludeBlocks: Preserve
11
+ SpacesBeforeTrailingComments: 2
@@ -0,0 +1,18 @@
1
+ ---
2
+ Checks: >
3
+ -*,
4
+ bugprone-*,
5
+ performance-*,
6
+ portability-*,
7
+ clang-analyzer-*,
8
+ modernize-use-nullptr,
9
+ modernize-use-override,
10
+ modernize-use-equals-default,
11
+ modernize-use-equals-delete,
12
+ readability-else-after-return,
13
+ readability-redundant-*,
14
+ -bugprone-easily-swappable-parameters
15
+
16
+ WarningsAsErrors: ''
17
+ HeaderFilterRegex: '.*/terraingen/(util|raster|noise|random|distribution|sources|layers|filters|bodies|pipeline)/.*'
18
+ FormatStyle: file
@@ -0,0 +1,11 @@
1
+ format:
2
+ line_width: 100
3
+ tab_size: 4
4
+ max_subgroups_hwrap: 2
5
+ max_pargs_hwrap: 6
6
+ separate_ctrl_name_with_space: false
7
+ separate_fn_name_with_space: false
8
+ dangle_parens: false
9
+
10
+ markup:
11
+ enable_markup: false
@@ -0,0 +1,23 @@
1
+ .git/lfs
2
+ build/
3
+ build-*/
4
+ assets/
5
+ demos/
6
+ docs/_build/
7
+ docs/_doxygen/
8
+ dist/
9
+ site/
10
+ .venv/
11
+ .vscode/
12
+ .claude/
13
+ paper/
14
+ research/
15
+ validation/
16
+ /*.tif
17
+ /*.TIF
18
+ /*.aux.xml
19
+ TODO.md
20
+ ARCHITECTURE.md
21
+ SCIENCE.md
22
+ DESIGN.md
23
+ CMakeUserPresets.json
@@ -0,0 +1,37 @@
1
+ # Normalize line endings for text files
2
+ * text=auto eol=lf
3
+
4
+ # Binary render assets and test fixtures are stored in Git LFS
5
+ assets/**/*.png filter=lfs diff=lfs merge=lfs -text
6
+ assets/**/*.jpg filter=lfs diff=lfs merge=lfs -text
7
+ assets/**/*.jpeg filter=lfs diff=lfs merge=lfs -text
8
+ assets/**/*.ktx2 filter=lfs diff=lfs merge=lfs -text
9
+ assets/**/*.exr filter=lfs diff=lfs merge=lfs -text
10
+ assets/**/*.hdr filter=lfs diff=lfs merge=lfs -text
11
+ assets/**/*.ttf filter=lfs diff=lfs merge=lfs -text
12
+ assets/**/*.otf filter=lfs diff=lfs merge=lfs -text
13
+ assets/**/*.glb filter=lfs diff=lfs merge=lfs -text
14
+ assets/**/*.bin filter=lfs diff=lfs merge=lfs -text
15
+ assets/**/*.obj filter=lfs diff=lfs merge=lfs -text
16
+ assets/**/*.ply filter=lfs diff=lfs merge=lfs -text
17
+ assets/**/*.stl filter=lfs diff=lfs merge=lfs -text
18
+
19
+ tests/fixtures/**/*.tif filter=lfs diff=lfs merge=lfs -text
20
+ tests/fixtures/**/*.tiff filter=lfs diff=lfs merge=lfs -text
21
+ tests/fixtures/**/*.png filter=lfs diff=lfs merge=lfs -text
22
+ tests/fixtures/**/*.gpkg filter=lfs diff=lfs merge=lfs -text
23
+ tests/fixtures/**/*.glb filter=lfs diff=lfs merge=lfs -text
24
+ tests/fixtures/**/*.bin filter=lfs diff=lfs merge=lfs -text
25
+ tests/fixtures/**/*.obj filter=lfs diff=lfs merge=lfs -text
26
+ tests/fixtures/**/*.ply filter=lfs diff=lfs merge=lfs -text
27
+ tests/fixtures/**/*.stl filter=lfs diff=lfs merge=lfs -text
28
+
29
+ validation/references/**/*.tif filter=lfs diff=lfs merge=lfs -text
30
+ validation/references/**/*.tiff filter=lfs diff=lfs merge=lfs -text
31
+ validation/references/**/*.png filter=lfs diff=lfs merge=lfs -text
32
+ validation/references/**/*.gpkg filter=lfs diff=lfs merge=lfs -text
33
+ validation/references/**/*.glb filter=lfs diff=lfs merge=lfs -text
34
+ validation/references/**/*.bin filter=lfs diff=lfs merge=lfs -text
35
+ validation/references/**/*.obj filter=lfs diff=lfs merge=lfs -text
36
+ validation/references/**/*.ply filter=lfs diff=lfs merge=lfs -text
37
+ validation/references/**/*.stl filter=lfs diff=lfs merge=lfs -text
@@ -0,0 +1,40 @@
1
+ name: Bug report
2
+ description: Something does not work as documented, crashes, or gives wrong terrain.
3
+ labels: [bug]
4
+ body:
5
+ - type: textarea
6
+ id: what
7
+ attributes:
8
+ label: What happened
9
+ description: What you did, what you expected, and what happened instead.
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: reproduce
14
+ attributes:
15
+ label: How to reproduce
16
+ description: >-
17
+ A configuration (JSON), command line or short C++ or Python program that shows it. Attach
18
+ input files if you can share them.
19
+ render: text
20
+ validations:
21
+ required: true
22
+ - type: input
23
+ id: version
24
+ attributes:
25
+ label: Version
26
+ description: The output of `terraingen --version`, or the Python package's version.
27
+ validations:
28
+ required: true
29
+ - type: dropdown
30
+ id: platform
31
+ attributes:
32
+ label: Platform
33
+ options: [Linux, macOS, Windows]
34
+ validations:
35
+ required: true
36
+ - type: textarea
37
+ id: more
38
+ attributes:
39
+ label: Anything else
40
+ description: Compiler, Python version, GPU, logs.
@@ -0,0 +1 @@
1
+ blank_issues_enabled: true
@@ -0,0 +1,22 @@
1
+ name: Feature request
2
+ description: A model, data source, output or tool TerrainGen should have.
3
+ labels: [enhancement]
4
+ body:
5
+ - type: textarea
6
+ id: what
7
+ attributes:
8
+ label: What you would like
9
+ description: What you want to generate or do, and why.
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: references
14
+ attributes:
15
+ label: References
16
+ description: >-
17
+ Papers, datasets or specifications the feature should follow (with DOIs or URLs).
18
+ TerrainGen models come from published sources.
19
+ - type: textarea
20
+ id: more
21
+ attributes:
22
+ label: Anything else
@@ -0,0 +1,7 @@
1
+ ## What this changes
2
+
3
+ ## How it was tested
4
+
5
+ - [ ] Tests added or updated, and they pass
6
+ - [ ] `pre-commit` passes
7
+ - [ ] Values and models cite their sources
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ # SPDX-License-Identifier: BSD-3-Clause
3
+ set -euo pipefail
4
+
5
+ # 26.2.4 or later: earlier releases free llvmpipe's memory on Windows
6
+ # with free() where _aligned_malloc() allocated it, which corrupts the
7
+ # heap at every vkFreeMemory.
8
+ mesa_version=26.2.4
9
+ mesa_sha256=351fc8c8b695878ffb3eaa044b3ead08672a48b1a045e3c3e3975811df0f6695
10
+ loader_version=1.4.363.0
11
+ loader_sha256=a25a927aa8b9f0371048f1861cf88ac3b9bc9b1fb332c42d897c8ab32695769a
12
+
13
+ vulkan="$RUNNER_TEMP/vulkan"
14
+ mkdir -p "$vulkan"
15
+ cd "$vulkan"
16
+ curl -fsSL -o mesa.7z "https://github.com/pal1000/mesa-dist-win/releases/download/$mesa_version/mesa3d-$mesa_version-release-msvc.7z"
17
+ curl -fsSL -o loader.zip "https://sdk.lunarg.com/sdk/download/$loader_version/windows/VulkanRT-X64-$loader_version-Components.zip"
18
+ echo "$mesa_sha256 mesa.7z" | sha256sum -c -
19
+ echo "$loader_sha256 loader.zip" | sha256sum -c -
20
+ 7z x -y -omesa mesa.7z > /dev/null
21
+ 7z x -y -oloader loader.zip > /dev/null
22
+ cp loader/*/x64/vulkan-1.dll mesa/x64/
23
+ cygpath -w "$vulkan/mesa/x64" >> "$GITHUB_PATH"
24
+ reg add 'HKLM\SOFTWARE\Khronos\Vulkan\Drivers' //f //t REG_DWORD //d 0 \
25
+ //v "$(cygpath -w "$vulkan/mesa/x64/lvp_icd.x86_64.json")"