terraingenpy 0.1.0.dev279__tar.gz → 0.1.1.dev6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/workflows/ci.yml +28 -0
- terraingenpy-0.1.1.dev6/CHANGELOG.md +29 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/CMakeLists.txt +1 -1
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/PKG-INFO +101 -5
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/README.md +100 -4
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/TerrainGenSlang.cmake +7 -14
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/kernel.cpp +1 -1
- terraingenpy-0.1.1.dev6/terraingen/gpu/kernel.slang +37 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/CMakeLists.txt +5 -5
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/population.cpp +29 -1
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply.cpp +257 -17
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/datum.cpp +4 -7
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/datum.h +9 -0
- terraingenpy-0.1.1.dev6/terraingen/layers/kernels/crater_datums.slang +34 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernels/craters.h +112 -0
- terraingenpy-0.1.1.dev6/terraingen/layers/kernels/craters.slang +40 -0
- terraingenpy-0.1.1.dev6/terraingen/layers/kernels/noise_relief.slang +24 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/cube_sphere_cells.cpp +37 -1
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/generation/population_test.cpp +20 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +64 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/surface_test.cpp +36 -0
- terraingenpy-0.1.0.dev279/CHANGELOG.md +0 -8
- terraingenpy-0.1.0.dev279/cmake/CraterKernel.slang.in +0 -58
- terraingenpy-0.1.0.dev279/cmake/Kernel.slang.in +0 -43
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.clang-format +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.clang-tidy +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.cmake-format.yaml +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.dockerignore +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.gitattributes +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/pull_request_template.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.github/scripts/install-lavapipe-windows.sh +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.gitignore +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/.pre-commit-config.yaml +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/CITATION.cff +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/CONTRIBUTING.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/Dockerfile +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/LICENSE +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/README.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_diff_4k.jpg +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_disp_4k.png +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/assets/textures/moon_01_rough_4k.exr +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/BuildInfo.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/CoverageBadge.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/EmbedFile.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/Kernel.cpp.in +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/TerrainGenPackaging.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/TerrainGenTesting.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/terraingenConfig.cmake.in +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/benchmark.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/ernie.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/googletest.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/mesh_formats.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/miniz.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/nanobind.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/nvrtc.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/slang.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/volk.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/cmake/third_party/vulkan_headers.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/.gitignore +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/Makefile +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/README.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/api/cpp.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/api/python.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/concepts/index.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/css/extra.css +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/command-line.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/gui.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/index.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/installation.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/getting-started/quickstart.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/guides/index.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/index.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/overrides/home.html +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/overrides/partials/header.html +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/requirements.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/docs/validation/index.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/README.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/ages/example_ages_fresh.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/ages/example_ages_steady_state.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/ages/example_ages_uniform.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_moon_site.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_new_crater.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_rgb.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/albedo/example_albedo_synthetic.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_buried.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_ejecta.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_exposure.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_fragments.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_layer.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_models.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_patches.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_scene.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_shapes.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/boulders/example_boulders_sp8023.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_datum.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_degradation_none.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_interior_replacement.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_irregular.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_manual.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_max_craters.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_profile_complex.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_secondaries.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_secondary_rays.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_simple.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_spacing.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/craters/example_craters_texture.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_power_law.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_tabulated.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/distributions/example_distributions_viper.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/layers/example_layers_regions.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/layers/example_layers_roughness.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_craters.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_dunes.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_exposure.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_pavement.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_sand_shadows.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_strata.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mars_ventifacts.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_mercury_site.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/planets/example_planets_moon_site.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_billow.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_cellular.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_fbm.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_layered.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_ridged.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_roughness.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/config/terrain/example_terrain_voronoi.json +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/ages/example_ages_models.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/browser.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/browser.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/example.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/example.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/main.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/common/standalone_main.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/config/example_config_load.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_manual.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/craters/example_craters_simple.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/layers/example_layers_custom.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/layers/example_layers_regions.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/planets/example_planets_moon.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/__main__.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_browser.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_common.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_harness.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/_images.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/ages/example_ages_models.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/albedo/example_albedo_moon_site.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/albedo/example_albedo_options.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_exposure.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_layer.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_positioning.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_shapes.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/boulders/example_boulders_size_models.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/config/example_config_load.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_age_sweep.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_apply_options.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_degradation.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_irregularity.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_manual.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_positioning.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_profiles.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_secondaries.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/craters/example_craters_simple.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/distributions/example_distributions_csfd.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/distributions/example_distributions_custom.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/layers/example_layers_custom.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/layers/example_layers_regions.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_body_mesh.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mars.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mars_dunes.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mars_exposure.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_mercury.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/planets/example_planets_moon_site.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/sources/example_sources_chain.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/sources/example_sources_raster_detail.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_fbm.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_layered.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_point_queries.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_quadtree.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/mkdocs.yml +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/pyproject.toml +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/albedo.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/albedo.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/blast_zones.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/blast_zones.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/crater_albedo.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/crater_albedo.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/maturity.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/maturity.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/raster_albedo.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/raster_albedo.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/splotches.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/splotches.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/synthetic.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/albedo/synthetic.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/cli.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/cli.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/config_editor.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/config_editor.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/gui_app.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/gui_app.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/run.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/run.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/run_none.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/terrain_scene.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/gui/terrain_scene.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/app/main.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/build.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/build.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/config.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/config.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/feature_lists.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/albedo.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/boulders.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/checks.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/common.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/crater_models.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/craters.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/enums.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/fields.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/json_io.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/layers.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/materials.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/outputs.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/fields/sources.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/generate.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/generate.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/json.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/json.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/schema.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/validate.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/config/validate.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/combined.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/combined.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/equilibrium.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/equilibrium.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/golombek_rapp.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/golombek_rapp.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/ivanov.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/ivanov.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/log_polynomial.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/log_polynomial.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/minimum.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/minimum.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/moore.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/moore.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/neukum.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/neukum.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/piecewise_power_law.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/piecewise_power_law.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/power_law.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/power_law.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/production_surface.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/production_surface.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/size_frequency.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/size_frequency.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/sp8023.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/sp8023.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/spliced.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/spliced.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/summed.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/summed.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/synthterrain.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/synthterrain.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/tabulated.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/tabulated.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/viper.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/distribution/viper.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/backend.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/backend.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/cuda.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/cuda.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/kernel.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/metal.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/metal.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/program.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/vulkan.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/gpu/vulkan.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/bedforms.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/bedforms.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/abundance.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_fragments.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_fragments.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_layer.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_layer.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_models.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_models.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_options.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_options.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_placer.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_shape.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/boulders/boulder_shape.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/age_model.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/age_model.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/ages/steady_state.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_layer.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_layer.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_placer.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/crater_placer.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusion.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusion.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/diffusivities.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/freshness.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/degradation/state.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/cell_cache.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/population.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/spacing.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/generation/spacing.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/complex.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/complex.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/profiles/profile.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/rays.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/rays.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/secondaries.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/secondaries.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/apply_options.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/attributes.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/crater_kernel.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/irregularity.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/irregularity.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/morphometry.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/prepared.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/craters/shaping/prepared.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/detail.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/detail.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/dunes.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/dunes.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/evaluation_cache.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/exposure.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/exposure.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/fade.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/fade.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/ground.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernel.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernels/cell.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/kernels/noise_relief.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/layer.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/layer.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/material.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/material.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/noise_relief.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/noise_relief.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/pavement.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/pavement.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/region.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/region.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/roughness.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/roughness.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sample_block.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sample_block.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_fill.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_fill.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_shadow.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/sand_shadow.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/strata.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/strata.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/transforms.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/layers/transforms.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/materials/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/materials/materials.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/materials/materials.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/formats.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/gltf.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/icq.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/icq.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/mesh_io.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/mesh_io.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/obj.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/io/stl.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/mesh.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/mesh.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/polyhedra.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/polyhedra.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/shape_model.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/mesh/shape_model.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/fractal.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/hash.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/lattice.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/noise_layers.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/perlin.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/simplex.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/validate.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/validate.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/value.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/noise/worley.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/body_mesh.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/body_mesh.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/features.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/features.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/height_mesh.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/height_mesh.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/terrain.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/terrain.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/tiles.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/pipeline/tiles.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/albedo.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/bindings.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/boulders.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/casters.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/common.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/crater_models.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/craters.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/distribution.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/gpu.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/layers.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/materials.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/mesh.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/module.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/noise.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/objects.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/pipeline.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/random.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/raster.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/sources.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/tables.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/trampolines.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/src/util.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/terraingen/__init__.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/python/terraingen/render.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/philox.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/samplers.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/samplers.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/stream.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/stream.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/value_distribution.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/random/value_distribution.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/cell_loops.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/cell_loops.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/gaussian_blur.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/gaussian_blur.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geo_transform.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff_read.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/geotiff/tiff_format.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/grid.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/grid.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/raster.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/raster_stats.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/resample.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/raster/resample.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/flat_source.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/flat_source.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/geotiff_source.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/geotiff_source.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/source.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/source_chain.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/source_chain.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/synthetic_terrain.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/sources/synthetic_terrain.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/terraingen.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/build_info.cpp.in +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/build_info.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/cells.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/checks.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/checks.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/cube_faces.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/fft.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/fft.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/geometry.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/log.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/log.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/lru_cache.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/overloaded.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/parallel.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/parallel.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/planar_cells.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/portable.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/radial_shape.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/radial_shape.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/special_functions.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/special_functions.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/surface.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/surface.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/version.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/terraingen/util/version.h.in +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_craters.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_grids.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_point_queries.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/bench_python_subclasses.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/benchmark/fixtures.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/golden/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/golden/noise/kernels_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/build_info_stable.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/package/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/package/main.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/integration/package/test_debian_packages.cmake +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/conftest.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_albedo.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_boulders.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_config.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_crater_models.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_craters.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_distributions.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_examples_harness.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_gpu.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_layers.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_meshes.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_noise.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_pipeline.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_random.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_raster.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_render.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_sources.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_stubs.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_tiles.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/python/test_util.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/distribution/crater_references_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/craters/population_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/statistical/random/random_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/log_capture.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/lunar_craters.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/raster_equality.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/statistics.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/support/temp_path.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/albedo_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/blast_zones_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/crater_albedo_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/albedo/splotches_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/cli_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/config_editor_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/gui_app_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/build_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/checks_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/config_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/configs.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/feature_lists_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/generate_terrain_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/json_io_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/json_parse_errors_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/json_read_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/schema_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/validate_config_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/validate_sources_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/config/write_outputs_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/combined_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/equilibrium_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/ivanov_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/minimum_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/moore_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/neukum_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/power_law_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/production_surface_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/sp8023_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/spliced_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/summed_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/synthterrain_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/tabulated_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/distribution/viper_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/examples/example_browser_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/examples/example_harness_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/backend_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/noise_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/gpu/vulkan_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/bedforms_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_models_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_options_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/crater_layer_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/crater_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/secondaries_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/apply_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/datum_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/craters/sphere_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/detail_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/dunes_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/exposure_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/fade_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/layer_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/noise_relief_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/pavement_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/region_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sample_block_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sand_fill_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sand_shadow_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/sphere_layers_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/strata_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/layers/transforms_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/materials/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/materials/materials_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/io/icq_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/io/mesh_io_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/mesh_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/polyhedra_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/shape_model_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/mesh/support.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/fractal_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/hash_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/noise3_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/noise_layers_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/perlin_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/simplex_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/validate_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/value_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/noise/worley_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/features_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/height_mesh_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/terrain_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/terrain_tiles_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/terrains.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/tile_cache_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/pipeline/tiling_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/philox_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/samplers_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/stream_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/random/value_distribution_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/cell_loops_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/gdal_fixtures.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/geo_transform_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/geotiff_fixtures.inc +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/geotiff_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/grid_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/raster_stats_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/raster_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/resample_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/raster/tiff_format_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/flat_source_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/geotiff_source_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/source_chain_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/cells_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/checks_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/fft_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/geometry_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/log_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/lru_cache_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/overloaded_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/parallel_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/radial_shape_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/special_functions_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/tests/unit/util/version_test.cpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/README.md +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/cgltf/LICENSE +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/cgltf/cgltf.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/cgltf/cgltf_write.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/miniz/LICENSE +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/miniz/miniz.c +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/miniz/miniz.h +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/nlohmann/LICENSE.MIT +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/nlohmann/json.hpp +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/tinyobjloader/LICENSE +0 -0
- {terraingenpy-0.1.0.dev279 → terraingenpy-0.1.1.dev6}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
|
@@ -451,6 +451,34 @@ jobs:
|
|
|
451
451
|
path: dist
|
|
452
452
|
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
453
453
|
|
|
454
|
+
# The "latest" pre-release: main's packages and their checksums, replaced on every push to main.
|
|
455
|
+
# Marked as a pre-release and never as the latest release, so versioned releases stay the default.
|
|
456
|
+
latest:
|
|
457
|
+
needs: [lint, test, packages, package-test]
|
|
458
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
459
|
+
runs-on: ubuntu-24.04
|
|
460
|
+
timeout-minutes: 10
|
|
461
|
+
permissions:
|
|
462
|
+
contents: write
|
|
463
|
+
steps:
|
|
464
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
465
|
+
with:
|
|
466
|
+
pattern: "packages-*"
|
|
467
|
+
merge-multiple: true
|
|
468
|
+
path: assets
|
|
469
|
+
- name: Flatten
|
|
470
|
+
run: find assets -mindepth 2 -type f -exec mv -t assets {} + && find assets -mindepth 1 -type d -empty -delete
|
|
471
|
+
- name: Checksums
|
|
472
|
+
run: cd assets && sha256sum -- * > SHA256SUMS
|
|
473
|
+
- name: Release
|
|
474
|
+
env:
|
|
475
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
476
|
+
run: |
|
|
477
|
+
gh release delete latest --repo "$GITHUB_REPOSITORY" --cleanup-tag --yes || true
|
|
478
|
+
gh release create latest assets/* --repo "$GITHUB_REPOSITORY" --target "$GITHUB_SHA" \
|
|
479
|
+
--prerelease --latest=false --title "Latest (main)" \
|
|
480
|
+
--notes "Built from main at $GITHUB_SHA. For versioned binaries, use a tagged release."
|
|
481
|
+
|
|
454
482
|
# A GitHub release for each v* tag, with every wheel, the sdist, the packages and their checksums.
|
|
455
483
|
release:
|
|
456
484
|
needs: [lint, test, wheel, sdist, package-test, docker]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.1.0] - 2026-10-18
|
|
11
|
+
|
|
12
|
+
Initial release.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- C++20 library with Python bindings (`terraingenpy` on PyPI) for generating terrain from scratch or adding detail to existing DEMs.
|
|
17
|
+
- Craters and boulders from published size-frequency distributions, with crater ages, profiles, degradation, irregularity, secondaries and ejecta.
|
|
18
|
+
- Procedural 3D boulder models, and small boulders baked into the heightmap.
|
|
19
|
+
- Synthetic albedo with crater ejecta and rays that fade with age.
|
|
20
|
+
- Geologic features: dunes and ripples, layered strata, fractured bedrock, ventifacts and sand pooled in lows or behind boulders.
|
|
21
|
+
- Planes, spheres and ellipsoids, whole-body meshes, tiles and point queries.
|
|
22
|
+
- Deterministic output for a seed on any grid, tile or thread count.
|
|
23
|
+
- GPU acceleration on Vulkan, CUDA and Metal, detected at run time.
|
|
24
|
+
- `terraingen` command-line interface driven by JSON configurations.
|
|
25
|
+
- Examples in C++, Python and JSON.
|
|
26
|
+
- Release archives for Linux, macOS and Windows, Debian packages, and a Docker image.
|
|
27
|
+
|
|
28
|
+
[Unreleased]: https://github.com/alexmaietta/terraingen/compare/v0.1.0...HEAD
|
|
29
|
+
[0.1.0]: https://github.com/alexmaietta/terraingen/releases/tag/v0.1.0
|
|
@@ -8,7 +8,7 @@ endif()
|
|
|
8
8
|
|
|
9
9
|
# The release being worked towards, such as 0.1.0, or for a development build a PEP 440 pre-release of
|
|
10
10
|
# it, such as 0.1.0.dev42, which only the Python package carries.
|
|
11
|
-
set(TERRAINGEN_FULL_VERSION "0.1.
|
|
11
|
+
set(TERRAINGEN_FULL_VERSION "0.1.1.dev6")
|
|
12
12
|
string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" TERRAINGEN_VERSION "${TERRAINGEN_FULL_VERSION}")
|
|
13
13
|
|
|
14
14
|
project(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: terraingenpy
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1.dev6
|
|
4
4
|
Summary: Scientific terrain generation for planetary surfaces
|
|
5
5
|
Keywords: terrain,moon,mars,craters,planetary science,simulation
|
|
6
6
|
Author: Alex Maietta
|
|
@@ -94,7 +94,7 @@ We also provide:
|
|
|
94
94
|
|
|
95
95
|
For more information on the concepts behind TerrainGen and the API, see our latest [documentation](https://alexmaietta.github.io/terraingen/).
|
|
96
96
|
|
|
97
|
-
##
|
|
97
|
+
## Quick Start
|
|
98
98
|
|
|
99
99
|
We recommended getting started by installing `terraingenpy` from PyPi and running the GUI.
|
|
100
100
|
|
|
@@ -103,21 +103,117 @@ pip install terraingenpy
|
|
|
103
103
|
terraingen --gui
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
+
## Requirements
|
|
107
|
+
|
|
108
|
+
- Linux (Ubuntu 22.04 or newer), macOS 14 or newer, or Windows 10 or newer, on x86_64 or arm64.
|
|
109
|
+
- Python 3.10 or newer for the Python package.
|
|
110
|
+
- Optional: a Vulkan, CUDA or Metal driver for GPU acceleration. Run `terraingen backends` to see what is available.
|
|
111
|
+
|
|
112
|
+
## Installation
|
|
113
|
+
|
|
114
|
+
### Releases
|
|
115
|
+
|
|
116
|
+
Every [release](https://github.com/alexmaietta/terraingen/releases) has the CLI, library, headers and CMake package for each platform, and `.deb` packages for Ubuntu and Debian. The [latest](https://github.com/alexmaietta/terraingen/releases/tag/latest) pre-release is built from `main` on every push.
|
|
117
|
+
|
|
118
|
+
### Building from Source
|
|
119
|
+
|
|
120
|
+
You need CMake 3.22 or newer and a C++20 compiler (GCC 11, Clang 14, Apple Clang 15 or MSVC 2022). CMake fetches everything else.
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
|
|
124
|
+
cmake --build build -j 8
|
|
125
|
+
cmake --install build --prefix /usr/local
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
To build the Python package from source, run `pip install .` instead.
|
|
129
|
+
|
|
130
|
+
### Docker
|
|
131
|
+
|
|
132
|
+
```sh
|
|
133
|
+
docker run --rm ghcr.io/alexmaietta/terraingen:latest terraingen --help
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The `dev` tag follows `main`.
|
|
137
|
+
|
|
138
|
+
## Getting Started
|
|
139
|
+
|
|
106
140
|
### Python
|
|
107
141
|
|
|
142
|
+
```python
|
|
143
|
+
import terraingen
|
|
144
|
+
|
|
145
|
+
# A flat 513 x 513 grid with 2 m pixels
|
|
146
|
+
ground = terraingen.FlatSource(513, 513, 2.0)
|
|
147
|
+
|
|
148
|
+
# Fractal noise 40 m high with an 800 m wavelength
|
|
149
|
+
fractal = terraingen.FractalParams(seed=1, wavelength=800.0, amplitude=40.0)
|
|
150
|
+
noise = terraingen.NoiseLayer(fractal)
|
|
151
|
+
relief = terraingen.NoiseRelief([noise])
|
|
152
|
+
|
|
153
|
+
terrain = terraingen.Terrain(ground, [relief])
|
|
154
|
+
heights = terraingen.evaluate(terrain)
|
|
155
|
+
terraingen.write_geotiff("terrain.tif", heights)
|
|
156
|
+
```
|
|
157
|
+
|
|
108
158
|
### C++
|
|
109
159
|
|
|
160
|
+
```cmake
|
|
161
|
+
find_package(terraingen REQUIRED)
|
|
162
|
+
target_link_libraries(app PRIVATE terraingen::terraingen)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
```cpp
|
|
166
|
+
#include <terraingen/terraingen.h>
|
|
167
|
+
|
|
168
|
+
int main() {
|
|
169
|
+
// Fractal noise 40 m high with an 800 m wavelength
|
|
170
|
+
terraingen::NoiseLayer noise;
|
|
171
|
+
noise.fractal.seed = 1;
|
|
172
|
+
noise.fractal.wavelength = 800.0f;
|
|
173
|
+
noise.fractal.amplitude = 40.0f;
|
|
174
|
+
|
|
175
|
+
terraingen::SyntheticTerrainParams relief;
|
|
176
|
+
relief.layers = {noise};
|
|
177
|
+
|
|
178
|
+
// A flat 513 x 513 grid with 2 m pixels, plus the noise
|
|
179
|
+
terraingen::Terrain terrain;
|
|
180
|
+
terrain.source = std::make_shared<terraingen::FlatSource>(513, 513, 2.0);
|
|
181
|
+
terrain.layers.push_back(std::make_shared<terraingen::NoiseRelief>(relief));
|
|
182
|
+
|
|
183
|
+
terraingen::Raster<float> heights = terraingen::Evaluate(terrain);
|
|
184
|
+
terraingen::WriteGeoTiff("terrain.tif", heights);
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
110
188
|
### Examples
|
|
111
189
|
|
|
112
|
-
|
|
190
|
+
[examples/](examples/) has the same terrains as JSON configurations, C++ programs and Python scripts, covering basic terrains, craters, boulders, albedo, planets, DEM detail and tiles:
|
|
191
|
+
|
|
192
|
+
```sh
|
|
193
|
+
terraingen examples/config/craters/example_craters_simple.json
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Demos
|
|
113
197
|
|
|
198
|
+
[demos/](demos/) has larger showcases, such as terrain over a whole asteroid built from the Itokawa shape model.
|
|
114
199
|
|
|
115
200
|
## Contributing
|
|
116
201
|
|
|
202
|
+
Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to build, test and submit changes.
|
|
203
|
+
|
|
117
204
|
### Documentation
|
|
118
205
|
|
|
206
|
+
The [documentation](https://alexmaietta.github.io/terraingen/) is built with MkDocs and Doxygen from [docs/](docs/). Run `make -C docs build` to build it locally.
|
|
207
|
+
|
|
119
208
|
### Code Coverage
|
|
120
209
|
|
|
210
|
+
The [coverage report](https://alexmaietta.github.io/terraingen/coverage/) is updated on every push to `main`. To generate it locally:
|
|
211
|
+
|
|
212
|
+
```sh
|
|
213
|
+
cmake -S . -B build-coverage -DTERRAINGEN_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
|
|
214
|
+
cmake --build build-coverage -j 8 --target coverage
|
|
215
|
+
```
|
|
216
|
+
|
|
121
217
|
## Citation
|
|
122
218
|
|
|
123
219
|
If you use TerrainGen for published research, please cite:
|
|
@@ -147,5 +243,5 @@ TerrainGen draws inspiration from existing lunar terrain generation tools:
|
|
|
147
243
|
| --- | --- | --- | --- | --- |
|
|
148
244
|
| [synthterrain](https://github.com/NeoGeographyToolkit/synthterrain) | NASA Ames | Open source (Apache-2.0) | Crater and boulder populations from size-frequency distributions, crater profiles and DEMs on flat terrain | Doesn't generate surface detail or upscale existing DEMs, not actively contributed to. |
|
|
149
245
|
| [lunasynth](https://github.com/nasa-jpl/lunasynth) | NASA JPL | Open source (Apache-2.0) | Adds craters and boulders to a lunar base DEM, down to 1 cm pixels, and renders images under varying camera and sun positions | Project is not actively-maintained |
|
|
150
|
-
| [DLES Terrain Crafting](https://doi.org/10.1109/AERO63441.2025.11068736) | NASA JSC | Not publicly released (paper) | Enhances LOLA and NAC-derived DEMs of the lunar south pole to 20 cm with synthetic craters and boulders, including hand-placed craters from imagery | Not publicly released, |
|
|
151
|
-
| [PANGU](https://pangu.software/) | University of Dundee / STAR-Dundee | Commercial | Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation |
|
|
246
|
+
| [DLES Terrain Crafting](https://doi.org/10.1109/AERO63441.2025.11068736) | NASA JSC | Not publicly released (paper) | Enhances LOLA and NAC-derived DEMs of the lunar south pole to 20 cm with synthetic craters and boulders, including hand-placed craters from imagery | Not publicly released, relies on manual crater counting, stamps craters from four template shapes, leaves blending rings around craters and smooth interpolated ground between them, and doesn't produce albedo maps. |
|
|
247
|
+
| [PANGU](https://pangu.software/) | University of Dundee / STAR-Dundee | Commercial (free for ESA projects) | Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation | Requires a paid license outside ESA projects, and ships as standalone command-line tools and GUIs rather than a library to integrate into a project. |
|
|
@@ -38,7 +38,7 @@ We also provide:
|
|
|
38
38
|
|
|
39
39
|
For more information on the concepts behind TerrainGen and the API, see our latest [documentation](https://alexmaietta.github.io/terraingen/).
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## Quick Start
|
|
42
42
|
|
|
43
43
|
We recommended getting started by installing `terraingenpy` from PyPi and running the GUI.
|
|
44
44
|
|
|
@@ -47,21 +47,117 @@ pip install terraingenpy
|
|
|
47
47
|
terraingen --gui
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## Requirements
|
|
51
|
+
|
|
52
|
+
- Linux (Ubuntu 22.04 or newer), macOS 14 or newer, or Windows 10 or newer, on x86_64 or arm64.
|
|
53
|
+
- Python 3.10 or newer for the Python package.
|
|
54
|
+
- Optional: a Vulkan, CUDA or Metal driver for GPU acceleration. Run `terraingen backends` to see what is available.
|
|
55
|
+
|
|
56
|
+
## Installation
|
|
57
|
+
|
|
58
|
+
### Releases
|
|
59
|
+
|
|
60
|
+
Every [release](https://github.com/alexmaietta/terraingen/releases) has the CLI, library, headers and CMake package for each platform, and `.deb` packages for Ubuntu and Debian. The [latest](https://github.com/alexmaietta/terraingen/releases/tag/latest) pre-release is built from `main` on every push.
|
|
61
|
+
|
|
62
|
+
### Building from Source
|
|
63
|
+
|
|
64
|
+
You need CMake 3.22 or newer and a C++20 compiler (GCC 11, Clang 14, Apple Clang 15 or MSVC 2022). CMake fetches everything else.
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
|
|
68
|
+
cmake --build build -j 8
|
|
69
|
+
cmake --install build --prefix /usr/local
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
To build the Python package from source, run `pip install .` instead.
|
|
73
|
+
|
|
74
|
+
### Docker
|
|
75
|
+
|
|
76
|
+
```sh
|
|
77
|
+
docker run --rm ghcr.io/alexmaietta/terraingen:latest terraingen --help
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The `dev` tag follows `main`.
|
|
81
|
+
|
|
82
|
+
## Getting Started
|
|
83
|
+
|
|
50
84
|
### Python
|
|
51
85
|
|
|
86
|
+
```python
|
|
87
|
+
import terraingen
|
|
88
|
+
|
|
89
|
+
# A flat 513 x 513 grid with 2 m pixels
|
|
90
|
+
ground = terraingen.FlatSource(513, 513, 2.0)
|
|
91
|
+
|
|
92
|
+
# Fractal noise 40 m high with an 800 m wavelength
|
|
93
|
+
fractal = terraingen.FractalParams(seed=1, wavelength=800.0, amplitude=40.0)
|
|
94
|
+
noise = terraingen.NoiseLayer(fractal)
|
|
95
|
+
relief = terraingen.NoiseRelief([noise])
|
|
96
|
+
|
|
97
|
+
terrain = terraingen.Terrain(ground, [relief])
|
|
98
|
+
heights = terraingen.evaluate(terrain)
|
|
99
|
+
terraingen.write_geotiff("terrain.tif", heights)
|
|
100
|
+
```
|
|
101
|
+
|
|
52
102
|
### C++
|
|
53
103
|
|
|
104
|
+
```cmake
|
|
105
|
+
find_package(terraingen REQUIRED)
|
|
106
|
+
target_link_libraries(app PRIVATE terraingen::terraingen)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
```cpp
|
|
110
|
+
#include <terraingen/terraingen.h>
|
|
111
|
+
|
|
112
|
+
int main() {
|
|
113
|
+
// Fractal noise 40 m high with an 800 m wavelength
|
|
114
|
+
terraingen::NoiseLayer noise;
|
|
115
|
+
noise.fractal.seed = 1;
|
|
116
|
+
noise.fractal.wavelength = 800.0f;
|
|
117
|
+
noise.fractal.amplitude = 40.0f;
|
|
118
|
+
|
|
119
|
+
terraingen::SyntheticTerrainParams relief;
|
|
120
|
+
relief.layers = {noise};
|
|
121
|
+
|
|
122
|
+
// A flat 513 x 513 grid with 2 m pixels, plus the noise
|
|
123
|
+
terraingen::Terrain terrain;
|
|
124
|
+
terrain.source = std::make_shared<terraingen::FlatSource>(513, 513, 2.0);
|
|
125
|
+
terrain.layers.push_back(std::make_shared<terraingen::NoiseRelief>(relief));
|
|
126
|
+
|
|
127
|
+
terraingen::Raster<float> heights = terraingen::Evaluate(terrain);
|
|
128
|
+
terraingen::WriteGeoTiff("terrain.tif", heights);
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
54
132
|
### Examples
|
|
55
133
|
|
|
56
|
-
|
|
134
|
+
[examples/](examples/) has the same terrains as JSON configurations, C++ programs and Python scripts, covering basic terrains, craters, boulders, albedo, planets, DEM detail and tiles:
|
|
135
|
+
|
|
136
|
+
```sh
|
|
137
|
+
terraingen examples/config/craters/example_craters_simple.json
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Demos
|
|
57
141
|
|
|
142
|
+
[demos/](demos/) has larger showcases, such as terrain over a whole asteroid built from the Itokawa shape model.
|
|
58
143
|
|
|
59
144
|
## Contributing
|
|
60
145
|
|
|
146
|
+
Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to build, test and submit changes.
|
|
147
|
+
|
|
61
148
|
### Documentation
|
|
62
149
|
|
|
150
|
+
The [documentation](https://alexmaietta.github.io/terraingen/) is built with MkDocs and Doxygen from [docs/](docs/). Run `make -C docs build` to build it locally.
|
|
151
|
+
|
|
63
152
|
### Code Coverage
|
|
64
153
|
|
|
154
|
+
The [coverage report](https://alexmaietta.github.io/terraingen/coverage/) is updated on every push to `main`. To generate it locally:
|
|
155
|
+
|
|
156
|
+
```sh
|
|
157
|
+
cmake -S . -B build-coverage -DTERRAINGEN_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
|
|
158
|
+
cmake --build build-coverage -j 8 --target coverage
|
|
159
|
+
```
|
|
160
|
+
|
|
65
161
|
## Citation
|
|
66
162
|
|
|
67
163
|
If you use TerrainGen for published research, please cite:
|
|
@@ -91,5 +187,5 @@ TerrainGen draws inspiration from existing lunar terrain generation tools:
|
|
|
91
187
|
| --- | --- | --- | --- | --- |
|
|
92
188
|
| [synthterrain](https://github.com/NeoGeographyToolkit/synthterrain) | NASA Ames | Open source (Apache-2.0) | Crater and boulder populations from size-frequency distributions, crater profiles and DEMs on flat terrain | Doesn't generate surface detail or upscale existing DEMs, not actively contributed to. |
|
|
93
189
|
| [lunasynth](https://github.com/nasa-jpl/lunasynth) | NASA JPL | Open source (Apache-2.0) | Adds craters and boulders to a lunar base DEM, down to 1 cm pixels, and renders images under varying camera and sun positions | Project is not actively-maintained |
|
|
94
|
-
| [DLES Terrain Crafting](https://doi.org/10.1109/AERO63441.2025.11068736) | NASA JSC | Not publicly released (paper) | Enhances LOLA and NAC-derived DEMs of the lunar south pole to 20 cm with synthetic craters and boulders, including hand-placed craters from imagery | Not publicly released, |
|
|
95
|
-
| [PANGU](https://pangu.software/) | University of Dundee / STAR-Dundee | Commercial | Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation |
|
|
190
|
+
| [DLES Terrain Crafting](https://doi.org/10.1109/AERO63441.2025.11068736) | NASA JSC | Not publicly released (paper) | Enhances LOLA and NAC-derived DEMs of the lunar south pole to 20 cm with synthetic craters and boulders, including hand-placed craters from imagery | Not publicly released, relies on manual crater counting, stamps craters from four template shapes, leaves blending rings around craters and smooth interpolated ground between them, and doesn't produce albedo maps. |
|
|
191
|
+
| [PANGU](https://pangu.software/) | University of Dundee / STAR-Dundee | Commercial (free for ESA projects) | Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation | Requires a paid license outside ESA projects, and ships as standalone command-line tools and GUIs rather than a library to integrate into a project. |
|
|
@@ -73,24 +73,17 @@ function(terraingen_add_slang_kernel target symbol source)
|
|
|
73
73
|
spirv_1_3)
|
|
74
74
|
endfunction()
|
|
75
75
|
|
|
76
|
-
# terraingen_add_kernel(<target> <symbol> <type> <header>): compiles the
|
|
77
|
-
#
|
|
78
|
-
#
|
|
79
|
-
#
|
|
80
|
-
# `CompiledKernel` specialization
|
|
81
|
-
#
|
|
82
|
-
|
|
83
|
-
function(terraingen_add_kernel target symbol type header)
|
|
84
|
-
cmake_parse_arguments(PARSE_ARGV 4 ARG "" "TEMPLATE" "")
|
|
85
|
-
if(NOT ARG_TEMPLATE)
|
|
86
|
-
set(ARG_TEMPLATE "${PROJECT_SOURCE_DIR}/cmake/Kernel.slang.in")
|
|
87
|
-
endif()
|
|
76
|
+
# terraingen_add_kernel(<target> <symbol> <type> <header> <source>): compiles the Slang compute
|
|
77
|
+
# kernel <source> (entry point "main", including terraingen/gpu/kernel.slang) for every GPU backend
|
|
78
|
+
# the build supports and defines `CompiledKernel<type>()` in <target>. <header>, relative to the
|
|
79
|
+
# repository root, is the kernel header (see util/portable.h) declaring the plain struct <type>
|
|
80
|
+
# that <source> binds and the `CompiledKernel` specialization. A form the build cannot make is
|
|
81
|
+
# embedded empty.
|
|
82
|
+
function(terraingen_add_kernel target symbol type header source)
|
|
88
83
|
set(KERNEL_TYPE "${type}")
|
|
89
84
|
set(KERNEL_HEADER "${header}")
|
|
90
85
|
set(KERNEL_SYMBOL "${symbol}")
|
|
91
86
|
set(directory "${CMAKE_CURRENT_BINARY_DIR}/kernels")
|
|
92
|
-
set(source "${directory}/${symbol}.slang")
|
|
93
|
-
configure_file("${ARG_TEMPLATE}" "${source}" @ONLY)
|
|
94
87
|
configure_file("${PROJECT_SOURCE_DIR}/cmake/Kernel.cpp.in" "${directory}/${symbol}_program.cpp"
|
|
95
88
|
@ONLY)
|
|
96
89
|
target_sources(${target} PRIVATE "${directory}/${symbol}_program.cpp")
|
|
@@ -24,7 +24,7 @@ constexpr std::size_t kGroupSide = 16;
|
|
|
24
24
|
/// Most workgroups Vulkan guarantees in one dimension of a dispatch; CUDA and Metal allow more.
|
|
25
25
|
constexpr std::size_t kMaxGroups = 65535;
|
|
26
26
|
|
|
27
|
-
/// The push constants of kernels (`
|
|
27
|
+
/// The push constants of kernels (`terraingen/gpu/kernel.slang`).
|
|
28
28
|
struct KernelParams {
|
|
29
29
|
std::uint32_t width = 0;
|
|
30
30
|
std::uint32_t rows = 0;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// What every TerrainGen compute kernel binds first: the grid strip's heights and its column and
|
|
2
|
+
// row positions, and the layout of the push constants of RunKernel (terraingen/gpu/kernel.cpp).
|
|
3
|
+
// Kernel sources include this, bind their kernel struct at 3 and any extra buffers from 4 on, and
|
|
4
|
+
// declare `params` after every buffer: Metal numbers buffers in declaration order and RunKernel
|
|
5
|
+
// passes the push constants after the last one.
|
|
6
|
+
|
|
7
|
+
[[vk::binding(0, 0)]] RWStructuredBuffer<float> heights;
|
|
8
|
+
[[vk::binding(1, 0)]] StructuredBuffer<float> xs;
|
|
9
|
+
[[vk::binding(2, 0)]] StructuredBuffer<float> ys;
|
|
10
|
+
|
|
11
|
+
struct Params {
|
|
12
|
+
uint width;
|
|
13
|
+
uint rows;
|
|
14
|
+
uint noData;
|
|
15
|
+
float noDataValue;
|
|
16
|
+
uint firstRow;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
namespace terraingen {
|
|
20
|
+
|
|
21
|
+
static const uint kNoDataNone = 0u;
|
|
22
|
+
static const uint kNoDataNan = 1u;
|
|
23
|
+
|
|
24
|
+
/// Whether the thread `id` falls inside the strip.
|
|
25
|
+
bool InStrip(Params params, uint3 id) {
|
|
26
|
+
return id.x < params.width && id.y < params.rows;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// Whether `height` is the grid's no-data value, which kernels leave as it is.
|
|
30
|
+
bool IsNoData(Params params, float height) {
|
|
31
|
+
if (params.noData == kNoDataNan) {
|
|
32
|
+
return isnan(height);
|
|
33
|
+
}
|
|
34
|
+
return params.noData != kNoDataNone && height == params.noDataValue;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
} // namespace terraingen
|
|
@@ -58,8 +58,8 @@ terraingen_add_library(
|
|
|
58
58
|
terraingen_sources
|
|
59
59
|
terraingen_util)
|
|
60
60
|
terraingen_add_kernel(terraingen_layers terraingen_kernel_noise_relief NoiseReliefKernel
|
|
61
|
-
terraingen/layers/kernels/noise_relief.h)
|
|
62
|
-
terraingen_add_kernel(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
terraingen/layers/kernels/noise_relief.h kernels/noise_relief.slang)
|
|
62
|
+
terraingen_add_kernel(terraingen_layers terraingen_kernel_craters CraterShapeKernel
|
|
63
|
+
terraingen/layers/kernels/craters.h kernels/craters.slang)
|
|
64
|
+
terraingen_add_kernel(terraingen_layers terraingen_kernel_crater_datums CraterDatumKernel
|
|
65
|
+
terraingen/layers/kernels/craters.h kernels/crater_datums.slang)
|
|
@@ -163,11 +163,12 @@ class Generation {
|
|
|
163
163
|
CraterList craters;
|
|
164
164
|
craters.Reserve(static_cast<std::size_t>(expected));
|
|
165
165
|
for (const BandPlan& entry : plan) {
|
|
166
|
+
const BandRegion region = BandRegionOf(entry.band);
|
|
166
167
|
for (const CellIndex& cell : entry.cells) {
|
|
167
168
|
const std::shared_ptr<const CraterList> drawn = DrawCell(entry.band, cell);
|
|
168
169
|
for (std::size_t n = 0; n < drawn->Size(); ++n) {
|
|
169
170
|
const Crater crater = drawn->At(n);
|
|
170
|
-
if (
|
|
171
|
+
if (InBandRegion(region, crater)) {
|
|
171
172
|
craters.Append(crater);
|
|
172
173
|
}
|
|
173
174
|
}
|
|
@@ -176,6 +177,33 @@ class Generation {
|
|
|
176
177
|
return craters;
|
|
177
178
|
}
|
|
178
179
|
|
|
180
|
+
/// The region expanded by the candidate margins of a band's smallest and largest craters,
|
|
181
|
+
/// which bound every margin in between since `Expand` and `CandidateMargin` only grow.
|
|
182
|
+
struct BandRegion {
|
|
183
|
+
CraterBand band;
|
|
184
|
+
Bounds2d inner;
|
|
185
|
+
Bounds2d outer;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
BandRegion BandRegionOf(const CraterBand& band) const {
|
|
189
|
+
return {band, surface_.Expand(region_, CandidateMargin(band.low)),
|
|
190
|
+
surface_.Expand(region_, CandidateMargin(band.high))};
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/// `InRegion` with the crater's candidate margin, expanding the region only for craters of the
|
|
194
|
+
/// band between its inner and outer regions.
|
|
195
|
+
bool InBandRegion(const BandRegion& region, const Crater& crater) const {
|
|
196
|
+
if (!(crater.diameter >= region.band.low && crater.diameter <= region.band.high)) {
|
|
197
|
+
return InRegion(crater, CandidateMargin(crater.diameter));
|
|
198
|
+
}
|
|
199
|
+
const Vec2d centre{crater.x, crater.y};
|
|
200
|
+
if (!surface_.Contains(region.outer, centre)) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
return surface_.Contains(region.inner, centre) ||
|
|
204
|
+
InRegion(crater, CandidateMargin(crater.diameter));
|
|
205
|
+
}
|
|
206
|
+
|
|
179
207
|
std::shared_ptr<const CraterList> DrawCell(const CraterBand& band,
|
|
180
208
|
const CellIndex& cell) const {
|
|
181
209
|
if (options_.cellCraters) {
|