terraingenpy 0.1.1.dev91__tar.gz → 0.1.1.dev95__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/CHANGELOG.md +3 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/CMakeLists.txt +1 -1
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/PKG-INFO +1 -1
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/README.md +3 -3
- terraingenpy-0.1.1.dev95/examples/config/boulders/example_boulders_manual.json +76 -0
- terraingenpy-0.1.1.dev95/examples/config/craters/example_craters_manual_depth.json +62 -0
- terraingenpy-0.1.1.dev95/examples/config/terrain/example_terrain_hierarchy.json +53 -0
- terraingenpy-0.1.1.dev95/examples/cpp/boulders/example_boulders_manual.cpp +165 -0
- terraingenpy-0.1.1.dev95/examples/cpp/craters/example_craters_manual_depth.cpp +118 -0
- terraingenpy-0.1.1.dev95/examples/python/boulders/example_boulders_manual.py +121 -0
- terraingenpy-0.1.1.dev95/examples/python/craters/example_craters_manual_depth.py +100 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/CMakeLists.txt +1 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/build.cpp +37 -18
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/config.h +86 -3
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/craters.h +6 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/enums.h +25 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/fields.h +4 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/outputs.h +56 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/sources.h +13 -1
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/generate.cpp +114 -10
- terraingenpy-0.1.1.dev95/terraingen/config/hierarchy.cpp +293 -0
- terraingenpy-0.1.1.dev95/terraingen/config/hierarchy.h +61 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/validate.cpp +54 -19
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/validate.h +2 -1
- terraingenpy-0.1.1.dev95/terraingen/pipeline/height_mesh.cpp +133 -0
- terraingenpy-0.1.1.dev95/terraingen/pipeline/height_mesh.h +35 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/pipeline.cpp +15 -4
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_pipeline.py +37 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/CMakeLists.txt +1 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/build_test.cpp +181 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/generate_terrain_test.cpp +101 -0
- terraingenpy-0.1.1.dev95/tests/unit/config/hierarchy_test.cpp +219 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/json_io_test.cpp +47 -1
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/schema_test.cpp +27 -3
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/validate_config_test.cpp +62 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/midpoint_displacement_test.cpp +30 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/height_mesh_test.cpp +38 -0
- terraingenpy-0.1.1.dev91/terraingen/pipeline/height_mesh.cpp +0 -71
- terraingenpy-0.1.1.dev91/terraingen/pipeline/height_mesh.h +0 -21
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.clang-format +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.clang-tidy +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.cmake-format.yaml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.dockerignore +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.gitattributes +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.github/pull_request_template.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.github/scripts/install-lavapipe-windows.sh +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.github/workflows/ci.yml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.gitignore +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/.pre-commit-config.yaml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/CITATION.cff +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/CONTRIBUTING.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/Dockerfile +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/LICENSE +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/README.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/README.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_diff_4k.jpg +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_disp_4k.png +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/moon_01_rough_4k.exr +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_ao_2k.png +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_arm_2k.png +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_diff_2k.png +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_disp_2k.png +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_nor_dx_2k.exr +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_nor_gl_2k.exr +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/assets/textures/seaside_rock_rough_2k.exr +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/BuildInfo.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/CoverageBadge.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/EmbedFile.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/Kernel.cpp.in +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/TerrainGenPackaging.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/TerrainGenSlang.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/TerrainGenTesting.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/terraingenConfig.cmake.in +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/benchmark.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/ernie.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/googletest.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/mesh_formats.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/miniz.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/nanobind.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/nvrtc.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/slang.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/volk.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/cmake/third_party/vulkan_headers.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/.gitignore +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/Makefile +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/README.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/api/cpp.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/api/python.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/concepts/index.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/css/extra.css +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/getting-started/command-line.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/getting-started/gui.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/getting-started/index.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/getting-started/installation.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/getting-started/quickstart.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/guides/index.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/index.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/overrides/home.html +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/overrides/partials/header.html +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/requirements.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/scripts/generate_schema.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/docs/validation/index.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_fresh.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_freshness.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_steady_state.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/ages/example_ages_uniform.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_new_crater.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_rgb.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/albedo/example_albedo_synthetic.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_buried.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_ejecta.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_exposure.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_fragments.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_layer.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_max_slope.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_models.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_patches.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_rock_abundance.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_rolling.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_scene.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_shapes.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_slope_map.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_sp8023.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_datum.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_degradation_none.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_interior_replacement.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_irregular.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_manual.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_max_craters.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_profile_complex.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_secondaries.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_secondary_rays.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_simple.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_slopes.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_spacing.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_texture.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/craters/example_craters_wall_marks.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_power_law.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_tabulated.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/distributions/example_distributions_viper.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/layers/example_layers_regions.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/layers/example_layers_roughness.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_craters.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_dunes.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_exposure.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_pavement.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_sand_shadows.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_strata.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mars_ventifacts.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_mercury_site.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/planets/example_planets_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_billow.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_cellular.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_fbm.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_layered.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_ridged.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_roughness.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/config/terrain/example_terrain_voronoi.json +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/ages/example_ages_models.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/common/browser.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/common/browser.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/common/example.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/common/example.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/common/main.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/common/standalone_main.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/config/example_config_load.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_manual.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/craters/example_craters_simple.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/layers/example_layers_custom.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/layers/example_layers_regions.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/planets/example_planets_moon.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/__main__.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/_browser.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/_common.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/_harness.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/_images.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/ages/example_ages_models.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/albedo/example_albedo_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/albedo/example_albedo_options.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_exposure.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_layer.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_positioning.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_shapes.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/boulders/example_boulders_size_models.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/config/example_config_load.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_age_sweep.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_apply_options.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_degradation.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_irregularity.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_manual.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_positioning.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_profiles.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_secondaries.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/craters/example_craters_simple.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/distributions/example_distributions_csfd.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/distributions/example_distributions_custom.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/layers/example_layers_custom.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/layers/example_layers_regions.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_body_mesh.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mars.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mars_dunes.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mars_exposure.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_mercury.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/planets/example_planets_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/sources/example_sources_chain.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/sources/example_sources_raster_detail.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_fbm.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_layered.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_point_queries.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_quadtree.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/mkdocs.yml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/pyproject.toml +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/albedo.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/bands.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/bands.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/blast_zones.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/blast_zones.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/brightness_statistics.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/brightness_statistics.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/crater_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/crater_albedo.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/maturity.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/maturity.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/photometry.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/photometry.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/raster_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/raster_albedo.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/rock_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/rock_albedo.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/slope_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/slope_albedo.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/splotches.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/splotches.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/synthetic.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/albedo/synthetic.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/cli.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/cli.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/config_editor.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/config_editor.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/gui_app.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/gui_app.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/run.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/run.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/run_none.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/terrain_scene.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/terrain_scene.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/gui/widgets.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/app/main.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/build.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/config.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/feature_lists.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/albedo.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/boulders.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/checks.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/common.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/crater_models.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/json_io.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/layers.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/maps.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/materials.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/fields/ranges.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/generate.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/json.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/json.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/ranges.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/config/schema.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/composition.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/composition.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/equilibrium.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/equilibrium.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/exponential_chronology.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/exponential_chronology.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/golombek_rapp.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/golombek_rapp.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/ivanov.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/ivanov.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/log_polynomial.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/log_polynomial.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/minimum.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/minimum.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/moore.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/moore.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/neukum.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/neukum.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_power_law.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_power_law.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_uniform.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/piecewise_uniform.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/power_law.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/power_law.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/production_surface.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/production_surface.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/size_frequency.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/size_frequency.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/sp8023.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/sp8023.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/spliced.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/spliced.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/summed.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/summed.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/synthterrain.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/synthterrain.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/tabulated.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/tabulated.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/viper.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/distribution/viper.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/backend.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/backend.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/cuda.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/cuda.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/device.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/kernel.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/kernel.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/kernel.slang +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/metal.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/metal.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/program.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/vulkan.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/gpu/vulkan.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/anchored_plane.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/anchored_plane.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/bedforms.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/bedforms.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/bisection.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/abundance.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_abundance.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_abundance.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_clusters.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_clusters.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_fragments.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_fragments.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_layer.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_models.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_models.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_options.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_options.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_placer.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_shape.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/boulder_shape.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/ejecta_index.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/boulders/ejecta_index.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/age_model.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/age_model.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/freshness.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/freshness.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/ages/steady_state.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_layer.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_placer.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/crater_placer.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusion.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusion.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/diffusivities.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/freshness.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/degradation/state.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/cell_cache.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/population.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/population.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/resolved_limit.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/resolved_limit.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/spacing.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/generation/spacing.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/complex.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/complex.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/profiles/profile.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/rays.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/rays.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondaries.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondaries.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondary_model.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/secondary_model.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/apply_options.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/attributes.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/crater_kernel.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/datum.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/datum.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/explicit_state.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/explicit_state.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/irregularity.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/irregularity.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/morphometry.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/prepared.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/prepared.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/slope.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/craters/shaping/slope.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/density_map.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/density_map.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/detail.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/detail.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/dunes.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/dunes.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/evaluation_cache.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/exposure.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/exposure.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/fade.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/fade.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/ground.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/ground.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernel.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/cell.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/crater_body_datums.slang +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/crater_datums.slang +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/craters.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/craters.slang +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/kernels/noise_relief.slang +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/lattice.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/layer.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/layer.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/material.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/material.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/midpoint_displacement.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/midpoint_displacement.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/noise_relief.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/pavement.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/pavement.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/region.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/region.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/roughness.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/roughness.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/sample_block.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/sample_block.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_fill.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_fill.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_shadow.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/sand_shadow.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/strata.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/strata.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/transforms.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/layers/transforms.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/formats.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/gltf.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/icq.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/icq.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/mesh_io.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/mesh_io.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/obj.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/io/stl.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/mesh.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/polyhedra.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/polyhedra.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/shape_model.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/mesh/shape_model.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/fractal.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/hash.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/lattice.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/noise_layers.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/perlin.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/simplex.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/validate.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/validate.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/value.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/noise/worley.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/body_mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/body_mesh.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/features.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/features.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/materials.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/materials.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/terrain.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/terrain.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/tiles.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/pipeline/tiles.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/arrays.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/bindings.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/boulders.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/casters.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/common.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/crater_models.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/craters.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/distribution.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/gpu.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/layers.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/materials.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/module.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/noise.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/objects.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/options.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/random.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/raster.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/sources.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/tables.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/trampolines.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/src/util.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/terraingen/__init__.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/python/terraingen/render.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/philox.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/samplers.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/samplers.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/stream.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/stream.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/streams.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/value_distribution.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/random/value_distribution.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/cell_loops.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/cell_loops.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/gaussian_blur.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/gaussian_blur.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geo_transform.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff_read.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/geotiff/tiff_format.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/grid.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/grid.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/raster.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/raster_stats.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/resample.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/raster/resample.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/field.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/field.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/flat_source.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/flat_source.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/geotiff_source.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/geotiff_source.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/raster_source.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/raster_source.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/source.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/source_chain.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/source_chain.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/synthetic_terrain.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/sources/synthetic_terrain.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/terraingen.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/arithmetic.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/bits.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/build_info.cpp.in +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/build_info.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/cells.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/checks.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/checks.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/cube_faces.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/cube_sphere_cells.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/fft.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/fft.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/files.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/files.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/geometry.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/log.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/log.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/lru_cache.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/overloaded.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/parallel.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/parallel.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/planar_cells.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/portable.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/radial_shape.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/radial_shape.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/span.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/special_functions.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/special_functions.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/surface.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/surface.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/text.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/text.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/version.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/terraingen/util/version.h.in +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/benchmark/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_boulders.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_craters.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_grids.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_point_queries.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/benchmark/bench_python_subclasses.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/benchmark/fixtures.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/golden/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/golden/noise/kernels_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/integration/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/integration/build_info_stable.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/integration/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/integration/package/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/integration/package/main.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/integration/package/test_debian_packages.cmake +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/conftest.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_albedo.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_boulders.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_config.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_crater_models.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_craters.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_distributions.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_examples_harness.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_gpu.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_layers.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_meshes.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_noise.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_random.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_raster.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_render.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_sources.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_stubs.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_tiles.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/python/test_util.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/distribution/crater_references_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/craters/population_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/statistical/random/random_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/support/log_capture.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/support/lunar_craters.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/support/raster_equality.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/support/statistics.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/support/temp_path.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/bands_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/blast_zones_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/crater_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/photometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/rock_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/slope_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/albedo/splotches_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/app/cli_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/config_editor_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/gui_app_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/angles_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/checks_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/config_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/configs.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/feature_lists_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/json_parse_errors_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/json_read_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/ranges_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/validate_sources_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/config/write_outputs_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/composition_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/equilibrium_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/exponential_chronology_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/ivanov_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/minimum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/moore_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/neukum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/piecewise_uniform_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/production_surface_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/sp8023_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/spliced_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/summed_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/synthterrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/tabulated_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/distribution/viper_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/examples/example_browser_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/examples/example_harness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/backend_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/noise_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/gpu/vulkan_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/anchored_plane_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/bedforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/bisection_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_models_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_options_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/boulders/manual_boulder_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/ages/freshness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/crater_layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/crater_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/generation/population_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/generation/resolved_limit_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/secondaries_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/apply_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/datum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/explicit_state_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/shaping/slope_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/craters/sphere_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/density_map_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/detail_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/dunes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/exposure_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/fade_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/ground_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/lattice_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/noise_relief_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/pavement_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/region_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sample_block_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sand_fill_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sand_shadow_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/sphere_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/strata_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/layers/transforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/io/icq_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/io/mesh_io_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/mesh_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/polyhedra_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/shape_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/mesh/support.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/fractal_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/hash_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/noise3_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/noise_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/perlin_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/simplex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/validate_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/value_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/noise/worley_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/features_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/materials_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/terrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/terrain_tiles_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/terrains.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/tile_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/pipeline/tiling_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/random/philox_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/random/samplers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/random/stream_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/random/value_distribution_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/cell_loops_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/gdal_fixtures.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/geo_transform_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/geotiff_fixtures.inc +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/geotiff_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/grid_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/raster_stats_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/raster_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/resample_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/raster/tiff_format_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/sources/field_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/sources/flat_source_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/sources/geotiff_source_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/sources/raster_source_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/sources/source_chain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/cells_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/checks_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/fft_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/geometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/log_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/lru_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/overloaded_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/parallel_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/radial_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/span_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/special_functions_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/surface_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/text_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/tests/unit/util/version_test.cpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/README.md +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/cgltf/LICENSE +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/cgltf/cgltf.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/cgltf/cgltf_write.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/miniz/LICENSE +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/miniz/miniz.c +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/miniz/miniz.h +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/nlohmann/LICENSE.MIT +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/nlohmann/json.hpp +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/tinyobjloader/LICENSE +0 -0
- {terraingenpy-0.1.1.dev91 → terraingenpy-0.1.1.dev95}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
|
@@ -29,6 +29,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
29
29
|
- Midpoint displacement layer: random midpoint displacement (diamond-square) expansion of a DEM or any base lattice to finer spacings, as PANGU expands DEMs (Martin et al. 2014), keeping every coarser node so nested grids share their cells, with the scale and fractal dimension estimated from the base when not given.
|
|
30
30
|
- Manual craters with an explicit rim-to-floor depth and rim height, in place of what the degradation model and age give; diffusion profiles solve for the age that reaches the depth.
|
|
31
31
|
- Manual boulders that fix any of their height, burial, yaw, lean, tilt, rest, wear and shape seed; unset fields are drawn as for generated boulders, and fixed ones are neither re-settled nor broken.
|
|
32
|
+
- Multi-resolution hierarchies: a `hierarchy` section nests squares in a base grid, each level twice as fine (or `factor` times) on its parent's cell centres, writes heightmaps, meshes, lists and maps per grid as `region_{region}_level_{level}` with a JSON manifest, blends each level's edges into its parent's so meshes meet without gaps, cuts meshes out under finer levels and hangs skirts, and rejects overlapping regions.
|
|
33
|
+
- Terrain meshes take `cutouts`, a `skirt` and a frame `site`.
|
|
34
|
+
- Configuration keys `region` (`min_x`, `min_y`, `max_x`, `max_y` in CRS units) on raster bases and `dem_detail` layers to read only a window of a DEM, and `unresolved_pixels_across` on crater layers to generate only the craters the base DEM does not already resolve, combined with any catalog `completeness`.
|
|
32
35
|
|
|
33
36
|
### Changed
|
|
34
37
|
|
|
@@ -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.dev95")
|
|
12
12
|
string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" TERRAINGEN_VERSION "${TERRAINGEN_FULL_VERSION}")
|
|
13
13
|
|
|
14
14
|
project(
|
|
@@ -54,11 +54,11 @@ Options:
|
|
|
54
54
|
|
|
55
55
|
| Category | Config | C++ | Python |
|
|
56
56
|
| --- | --- | --- | --- |
|
|
57
|
-
| terrain | `example_terrain_billow`, `_cellular`, `_domain_warp`, `_fbm`, `_layered`, `_ridged`, `_roughness`, `_voronoi` | `example_terrain_fbm`, `_layered` | `example_terrain_fbm`, `_fractal_types`, `_hurst_sweep`, `_layered`, `_noise_kernels` |
|
|
58
|
-
| craters | `example_craters_datum`, `_degradation_diffusion`, `_degradation_none`, `_interior_replacement`, `_irregular`, `_manual`, `_max_craters`, `_profile_complex`, `_profile_martin_parkes_dunstan`, `_rim_smoothing_soft`, `_secondaries`, `_secondary_rays`, `_simple`, `_smoothed_rims`, `_spacing` | `example_craters_degradation`, `_manual`, `_profiles`, `_secondaries`, `_simple` | `example_craters_age_sweep`, `_apply_options`, `_degradation`, `_irregularity`, `_manual`, `_positioning`, `_profiles`, `_rim_smoothing`, `_secondaries`, `_simple` |
|
|
57
|
+
| terrain | `example_terrain_billow`, `_cellular`, `_domain_warp`, `_fbm`, `_hierarchy`, `_layered`, `_ridged`, `_roughness`, `_voronoi` | `example_terrain_fbm`, `_layered` | `example_terrain_fbm`, `_fractal_types`, `_hurst_sweep`, `_layered`, `_noise_kernels` |
|
|
58
|
+
| craters | `example_craters_datum`, `_degradation_diffusion`, `_degradation_none`, `_interior_replacement`, `_irregular`, `_manual`, `_manual_depth`, `_max_craters`, `_profile_complex`, `_profile_martin_parkes_dunstan`, `_rim_smoothing_soft`, `_secondaries`, `_secondary_rays`, `_simple`, `_smoothed_rims`, `_spacing` | `example_craters_degradation`, `_manual`, `_manual_depth`, `_profiles`, `_secondaries`, `_simple` | `example_craters_age_sweep`, `_apply_options`, `_degradation`, `_irregularity`, `_manual`, `_manual_depth`, `_positioning`, `_profiles`, `_rim_smoothing`, `_secondaries`, `_simple` |
|
|
59
59
|
| distributions | `example_distributions_moore_rough_mare`, `_piecewise_power_law`, `_power_law`, `_tabulated`, `_trask_equilibrium`, `_viper` | `example_distributions_csfd` | `example_distributions_csfd`, `_custom` |
|
|
60
60
|
| ages | `example_ages_fresh`, `_freshness`, `_steady_state`, `_uniform` | `example_ages_models` | `example_ages_models` |
|
|
61
|
-
| boulders | `example_boulders_buried`, `_ejecta`, `_fragments`, `_exposure`, `_layer`, `_models`, `_patches`, `_scene`, `_shapes`, `_sp8023` | `example_boulders_ejecta`, `_layer`, `_shapes` | `example_boulders_exposure`, `_layer`, `_positioning`, `_shapes`, `_size_models` |
|
|
61
|
+
| boulders | `example_boulders_buried`, `_ejecta`, `_fragments`, `_exposure`, `_layer`, `_manual`, `_models`, `_patches`, `_scene`, `_shapes`, `_sp8023` | `example_boulders_ejecta`, `_layer`, `_manual`, `_shapes` | `example_boulders_exposure`, `_layer`, `_manual`, `_positioning`, `_shapes`, `_size_models` |
|
|
62
62
|
| albedo | `example_albedo_blast_zone`, `_crater_rays`, `_fresh_crater`, `_moon_site`, `_new_crater`, `_oblique_rays`, `_rgb`, `_synthetic` | `example_albedo_crater_rays` | `example_albedo_crater_rays`, `_moon_site`, `_options` |
|
|
63
63
|
| layers | `example_layers_regions`, `_roughness`, `_scale_and_clamp` | `example_layers_custom`, `_regions` | `example_layers_custom`, `_regions` |
|
|
64
64
|
| planets | `example_planets_asteroid_body_mesh`, `_mars_bedforms`, `_mars_craters`, `_mars_dunes`, `_mars_exposure`, `_mars_pavement`, `_mars_sand_fill`, `_mars_sand_shadows`, `_mars_strata`, `_mars_ventifacts`, `_mercury_site`, `_moon_body_mesh`, `_moon_site` | `example_planets_moon` | `example_planets_body_mesh`, `_mars`, `_mars_dunes`, `_mars_exposure`, `_mercury`, `_moon_site` |
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"layers": [
|
|
4
|
+
{
|
|
5
|
+
"type": "boulders",
|
|
6
|
+
"seed": 1,
|
|
7
|
+
"coverage": 0.03,
|
|
8
|
+
"sizes": {
|
|
9
|
+
"type": "golombek_rapp"
|
|
10
|
+
},
|
|
11
|
+
"min_diameter": 0.1,
|
|
12
|
+
"max_diameter": 1.0,
|
|
13
|
+
"models": {
|
|
14
|
+
"min_diameter": 0.5
|
|
15
|
+
},
|
|
16
|
+
"manual": [
|
|
17
|
+
{
|
|
18
|
+
"x": -6,
|
|
19
|
+
"y": 4,
|
|
20
|
+
"diameter": 1.6,
|
|
21
|
+
"id": 101,
|
|
22
|
+
"height": 0.9,
|
|
23
|
+
"burial": 0.3,
|
|
24
|
+
"yaw_deg": 30,
|
|
25
|
+
"lean_deg": 5,
|
|
26
|
+
"tilt_deg": 15,
|
|
27
|
+
"tilt_azimuth_deg": 90,
|
|
28
|
+
"wear": 0.2,
|
|
29
|
+
"rest": "side",
|
|
30
|
+
"shape_seed": 7
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"x": 5,
|
|
34
|
+
"y": 3,
|
|
35
|
+
"diameter": 1.2,
|
|
36
|
+
"yaw_deg": 90,
|
|
37
|
+
"burial": 0.5
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"x": 0,
|
|
41
|
+
"y": -6,
|
|
42
|
+
"diameter": 1.0
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"outputs": [
|
|
48
|
+
{
|
|
49
|
+
"type": "heightmap",
|
|
50
|
+
"path": "example_boulders_manual.tif",
|
|
51
|
+
"region": {
|
|
52
|
+
"width": 801,
|
|
53
|
+
"height": 801,
|
|
54
|
+
"pixel_size": 0.05
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "boulder_list",
|
|
59
|
+
"path": "example_boulders_manual.csv",
|
|
60
|
+
"region": {
|
|
61
|
+
"width": 801,
|
|
62
|
+
"height": 801,
|
|
63
|
+
"pixel_size": 0.05
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"type": "boulder_models",
|
|
68
|
+
"path": "example_boulders_manual.glb",
|
|
69
|
+
"region": {
|
|
70
|
+
"width": 801,
|
|
71
|
+
"height": 801,
|
|
72
|
+
"pixel_size": 0.05
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"layers": [
|
|
4
|
+
{
|
|
5
|
+
"type": "craters",
|
|
6
|
+
"generate": false,
|
|
7
|
+
"profile": {
|
|
8
|
+
"type": "martin_parkes_dunstan"
|
|
9
|
+
},
|
|
10
|
+
"degradation": {
|
|
11
|
+
"type": "freshness"
|
|
12
|
+
},
|
|
13
|
+
"manual": [
|
|
14
|
+
{
|
|
15
|
+
"x": -22,
|
|
16
|
+
"y": 20,
|
|
17
|
+
"diameter": 20,
|
|
18
|
+
"depth": 3.0,
|
|
19
|
+
"rim_height": 0.8
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"x": 22,
|
|
23
|
+
"y": 22,
|
|
24
|
+
"diameter": 16,
|
|
25
|
+
"depth": 1.2
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"x": -20,
|
|
29
|
+
"y": -22,
|
|
30
|
+
"diameter": 24,
|
|
31
|
+
"depth": 2.0,
|
|
32
|
+
"rim_height": 0.3
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"x": 22,
|
|
36
|
+
"y": -20,
|
|
37
|
+
"diameter": 18
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"outputs": [
|
|
43
|
+
{
|
|
44
|
+
"type": "heightmap",
|
|
45
|
+
"path": "example_craters_manual_depth.tif",
|
|
46
|
+
"region": {
|
|
47
|
+
"width": 401,
|
|
48
|
+
"height": 401,
|
|
49
|
+
"pixel_size": 0.25
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "crater_list",
|
|
54
|
+
"path": "example_craters_manual_depth.csv",
|
|
55
|
+
"region": {
|
|
56
|
+
"width": 401,
|
|
57
|
+
"height": 401,
|
|
58
|
+
"pixel_size": 0.25
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"layers": [
|
|
4
|
+
{
|
|
5
|
+
"type": "noise",
|
|
6
|
+
"stack": [
|
|
7
|
+
{
|
|
8
|
+
"seed": 3,
|
|
9
|
+
"wavelength": 600,
|
|
10
|
+
"amplitude": 30,
|
|
11
|
+
"octaves": 5
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "midpoint_displacement",
|
|
17
|
+
"pixel_size": 4,
|
|
18
|
+
"origin_x": -512,
|
|
19
|
+
"origin_y": 512,
|
|
20
|
+
"fractal_dimension": 2.3,
|
|
21
|
+
"scale": 0.4,
|
|
22
|
+
"base": "source"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"hierarchy": {
|
|
26
|
+
"path": "example_terrain_hierarchy/region_{region}_level_{level}",
|
|
27
|
+
"base": {
|
|
28
|
+
"width": 257,
|
|
29
|
+
"height": 257,
|
|
30
|
+
"pixel_size": 4
|
|
31
|
+
},
|
|
32
|
+
"regions": [
|
|
33
|
+
{
|
|
34
|
+
"centre_x": -150,
|
|
35
|
+
"centre_y": 100,
|
|
36
|
+
"size": 256,
|
|
37
|
+
"levels": 3
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"centre_x": 250,
|
|
41
|
+
"centre_y": -200,
|
|
42
|
+
"size": 128,
|
|
43
|
+
"levels": 2
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"products": [
|
|
47
|
+
"heightmap",
|
|
48
|
+
"terrain_mesh"
|
|
49
|
+
],
|
|
50
|
+
"skirt": 2,
|
|
51
|
+
"manifest": "example_terrain_hierarchy/manifest.json"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/// Hand-placed boulders on a small flat site, as for a rover test scene: one with its whole pose
|
|
2
|
+
/// and shape fixed, one with only its yaw and burial fixed and one given only its position and
|
|
3
|
+
/// diameter, among a sparse generated population. Fields left unset are drawn as for generated
|
|
4
|
+
/// boulders, and boulders 0.5 m or larger are placed as 3D boulder models. Writes the heights,
|
|
5
|
+
/// the boulder list and the models as a glTF scene. The same terrain as
|
|
6
|
+
/// examples/config/boulders/example_boulders_manual.json.
|
|
7
|
+
///
|
|
8
|
+
/// example_boulders_manual [--output-dir DIR] [--test]
|
|
9
|
+
/// terraingen-examples boulders_manual
|
|
10
|
+
|
|
11
|
+
#include "common/example.h"
|
|
12
|
+
#include "terraingen/terraingen.h"
|
|
13
|
+
|
|
14
|
+
#include <cstddef>
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
#include <filesystem>
|
|
17
|
+
#include <memory>
|
|
18
|
+
#include <string>
|
|
19
|
+
#include <vector>
|
|
20
|
+
|
|
21
|
+
namespace {
|
|
22
|
+
|
|
23
|
+
/// A manual boulder at (`x`, `y`), `diameter` long, fixing nothing else.
|
|
24
|
+
terraingen::ManualBoulder Plain(double x, double y, double diameter) {
|
|
25
|
+
terraingen::ManualBoulder boulder;
|
|
26
|
+
boulder.x = x;
|
|
27
|
+
boulder.y = y;
|
|
28
|
+
boulder.diameter = diameter;
|
|
29
|
+
return boulder;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/// The name of `rest` as the configs write it.
|
|
33
|
+
const char* RestName(terraingen::BoulderRest rest) {
|
|
34
|
+
switch (rest) {
|
|
35
|
+
case terraingen::BoulderRest::Side:
|
|
36
|
+
return "side";
|
|
37
|
+
case terraingen::BoulderRest::End:
|
|
38
|
+
return "end";
|
|
39
|
+
default:
|
|
40
|
+
return "face";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/// The placed boulder of ID `id`, or null.
|
|
45
|
+
const terraingen::Boulder* Find(const std::vector<terraingen::Boulder>& boulders,
|
|
46
|
+
std::uint64_t id) {
|
|
47
|
+
for (const terraingen::Boulder& boulder : boulders) {
|
|
48
|
+
if (boulder.id == id) {
|
|
49
|
+
return &boulder;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return nullptr;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
class BouldersManual : public terraingen::examples::Example {
|
|
56
|
+
public:
|
|
57
|
+
using Example::Example;
|
|
58
|
+
|
|
59
|
+
void Generate() override {
|
|
60
|
+
terraingen::ManualBoulder posed = Plain(-6.0, 4.0, 1.6);
|
|
61
|
+
posed.id = 101;
|
|
62
|
+
posed.height = 0.9;
|
|
63
|
+
posed.burial = 0.3;
|
|
64
|
+
posed.yaw = 30.0 * terraingen::kDegree;
|
|
65
|
+
posed.lean = 5.0 * terraingen::kDegree;
|
|
66
|
+
posed.tilt = 15.0 * terraingen::kDegree;
|
|
67
|
+
posed.tiltAzimuth = 90.0 * terraingen::kDegree;
|
|
68
|
+
posed.wear = 0.2;
|
|
69
|
+
posed.rest = terraingen::BoulderRest::Side;
|
|
70
|
+
posed.shapeSeed = 7u;
|
|
71
|
+
terraingen::ManualBoulder partly = Plain(5.0, 3.0, 1.2);
|
|
72
|
+
partly.yaw = 90.0 * terraingen::kDegree;
|
|
73
|
+
partly.burial = 0.5;
|
|
74
|
+
manual_ = {posed, partly, Plain(0.0, -6.0, 1.0)};
|
|
75
|
+
|
|
76
|
+
terraingen::BoulderLayerOptions options;
|
|
77
|
+
options.sizes.coverage = 0.03;
|
|
78
|
+
options.sizes.minDiameter = 0.1;
|
|
79
|
+
options.sizes.maxDiameter = 1.0;
|
|
80
|
+
options.rendering.models.minDiameter = 0.5;
|
|
81
|
+
options.manual = manual_;
|
|
82
|
+
|
|
83
|
+
terraingen::Terrain terrain;
|
|
84
|
+
terrain.source = std::make_shared<terraingen::FlatSource>(801, 801, 0.05);
|
|
85
|
+
terrain.layers.push_back(std::make_shared<terraingen::BoulderLayer>(options));
|
|
86
|
+
|
|
87
|
+
evaluated_ = terraingen::Evaluate(terrain);
|
|
88
|
+
boulders_ =
|
|
89
|
+
terraingen::PlacedBoulders(terrain, terraingen::RasterGrid::FromRaster(evaluated_));
|
|
90
|
+
Out() << boulders_.boulders.size() << " boulders, " << boulders_.models.size()
|
|
91
|
+
<< " of them boulder models\n";
|
|
92
|
+
for (const terraingen::ManualBoulder& manual : manual_) {
|
|
93
|
+
const terraingen::Boulder* b =
|
|
94
|
+
Find(boulders_.boulders, terraingen::ManualBoulderId(manual));
|
|
95
|
+
if (b == nullptr) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
Out() << "boulder " << b->id << " at (" << b->x << ", " << b->y << "), " << b->diameter
|
|
99
|
+
<< " m long, " << b->height << " m high, burial " << b->burial << ", yaw "
|
|
100
|
+
<< b->yaw * terraingen::kRadian << " deg, lean " << b->lean * terraingen::kRadian
|
|
101
|
+
<< " deg, tilt " << b->tilt * terraingen::kRadian << " deg toward "
|
|
102
|
+
<< b->tiltAzimuth * terraingen::kRadian << " deg, wear " << b->wear << ", rest "
|
|
103
|
+
<< RestName(b->rest) << ", shape seed "
|
|
104
|
+
<< (b->shapeSeed ? std::to_string(*b->shapeSeed) : std::string("from its ID"))
|
|
105
|
+
<< "\n";
|
|
106
|
+
}
|
|
107
|
+
Show("heights", evaluated_);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
void Save(const std::filesystem::path& dir) override {
|
|
111
|
+
const auto heights = dir / "example_boulders_manual.tif";
|
|
112
|
+
const auto list = dir / "example_boulders_manual.csv";
|
|
113
|
+
const auto models = dir / "example_boulders_manual.glb";
|
|
114
|
+
terraingen::WriteGeoTiff(heights, evaluated_);
|
|
115
|
+
terraingen::WriteBoulderList(boulders_.boulders, list, terraingen::ListFormat::Csv);
|
|
116
|
+
terraingen::WriteBoulderModels(boulders_.models, models);
|
|
117
|
+
Out() << "Wrote " << heights.string() << ", " << list.string() << " and " << models.string()
|
|
118
|
+
<< "\n";
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
void Test() override {
|
|
122
|
+
Check(evaluated_.Width() == 801 && evaluated_.Height() == 801, "the heights are 801 x 801");
|
|
123
|
+
Check(terraingen::ComputeStats(evaluated_).validCount == evaluated_.Size(),
|
|
124
|
+
"every height is finite");
|
|
125
|
+
const terraingen::ManualBoulder& posed = manual_[0];
|
|
126
|
+
const terraingen::Boulder* p = Find(boulders_.boulders, 101);
|
|
127
|
+
Check(p != nullptr, "the posed boulder keeps its ID");
|
|
128
|
+
Check(p != nullptr && p->x == posed.x && p->y == posed.y && p->diameter == posed.diameter &&
|
|
129
|
+
p->height == posed.height && p->burial == posed.burial && p->yaw == posed.yaw &&
|
|
130
|
+
p->lean == posed.lean && p->tilt == posed.tilt &&
|
|
131
|
+
p->tiltAzimuth == posed.tiltAzimuth && p->wear == posed.wear &&
|
|
132
|
+
p->rest == terraingen::BoulderRest::Side && p->shapeSeed == posed.shapeSeed,
|
|
133
|
+
"the posed boulder has every field it fixes");
|
|
134
|
+
const terraingen::ManualBoulder& partly = manual_[1];
|
|
135
|
+
const terraingen::Boulder* q =
|
|
136
|
+
Find(boulders_.boulders, terraingen::ManualBoulderId(partly));
|
|
137
|
+
Check(q != nullptr && q->yaw == partly.yaw && q->burial == partly.burial &&
|
|
138
|
+
q->diameter == partly.diameter && !q->shapeSeed,
|
|
139
|
+
"the partly posed boulder has its yaw and burial");
|
|
140
|
+
const terraingen::Boulder* r =
|
|
141
|
+
Find(boulders_.boulders, terraingen::ManualBoulderId(manual_[2]));
|
|
142
|
+
Check(r != nullptr && r->diameter == 1.0 && r->height > 0.0,
|
|
143
|
+
"the boulder given only a diameter is drawn the rest of the way");
|
|
144
|
+
std::size_t manualModels = 0;
|
|
145
|
+
for (const terraingen::BoulderModel& model : boulders_.models) {
|
|
146
|
+
for (const terraingen::ManualBoulder& manual : manual_) {
|
|
147
|
+
if (model.boulder.id == terraingen::ManualBoulderId(manual)) {
|
|
148
|
+
++manualModels;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
Check(manualModels == manual_.size(), "every manual boulder is a boulder model");
|
|
153
|
+
Check(boulders_.boulders.size() > 20 && boulders_.boulders.size() < 2000,
|
|
154
|
+
"a sparse generated population around them");
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
private:
|
|
158
|
+
std::vector<terraingen::ManualBoulder> manual_;
|
|
159
|
+
terraingen::Raster<float> evaluated_;
|
|
160
|
+
terraingen::BoulderFeatures boulders_;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
} // namespace
|
|
164
|
+
|
|
165
|
+
TERRAINGEN_EXAMPLE(BouldersManual, "Hand-placed boulders with a fixed pose among generated ones")
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/// Hand-placed craters given an explicit rim-to-floor depth, one with its rim height as well, on a
|
|
2
|
+
/// small flat site under the Martin-Parkes-Dunstan profile, which honours both; one more crater
|
|
3
|
+
/// gives only its diameter and takes its depth from the degradation model. The same terrain as
|
|
4
|
+
/// examples/config/craters/example_craters_manual_depth.json.
|
|
5
|
+
///
|
|
6
|
+
/// example_craters_manual_depth [--output-dir DIR] [--test]
|
|
7
|
+
/// terraingen-examples craters_manual_depth
|
|
8
|
+
|
|
9
|
+
#include "common/example.h"
|
|
10
|
+
#include "terraingen/terraingen.h"
|
|
11
|
+
|
|
12
|
+
#include <cmath>
|
|
13
|
+
#include <cstddef>
|
|
14
|
+
#include <filesystem>
|
|
15
|
+
#include <memory>
|
|
16
|
+
#include <vector>
|
|
17
|
+
|
|
18
|
+
namespace {
|
|
19
|
+
|
|
20
|
+
/// A manual crater at (`x`, `y`), `diameter` across, `depth` deep from rim to floor, with its
|
|
21
|
+
/// rim `rimHeight` above the surface (NaN derives it from the depth).
|
|
22
|
+
terraingen::Crater Deep(double x, double y, double diameter, double depth,
|
|
23
|
+
double rimHeight = std::nan("")) {
|
|
24
|
+
return terraingen::Crater{x, y, diameter, 0.0, 0u, true, depth, rimHeight};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
class CratersManualDepth : public terraingen::examples::Example {
|
|
28
|
+
public:
|
|
29
|
+
using Example::Example;
|
|
30
|
+
|
|
31
|
+
void Generate() override {
|
|
32
|
+
const auto ages = std::make_shared<terraingen::UniformAges>(1.0);
|
|
33
|
+
const terraingen::CraterModels models{
|
|
34
|
+
std::make_shared<terraingen::PowerLawSfd>(1e-6, 2.0), ages,
|
|
35
|
+
std::make_shared<terraingen::FreshnessDegradation>(
|
|
36
|
+
ages, terraingen::LunarFreshCraterMorphometry),
|
|
37
|
+
std::make_shared<terraingen::MartinParkesDunstanProfile>()};
|
|
38
|
+
terraingen::CraterLayerOptions options;
|
|
39
|
+
options.generate = false;
|
|
40
|
+
manual_ = {
|
|
41
|
+
Deep(-22.0, 20.0, 20.0, 3.0, 0.8),
|
|
42
|
+
Deep(22.0, 22.0, 16.0, 1.2),
|
|
43
|
+
Deep(-20.0, -22.0, 24.0, 2.0, 0.3),
|
|
44
|
+
terraingen::Crater{22.0, -20.0, 18.0},
|
|
45
|
+
};
|
|
46
|
+
for (const terraingen::Crater& crater : manual_) {
|
|
47
|
+
options.generation.manual.Append(crater);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
terraingen::Terrain terrain;
|
|
51
|
+
terrain.source = std::make_shared<terraingen::FlatSource>(401, 401, 0.25);
|
|
52
|
+
terrain.layers.push_back(std::make_shared<terraingen::CraterLayer>(models, options));
|
|
53
|
+
|
|
54
|
+
evaluated_ = terraingen::Evaluate(terrain);
|
|
55
|
+
craters_ =
|
|
56
|
+
terraingen::PlacedCraters(terrain, terraingen::RasterGrid::FromRaster(evaluated_));
|
|
57
|
+
for (std::size_t i = 0; i < craters_.craters.Size(); ++i) {
|
|
58
|
+
const terraingen::Crater crater = craters_.craters.At(i);
|
|
59
|
+
const terraingen::CraterAttributes& attributes = craters_.attributes[i];
|
|
60
|
+
Out() << crater.diameter << " m crater, ";
|
|
61
|
+
if (std::isnan(crater.depth)) {
|
|
62
|
+
Out() << "depth from the model";
|
|
63
|
+
} else {
|
|
64
|
+
Out() << "asked " << crater.depth << " m deep";
|
|
65
|
+
}
|
|
66
|
+
if (!std::isnan(crater.rimHeight)) {
|
|
67
|
+
Out() << " with a " << crater.rimHeight << " m rim";
|
|
68
|
+
}
|
|
69
|
+
Out() << ": floor " << attributes.floorDepth << " m below and rim "
|
|
70
|
+
<< attributes.rimHeight << " m above the surface, rim to floor "
|
|
71
|
+
<< attributes.floorDepth + attributes.rimHeight << " m\n";
|
|
72
|
+
}
|
|
73
|
+
Show("heights", evaluated_);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
void Save(const std::filesystem::path& dir) override {
|
|
77
|
+
const auto path = dir / "example_craters_manual_depth.tif";
|
|
78
|
+
terraingen::WriteGeoTiff(path, evaluated_);
|
|
79
|
+
Out() << "Wrote " << path.string() << "\n";
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
void Test() override {
|
|
83
|
+
const terraingen::CraterList& craters = craters_.craters;
|
|
84
|
+
Check(evaluated_.Width() == 401 && evaluated_.Height() == 401, "the heights are 401 x 401");
|
|
85
|
+
Check(terraingen::ComputeStats(evaluated_).validCount == evaluated_.Size(),
|
|
86
|
+
"every height is finite");
|
|
87
|
+
Check(craters.Size() == manual_.size() && craters_.attributes.size() == craters.Size(),
|
|
88
|
+
"exactly the four hand-placed craters, each with attributes");
|
|
89
|
+
bool depths = true;
|
|
90
|
+
bool rims = true;
|
|
91
|
+
bool modelled = false;
|
|
92
|
+
for (std::size_t i = 0; i < craters.Size(); ++i) {
|
|
93
|
+
const terraingen::Crater crater = craters.At(i);
|
|
94
|
+
const terraingen::CraterAttributes& a = craters_.attributes[i];
|
|
95
|
+
const double tolerance = 1e-3 * crater.diameter;
|
|
96
|
+
if (std::isnan(crater.depth)) {
|
|
97
|
+
modelled = a.floorDepth + a.rimHeight > 1.0;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
depths = depths && std::fabs(a.floorDepth + a.rimHeight - crater.depth) < tolerance;
|
|
101
|
+
rims = rims && (std::isnan(crater.rimHeight) ||
|
|
102
|
+
std::fabs(a.rimHeight - crater.rimHeight) < tolerance);
|
|
103
|
+
}
|
|
104
|
+
Check(depths, "each crater given a depth is that deep from rim to floor");
|
|
105
|
+
Check(rims, "each crater given a rim height has that rim");
|
|
106
|
+
Check(modelled, "the crater given only a diameter takes its depth from the model");
|
|
107
|
+
Check(terraingen::ComputeStats(evaluated_).min < -1.0, "the craters are cut into the site");
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private:
|
|
111
|
+
std::vector<terraingen::Crater> manual_;
|
|
112
|
+
terraingen::Raster<float> evaluated_;
|
|
113
|
+
terraingen::CraterFeatures craters_;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
} // namespace
|
|
117
|
+
|
|
118
|
+
TERRAINGEN_EXAMPLE(CratersManualDepth, "Hand-placed craters of chosen depth and rim height")
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"""Hand-placed boulders on a small flat site, as for a rover test scene.
|
|
2
|
+
|
|
3
|
+
One boulder has its whole pose and shape fixed, one only its yaw and burial and one only its
|
|
4
|
+
position and diameter, among a sparse generated population. Fields left unset are drawn as for
|
|
5
|
+
generated boulders, and boulders 0.5 m or larger are placed as 3D boulder models. Writes the
|
|
6
|
+
heights, the boulder list and the models as a glTF scene. The same terrain as
|
|
7
|
+
examples/config/boulders/example_boulders_manual.json.
|
|
8
|
+
|
|
9
|
+
python example_boulders_manual.py [--viewer window|null] [--output-dir DIR] [--test]
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import pathlib
|
|
13
|
+
import sys
|
|
14
|
+
|
|
15
|
+
import numpy as np
|
|
16
|
+
|
|
17
|
+
import terraingen
|
|
18
|
+
|
|
19
|
+
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1]))
|
|
20
|
+
import _common
|
|
21
|
+
from _common import hillshade, write_png
|
|
22
|
+
|
|
23
|
+
PIXEL = 0.05
|
|
24
|
+
SIZE = 801
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Example(_common.Example):
|
|
28
|
+
def generate(self):
|
|
29
|
+
self.manual = [
|
|
30
|
+
terraingen.ManualBoulder(
|
|
31
|
+
x=-6.0,
|
|
32
|
+
y=4.0,
|
|
33
|
+
diameter=1.6,
|
|
34
|
+
id=101,
|
|
35
|
+
height=0.9,
|
|
36
|
+
burial=0.3,
|
|
37
|
+
yaw_deg=30.0,
|
|
38
|
+
lean_deg=5.0,
|
|
39
|
+
tilt_deg=15.0,
|
|
40
|
+
tilt_azimuth_deg=90.0,
|
|
41
|
+
wear=0.2,
|
|
42
|
+
rest=terraingen.BoulderRest.SIDE,
|
|
43
|
+
shape_seed=7,
|
|
44
|
+
),
|
|
45
|
+
terraingen.ManualBoulder(5.0, 3.0, 1.2, yaw_deg=90.0, burial=0.5),
|
|
46
|
+
terraingen.ManualBoulder(0.0, -6.0, 1.0),
|
|
47
|
+
]
|
|
48
|
+
options = terraingen.BoulderLayerOptions(
|
|
49
|
+
coverage=0.03,
|
|
50
|
+
min_diameter=0.1,
|
|
51
|
+
max_diameter=1.0,
|
|
52
|
+
models=terraingen.BoulderModelThreshold(min_diameter=0.5),
|
|
53
|
+
manual=self.manual,
|
|
54
|
+
)
|
|
55
|
+
terrain = terraingen.Terrain(
|
|
56
|
+
terraingen.FlatSource(SIZE, SIZE, PIXEL), [terraingen.BoulderLayer(options)]
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
self.heights = terraingen.evaluate(terrain)
|
|
60
|
+
self.boulders = terraingen.placed_boulders(terrain)
|
|
61
|
+
table = self.boulders.table
|
|
62
|
+
print(f"{len(table['id'])} boulders, {len(self.boulders.models)} of them boulder models")
|
|
63
|
+
ids = list(np.asarray(table["id"]))
|
|
64
|
+
rests = {rest.value: rest.name.lower() for rest in terraingen.BoulderRest}
|
|
65
|
+
self.rows = [ids.index(terraingen.manual_boulder_id(manual)) for manual in self.manual]
|
|
66
|
+
for manual, row in zip(self.manual, self.rows, strict=True):
|
|
67
|
+
seed = "from its ID" if manual.shape_seed is None else manual.shape_seed
|
|
68
|
+
print(
|
|
69
|
+
f"boulder {table['id'][row]} at ({table['x'][row]:g}, {table['y'][row]:g}), "
|
|
70
|
+
f"{table['diameter'][row]:g} m long, {table['height'][row]:.2f} m high, "
|
|
71
|
+
f"burial {table['burial'][row]:.2f}, yaw {table['yaw_deg'][row]:.1f} deg, "
|
|
72
|
+
f"lean {table['lean_deg'][row]:.1f} deg, tilt {table['tilt_deg'][row]:.1f} deg "
|
|
73
|
+
f"toward {table['tilt_azimuth_deg'][row]:.1f} deg, wear {table['wear'][row]:.2f}, "
|
|
74
|
+
f"rest {rests[int(table['rest'][row])]}, shape seed {seed}"
|
|
75
|
+
)
|
|
76
|
+
self.show("heights", self.heights)
|
|
77
|
+
|
|
78
|
+
def save(self, out):
|
|
79
|
+
terraingen.write_geotiff(out / "example_boulders_manual.tif", self.heights)
|
|
80
|
+
self.boulders.write_list(out / "example_boulders_manual.csv")
|
|
81
|
+
self.boulders.write_models(out / "example_boulders_manual.glb")
|
|
82
|
+
print("wrote", write_png(out / "example_boulders_manual.png", hillshade(self.heights.values, PIXEL)))
|
|
83
|
+
|
|
84
|
+
def test_final(self):
|
|
85
|
+
table = self.boulders.table
|
|
86
|
+
posed, partly, plain = (dict((key, table[key][row]) for key in table) for row in self.rows)
|
|
87
|
+
assert self.heights.shape == (SIZE, SIZE), "the heights are 801 x 801"
|
|
88
|
+
assert np.all(np.isfinite(self.heights.values)), "every height is finite"
|
|
89
|
+
assert posed["id"] == 101, "the posed boulder keeps its ID"
|
|
90
|
+
for key, value in (
|
|
91
|
+
("x", -6.0),
|
|
92
|
+
("y", 4.0),
|
|
93
|
+
("diameter", 1.6),
|
|
94
|
+
("height", 0.9),
|
|
95
|
+
("burial", 0.3),
|
|
96
|
+
("wear", 0.2),
|
|
97
|
+
("rest", terraingen.BoulderRest.SIDE.value),
|
|
98
|
+
):
|
|
99
|
+
assert posed[key] == value, f"the posed boulder has its {key}"
|
|
100
|
+
for key, value in (
|
|
101
|
+
("yaw_deg", 30.0),
|
|
102
|
+
("lean_deg", 5.0),
|
|
103
|
+
("tilt_deg", 15.0),
|
|
104
|
+
("tilt_azimuth_deg", 90.0),
|
|
105
|
+
):
|
|
106
|
+
assert abs(posed[key] - value) < 1e-9, f"the posed boulder has its {key}"
|
|
107
|
+
assert abs(partly["yaw_deg"] - 90.0) < 1e-9 and partly["burial"] == 0.5, (
|
|
108
|
+
"the partly posed boulder has its yaw and burial"
|
|
109
|
+
)
|
|
110
|
+
assert plain["diameter"] == 1.0 and plain["height"] > 0.0, (
|
|
111
|
+
"the boulder given only a diameter is drawn the rest of the way"
|
|
112
|
+
)
|
|
113
|
+
model_ids = {model.boulder.id for model in self.boulders.models}
|
|
114
|
+
assert all(terraingen.manual_boulder_id(m) in model_ids for m in self.manual), (
|
|
115
|
+
"every manual boulder is a boulder model"
|
|
116
|
+
)
|
|
117
|
+
assert 20 < len(table["id"]) < 2000, "a sparse generated population around them"
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
if __name__ == "__main__":
|
|
121
|
+
_common.main(Example)
|