terraingenpy 0.1.1.dev20__tar.gz → 0.1.1.dev23__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.1.dev20 → terraingenpy-0.1.1.dev23}/CHANGELOG.md +1 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/CMakeLists.txt +1 -1
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/PKG-INFO +4 -2
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/README.md +3 -1
- terraingenpy-0.1.1.dev23/assets/textures/README.md +14 -0
- terraingenpy-0.1.1.dev23/assets/textures/seaside_rock_ao_2k.png +3 -0
- terraingenpy-0.1.1.dev23/assets/textures/seaside_rock_arm_2k.png +3 -0
- terraingenpy-0.1.1.dev23/assets/textures/seaside_rock_diff_2k.png +3 -0
- terraingenpy-0.1.1.dev23/assets/textures/seaside_rock_disp_2k.png +3 -0
- terraingenpy-0.1.1.dev23/assets/textures/seaside_rock_nor_dx_2k.exr +3 -0
- terraingenpy-0.1.1.dev23/assets/textures/seaside_rock_nor_gl_2k.exr +3 -0
- terraingenpy-0.1.1.dev23/assets/textures/seaside_rock_rough_2k.exr +3 -0
- terraingenpy-0.1.1.dev23/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/crater_layer.cpp +3 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/apply.cpp +66 -26
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/apply.h +2 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/ground.h +11 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/terrain.cpp +59 -25
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/shaping/slope_test.cpp +46 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/terrain_test.cpp +12 -0
- terraingenpy-0.1.1.dev20/assets/textures/README.md +0 -10
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.clang-format +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.clang-tidy +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.cmake-format.yaml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.dockerignore +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.gitattributes +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/pull_request_template.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/scripts/install-lavapipe-windows.sh +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/workflows/ci.yml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.gitignore +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.pre-commit-config.yaml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/CITATION.cff +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/CONTRIBUTING.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/Dockerfile +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/LICENSE +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/assets/textures/moon_01_diff_4k.jpg +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/assets/textures/moon_01_disp_4k.png +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/assets/textures/moon_01_rough_4k.exr +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/BuildInfo.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/CoverageBadge.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/EmbedFile.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/Kernel.cpp.in +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/TerrainGenPackaging.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/TerrainGenSlang.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/TerrainGenTesting.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/terraingenConfig.cmake.in +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/benchmark.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/ernie.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/googletest.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/mesh_formats.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/miniz.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/nanobind.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/nvrtc.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/slang.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/volk.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/vulkan_headers.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/.gitignore +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/Makefile +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/README.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/api/cpp.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/api/python.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/concepts/index.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/css/extra.css +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/getting-started/command-line.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/getting-started/gui.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/getting-started/index.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/getting-started/installation.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/getting-started/quickstart.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/guides/index.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/index.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/overrides/home.html +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/overrides/partials/header.html +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/requirements.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/scripts/generate_schema.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/docs/validation/index.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/README.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/ages/example_ages_fresh.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/ages/example_ages_steady_state.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/ages/example_ages_uniform.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_new_crater.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_rgb.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/albedo/example_albedo_synthetic.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_buried.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_ejecta.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_exposure.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_fragments.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_layer.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_max_slope.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_models.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_patches.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_rock_abundance.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_rolling.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_scene.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_shapes.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_slope_map.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_sp8023.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_datum.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_degradation_none.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_interior_replacement.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_irregular.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_manual.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_max_craters.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_profile_complex.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_secondaries.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_secondary_rays.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_simple.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_slopes.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_spacing.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_texture.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/craters/example_craters_wall_marks.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/distributions/example_distributions_power_law.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/distributions/example_distributions_tabulated.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/distributions/example_distributions_viper.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/layers/example_layers_regions.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/layers/example_layers_roughness.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_craters.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_dunes.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_exposure.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_pavement.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_sand_shadows.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_strata.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mars_ventifacts.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_mercury_site.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/planets/example_planets_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_billow.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_cellular.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_fbm.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_layered.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_ridged.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_roughness.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/config/terrain/example_terrain_voronoi.json +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/ages/example_ages_models.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/common/browser.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/common/browser.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/common/example.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/common/example.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/common/main.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/common/standalone_main.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/config/example_config_load.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/craters/example_craters_manual.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/craters/example_craters_simple.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/layers/example_layers_custom.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/layers/example_layers_regions.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/planets/example_planets_moon.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/__main__.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/_browser.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/_common.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/_harness.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/_images.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/ages/example_ages_models.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/albedo/example_albedo_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/albedo/example_albedo_options.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/boulders/example_boulders_exposure.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/boulders/example_boulders_layer.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/boulders/example_boulders_positioning.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/boulders/example_boulders_shapes.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/boulders/example_boulders_size_models.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/config/example_config_load.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_age_sweep.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_apply_options.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_degradation.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_irregularity.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_manual.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_positioning.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_profiles.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_secondaries.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/craters/example_craters_simple.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/distributions/example_distributions_csfd.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/distributions/example_distributions_custom.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/layers/example_layers_custom.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/layers/example_layers_regions.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/planets/example_planets_body_mesh.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/planets/example_planets_mars.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/planets/example_planets_mars_dunes.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/planets/example_planets_mars_exposure.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/planets/example_planets_mercury.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/planets/example_planets_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/sources/example_sources_chain.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/sources/example_sources_raster_detail.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/terrain/example_terrain_fbm.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/terrain/example_terrain_layered.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/tiles/example_tiles_point_queries.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/tiles/example_tiles_quadtree.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/mkdocs.yml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/pyproject.toml +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/albedo.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/blast_zones.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/blast_zones.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/crater_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/crater_albedo.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/maturity.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/maturity.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/raster_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/raster_albedo.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/rock_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/rock_albedo.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/slope_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/slope_albedo.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/splotches.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/splotches.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/synthetic.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/albedo/synthetic.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/cli.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/cli.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/config_editor.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/config_editor.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/gui_app.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/gui_app.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/run.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/run.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/run_none.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/terrain_scene.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/gui/terrain_scene.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/app/main.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/build.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/build.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/config.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/config.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/feature_lists.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/albedo.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/boulders.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/checks.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/common.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/crater_models.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/craters.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/enums.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/fields.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/json_io.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/layers.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/maps.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/materials.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/outputs.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/fields/sources.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/generate.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/generate.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/json.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/json.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/schema.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/validate.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/config/validate.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/combined.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/combined.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/equilibrium.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/equilibrium.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/golombek_rapp.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/golombek_rapp.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/ivanov.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/ivanov.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/log_polynomial.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/log_polynomial.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/minimum.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/minimum.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/moore.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/moore.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/neukum.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/neukum.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/piecewise_power_law.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/piecewise_power_law.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/piecewise_uniform.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/piecewise_uniform.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/power_law.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/power_law.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/production_surface.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/production_surface.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/size_frequency.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/size_frequency.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/sp8023.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/sp8023.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/spliced.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/spliced.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/summed.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/summed.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/synthterrain.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/synthterrain.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/tabulated.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/tabulated.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/viper.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/distribution/viper.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/backend.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/backend.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/cuda.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/cuda.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/kernel.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/kernel.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/kernel.slang +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/metal.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/metal.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/program.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/vulkan.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/gpu/vulkan.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/bedforms.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/bedforms.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/abundance.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_fragments.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_fragments.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_layer.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_models.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_models.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_options.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_options.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_placer.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_shape.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/boulder_shape.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/ejecta_index.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/boulders/ejecta_index.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/ages/age_model.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/ages/age_model.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/ages/steady_state.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/crater.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/crater.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/crater_layer.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/crater_placer.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/crater_placer.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/diffusion.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/diffusion.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/diffusivities.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/freshness.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/degradation/state.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/generation/cell_cache.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/generation/population.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/generation/population.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/generation/spacing.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/generation/spacing.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/profiles/complex.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/profiles/complex.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/profiles/profile.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/rays.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/rays.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/secondaries.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/secondaries.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/secondary_model.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/secondary_model.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/apply_options.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/attributes.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/crater_kernel.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/datum.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/datum.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/irregularity.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/irregularity.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/morphometry.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/prepared.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/prepared.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/slope.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/slope.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/density_map.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/density_map.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/detail.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/detail.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/dunes.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/dunes.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/evaluation_cache.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/exposure.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/exposure.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/fade.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/fade.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/kernel.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/kernels/cell.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/kernels/crater_datums.slang +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/kernels/craters.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/kernels/craters.slang +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/kernels/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/kernels/noise_relief.slang +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/layer.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/layer.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/material.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/material.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/noise_relief.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/pavement.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/pavement.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/region.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/region.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/roughness.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/roughness.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/sample_block.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/sample_block.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/sand_fill.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/sand_fill.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/sand_shadow.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/sand_shadow.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/strata.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/strata.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/transforms.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/transforms.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/materials/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/materials/materials.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/materials/materials.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/formats.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/gltf.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/icq.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/icq.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/mesh_io.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/mesh_io.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/obj.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/io/stl.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/mesh.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/polyhedra.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/polyhedra.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/shape_model.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/mesh/shape_model.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/fractal.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/hash.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/lattice.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/noise_layers.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/perlin.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/simplex.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/validate.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/validate.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/value.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/noise/worley.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/body_mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/body_mesh.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/features.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/features.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/height_mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/height_mesh.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/terrain.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/tiles.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/pipeline/tiles.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/bindings.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/boulders.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/casters.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/common.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/crater_models.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/craters.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/distribution.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/gpu.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/layers.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/materials.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/module.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/noise.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/objects.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/pipeline.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/random.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/raster.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/sources.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/tables.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/trampolines.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/src/util.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/terraingen/__init__.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/python/terraingen/render.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/philox.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/samplers.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/samplers.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/stream.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/stream.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/value_distribution.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/random/value_distribution.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/cell_loops.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/cell_loops.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/gaussian_blur.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/gaussian_blur.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geo_transform.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/geotiff.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/geotiff.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/geotiff_read.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/geotiff/tiff_format.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/grid.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/grid.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/raster.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/raster_stats.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/resample.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/raster/resample.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/field.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/field.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/flat_source.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/flat_source.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/geotiff_source.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/geotiff_source.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/source.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/source_chain.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/source_chain.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/synthetic_terrain.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/sources/synthetic_terrain.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/terraingen.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/build_info.cpp.in +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/build_info.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/cells.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/checks.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/checks.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/cube_faces.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/cube_sphere_cells.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/fft.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/fft.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/geometry.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/log.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/log.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/lru_cache.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/overloaded.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/parallel.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/parallel.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/planar_cells.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/portable.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/radial_shape.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/radial_shape.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/special_functions.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/special_functions.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/surface.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/surface.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/version.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/util/version.h.in +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/benchmark/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/benchmark/bench_boulders.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/benchmark/bench_craters.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/benchmark/bench_grids.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/benchmark/bench_point_queries.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/benchmark/bench_python_subclasses.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/benchmark/fixtures.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/golden/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/golden/noise/kernels_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/integration/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/integration/build_info_stable.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/integration/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/integration/package/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/integration/package/main.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/integration/package/test_debian_packages.cmake +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/conftest.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_albedo.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_boulders.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_config.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_crater_models.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_craters.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_distributions.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_examples_harness.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_gpu.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_layers.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_meshes.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_noise.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_pipeline.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_random.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_raster.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_render.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_sources.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_stubs.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_tiles.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/python/test_util.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/distribution/crater_references_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/layers/craters/population_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/statistical/random/random_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/support/log_capture.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/support/lunar_craters.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/support/raster_equality.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/support/statistics.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/support/temp_path.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/albedo/albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/albedo/blast_zones_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/albedo/crater_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/albedo/rock_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/albedo/slope_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/albedo/splotches_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/app/cli_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/app/gui/config_editor_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/app/gui/gui_app_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/build_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/checks_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/config_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/configs.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/feature_lists_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/generate_terrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/json_io_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/json_parse_errors_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/json_read_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/schema_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/validate_config_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/validate_sources_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/config/write_outputs_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/combined_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/equilibrium_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/ivanov_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/minimum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/moore_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/neukum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/piecewise_uniform_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/production_surface_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/sp8023_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/spliced_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/summed_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/synthterrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/tabulated_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/distribution/viper_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/examples/example_browser_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/examples/example_harness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/gpu/backend_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/gpu/noise_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/gpu/vulkan_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/bedforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/boulders/boulder_models_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/boulders/boulder_options_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/crater_layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/crater_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/generation/population_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/secondaries_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/shaping/apply_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/shaping/datum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/craters/sphere_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/density_map_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/detail_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/dunes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/exposure_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/fade_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/noise_relief_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/pavement_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/region_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/sample_block_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/sand_fill_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/sand_shadow_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/sphere_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/strata_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/layers/transforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/materials/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/materials/materials_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/mesh/io/icq_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/mesh/io/mesh_io_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/mesh/mesh_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/mesh/polyhedra_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/mesh/shape_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/mesh/support.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/fractal_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/hash_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/noise3_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/noise_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/perlin_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/simplex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/validate_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/value_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/noise/worley_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/features_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/height_mesh_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/terrain_tiles_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/terrains.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/tile_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/pipeline/tiling_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/random/philox_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/random/samplers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/random/stream_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/random/value_distribution_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/cell_loops_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/gdal_fixtures.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/geo_transform_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/geotiff_fixtures.inc +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/geotiff_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/grid_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/raster_stats_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/raster_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/resample_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/raster/tiff_format_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/sources/field_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/sources/flat_source_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/sources/geotiff_source_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/sources/source_chain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/cells_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/checks_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/fft_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/geometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/log_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/lru_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/overloaded_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/parallel_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/radial_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/special_functions_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/surface_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/tests/unit/util/version_test.cpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/README.md +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/cgltf/LICENSE +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/cgltf/cgltf.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/cgltf/cgltf_write.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/miniz/LICENSE +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/miniz/miniz.c +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/miniz/miniz.h +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/nlohmann/LICENSE.MIT +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/nlohmann/json.hpp +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/tinyobjloader/LICENSE +0 -0
- {terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
|
@@ -35,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
35
35
|
|
|
36
36
|
- Freshness degradation never makes a crater deeper than fresh: basins shallower than the cutoff keep their fresh shape.
|
|
37
37
|
- Small craters inside larger ones on sloping ground no longer stand as raised mounds: datums are fitted to the slope-shaped relief that is applied.
|
|
38
|
+
- Crater layers over other layers read the ground beneath their slopes and datums in batches rather than point by point, and point batches are evaluated in spatial order: the hero demo went from 433 s to 11 s with the same output.
|
|
38
39
|
|
|
39
40
|
## [0.1.0] - 2026-10-18
|
|
40
41
|
|
|
@@ -8,7 +8,7 @@ endif()
|
|
|
8
8
|
|
|
9
9
|
# The release being worked towards, such as 0.1.0, or for a development build a PEP 440 pre-release of
|
|
10
10
|
# it, such as 0.1.0.dev42, which only the Python package carries.
|
|
11
|
-
set(TERRAINGEN_FULL_VERSION "0.1.1.
|
|
11
|
+
set(TERRAINGEN_FULL_VERSION "0.1.1.dev23")
|
|
12
12
|
string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" TERRAINGEN_VERSION "${TERRAINGEN_FULL_VERSION}")
|
|
13
13
|
|
|
14
14
|
project(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: terraingenpy
|
|
3
|
-
Version: 0.1.1.
|
|
3
|
+
Version: 0.1.1.dev23
|
|
4
4
|
Summary: Scientific terrain generation for planetary surfaces
|
|
5
5
|
Keywords: terrain,moon,mars,craters,planetary science,simulation
|
|
6
6
|
Author: Alex Maietta
|
|
@@ -64,7 +64,9 @@ Description-Content-Type: text/markdown
|
|
|
64
64
|
|
|
65
65
|
# TerrainGen
|
|
66
66
|
|
|
67
|
-
![]()
|
|
67
|
+

|
|
68
|
+
|
|
69
|
+
*Blue Moon MK1 SN101 lander at Connecting Ridge near the lunar south pole, with Mons Malapert in the background. Terrain upscaled by TerrainGen from LOLA elevation models.*
|
|
68
70
|
|
|
69
71
|
A high-performance scientific terrain generation tool for interplanetary bodies.
|
|
70
72
|
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
# TerrainGen
|
|
10
10
|
|
|
11
|
-
![]()
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
*Blue Moon MK1 SN101 lander at Connecting Ridge near the lunar south pole, with Mons Malapert in the background. Terrain upscaled by TerrainGen from LOLA elevation models.*
|
|
12
14
|
|
|
13
15
|
A high-performance scientific terrain generation tool for interplanetary bodies.
|
|
14
16
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Textures
|
|
2
|
+
|
|
3
|
+
Tileable detail textures for terrain and rock materials, stored in Git LFS.
|
|
4
|
+
|
|
5
|
+
| Files | Source | License |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| `moon_01_diff_4k.jpg`, `moon_01_nor_gl_4k.exr`, `moon_01_rough_4k.exr`, `moon_01_disp_4k.png` | Poly Haven, "Moon 01" by Greg Zaal, Rico Cilliers and Jenelle van Heerden (photography) and Dario Barresi (processing), <https://polyhaven.com/a/moon_01> | CC0 1.0 |
|
|
8
|
+
| `seaside_rock_diff_2k.png`, `seaside_rock_nor_gl_2k.exr`, `seaside_rock_nor_dx_2k.exr`, `seaside_rock_rough_2k.exr`, `seaside_rock_ao_2k.png`, `seaside_rock_arm_2k.png`, `seaside_rock_disp_2k.png` | Poly Haven, "Seaside Rock", <https://polyhaven.com/a/seaside_rock> | CC0 1.0 |
|
|
9
|
+
The moon_01 scan covers about 3.1 m of lunar regolith per tile: diffuse colour (sRGB), OpenGL
|
|
10
|
+
normal map, roughness and displacement, at 4096 x 4096.
|
|
11
|
+
|
|
12
|
+
The seaside rock maps are 2048 x 2048 (diffuse sRGB; OpenGL and DirectX normal maps; roughness,
|
|
13
|
+
ambient occlusion, packed AO/roughness/metal and displacement). The lunar_regolith maps are
|
|
14
|
+
8192 x 8192 (diffuse sRGB, OpenGL normal map, roughness, 16-bit ambient occlusion).
|
|
Binary file
|
{terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/crater_layer.cpp
RENAMED
|
@@ -191,6 +191,9 @@ void CraterLayer::ApplySamples(SampleBlock& samples, const LayerContext& context
|
|
|
191
191
|
const HeightSampler ground =
|
|
192
192
|
context.ground ? context.ground->Sampler(spacing) : HeightSampler{};
|
|
193
193
|
CraterSampling sampling{spacing, context.threads, ground};
|
|
194
|
+
if (context.ground != nullptr) {
|
|
195
|
+
sampling.groundBatch = context.ground->BatchSampler(spacing);
|
|
196
|
+
}
|
|
194
197
|
sampling.cache = context.cache;
|
|
195
198
|
sampling.owner = this;
|
|
196
199
|
sampling.backend = context.backend;
|
{terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/apply.cpp
RENAMED
|
@@ -318,13 +318,14 @@ std::optional<DatumKernelIndex> IndexDatumRelief(const std::vector<PreparedCrate
|
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
/// Fits the datums of craters `fitted` of `prepared`, all indexed in `index`: the ground under
|
|
321
|
-
/// each lattice point is read
|
|
321
|
+
/// each lattice point is read (in one pass by `batchGround` when given, else by `ground`), the
|
|
322
|
+
/// relief of the craters before each crater added by
|
|
322
323
|
/// `KernelDatumRelief` on GPU `backend` when it can take it and on CPU threads otherwise, and the
|
|
323
324
|
/// fit solved in double.
|
|
324
325
|
void FitDatumsWithKernel(std::vector<PreparedCrater>& prepared,
|
|
325
326
|
const std::vector<std::size_t>& fitted, const HeightSampler& ground,
|
|
326
|
-
const
|
|
327
|
-
Backend backend, unsigned threads) {
|
|
327
|
+
const HeightsSampler& batchGround, const DatumKernelIndex& index,
|
|
328
|
+
const CraterApplyOptions& options, Backend backend, unsigned threads) {
|
|
328
329
|
constexpr auto kPoints = static_cast<std::size_t>(kDatumLatticeSide * kDatumLatticeSide);
|
|
329
330
|
Raster<float> lattice(kPoints, fitted.size(), 0.0f);
|
|
330
331
|
std::vector<std::uint8_t> valid(lattice.Size(), 0);
|
|
@@ -341,16 +342,35 @@ void FitDatumsWithKernel(std::vector<PreparedCrater>& prepared,
|
|
|
341
342
|
}
|
|
342
343
|
}
|
|
343
344
|
};
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
345
|
+
const auto keep = [&](std::size_t at, float height) {
|
|
346
|
+
if (!std::isnan(height)) {
|
|
347
|
+
lattice.Values()[at] = height;
|
|
348
|
+
valid[at] = 1;
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
if (batchGround) {
|
|
352
|
+
std::vector<Vec2d> points;
|
|
353
|
+
std::vector<std::size_t> slots;
|
|
354
|
+
for (std::size_t n = 0; n < fitted.size(); ++n) {
|
|
355
|
+
const Crater& c = prepared[fitted[n]].crater;
|
|
356
|
+
forEachPoint(n, [&](std::size_t at, double dx, double dy) {
|
|
357
|
+
points.push_back({c.x + dx, c.y + dy});
|
|
358
|
+
slots.push_back(at);
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
std::vector<float> heights(points.size());
|
|
362
|
+
batchGround(points, heights);
|
|
363
|
+
for (std::size_t i = 0; i < points.size(); ++i) {
|
|
364
|
+
keep(slots[i], heights[i]);
|
|
365
|
+
}
|
|
366
|
+
} else {
|
|
367
|
+
ParallelFor(fitted.size(), threads, [&](std::size_t n) {
|
|
368
|
+
const Crater& c = prepared[fitted[n]].crater;
|
|
369
|
+
forEachPoint(n, [&](std::size_t at, double dx, double dy) {
|
|
370
|
+
keep(at, ground(c.x + dx, c.y + dy));
|
|
371
|
+
});
|
|
352
372
|
});
|
|
353
|
-
}
|
|
373
|
+
}
|
|
354
374
|
std::vector<std::uint32_t> targets(fitted.size());
|
|
355
375
|
for (std::size_t n = 0; n < fitted.size(); ++n) {
|
|
356
376
|
targets[n] = index.slot[fitted[n]];
|
|
@@ -403,20 +423,37 @@ void FitDatumsWithKernel(std::vector<PreparedCrater>& prepared,
|
|
|
403
423
|
/// datum is fitted, so the relief datums are fitted to is the relief applied, and each crater's
|
|
404
424
|
/// slope depends on no other crater of its layer.
|
|
405
425
|
void ShapeOnSlopes(std::vector<PreparedCrater>& prepared, const HeightSampler& ground,
|
|
406
|
-
const
|
|
426
|
+
const HeightsSampler& batch, const DegradationModel& degradation,
|
|
427
|
+
const CraterApplyOptions& options) {
|
|
407
428
|
const CraterSlopeResponse& response = options.slope;
|
|
408
429
|
if (!response.enabled && !response.criticalGradient) {
|
|
409
430
|
return;
|
|
410
431
|
}
|
|
411
|
-
|
|
432
|
+
std::vector<Vec2d> points;
|
|
433
|
+
points.reserve(4 * prepared.size());
|
|
434
|
+
for (const PreparedCrater& crater : prepared) {
|
|
412
435
|
const Crater& c = crater.crater;
|
|
413
436
|
const double half = options.datumFitRadii * 0.5 * c.diameter;
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
|
|
437
|
+
for (const Vec2d offset :
|
|
438
|
+
{Vec2d{half, 0.0}, Vec2d{-half, 0.0}, Vec2d{0.0, half}, Vec2d{0.0, -half}}) {
|
|
439
|
+
points.push_back(options.surface.Locate({c.x, c.y}, offset));
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
std::vector<float> heights(points.size());
|
|
443
|
+
if (batch) {
|
|
444
|
+
batch(points, heights);
|
|
445
|
+
} else {
|
|
446
|
+
for (std::size_t i = 0; i < points.size(); ++i) {
|
|
447
|
+
heights[i] = ground(points[i].x, points[i].y);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
for (std::size_t k = 0; k < prepared.size(); ++k) {
|
|
451
|
+
PreparedCrater& crater = prepared[k];
|
|
452
|
+
const Crater& c = crater.crater;
|
|
453
|
+
const double half = options.datumFitRadii * 0.5 * c.diameter;
|
|
454
|
+
const auto at = [&](std::size_t n) { return static_cast<double>(heights[4 * k + n]); };
|
|
455
|
+
const double east = (at(0) - at(1)) / (2.0 * half);
|
|
456
|
+
const double north = (at(2) - at(3)) / (2.0 * half);
|
|
420
457
|
if (!std::isfinite(east) || !std::isfinite(north)) {
|
|
421
458
|
continue;
|
|
422
459
|
}
|
|
@@ -446,8 +483,9 @@ void FitDatums(std::vector<PreparedCrater>& prepared, const std::vector<std::siz
|
|
|
446
483
|
if (shape && options.datum != CraterDatum::CentreHeight) {
|
|
447
484
|
if (const std::optional<DatumKernelIndex> index =
|
|
448
485
|
IndexDatumRelief(prepared, fitted, profile, *shape, options)) {
|
|
449
|
-
FitDatumsWithKernel(prepared, fitted, ground,
|
|
450
|
-
sampling.
|
|
486
|
+
FitDatumsWithKernel(prepared, fitted, ground,
|
|
487
|
+
sampling.ground ? sampling.groundBatch : HeightsSampler{}, *index,
|
|
488
|
+
options, sampling.backend, sampling.threads);
|
|
451
489
|
return;
|
|
452
490
|
}
|
|
453
491
|
}
|
|
@@ -687,7 +725,8 @@ void ApplyCraters(Raster<float>& raster, const CraterList& craters, const Crater
|
|
|
687
725
|
return static_cast<float>(
|
|
688
726
|
Sample(raster, x, y).value_or(std::numeric_limits<double>::quiet_NaN()));
|
|
689
727
|
});
|
|
690
|
-
ShapeOnSlopes(prepared, beneath,
|
|
728
|
+
ShapeOnSlopes(prepared, beneath, sampling.ground ? sampling.groundBatch : HeightsSampler{},
|
|
729
|
+
*models.degradation, options);
|
|
691
730
|
FitDatums(prepared, onRaster, raster, profile, kernel, options, sampling);
|
|
692
731
|
}
|
|
693
732
|
if (kernel) {
|
|
@@ -741,7 +780,8 @@ void ApplyCraters(SampleBlock& samples, const CraterList& craters, const CraterS
|
|
|
741
780
|
indices.push_back(static_cast<std::size_t>(crater.prepared - prepared.data()));
|
|
742
781
|
}
|
|
743
782
|
if (options.datum != CraterDatum::None && !reaching.empty()) {
|
|
744
|
-
ShapeOnSlopes(prepared, sampling.ground, *models.degradation,
|
|
783
|
+
ShapeOnSlopes(prepared, sampling.ground, sampling.groundBatch, *models.degradation,
|
|
784
|
+
options);
|
|
745
785
|
std::optional<DatumKernelIndex> kernelIndex;
|
|
746
786
|
bool indexed = false;
|
|
747
787
|
std::optional<CraterReliefIndex> index;
|
|
@@ -752,8 +792,8 @@ void ApplyCraters(SampleBlock& samples, const CraterList& craters, const CraterS
|
|
|
752
792
|
indexed = true;
|
|
753
793
|
}
|
|
754
794
|
if (kernelIndex) {
|
|
755
|
-
FitDatumsWithKernel(prepared, {k}, sampling.ground,
|
|
756
|
-
Backend::Cpu, 1);
|
|
795
|
+
FitDatumsWithKernel(prepared, {k}, sampling.ground, sampling.groundBatch,
|
|
796
|
+
*kernelIndex, options, Backend::Cpu, 1);
|
|
757
797
|
return prepared[k].datum;
|
|
758
798
|
}
|
|
759
799
|
}
|
{terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/terraingen/layers/craters/shaping/apply.h
RENAMED
|
@@ -33,6 +33,8 @@ struct CraterSampling {
|
|
|
33
33
|
/// The ground datums are fitted to; empty for the raster as passed in, interpolated
|
|
34
34
|
/// bilinearly.
|
|
35
35
|
HeightSampler ground{};
|
|
36
|
+
/// `ground` at many points in one pass, to the same values; empty reads them one at a time.
|
|
37
|
+
HeightsSampler groundBatch{};
|
|
36
38
|
/// Changes each crater's outline after its irregularity, such as secondaries stretched toward
|
|
37
39
|
/// their primary; empty leaves outlines as they are. Must be deterministic and thread-safe.
|
|
38
40
|
std::function<void(const Crater&, CraterOutline&)> reshape{};
|
|
@@ -13,6 +13,10 @@ namespace terraingen {
|
|
|
13
13
|
/// Heights of the ground at world positions, NaN where there is none; thread-safe.
|
|
14
14
|
using HeightSampler = std::function<float(double x, double y)>;
|
|
15
15
|
|
|
16
|
+
/// Heights of the ground at many world positions at once, into a span of the same size;
|
|
17
|
+
/// thread-safe.
|
|
18
|
+
using HeightsSampler = std::function<void(std::span<const Vec2d> points, std::span<float> heights)>;
|
|
19
|
+
|
|
16
20
|
/// The terrain beneath a layer (its source and the layers before it), readable anywhere.
|
|
17
21
|
///
|
|
18
22
|
/// Layers that depend on the shape of the ground, such as craters cut to a datum, read it here
|
|
@@ -39,6 +43,13 @@ class Ground {
|
|
|
39
43
|
HeightSampler Sampler(double spacing) const {
|
|
40
44
|
return [this, spacing](double x, double y) { return HeightAt(x, y, spacing); };
|
|
41
45
|
}
|
|
46
|
+
|
|
47
|
+
/// A sampler reading `HeightsAt` at a fixed spacing; `*this` must outlive it.
|
|
48
|
+
HeightsSampler BatchSampler(double spacing) const {
|
|
49
|
+
return [this, spacing](std::span<const Vec2d> points, std::span<float> heights) {
|
|
50
|
+
HeightsAt(points, heights, spacing);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
42
53
|
};
|
|
43
54
|
|
|
44
55
|
} // namespace terraingen
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
|
|
8
8
|
#include <algorithm>
|
|
9
9
|
#include <cmath>
|
|
10
|
+
#include <cstdint>
|
|
10
11
|
#include <memory>
|
|
11
12
|
#include <optional>
|
|
12
13
|
#include <stdexcept>
|
|
14
|
+
#include <utility>
|
|
15
|
+
#include <vector>
|
|
13
16
|
|
|
14
17
|
namespace terraingen {
|
|
15
18
|
|
|
@@ -29,6 +32,60 @@ void EvaluateStack(const Terrain& terrain, std::size_t layers, std::span<const V
|
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
|
|
35
|
+
/// The Morton code of `point` on a 2^16 lattice over `bounds`.
|
|
36
|
+
std::uint32_t MortonKey(const Vec2d& point, const Bounds2d& bounds) {
|
|
37
|
+
const auto quantize = [](double value, double low, double high) {
|
|
38
|
+
const double share = high > low ? (value - low) / (high - low) : 0.0;
|
|
39
|
+
return static_cast<std::uint32_t>(std::clamp(share, 0.0, 1.0) * 65535.0);
|
|
40
|
+
};
|
|
41
|
+
const auto spread = [](std::uint32_t v) {
|
|
42
|
+
v = (v | (v << 8u)) & 0x00FF00FFu;
|
|
43
|
+
v = (v | (v << 4u)) & 0x0F0F0F0Fu;
|
|
44
|
+
v = (v | (v << 2u)) & 0x33333333u;
|
|
45
|
+
v = (v | (v << 1u)) & 0x55555555u;
|
|
46
|
+
return v;
|
|
47
|
+
};
|
|
48
|
+
return spread(quantize(point.x, bounds.minX, bounds.maxX)) |
|
|
49
|
+
(spread(quantize(point.y, bounds.minY, bounds.maxY)) << 1u);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/// `EvaluateStack` over `points` in batches on `threads` threads, the points taken in Morton order
|
|
53
|
+
/// so each batch covers a small area and prepares only the features there.
|
|
54
|
+
void EvaluateBatched(const Terrain& terrain, std::size_t layers, std::span<const Vec2d> points,
|
|
55
|
+
std::span<float> heights, double spacing, unsigned threads) {
|
|
56
|
+
constexpr std::size_t kBatch = 256;
|
|
57
|
+
if (points.size() <= kBatch) {
|
|
58
|
+
EvaluateStack(terrain, layers, points, heights, spacing);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
Bounds2d bounds{points[0].x, points[0].y, points[0].x, points[0].y};
|
|
62
|
+
for (const Vec2d& p : points) {
|
|
63
|
+
bounds = {std::fmin(bounds.minX, p.x), std::fmin(bounds.minY, p.y),
|
|
64
|
+
std::fmax(bounds.maxX, p.x), std::fmax(bounds.maxY, p.y)};
|
|
65
|
+
}
|
|
66
|
+
std::vector<std::pair<std::uint32_t, std::size_t>> order(points.size());
|
|
67
|
+
for (std::size_t i = 0; i < points.size(); ++i) {
|
|
68
|
+
order[i] = {MortonKey(points[i], bounds), i};
|
|
69
|
+
}
|
|
70
|
+
std::sort(order.begin(), order.end());
|
|
71
|
+
std::vector<Vec2d> sorted(points.size());
|
|
72
|
+
for (std::size_t i = 0; i < points.size(); ++i) {
|
|
73
|
+
sorted[i] = points[order[i].second];
|
|
74
|
+
}
|
|
75
|
+
std::vector<float> values(points.size());
|
|
76
|
+
EvaluationCache cache;
|
|
77
|
+
const std::size_t batches = (points.size() + kBatch - 1) / kBatch;
|
|
78
|
+
ParallelFor(batches, threads, [&](std::size_t batch) {
|
|
79
|
+
const std::size_t begin = batch * kBatch;
|
|
80
|
+
const std::size_t count = std::min(kBatch, points.size() - begin);
|
|
81
|
+
EvaluateStack(terrain, layers, std::span<const Vec2d>(sorted).subspan(begin, count),
|
|
82
|
+
std::span<float>(values).subspan(begin, count), spacing, &cache);
|
|
83
|
+
});
|
|
84
|
+
for (std::size_t i = 0; i < points.size(); ++i) {
|
|
85
|
+
heights[order[i].second] = values[i];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
32
89
|
} // namespace
|
|
33
90
|
|
|
34
91
|
Raster<float> Evaluate(const Terrain& terrain, const RasterGrid& grid, double spacing) {
|
|
@@ -68,20 +125,8 @@ std::vector<float> EvaluatePoints(const Terrain& terrain, std::span<const Vec2d>
|
|
|
68
125
|
double spacing, unsigned threads) {
|
|
69
126
|
ValidateTerrain(terrain);
|
|
70
127
|
RequirePositive(spacing, "Sample spacing");
|
|
71
|
-
constexpr std::size_t kBatch = 256;
|
|
72
128
|
std::vector<float> heights(points.size());
|
|
73
|
-
|
|
74
|
-
std::optional<EvaluationCache> cache;
|
|
75
|
-
if (batches > 1) {
|
|
76
|
-
cache.emplace();
|
|
77
|
-
}
|
|
78
|
-
ParallelFor(batches, threads, [&](std::size_t batch) {
|
|
79
|
-
const std::size_t begin = batch * kBatch;
|
|
80
|
-
const std::size_t count = std::min(kBatch, points.size() - begin);
|
|
81
|
-
EvaluateStack(terrain, terrain.layers.size(), points.subspan(begin, count),
|
|
82
|
-
std::span<float>(heights).subspan(begin, count), spacing,
|
|
83
|
-
cache ? &*cache : nullptr);
|
|
84
|
-
});
|
|
129
|
+
EvaluateBatched(terrain, terrain.layers.size(), points, heights, spacing, threads);
|
|
85
130
|
return heights;
|
|
86
131
|
}
|
|
87
132
|
|
|
@@ -106,18 +151,7 @@ float TerrainGround::HeightAt(double x, double y, double spacing) const {
|
|
|
106
151
|
|
|
107
152
|
void TerrainGround::HeightsAt(std::span<const Vec2d> points, std::span<float> heights,
|
|
108
153
|
double spacing) const {
|
|
109
|
-
|
|
110
|
-
const std::size_t batches = (points.size() + kBatch - 1) / kBatch;
|
|
111
|
-
std::optional<EvaluationCache> cache;
|
|
112
|
-
if (batches > 1) {
|
|
113
|
-
cache.emplace();
|
|
114
|
-
}
|
|
115
|
-
ParallelFor(batches, 0, [&](std::size_t batch) {
|
|
116
|
-
const std::size_t begin = batch * kBatch;
|
|
117
|
-
const std::size_t count = std::min(kBatch, points.size() - begin);
|
|
118
|
-
EvaluateStack(terrain_, layers_, points.subspan(begin, count),
|
|
119
|
-
heights.subspan(begin, count), spacing, cache ? &*cache : nullptr);
|
|
120
|
-
});
|
|
154
|
+
EvaluateBatched(terrain_, layers_, points, heights, spacing, 0);
|
|
121
155
|
}
|
|
122
156
|
|
|
123
157
|
namespace {
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
#include <gtest/gtest.h>
|
|
4
4
|
|
|
5
|
+
#include <atomic>
|
|
5
6
|
#include <cmath>
|
|
7
|
+
#include <cstdint>
|
|
8
|
+
#include <memory>
|
|
6
9
|
#include <numbers>
|
|
10
|
+
#include <span>
|
|
7
11
|
#include <stdexcept>
|
|
8
12
|
#include <vector>
|
|
9
13
|
|
|
@@ -257,3 +261,45 @@ TEST(ApplyCraters, FitsDatumsToTheSlopeShapedReliefSoNoCraterStandsAsAMesa) {
|
|
|
257
261
|
EXPECT_LT(inside, 0.0) << "the small crater is a hollow in the shifted floor, not a mesa";
|
|
258
262
|
EXPECT_LT(around, 0.4) << "and leaves its surroundings much as they are";
|
|
259
263
|
}
|
|
264
|
+
|
|
265
|
+
TEST(ApplyCraters, ReadsTheGroundBeneathInBatchesToTheSameHeights) {
|
|
266
|
+
const terraingen::CraterShapeModels models{
|
|
267
|
+
std::make_shared<terraingen::FassettThomsonProfile>(),
|
|
268
|
+
std::make_shared<terraingen::NoDegradation>(terraingen::LunarFreshCraterMorphometry)};
|
|
269
|
+
terraingen::Raster<float> base(121, 121, 0.0f);
|
|
270
|
+
base.SetTransform(terraingen::GeoTransform::NorthUp(-60.5, 60.5, 1.0));
|
|
271
|
+
terraingen::CraterList craters;
|
|
272
|
+
for (std::uint32_t n = 0; n < 12; ++n) {
|
|
273
|
+
craters.Append({-40.0 + 7.0 * n, 30.0 - 5.0 * n, 6.0 + n, 0.1, n + 1});
|
|
274
|
+
}
|
|
275
|
+
terraingen::CraterApplyOptions options;
|
|
276
|
+
options.datum = terraingen::CraterDatum::Plane;
|
|
277
|
+
options.slope = Enabled(0.15);
|
|
278
|
+
const auto height = [](double x, double y) {
|
|
279
|
+
return static_cast<float>(0.3 * x + 0.002 * y * y);
|
|
280
|
+
};
|
|
281
|
+
std::atomic<int> singles = 0;
|
|
282
|
+
std::atomic<int> batches = 0;
|
|
283
|
+
terraingen::CraterSampling single;
|
|
284
|
+
single.ground = height;
|
|
285
|
+
terraingen::CraterSampling batched;
|
|
286
|
+
batched.ground = [&](double x, double y) {
|
|
287
|
+
++singles;
|
|
288
|
+
return height(x, y);
|
|
289
|
+
};
|
|
290
|
+
batched.groundBatch = [&](std::span<const Vec2d> points, std::span<float> heights) {
|
|
291
|
+
++batches;
|
|
292
|
+
for (std::size_t i = 0; i < points.size(); ++i) {
|
|
293
|
+
heights[i] = height(points[i].x, points[i].y);
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
terraingen::Raster<float> one = base;
|
|
297
|
+
terraingen::ApplyCraters(one, craters, models, options, single);
|
|
298
|
+
terraingen::Raster<float> many = base;
|
|
299
|
+
terraingen::ApplyCraters(many, craters, models, options, batched);
|
|
300
|
+
EXPECT_EQ(singles.load(), 0) << "slopes and datums read in batches";
|
|
301
|
+
EXPECT_EQ(batches.load(), 2) << "one for the slopes, one for the datums";
|
|
302
|
+
for (std::size_t i = 0; i < one.Size(); ++i) {
|
|
303
|
+
ASSERT_EQ(one.Values()[i], many.Values()[i]);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
@@ -353,3 +353,15 @@ TEST(SharedGround, OutlivesTheTerrainItWasMadeFrom) {
|
|
|
353
353
|
EXPECT_EQ(heights[0], expected);
|
|
354
354
|
EXPECT_THROW(terraingen::SharedGround(Rolling(), 99), std::invalid_argument);
|
|
355
355
|
}
|
|
356
|
+
|
|
357
|
+
TEST(EvaluatePoints, GivesEachPointItsOwnHeightInAnyOrder) {
|
|
358
|
+
const Terrain terrain = Rolling();
|
|
359
|
+
std::vector<terraingen::Vec2d> points;
|
|
360
|
+
for (int n = 0; n < 700; ++n) {
|
|
361
|
+
points.push_back({std::fmod(n * 37.77, 90.0) - 45.0, std::fmod(n * 91.13, 90.0) - 45.0});
|
|
362
|
+
}
|
|
363
|
+
const std::vector<float> heights = terraingen::EvaluatePoints(terrain, points, 1.0, 3);
|
|
364
|
+
for (std::size_t n = 0; n < points.size(); n += 23) {
|
|
365
|
+
ASSERT_EQ(heights[n], terraingen::EvaluateAt(terrain, points[n].x, points[n].y, 1.0)) << n;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Textures
|
|
2
|
-
|
|
3
|
-
Tileable detail textures for terrain materials, stored in Git LFS.
|
|
4
|
-
|
|
5
|
-
| Files | Source | License |
|
|
6
|
-
| --- | --- | --- |
|
|
7
|
-
| `moon_01_diff_4k.jpg`, `moon_01_nor_gl_4k.exr`, `moon_01_rough_4k.exr`, `moon_01_disp_4k.png` | Poly Haven, "Moon 01" by Greg Zaal, Rico Cilliers and Jenelle van Heerden (photography) and Dario Barresi (processing), <https://polyhaven.com/a/moon_01> | CC0 1.0 |
|
|
8
|
-
|
|
9
|
-
The moon_01 scan covers about 3.1 m of lunar regolith per tile: diffuse colour (sRGB), OpenGL
|
|
10
|
-
normal map, roughness and displacement, at 4096 x 4096.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/ISSUE_TEMPLATE/feature_request.yml
RENAMED
|
File without changes
|
|
File without changes
|
{terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/.github/scripts/install-lavapipe-windows.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{terraingenpy-0.1.1.dev20 → terraingenpy-0.1.1.dev23}/cmake/third_party/vulkan_headers.cmake
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|