terraingenpy 0.1.1.dev82__tar.gz → 0.1.1.dev91__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.dev82 → terraingenpy-0.1.1.dev91}/CHANGELOG.md +7 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/CMakeLists.txt +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/PKG-INFO +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_max_slope.json +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_rolling.json +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_shapes.json +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_pavement.json +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_sand_shadows.json +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_strata.json +2 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_ventifacts.json +2 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/albedo/example_albedo_options.py +7 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_positioning.py +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_irregularity.py +2 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/build.cpp +59 -4
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/config.h +32 -7
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/feature_lists.cpp +4 -4
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/boulders.h +42 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/common.h +34 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/craters.h +8 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/enums.h +19 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/layers.h +34 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/generate.h +4 -3
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/validate.cpp +54 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/CMakeLists.txt +3 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/abundance.cpp +5 -5
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder.h +61 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_layer.cpp +84 -24
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_layer.h +17 -6
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_models.cpp +9 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_models.h +7 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_options.cpp +36 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_options.h +18 -5
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/crater.cpp +18 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/crater.h +31 -4
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/population.h +2 -1
- terraingenpy-0.1.1.dev91/terraingen/layers/craters/generation/resolved_limit.cpp +45 -0
- terraingenpy-0.1.1.dev91/terraingen/layers/craters/generation/resolved_limit.h +31 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/apply.cpp +8 -9
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/apply.h +2 -1
- terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/explicit_state.cpp +143 -0
- terraingenpy-0.1.1.dev91/terraingen/layers/craters/shaping/explicit_state.h +37 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/prepared.cpp +6 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/prepared.h +7 -2
- terraingenpy-0.1.1.dev91/terraingen/layers/midpoint_displacement.cpp +368 -0
- terraingenpy-0.1.1.dev91/terraingen/layers/midpoint_displacement.h +150 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/albedo.cpp +12 -11
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/boulders.cpp +67 -23
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/craters.cpp +65 -18
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/layers.cpp +36 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/mesh.cpp +18 -8
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/options.h +37 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/pipeline.cpp +6 -6
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/sources.cpp +73 -7
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/tables.h +10 -9
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/util.cpp +9 -3
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/terraingen/render.py +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/streams.h +3 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/cell_loops.cpp +12 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/cell_loops.h +9 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/geotiff.h +11 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/geotiff_read.cpp +45 -16
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/tiff_format.h +4 -0
- terraingenpy-0.1.1.dev91/terraingen/raster/resample.cpp +168 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/resample.h +32 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/CMakeLists.txt +1 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/field.cpp +16 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/field.h +18 -0
- terraingenpy-0.1.1.dev91/terraingen/sources/geotiff_source.cpp +111 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/geotiff_source.h +30 -32
- terraingenpy-0.1.1.dev91/terraingen/sources/raster_source.cpp +214 -0
- terraingenpy-0.1.1.dev91/terraingen/sources/raster_source.h +181 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/source.h +12 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/source_chain.cpp +9 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/source_chain.h +4 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/terraingen.h +3 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/geometry.h +8 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_albedo.py +7 -3
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_boulders.py +54 -5
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_craters.py +61 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_layers.py +26 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_meshes.py +3 -5
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_raster.py +1 -1
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_render.py +3 -3
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_sources.py +82 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_util.py +5 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/angles_test.cpp +28 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/build_test.cpp +6 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/feature_lists_test.cpp +24 -5
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/generate_terrain_test.cpp +37 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/json_io_test.cpp +38 -2
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/schema_test.cpp +2 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/validate_config_test.cpp +85 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/write_outputs_test.cpp +5 -4
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/CMakeLists.txt +4 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/boulders/boulder_layer_test.cpp +1 -1
- terraingenpy-0.1.1.dev91/tests/unit/layers/boulders/manual_boulder_test.cpp +351 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/crater_layer_test.cpp +80 -0
- terraingenpy-0.1.1.dev91/tests/unit/layers/craters/crater_test.cpp +129 -0
- terraingenpy-0.1.1.dev91/tests/unit/layers/craters/generation/resolved_limit_test.cpp +97 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/apply_test.cpp +3 -1
- terraingenpy-0.1.1.dev91/tests/unit/layers/craters/shaping/explicit_state_test.cpp +272 -0
- terraingenpy-0.1.1.dev91/tests/unit/layers/midpoint_displacement_test.cpp +318 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/features_test.cpp +88 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/cell_loops_test.cpp +11 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/geotiff_test.cpp +89 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/resample_test.cpp +115 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/sources/CMakeLists.txt +1 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/sources/field_test.cpp +18 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/sources/flat_source_test.cpp +6 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/sources/geotiff_source_test.cpp +162 -0
- terraingenpy-0.1.1.dev91/tests/unit/sources/raster_source_test.cpp +167 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/sources/source_chain_test.cpp +19 -0
- terraingenpy-0.1.1.dev82/terraingen/raster/resample.cpp +0 -126
- terraingenpy-0.1.1.dev82/terraingen/sources/geotiff_source.cpp +0 -170
- terraingenpy-0.1.1.dev82/tests/unit/layers/craters/crater_test.cpp +0 -54
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.clang-format +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.clang-tidy +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.cmake-format.yaml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.dockerignore +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.gitattributes +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.github/pull_request_template.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.github/scripts/install-lavapipe-windows.sh +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.github/workflows/ci.yml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.gitignore +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/.pre-commit-config.yaml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/CITATION.cff +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/CONTRIBUTING.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/Dockerfile +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/LICENSE +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/README.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/README.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_diff_4k.jpg +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_disp_4k.png +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/moon_01_rough_4k.exr +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_ao_2k.png +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_arm_2k.png +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_diff_2k.png +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_disp_2k.png +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_nor_dx_2k.exr +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_nor_gl_2k.exr +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/assets/textures/seaside_rock_rough_2k.exr +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/BuildInfo.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/CoverageBadge.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/EmbedFile.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/Kernel.cpp.in +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/TerrainGenPackaging.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/TerrainGenSlang.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/TerrainGenTesting.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/terraingenConfig.cmake.in +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/benchmark.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/ernie.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/googletest.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/mesh_formats.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/miniz.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/nanobind.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/nvrtc.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/slang.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/volk.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/cmake/third_party/vulkan_headers.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/.gitignore +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/Makefile +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/README.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/api/cpp.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/api/python.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/concepts/index.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/css/extra.css +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/getting-started/command-line.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/getting-started/gui.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/getting-started/index.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/getting-started/installation.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/getting-started/quickstart.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/guides/index.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/index.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/overrides/home.html +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/overrides/partials/header.html +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/requirements.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/scripts/generate_schema.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/docs/validation/index.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/README.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_fresh.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_freshness.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_steady_state.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/ages/example_ages_uniform.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_new_crater.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_rgb.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/albedo/example_albedo_synthetic.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_buried.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_ejecta.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_exposure.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_fragments.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_layer.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_models.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_patches.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_rock_abundance.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_scene.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_slope_map.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_sp8023.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_datum.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_degradation_none.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_interior_replacement.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_irregular.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_manual.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_max_craters.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_profile_complex.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_secondaries.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_secondary_rays.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_simple.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_slopes.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_spacing.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_texture.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/craters/example_craters_wall_marks.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_power_law.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_tabulated.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/distributions/example_distributions_viper.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/layers/example_layers_regions.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/layers/example_layers_roughness.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_craters.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_dunes.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_exposure.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_mercury_site.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/planets/example_planets_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_billow.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_cellular.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_fbm.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_layered.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_ridged.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_roughness.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/config/terrain/example_terrain_voronoi.json +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/ages/example_ages_models.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/common/browser.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/common/browser.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/common/example.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/common/example.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/common/main.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/common/standalone_main.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/config/example_config_load.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_manual.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/craters/example_craters_simple.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/layers/example_layers_custom.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/layers/example_layers_regions.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/planets/example_planets_moon.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/__main__.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/_browser.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/_common.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/_harness.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/_images.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/ages/example_ages_models.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/albedo/example_albedo_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_exposure.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_layer.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_shapes.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/boulders/example_boulders_size_models.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/config/example_config_load.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_age_sweep.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_apply_options.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_degradation.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_manual.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_positioning.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_profiles.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_secondaries.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/craters/example_craters_simple.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/distributions/example_distributions_csfd.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/distributions/example_distributions_custom.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/layers/example_layers_custom.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/layers/example_layers_regions.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_body_mesh.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_mars.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_mars_dunes.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_mars_exposure.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_mercury.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/planets/example_planets_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/sources/example_sources_chain.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/sources/example_sources_raster_detail.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_fbm.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_layered.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_point_queries.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_quadtree.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/mkdocs.yml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/pyproject.toml +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/albedo.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/bands.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/bands.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/blast_zones.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/blast_zones.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/brightness_statistics.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/brightness_statistics.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/crater_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/crater_albedo.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/maturity.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/maturity.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/photometry.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/photometry.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/raster_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/raster_albedo.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/rock_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/rock_albedo.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/slope_albedo.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/slope_albedo.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/splotches.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/splotches.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/synthetic.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/albedo/synthetic.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/cli.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/cli.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/config_editor.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/config_editor.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/gui_app.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/gui_app.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/run.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/run.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/run_none.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/terrain_scene.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/terrain_scene.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/gui/widgets.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/app/main.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/build.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/config.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/albedo.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/checks.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/crater_models.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/fields.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/json_io.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/maps.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/materials.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/outputs.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/ranges.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/fields/sources.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/generate.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/json.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/json.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/ranges.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/schema.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/config/validate.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/composition.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/composition.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/equilibrium.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/equilibrium.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/exponential_chronology.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/exponential_chronology.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/golombek_rapp.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/golombek_rapp.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/ivanov.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/ivanov.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/log_polynomial.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/log_polynomial.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/minimum.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/minimum.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/moore.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/moore.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/neukum.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/neukum.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/piecewise_power_law.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/piecewise_power_law.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/piecewise_uniform.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/piecewise_uniform.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/power_law.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/power_law.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/production_surface.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/production_surface.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/size_frequency.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/size_frequency.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/sp8023.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/sp8023.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/spliced.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/spliced.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/summed.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/summed.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/synthterrain.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/synthterrain.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/tabulated.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/tabulated.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/viper.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/distribution/viper.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/backend.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/backend.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/cuda.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/cuda.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/device.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/kernel.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/kernel.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/kernel.slang +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/metal.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/metal.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/program.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/vulkan.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/gpu/vulkan.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/anchored_plane.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/anchored_plane.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/bedforms.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/bedforms.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/bisection.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_abundance.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_abundance.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_clusters.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_clusters.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_fragments.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_fragments.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_placer.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_shape.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/boulder_shape.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/ejecta_index.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/boulders/ejecta_index.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/age_model.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/age_model.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/freshness.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/freshness.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/steady_state.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/ages/steady_state.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/crater_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/crater_layer.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/crater_placer.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/crater_placer.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/diffusion.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/diffusion.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/diffusivities.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/diffusivities.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/freshness.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/degradation/state.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/cell_cache.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/cell_cache.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/population.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/spacing.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/generation/spacing.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/complex.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/complex.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/profiles/profile.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/rays.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/rays.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/secondaries.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/secondaries.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/secondary_model.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/secondary_model.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/apply_options.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/apply_options.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/attributes.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/crater_kernel.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/datum.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/datum.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/irregularity.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/irregularity.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/morphometry.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/slope.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/craters/shaping/slope.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/density_map.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/density_map.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/detail.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/detail.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/dunes.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/dunes.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/evaluation_cache.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/exposure.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/exposure.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/fade.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/fade.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/ground.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/ground.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernel.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/cell.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/crater_body_datums.slang +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/crater_datums.slang +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/craters.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/craters.slang +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/kernels/noise_relief.slang +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/lattice.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/layer.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/layer.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/material.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/material.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/noise_relief.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/pavement.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/pavement.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/region.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/region.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/roughness.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/roughness.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/sample_block.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/sample_block.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/sand_fill.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/sand_fill.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/sand_shadow.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/sand_shadow.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/strata.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/strata.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/transforms.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/layers/transforms.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/formats.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/gltf.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/icq.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/icq.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/mesh_io.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/mesh_io.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/obj.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/io/stl.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/mesh.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/polyhedra.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/polyhedra.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/shape_model.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/mesh/shape_model.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/fractal.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/hash.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/lattice.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/noise_layers.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/perlin.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/simplex.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/validate.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/validate.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/value.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/noise/worley.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/body_mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/body_mesh.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/features.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/features.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/height_mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/height_mesh.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/materials.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/materials.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/terrain.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/terrain.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/tiles.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/pipeline/tiles.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/arrays.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/bindings.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/casters.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/common.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/crater_models.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/distribution.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/gpu.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/materials.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/module.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/noise.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/objects.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/random.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/raster.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/src/trampolines.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/python/terraingen/__init__.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/philox.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/samplers.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/samplers.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/stream.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/stream.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/value_distribution.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/random/value_distribution.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/gaussian_blur.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/gaussian_blur.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geo_transform.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/geotiff.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/geotiff_write.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/geotiff/tiff_format.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/grid.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/grid.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/raster.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/raster/raster_stats.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/flat_source.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/flat_source.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/synthetic_terrain.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/sources/synthetic_terrain.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/arithmetic.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/bits.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/build_info.cpp.in +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/build_info.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/cells.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/checks.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/checks.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/cube_faces.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/cube_sphere_cells.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/fft.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/fft.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/files.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/files.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/log.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/log.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/lru_cache.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/overloaded.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/parallel.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/parallel.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/planar_cells.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/portable.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/radial_shape.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/radial_shape.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/span.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/special_functions.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/special_functions.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/surface.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/surface.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/text.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/text.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/version.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/terraingen/util/version.h.in +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/benchmark/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_boulders.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_craters.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_grids.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_point_queries.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/benchmark/bench_python_subclasses.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/benchmark/fixtures.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/golden/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/golden/noise/kernels_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/integration/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/integration/build_info_stable.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/integration/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/integration/package/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/integration/package/main.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/integration/package/test_debian_packages.cmake +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/conftest.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_config.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_crater_models.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_distributions.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_examples_harness.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_gpu.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_noise.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_pipeline.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_random.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_stubs.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/python/test_tiles.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/distribution/crater_references_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/layers/craters/population_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/statistical/random/random_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/support/log_capture.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/support/lunar_craters.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/support/raster_equality.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/support/statistics.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/support/temp_path.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/bands_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/blast_zones_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/crater_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/photometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/rock_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/slope_albedo_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/albedo/splotches_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/app/cli_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/app/gui/config_editor_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/app/gui/gui_app_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/checks_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/config_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/configs.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/json_parse_errors_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/json_read_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/ranges_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/config/validate_sources_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/composition_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/equilibrium_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/exponential_chronology_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/ivanov_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/minimum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/moore_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/neukum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/piecewise_uniform_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/production_surface_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/sp8023_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/spliced_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/summed_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/synthterrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/tabulated_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/distribution/viper_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/examples/example_browser_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/examples/example_harness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/backend_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/noise_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/gpu/vulkan_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/anchored_plane_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/bedforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/bisection_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/boulders/boulder_models_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/boulders/boulder_options_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/ages/freshness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/generation/population_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/secondaries_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/datum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/shaping/slope_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/craters/sphere_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/density_map_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/detail_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/dunes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/exposure_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/fade_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/ground_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/lattice_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/noise_relief_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/pavement_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/region_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/sample_block_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/sand_fill_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/sand_shadow_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/sphere_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/strata_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/layers/transforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/io/icq_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/io/mesh_io_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/mesh_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/polyhedra_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/shape_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/mesh/support.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/fractal_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/hash_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/noise3_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/noise_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/perlin_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/simplex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/validate_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/value_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/noise/worley_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/height_mesh_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/materials_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/terrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/terrain_tiles_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/terrains.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/tile_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/pipeline/tiling_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/random/philox_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/random/samplers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/random/stream_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/random/value_distribution_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/gdal_fixtures.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/geo_transform_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/geotiff_fixtures.inc +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/grid_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/raster_stats_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/raster_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/raster/tiff_format_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/cells_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/checks_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/fft_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/geometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/log_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/lru_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/overloaded_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/parallel_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/radial_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/span_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/special_functions_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/surface_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/text_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/tests/unit/util/version_test.cpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/README.md +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/cgltf/LICENSE +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/cgltf/cgltf.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/cgltf/cgltf_write.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/miniz/LICENSE +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/miniz/miniz.c +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/miniz/miniz.h +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/nlohmann/LICENSE.MIT +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/nlohmann/json.hpp +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/tinyobjloader/LICENSE +0 -0
- {terraingenpy-0.1.1.dev82 → terraingenpy-0.1.1.dev91}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
|
@@ -23,10 +23,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
23
23
|
- Crater shaping and datum fitting on the GPU on spheres, ellipsoids and shape models, not only on planes.
|
|
24
24
|
- Configurations are checked against every field's documented range, and errors name the exact field, such as `layers[2].reach`.
|
|
25
25
|
- Python options classes document every field with its description and unit, and gain `validate()` and a readable `repr`.
|
|
26
|
+
- `RasterSource`, heights from a raster in memory, shared rather than copied, low-passed and resampled as a GeoTIFF source is; `GeoTiffSource` is now a `RasterSource` of its band.
|
|
27
|
+
- Windowed GeoTIFF reads that decode only the strips or tiles a window meets, and a `region` for GeoTIFF sources that reads only the window it needs while giving the same heights there as the whole file.
|
|
28
|
+
- `Source::ResolutionAt`, the cell size of the data behind each height, and `UnresolvedCraterLimit`, a completeness limit that leaves the craters a DEM already resolves to it and generates only smaller ones; `MinimumField` combines it with a catalog's limit.
|
|
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
|
+
- 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
|
+
- 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.
|
|
26
32
|
|
|
27
33
|
### Changed
|
|
28
34
|
|
|
29
|
-
- Breaking: every angle key in configurations and the Python options classes is now in degrees and ends in `_deg` (`wind_azimuth_deg`, `slip_face_angle_deg`, `heading_deg`, `crease_angle_deg`), azimuths counter-clockwise from +x (local east); the old keys are rejected.
|
|
35
|
+
- Breaking: every angle key in configurations and the Python options classes is now in degrees and ends in `_deg` (`wind_azimuth_deg`, `slip_face_angle_deg`, `heading_deg`, `crease_angle_deg`), azimuths counter-clockwise from +x (local east); the old keys are rejected. The rest of the Python API follows: `SyntheticAlbedo(hue_deg=, hue_noise_deg=)`, `hsv_to_rgb(hue_deg)`, `write_models(crease_angle_deg=)`, `TriangleMesh.with_creases(crease_angle_deg)`, `RigidTransform.rotation_x/y/z(angle_deg)`, `CubeSphereCells.direction(face, alpha_deg, beta_deg)`, `SlopeAlbedo.maturity_at(slope_deg)`, `Boulder` `yaw_deg`, `lean_deg`, `tilt_deg` and `tilt_azimuth_deg` (also the boulder table columns and the columns of boulder lists written as CSV or JSON), `BoulderFacet` `azimuth_deg` and `angle_deg`, `CraterImpact` `angle_deg` and `heading_deg`, `CraterOutline.heading_deg` and `RayDirection.azimuth_deg`; the C++ library keeps radians.
|
|
30
36
|
- Defaults give a plausible lunar terrain at 1 m per pixel in which every height layer shows: craters from a production surface capped below the Trask equilibrium with steady-state ages, diffusion and irregular outlines; Surveyor boulders; noise relief scaled to its wavelength; and visible roughness, bedforms and dunes.
|
|
31
37
|
- Boulder layers default to the nominal NASA SP-8023 intercrater sizes rather than Golombek-Rapp; a `coverage`, `qa`, `qb` or `ejecta.coverage` that no Golombek-Rapp sizes use is now an error that names `"sizes": {"type": "golombek_rapp"}`.
|
|
32
38
|
- Boulder lists and models hold every boulder of the layer's diameter range; only the heightmap leaves out boulders too small to resolve.
|
|
@@ -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.dev91")
|
|
12
12
|
string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" TERRAINGEN_VERSION "${TERRAINGEN_FULL_VERSION}")
|
|
13
13
|
|
|
14
14
|
project(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Albedo options: colour, maps with detail, and how bright crater material behaves.
|
|
2
2
|
|
|
3
|
-
- `SyntheticAlbedo(rgb=True,
|
|
3
|
+
- `SyntheticAlbedo(rgb=True, hue_deg, saturation, ...)` gives three bands from a colour and its noise.
|
|
4
4
|
- `RasterAlbedo` interpolates an albedo map and adds sub-cell detail carrying the map's measured
|
|
5
5
|
roughness down (`AlbedoDetail`).
|
|
6
6
|
- `CraterAlbedoOptions` sets how much brighter fresh craters, their ejecta and their rays are, how
|
|
@@ -37,7 +37,12 @@ class Example(_common.Example):
|
|
|
37
37
|
terraingen.FractalParams(seed=6, wavelength=600.0, amplitude=0.04, octaves=6)
|
|
38
38
|
)
|
|
39
39
|
colour = terraingen.SyntheticAlbedo(
|
|
40
|
-
rgb=True,
|
|
40
|
+
rgb=True,
|
|
41
|
+
hue_deg=30.0,
|
|
42
|
+
saturation=0.12,
|
|
43
|
+
value=0.14,
|
|
44
|
+
hue_noise_deg=[hue_noise],
|
|
45
|
+
value_noise=[value_noise],
|
|
41
46
|
)
|
|
42
47
|
self.rgb = np.stack(
|
|
43
48
|
[band.values for band in terraingen.evaluate_albedo(terraingen.Albedo(colour), grid)], axis=-1
|
|
@@ -56,7 +56,7 @@ class Example(_common.Example):
|
|
|
56
56
|
max_height_ratio=1.0,
|
|
57
57
|
min_burial=0.0,
|
|
58
58
|
max_burial=0.05,
|
|
59
|
-
max_lean_deg=
|
|
59
|
+
max_lean_deg=35.0,
|
|
60
60
|
relief=terraingen.BoulderRelief.SHAPE,
|
|
61
61
|
models=terraingen.BoulderModelThreshold(min_diameter=0.8),
|
|
62
62
|
),
|
|
@@ -51,8 +51,8 @@ class Example(_common.Example):
|
|
|
51
51
|
roughness=terraingen.ValueDistribution(a=0.0),
|
|
52
52
|
elongated_share=0.6,
|
|
53
53
|
ellipticity=terraingen.ValueDistribution(uniform, 1.3, 1.8),
|
|
54
|
-
heading_deg=
|
|
55
|
-
heading_spread_deg=
|
|
54
|
+
heading_deg=30.0,
|
|
55
|
+
heading_spread_deg=10.0,
|
|
56
56
|
),
|
|
57
57
|
"both": terraingen.CraterIrregularity(
|
|
58
58
|
enabled=True,
|
|
@@ -324,6 +324,7 @@ struct LayerInputs {
|
|
|
324
324
|
const std::vector<std::shared_ptr<const CraterLayer>>& craters;
|
|
325
325
|
const std::shared_ptr<const BoulderLayer>& boulders;
|
|
326
326
|
const Surface& surface;
|
|
327
|
+
const std::shared_ptr<const Source>& source; ///< The base; null without one.
|
|
327
328
|
/// The secondaries later layers throw from a crater layer built with these inputs.
|
|
328
329
|
std::vector<SecondaryCraterOptions> thrown{};
|
|
329
330
|
};
|
|
@@ -358,6 +359,58 @@ LayerPtr BuildCraterLayer(const CraterLayerSpec& craters, const std::string& pat
|
|
|
358
359
|
[&] { return std::make_shared<CraterLayer>(std::move(models), std::move(options)); });
|
|
359
360
|
}
|
|
360
361
|
|
|
362
|
+
/// The roughness of `source` on cells of `pixelSize` centred on its grid with a node at `origin`,
|
|
363
|
+
/// at most `kRoughnessCells` a side.
|
|
364
|
+
MidpointRoughness SourceRoughness(const Source& source, double pixelSize, const Vec2d& origin) {
|
|
365
|
+
constexpr double kRoughnessCells = 512.0;
|
|
366
|
+
const Bounds2d bounds = source.Grid().Bounds();
|
|
367
|
+
const auto cells = [&](double extent) {
|
|
368
|
+
return std::clamp(std::floor(extent / pixelSize), 3.0, kRoughnessCells);
|
|
369
|
+
};
|
|
370
|
+
const double width = cells(bounds.maxX - bounds.minX);
|
|
371
|
+
const double height = cells(bounds.maxY - bounds.minY);
|
|
372
|
+
const double col0 =
|
|
373
|
+
std::round((0.5 * (bounds.minX + bounds.maxX) - origin.x) / pixelSize - 0.5 * width);
|
|
374
|
+
const double rowTop =
|
|
375
|
+
std::round((0.5 * (bounds.minY + bounds.maxY) - origin.y) / pixelSize + 0.5 * height);
|
|
376
|
+
const RasterGrid grid{static_cast<std::size_t>(width), static_cast<std::size_t>(height),
|
|
377
|
+
GeoTransform::NorthUp(origin.x + (col0 - 0.5) * pixelSize,
|
|
378
|
+
origin.y + (rowTop + 0.5) * pixelSize, pixelSize)};
|
|
379
|
+
Raster<float> heights = grid.MakeRaster();
|
|
380
|
+
source.Fill(heights);
|
|
381
|
+
return EstimateMidpointRoughness(heights);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/// The options of a midpoint displacement layer, from the base wherever the spec gives none.
|
|
385
|
+
MidpointDisplacementOptions BuildMidpointOptions(const MidpointDisplacementLayerSpec& spec,
|
|
386
|
+
const Source* source, const Surface& surface) {
|
|
387
|
+
MidpointDisplacementOptions options;
|
|
388
|
+
options.minPixelSize = spec.minPixelSize / surface.UnitLength();
|
|
389
|
+
options.base = spec.base;
|
|
390
|
+
options.seed = spec.seed;
|
|
391
|
+
if (!(spec.pixelSize && spec.originX && spec.originY) && !source) {
|
|
392
|
+
throw std::invalid_argument(
|
|
393
|
+
"A midpoint displacement layer without a base needs its pixel size and origin");
|
|
394
|
+
}
|
|
395
|
+
const RasterGrid grid = source ? source->Grid() : RasterGrid{};
|
|
396
|
+
options.pixelSize = spec.pixelSize ? *spec.pixelSize / surface.UnitLength() : grid.PixelSize();
|
|
397
|
+
const Vec2d first = grid.transform.PixelToWorld(0.5, 0.5);
|
|
398
|
+
options.origin = {spec.originX.value_or(first.x), spec.originY.value_or(first.y)};
|
|
399
|
+
if (spec.fractalDimension && spec.scale) {
|
|
400
|
+
options.fractalDimension = *spec.fractalDimension;
|
|
401
|
+
options.scale = *spec.scale;
|
|
402
|
+
return options;
|
|
403
|
+
}
|
|
404
|
+
if (!source) {
|
|
405
|
+
throw std::invalid_argument(
|
|
406
|
+
"A midpoint displacement layer without a base needs its fractal dimension and scale");
|
|
407
|
+
}
|
|
408
|
+
const MidpointRoughness roughness = SourceRoughness(*source, options.pixelSize, options.origin);
|
|
409
|
+
options.fractalDimension = spec.fractalDimension.value_or(roughness.fractalDimension);
|
|
410
|
+
options.scale = spec.scale.value_or(roughness.scale);
|
|
411
|
+
return options;
|
|
412
|
+
}
|
|
413
|
+
|
|
361
414
|
LayerPtr BuildSecondaryLayer(const SecondaryLayerSpec& spec,
|
|
362
415
|
const std::shared_ptr<const CraterLayer>& primaries) {
|
|
363
416
|
const CraterShapeModels models{
|
|
@@ -405,6 +458,10 @@ LayerPtr BuildLayer(const LayerSpec& spec, const std::string& path, const LayerI
|
|
|
405
458
|
[&](const BedformLayerSpec& s) -> LayerPtr {
|
|
406
459
|
return std::make_shared<BedformLayer>(s.bedforms, surface);
|
|
407
460
|
},
|
|
461
|
+
[&](const MidpointDisplacementLayerSpec& s) -> LayerPtr {
|
|
462
|
+
return std::make_shared<MidpointDisplacementLayer>(
|
|
463
|
+
BuildMidpointOptions(s, context.source.get(), surface), surface);
|
|
464
|
+
},
|
|
408
465
|
[&](const ScaleLayerSpec& s) -> LayerPtr {
|
|
409
466
|
return std::make_shared<ScaleLayer>(s.scale, s.offset);
|
|
410
467
|
},
|
|
@@ -462,6 +519,7 @@ Terrain BuildValidTerrain(const TerrainConfig& config, const std::filesystem::pa
|
|
|
462
519
|
craters,
|
|
463
520
|
boulders,
|
|
464
521
|
terrain.surface,
|
|
522
|
+
terrain.source,
|
|
465
523
|
ThrownSecondaries(config.layers, i)};
|
|
466
524
|
terrain.layers.push_back(BuildLayer(config.layers[i], Element("layers", i), context));
|
|
467
525
|
if (std::holds_alternative<CraterLayerSpec>(config.layers[i])) {
|
|
@@ -641,10 +699,7 @@ BoulderLayerOptions BuildBoulderOptions(const BoulderLayerSpec& spec, const std:
|
|
|
641
699
|
SizeSlopeMap{BuildField(s.field, Child(Child(path, "slope_map"), "field"), directory),
|
|
642
700
|
s.measure, s.referenceDiameter, s.minExponent, s.maxExponent};
|
|
643
701
|
}
|
|
644
|
-
|
|
645
|
-
boulder.manual = true;
|
|
646
|
-
options.manual.push_back(boulder);
|
|
647
|
-
}
|
|
702
|
+
options.manual = spec.manual;
|
|
648
703
|
if (spec.completeness) {
|
|
649
704
|
options.completeness =
|
|
650
705
|
BuildField(*spec.completeness, Child(path, "completeness"), directory);
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
#include "terraingen/layers/craters/shaping/apply.h"
|
|
26
26
|
#include "terraingen/layers/density_map.h"
|
|
27
27
|
#include "terraingen/layers/dunes.h"
|
|
28
|
+
#include "terraingen/layers/midpoint_displacement.h"
|
|
28
29
|
#include "terraingen/layers/pavement.h"
|
|
29
30
|
#include "terraingen/layers/region.h"
|
|
30
31
|
#include "terraingen/layers/roughness.h"
|
|
@@ -614,8 +615,8 @@ struct BoulderLayerSpec {
|
|
|
614
615
|
std::vector<std::string> shapeFiles{};
|
|
615
616
|
std::optional<DensityMapSpec> densityMap{}; ///< Gives `boulders.densityMap`.
|
|
616
617
|
std::optional<SizeSlopeMapSpec> slopeMap{}; ///< Gives `boulders.slopeMap`.
|
|
617
|
-
/// Catalog boulders in the surface's coordinates, as `boulders.manual`.
|
|
618
|
-
std::vector<
|
|
618
|
+
/// Catalog or hand-placed boulders in the surface's coordinates, as `boulders.manual`.
|
|
619
|
+
std::vector<ManualBoulder> manual{};
|
|
619
620
|
std::optional<FieldSpec> completeness{}; ///< Gives `boulders.completeness`.
|
|
620
621
|
|
|
621
622
|
bool operator==(const BoulderLayerSpec& other) const {
|
|
@@ -758,6 +759,30 @@ struct DemDetailLayerSpec {
|
|
|
758
759
|
}
|
|
759
760
|
};
|
|
760
761
|
|
|
762
|
+
/// Layer "midpoint_displacement": random midpoint displacement expansion of a base lattice
|
|
763
|
+
/// (`MidpointDisplacementLayer`), on the base's grid with its estimated roughness
|
|
764
|
+
/// (`EstimateMidpointRoughness`) wherever a value is not given.
|
|
765
|
+
struct MidpointDisplacementLayerSpec {
|
|
766
|
+
std::optional<double> pixelSize{}; ///< Metres; unset for the base's cell size.
|
|
767
|
+
std::optional<double> originX{}; ///< Surface coordinates; unset for the base's first cell.
|
|
768
|
+
std::optional<double> originY{}; ///< Surface coordinates; unset for the base's first cell.
|
|
769
|
+
std::optional<double> fractalDimension{}; ///< Unset to estimate from the base.
|
|
770
|
+
std::optional<double> scale{}; ///< Metres; unset to estimate from the base.
|
|
771
|
+
double minPixelSize = 0.0; ///< Metres; 0 for no limit.
|
|
772
|
+
MidpointBase base = MidpointBase::DiamondSquare;
|
|
773
|
+
std::uint32_t seed = 1;
|
|
774
|
+
|
|
775
|
+
bool operator==(const MidpointDisplacementLayerSpec& other) const {
|
|
776
|
+
return pixelSize == other.pixelSize && originX == other.originX &&
|
|
777
|
+
originY == other.originY && fractalDimension == other.fractalDimension &&
|
|
778
|
+
scale == other.scale && minPixelSize == other.minPixelSize && base == other.base &&
|
|
779
|
+
seed == other.seed;
|
|
780
|
+
}
|
|
781
|
+
bool operator!=(const MidpointDisplacementLayerSpec& other) const {
|
|
782
|
+
return !(*this == other);
|
|
783
|
+
}
|
|
784
|
+
};
|
|
785
|
+
|
|
761
786
|
/// Layer "scale": height * `scale` + `offset` (`ScaleLayer`).
|
|
762
787
|
struct ScaleLayerSpec {
|
|
763
788
|
double scale = 1.0;
|
|
@@ -866,11 +891,11 @@ template <typename T> class Boxed {
|
|
|
866
891
|
struct RegionLayerSpec;
|
|
867
892
|
|
|
868
893
|
/// A layer, named in JSON by its "type".
|
|
869
|
-
using LayerSpec =
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
894
|
+
using LayerSpec = std::variant<NoiseLayerSpec, CraterLayerSpec, BoulderLayerSpec,
|
|
895
|
+
RoughnessLayerSpec, BedformLayerSpec, ScaleLayerSpec, ClampLayerSpec,
|
|
896
|
+
RegionLayerSpec, SecondaryLayerSpec, DemDetailLayerSpec,
|
|
897
|
+
DuneLayerSpec, SandFillLayerSpec, PavementLayerSpec, StrataLayerSpec,
|
|
898
|
+
SandShadowLayerSpec, MidpointDisplacementLayerSpec>;
|
|
874
899
|
|
|
875
900
|
/// Layer "region": `layer` applied only inside `shape` (`RegionLayer`). Boulder ejecta do
|
|
876
901
|
/// not see crater layers inside regions.
|
|
@@ -58,16 +58,16 @@ const std::array<Column<Boulder>, 16> kBoulderColumns{{
|
|
|
58
58
|
{"diameter", [](const Boulder& b) { return Cell(b.diameter); }},
|
|
59
59
|
{"height", [](const Boulder& b) { return Cell(b.height); }},
|
|
60
60
|
{"burial", [](const Boulder& b) { return Cell(b.burial); }},
|
|
61
|
-
{"
|
|
62
|
-
{"
|
|
61
|
+
{"yaw_deg", [](const Boulder& b) { return Cell(b.yaw * kRadian); }},
|
|
62
|
+
{"lean_deg", [](const Boulder& b) { return Cell(b.lean * kRadian); }},
|
|
63
63
|
{"id", [](const Boulder& b) { return Cell(b.id); }},
|
|
64
64
|
{"model", [](const Boulder& b) { return Cell(b.model); }},
|
|
65
65
|
{"wear", [](const Boulder& b) { return Cell(b.wear); }},
|
|
66
66
|
{"parent", [](const Boulder& b) { return Cell(b.parent); }},
|
|
67
67
|
{"piece", [](const Boulder& b) { return Cell(static_cast<std::uint64_t>(b.piece)); }},
|
|
68
68
|
{"rest", [](const Boulder& b) { return Cell(static_cast<int>(b.rest)); }},
|
|
69
|
-
{"
|
|
70
|
-
{"
|
|
69
|
+
{"tilt_deg", [](const Boulder& b) { return Cell(b.tilt * kRadian); }},
|
|
70
|
+
{"tilt_azimuth_deg", [](const Boulder& b) { return Cell(b.tiltAzimuth * kRadian); }},
|
|
71
71
|
}};
|
|
72
72
|
|
|
73
73
|
/// A cell as CSV writes it: doubles exactly, an unknown value empty and booleans as 1 or 0.
|
|
@@ -469,6 +469,46 @@ template <typename IO> void BoulderRenderingFields(IO& io, BoulderRendering& ren
|
|
|
469
469
|
"The boulders' 3D boulder shapes, used by shape relief and by models.");
|
|
470
470
|
}
|
|
471
471
|
|
|
472
|
+
template <typename IO> void Fields(IO& io, ManualBoulder& boulder) {
|
|
473
|
+
io("x", boulder.x,
|
|
474
|
+
"Centre along x in the surface's coordinates; the longitude in degrees on a sphere.");
|
|
475
|
+
io("y", boulder.y,
|
|
476
|
+
"Centre along y in the surface's coordinates; the latitude in degrees on a sphere.");
|
|
477
|
+
io("diameter", boulder.diameter, "Length of the long axis, in metres.", "m", Above(0.0));
|
|
478
|
+
io("id", boulder.id,
|
|
479
|
+
"Stable ID that seeds what is drawn for the boulder; 0 derives one from its position and "
|
|
480
|
+
"diameter.");
|
|
481
|
+
NanField(io, "height", boulder.height,
|
|
482
|
+
"Vertical extent in metres, buried part included; unset draws it from the height "
|
|
483
|
+
"ratios.",
|
|
484
|
+
"m", Above(0.0));
|
|
485
|
+
NanField(io, "burial", boulder.burial,
|
|
486
|
+
"Buried share of the height, from 0 to below 1; unset draws it.", "",
|
|
487
|
+
FromBelow(0.0, 1.0));
|
|
488
|
+
NanRadianField(io, "yaw_deg", boulder.yaw,
|
|
489
|
+
"Rotation about the vertical, degrees counter-clockwise from east; unset "
|
|
490
|
+
"draws it.");
|
|
491
|
+
NanRadianField(io, "lean_deg", boulder.lean,
|
|
492
|
+
"Tilt of the boulder's vertical axis from the vertical, degrees; unset draws "
|
|
493
|
+
"it.");
|
|
494
|
+
NanRadianField(io, "tilt_deg", boulder.tilt,
|
|
495
|
+
"Angle of the up axis from the vertical after lean, degrees; unset draws it. "
|
|
496
|
+
"A followed slope tips it further.");
|
|
497
|
+
NanRadianField(io, "tilt_azimuth_deg", boulder.tiltAzimuth,
|
|
498
|
+
"Direction the up axis tips toward, degrees counter-clockwise from east; unset "
|
|
499
|
+
"draws it.");
|
|
500
|
+
NanField(io, "wear", boulder.wear,
|
|
501
|
+
"How worn it is, from 0 (fresh) to 1; unset draws it. With burial_by_wear it sets "
|
|
502
|
+
"a drawn burial.",
|
|
503
|
+
"", UnitInterval());
|
|
504
|
+
io("rest", boulder.rest,
|
|
505
|
+
"Which axis it stands along; unset draws it. A fixed lean, tilt, tilt azimuth or rest "
|
|
506
|
+
"keeps a model from being tipped over by settle.");
|
|
507
|
+
io("shape_seed", boulder.shapeSeed,
|
|
508
|
+
"Seed of its 3D shape, as a generated boulder's derived one; unset derives it from the "
|
|
509
|
+
"ID.");
|
|
510
|
+
}
|
|
511
|
+
|
|
472
512
|
/// The fields of the files and maps a boulder layer reads, and its catalog boulders.
|
|
473
513
|
template <typename IO> void BoulderInputFields(IO& io, BoulderLayerSpec& spec) {
|
|
474
514
|
io("shape_files", spec.shapeFiles,
|
|
@@ -483,8 +523,8 @@ template <typename IO> void BoulderInputFields(IO& io, BoulderLayerSpec& spec) {
|
|
|
483
523
|
"sizes into a local power law through their count at its reference diameter; needs a size "
|
|
484
524
|
"distribution. Unset keeps the sizes' shape everywhere.");
|
|
485
525
|
io("manual", spec.manual,
|
|
486
|
-
"Catalog boulders placed as given and never thinned or left out;
|
|
487
|
-
"
|
|
526
|
+
"Catalog or hand-placed boulders placed as given and never thinned or left out; fields "
|
|
527
|
+
"left unset are drawn as for generated boulders. Boulders fixing any field never break.");
|
|
488
528
|
io("completeness", spec.completeness,
|
|
489
529
|
"Where the manual boulders are a complete catalog: the diameter in metres from which they "
|
|
490
530
|
"stand in for generated boulders, infinite or no value where there is no catalog. Unset "
|
|
@@ -175,6 +175,40 @@ void RadianField(IO& io, std::string_view key, std::optional<double>& radians,
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
+
/// Whether an `IO` takes an angle stored in radians and unset when NaN as the radians themselves,
|
|
179
|
+
/// through `io.NanRadians(key, radians, description, range)`, such as the Python bindings.
|
|
180
|
+
template <typename IO, typename = void> struct TakesNanRadiansTrait : std::false_type {};
|
|
181
|
+
template <typename IO>
|
|
182
|
+
struct TakesNanRadiansTrait<
|
|
183
|
+
IO, std::void_t<decltype(std::declval<IO&>().NanRadians(
|
|
184
|
+
std::string_view{}, std::declval<double&>(), std::string_view{}, FieldRange{}))>>
|
|
185
|
+
: std::true_type {};
|
|
186
|
+
template <typename IO> inline constexpr bool TakesNanRadians = TakesNanRadiansTrait<IO>::value;
|
|
187
|
+
|
|
188
|
+
/// `RadianField` for an angle unset when NaN, as an optional field in degrees.
|
|
189
|
+
template <typename IO>
|
|
190
|
+
void NanRadianField(IO& io, std::string_view key, double& radians, std::string_view description,
|
|
191
|
+
const FieldRange& range = {}) {
|
|
192
|
+
if constexpr (TakesNanRadians<IO>) {
|
|
193
|
+
io.NanRadians(key, radians, description, range);
|
|
194
|
+
} else {
|
|
195
|
+
std::optional<double> value;
|
|
196
|
+
if (!std::isnan(radians)) {
|
|
197
|
+
value = radians;
|
|
198
|
+
}
|
|
199
|
+
RadianField(io, key, value, description, range);
|
|
200
|
+
radians = value.value_or(std::numeric_limits<double>::quiet_NaN());
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/// Reads or writes a number unset when NaN, as an optional field.
|
|
205
|
+
template <typename IO>
|
|
206
|
+
void NanField(IO& io, std::string_view key, double& value, std::string_view description,
|
|
207
|
+
std::string_view unit = {}, const FieldRange& range = {}) {
|
|
208
|
+
OptionalBound(io, key, value, description, unit, std::numeric_limits<double>::quiet_NaN(),
|
|
209
|
+
range);
|
|
210
|
+
}
|
|
211
|
+
|
|
178
212
|
/// The keys of a crater selection's fields.
|
|
179
213
|
struct SelectionKeys {
|
|
180
214
|
std::string_view minDiameter = "min_diameter";
|
|
@@ -23,6 +23,14 @@ template <typename IO> void Fields(IO& io, Crater& crater) {
|
|
|
23
23
|
"Gyr", AtLeast(0.0));
|
|
24
24
|
io("id", crater.id,
|
|
25
25
|
"Stable ID that seeds the crater's outline; 0 derives one from its position and diameter.");
|
|
26
|
+
NanField(io, "depth", crater.depth,
|
|
27
|
+
"Rim-to-floor depth in metres, in place of the one the degradation model and age "
|
|
28
|
+
"give; unset keeps the model's.",
|
|
29
|
+
"m", Above(0.0));
|
|
30
|
+
NanField(io, "rim_height", crater.rimHeight,
|
|
31
|
+
"Height of the rim crest above the surface the crater formed on, in metres; needs a "
|
|
32
|
+
"depth. Unset lowers the fresh rim in proportion to the depth.",
|
|
33
|
+
"m", AtLeast(0.0));
|
|
26
34
|
}
|
|
27
35
|
|
|
28
36
|
template <typename IO> void Fields(IO& io, CraterSpacing& spacing) {
|
|
@@ -164,6 +164,17 @@ template <> struct EnumNames<BlendShape> {
|
|
|
164
164
|
}};
|
|
165
165
|
};
|
|
166
166
|
|
|
167
|
+
template <> struct EnumNames<MidpointBase> {
|
|
168
|
+
static constexpr std::array<EnumEntry<MidpointBase>, 2> kValues{{
|
|
169
|
+
{"diamond_square", MidpointBase::DiamondSquare,
|
|
170
|
+
"The ground at the base lattice's nodes, interpolated by square and diamond steps: the "
|
|
171
|
+
"heights are replaced by the expanded lattice, as when expanding a DEM."},
|
|
172
|
+
{"source", MidpointBase::Source,
|
|
173
|
+
"Zero at the base lattice's nodes: only the displacements are added, keeping the source's "
|
|
174
|
+
"own interpolation between nodes."},
|
|
175
|
+
}};
|
|
176
|
+
};
|
|
177
|
+
|
|
167
178
|
template <> struct EnumNames<EjectaProfile> {
|
|
168
179
|
static constexpr std::array<EnumEntry<EjectaProfile>, 2> kValues{{
|
|
169
180
|
{"smoothstep", EjectaProfile::Smoothstep,
|
|
@@ -287,6 +298,14 @@ template <> struct EnumNames<CraterMorphometryFit> {
|
|
|
287
298
|
}};
|
|
288
299
|
};
|
|
289
300
|
|
|
301
|
+
template <> struct EnumNames<BoulderRest> {
|
|
302
|
+
static constexpr std::array<EnumEntry<BoulderRest>, 3> kValues{{
|
|
303
|
+
{"face", BoulderRest::Face, "On its broadest face: its short axis up."},
|
|
304
|
+
{"side", BoulderRest::Side, "On a side: its intermediate axis up."},
|
|
305
|
+
{"end", BoulderRest::End, "On an end: its long axis up."},
|
|
306
|
+
}};
|
|
307
|
+
};
|
|
308
|
+
|
|
290
309
|
template <> struct EnumNames<BoulderRelief> {
|
|
291
310
|
static constexpr std::array<EnumEntry<BoulderRelief>, 3> kValues{{
|
|
292
311
|
{"dome", BoulderRelief::Dome,
|
|
@@ -448,6 +448,40 @@ template <typename IO> void Fields(IO& io, DemDetailLayerSpec& spec) {
|
|
|
448
448
|
io("weight", spec.weight, "Share of the detail added; 1 restores it whole, 0.5 halves it.");
|
|
449
449
|
}
|
|
450
450
|
|
|
451
|
+
template <> struct SpecName<MidpointDisplacementLayerSpec> {
|
|
452
|
+
static constexpr std::string_view kName = "midpoint_displacement";
|
|
453
|
+
static constexpr std::string_view kDescription =
|
|
454
|
+
"Random midpoint displacement (diamond-square) expansion of the base lattice, as PANGU "
|
|
455
|
+
"expands DEMs: each level halves the node spacing down to the sample spacing, adding "
|
|
456
|
+
"fractal detail without changing the nodes before it.";
|
|
457
|
+
};
|
|
458
|
+
template <typename IO> void Fields(IO& io, MidpointDisplacementLayerSpec& spec) {
|
|
459
|
+
io("pixel_size", spec.pixelSize,
|
|
460
|
+
"Spacing of the base lattice's nodes in metres. Unset uses the base's cell size.", "m",
|
|
461
|
+
Above(0.0));
|
|
462
|
+
io("origin_x", spec.originX,
|
|
463
|
+
"x of a node of the base lattice, in surface coordinates. Unset uses the base's first "
|
|
464
|
+
"cell centre.");
|
|
465
|
+
io("origin_y", spec.originY,
|
|
466
|
+
"y of a node of the base lattice, in surface coordinates. Unset uses the base's first "
|
|
467
|
+
"cell centre.");
|
|
468
|
+
io("fractal_dimension", spec.fractalDimension,
|
|
469
|
+
"Fractal dimension, from 2 (smooth) to 3 (rough): each square or diamond step scales the "
|
|
470
|
+
"displacement by 2^-((3 - F) / 2). Unset estimates it from the base's variogram.",
|
|
471
|
+
"", Between(2.0, 3.0));
|
|
472
|
+
io("scale", spec.scale,
|
|
473
|
+
"Standard deviation in metres of the displacement at the base lattice's own last diamond "
|
|
474
|
+
"step. Unset estimates it from the base as the RMS of each cell minus the mean of its four "
|
|
475
|
+
"neighbours.",
|
|
476
|
+
"m", AtLeast(0.0));
|
|
477
|
+
io("min_pixel_size", spec.minPixelSize,
|
|
478
|
+
"Finest node spacing in metres the lattice is expanded to; 0 expands down to the sample "
|
|
479
|
+
"spacing.",
|
|
480
|
+
"m", AtLeast(0.0));
|
|
481
|
+
io("base", spec.base, "What is displaced: the ground at the base nodes, or zero.");
|
|
482
|
+
io("seed", spec.seed, "Seed of the displacements.");
|
|
483
|
+
}
|
|
484
|
+
|
|
451
485
|
template <> struct SpecName<ScaleLayerSpec> {
|
|
452
486
|
static constexpr std::string_view kName = "scale";
|
|
453
487
|
static constexpr std::string_view kDescription =
|
|
@@ -70,9 +70,10 @@ std::string Summary(const GeneratedTerrain& terrain);
|
|
|
70
70
|
void WriteCraterList(const CraterList& craters, const std::filesystem::path& path,
|
|
71
71
|
ListFormat format, const std::vector<CraterAttributes>& attributes = {});
|
|
72
72
|
|
|
73
|
-
/// Writes boulders as CSV (columns x, y, ground, diameter, height, burial,
|
|
74
|
-
/// wear, parent, piece, rest,
|
|
75
|
-
/// same keys, doubles written exactly and an unknown ground left
|
|
73
|
+
/// Writes boulders as CSV (columns x, y, ground, diameter, height, burial, yaw_deg, lean_deg, id,
|
|
74
|
+
/// model, wear, parent, piece, rest, tilt_deg and tilt_azimuth_deg, angles in degrees) or as JSON
|
|
75
|
+
/// ({"boulders": [...]}) with the same keys, doubles written exactly and an unknown ground left
|
|
76
|
+
/// empty (CSV) or null (JSON).
|
|
76
77
|
/// @throws std::runtime_error if the file cannot be written.
|
|
77
78
|
void WriteBoulderList(const std::vector<Boulder>& boulders, const std::filesystem::path& path,
|
|
78
79
|
ListFormat format);
|