terraingenpy 0.1.1.dev25__tar.gz → 0.1.1.dev73__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.dev73/.github/workflows/ci.yml +513 -0
- terraingenpy-0.1.1.dev73/CHANGELOG.md +83 -0
- terraingenpy-0.1.1.dev73/CMakeLists.txt +150 -0
- terraingenpy-0.1.1.dev73/PKG-INFO +250 -0
- terraingenpy-0.1.1.dev73/README.md +194 -0
- terraingenpy-0.1.1.dev73/examples/config/boulders/example_boulders_exposure.json +48 -0
- terraingenpy-0.1.1.dev73/examples/config/boulders/example_boulders_rock_abundance.json +68 -0
- terraingenpy-0.1.1.dev73/examples/config/distributions/example_distributions_piecewise_uniform.json +65 -0
- terraingenpy-0.1.1.dev73/examples/config/planets/example_planets_mars_craters.json +60 -0
- terraingenpy-0.1.1.dev73/examples/cpp/albedo/example_albedo_crater_rays.cpp +110 -0
- terraingenpy-0.1.1.dev73/examples/cpp/tiles/example_tiles_quadtree.cpp +155 -0
- terraingenpy-0.1.1.dev73/examples/python/craters/example_craters_simple.py +73 -0
- terraingenpy-0.1.1.dev73/examples/python/tiles/example_tiles_quadtree.py +97 -0
- terraingenpy-0.1.1.dev73/terraingen/CMakeLists.txt +126 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/CMakeLists.txt +22 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/albedo.cpp +157 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/albedo.h +133 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/bands.cpp +66 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/bands.h +49 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/blast_zones.cpp +115 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/brightness_statistics.cpp +81 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/brightness_statistics.h +28 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/crater_albedo.cpp +862 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/crater_albedo.h +361 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/photometry.cpp +93 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/photometry.h +50 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/raster_albedo.cpp +150 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/raster_albedo.h +98 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/rock_albedo.cpp +122 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/rock_albedo.h +72 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/slope_albedo.cpp +155 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/slope_albedo.h +74 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/splotches.cpp +463 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/splotches.h +169 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/synthetic.cpp +86 -0
- terraingenpy-0.1.1.dev73/terraingen/albedo/synthetic.h +79 -0
- terraingenpy-0.1.1.dev73/terraingen/app/CMakeLists.txt +30 -0
- terraingenpy-0.1.1.dev73/terraingen/app/cli.cpp +347 -0
- terraingenpy-0.1.1.dev73/terraingen/app/cli.h +64 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/CMakeLists.txt +7 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/config_editor.cpp +919 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/gui_app.cpp +499 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/gui_app.h +142 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/run.cpp +31 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/run.h +24 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/terrain_scene.cpp +94 -0
- terraingenpy-0.1.1.dev73/terraingen/app/gui/widgets.h +34 -0
- terraingenpy-0.1.1.dev73/terraingen/config/CMakeLists.txt +25 -0
- terraingenpy-0.1.1.dev73/terraingen/config/build.cpp +803 -0
- terraingenpy-0.1.1.dev73/terraingen/config/build.h +152 -0
- terraingenpy-0.1.1.dev73/terraingen/config/config.cpp +93 -0
- terraingenpy-0.1.1.dev73/terraingen/config/config.h +872 -0
- terraingenpy-0.1.1.dev73/terraingen/config/feature_lists.cpp +274 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/albedo.h +562 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/boulders.h +530 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/checks.h +69 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/common.h +196 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/crater_models.h +279 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/craters.h +424 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/enums.h +368 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/json_io.h +329 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/layers.h +529 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/materials.h +56 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/outputs.h +177 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/ranges.h +114 -0
- terraingenpy-0.1.1.dev73/terraingen/config/fields/sources.h +127 -0
- terraingenpy-0.1.1.dev73/terraingen/config/generate.cpp +431 -0
- terraingenpy-0.1.1.dev73/terraingen/config/generate.h +104 -0
- terraingenpy-0.1.1.dev73/terraingen/config/json.cpp +162 -0
- terraingenpy-0.1.1.dev73/terraingen/config/json.h +85 -0
- terraingenpy-0.1.1.dev73/terraingen/config/ranges.cpp +89 -0
- terraingenpy-0.1.1.dev73/terraingen/config/validate.cpp +739 -0
- terraingenpy-0.1.1.dev73/terraingen/config/validate.h +51 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/CMakeLists.txt +26 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/composition.cpp +67 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/composition.h +111 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/exponential_chronology.cpp +31 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/exponential_chronology.h +25 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/ivanov.cpp +29 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/minimum.cpp +54 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/minimum.h +46 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/neukum.cpp +43 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/piecewise_power_law.cpp +59 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/production_surface.cpp +35 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/size_frequency.cpp +166 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/size_frequency.h +126 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/sp8023.cpp +125 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/sp8023.h +22 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/spliced.cpp +65 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/summed.cpp +54 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/summed.h +46 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/synthterrain.cpp +19 -0
- terraingenpy-0.1.1.dev73/terraingen/distribution/synthterrain.h +22 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/backend.cpp +183 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/backend.h +70 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/cuda.cpp +331 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/cuda.h +54 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/device.h +103 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/kernel.cpp +149 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/kernel.h +40 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/metal.cpp +196 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/metal.h +49 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/vulkan.cpp +570 -0
- terraingenpy-0.1.1.dev73/terraingen/gpu/vulkan.h +73 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/CMakeLists.txt +75 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/anchored_plane.cpp +22 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/anchored_plane.h +27 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/bedforms.cpp +200 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/bedforms.h +108 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/bisection.h +36 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/abundance.cpp +383 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_abundance.cpp +176 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_abundance.h +82 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_clusters.cpp +60 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_clusters.h +46 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_fragments.cpp +111 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_layer.cpp +926 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_layer.h +366 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_models.cpp +318 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_models.h +93 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_options.cpp +262 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_options.h +409 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_placer.h +41 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_shape.cpp +476 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/boulder_shape.h +112 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/ejecta_index.cpp +91 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/boulders/ejecta_index.h +53 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/ages/steady_state.cpp +58 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater.cpp +91 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater.h +148 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_layer.cpp +212 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_layer.h +136 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_placer.cpp +32 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/crater_placer.h +48 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusion.cpp +329 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusion.h +150 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusivities.cpp +47 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/degradation/diffusivities.h +47 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/cell_cache.cpp +31 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/cell_cache.h +63 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/population.cpp +368 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/population.h +158 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/generation/spacing.cpp +180 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/rays.cpp +46 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/secondaries.cpp +397 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/secondary_model.cpp +257 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/secondary_model.h +218 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/apply.cpp +1169 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/apply.h +93 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/apply_options.cpp +112 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/crater_kernel.cpp +302 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/crater_kernel.h +63 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/datum.cpp +94 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/datum.h +87 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/irregularity.cpp +347 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/irregularity.h +135 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/prepared.cpp +27 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/prepared.h +51 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/slope.cpp +61 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/craters/shaping/slope.h +82 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/dunes.cpp +634 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/dunes.h +229 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/evaluation_cache.h +59 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/exposure.cpp +108 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/exposure.h +78 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/ground.cpp +41 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/ground.h +79 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/kernel.h +43 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/kernels/crater_body_datums.slang +39 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/kernels/craters.h +842 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/kernels/craters.slang +58 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/lattice.h +34 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/layer.cpp +50 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/noise_relief.cpp +37 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/pavement.cpp +260 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/pavement.h +128 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/region.cpp +240 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/roughness.cpp +194 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/sample_block.cpp +55 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/sample_block.h +85 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/sand_fill.cpp +79 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/sand_fill.h +73 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/sand_shadow.cpp +149 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/sand_shadow.h +101 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/strata.cpp +140 -0
- terraingenpy-0.1.1.dev73/terraingen/layers/strata.h +103 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/formats.h +67 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/gltf.cpp +299 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/icq.cpp +220 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/icq.h +77 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/mesh_io.cpp +108 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/mesh_io.h +65 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/obj.cpp +111 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/io/stl.cpp +135 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/mesh.cpp +239 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/mesh.h +119 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/polyhedra.cpp +173 -0
- terraingenpy-0.1.1.dev73/terraingen/mesh/shape_model.cpp +182 -0
- terraingenpy-0.1.1.dev73/terraingen/noise/fractal.h +316 -0
- terraingenpy-0.1.1.dev73/terraingen/noise/hash.h +77 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/CMakeLists.txt +15 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/body_mesh.cpp +116 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/body_mesh.h +37 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/features.cpp +19 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/features.h +22 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/materials.cpp +123 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/materials.h +50 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/terrain.cpp +202 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/terrain.h +147 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/tiles.cpp +187 -0
- terraingenpy-0.1.1.dev73/terraingen/pipeline/tiles.h +161 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/albedo.cpp +470 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/arrays.h +70 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/boulders.cpp +402 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/common.h +49 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/crater_models.cpp +345 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/craters.cpp +499 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/distribution.cpp +377 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/layers.cpp +435 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/materials.cpp +106 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/mesh.cpp +228 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/noise.cpp +370 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/objects.h +121 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/options.h +211 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/pipeline.cpp +530 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/random.cpp +137 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/raster.cpp +289 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/sources.cpp +187 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/tables.h +92 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/trampolines.h +85 -0
- terraingenpy-0.1.1.dev73/terraingen/python/src/util.cpp +237 -0
- terraingenpy-0.1.1.dev73/terraingen/python/terraingen/render.py +237 -0
- terraingenpy-0.1.1.dev73/terraingen/random/samplers.cpp +143 -0
- terraingenpy-0.1.1.dev73/terraingen/random/samplers.h +66 -0
- terraingenpy-0.1.1.dev73/terraingen/random/stream.h +71 -0
- terraingenpy-0.1.1.dev73/terraingen/random/streams.h +143 -0
- terraingenpy-0.1.1.dev73/terraingen/random/value_distribution.cpp +75 -0
- terraingenpy-0.1.1.dev73/terraingen/random/value_distribution.h +44 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/cell_loops.h +116 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/geo_transform.h +71 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/geotiff_read.cpp +663 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/geotiff_write.cpp +304 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/tiff_format.cpp +129 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/geotiff/tiff_format.h +154 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/grid.cpp +112 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/grid.h +77 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/raster.h +164 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/raster_stats.h +48 -0
- terraingenpy-0.1.1.dev73/terraingen/raster/resample.cpp +126 -0
- terraingenpy-0.1.1.dev73/terraingen/sources/field.cpp +109 -0
- terraingenpy-0.1.1.dev73/terraingen/sources/field.h +115 -0
- terraingenpy-0.1.1.dev73/terraingen/sources/flat_source.h +56 -0
- terraingenpy-0.1.1.dev73/terraingen/sources/geotiff_source.cpp +170 -0
- terraingenpy-0.1.1.dev73/terraingen/sources/source_chain.cpp +54 -0
- terraingenpy-0.1.1.dev73/terraingen/terraingen.h +133 -0
- terraingenpy-0.1.1.dev73/terraingen/util/CMakeLists.txt +18 -0
- terraingenpy-0.1.1.dev73/terraingen/util/arithmetic.h +22 -0
- terraingenpy-0.1.1.dev73/terraingen/util/cells.h +189 -0
- terraingenpy-0.1.1.dev73/terraingen/util/checks.cpp +46 -0
- terraingenpy-0.1.1.dev73/terraingen/util/checks.h +50 -0
- terraingenpy-0.1.1.dev73/terraingen/util/cube_faces.h +74 -0
- terraingenpy-0.1.1.dev73/terraingen/util/cube_sphere_cells.cpp +344 -0
- terraingenpy-0.1.1.dev73/terraingen/util/files.cpp +33 -0
- terraingenpy-0.1.1.dev73/terraingen/util/files.h +19 -0
- terraingenpy-0.1.1.dev73/terraingen/util/geometry.h +139 -0
- terraingenpy-0.1.1.dev73/terraingen/util/log.cpp +124 -0
- terraingenpy-0.1.1.dev73/terraingen/util/log.h +110 -0
- terraingenpy-0.1.1.dev73/terraingen/util/planar_cells.cpp +64 -0
- terraingenpy-0.1.1.dev73/terraingen/util/radial_shape.cpp +159 -0
- terraingenpy-0.1.1.dev73/terraingen/util/radial_shape.h +95 -0
- terraingenpy-0.1.1.dev73/terraingen/util/surface.cpp +334 -0
- terraingenpy-0.1.1.dev73/terraingen/util/surface.h +223 -0
- terraingenpy-0.1.1.dev73/terraingen/util/text.cpp +30 -0
- terraingenpy-0.1.1.dev73/terraingen/util/text.h +23 -0
- terraingenpy-0.1.1.dev73/terraingen/util/version.h.in +29 -0
- terraingenpy-0.1.1.dev73/tests/CMakeLists.txt +51 -0
- terraingenpy-0.1.1.dev73/tests/integration/examples/CMakeLists.txt +66 -0
- terraingenpy-0.1.1.dev73/tests/python/test_albedo.py +301 -0
- terraingenpy-0.1.1.dev73/tests/python/test_boulders.py +311 -0
- terraingenpy-0.1.1.dev73/tests/python/test_config.py +190 -0
- terraingenpy-0.1.1.dev73/tests/python/test_crater_models.py +248 -0
- terraingenpy-0.1.1.dev73/tests/python/test_craters.py +481 -0
- terraingenpy-0.1.1.dev73/tests/python/test_distributions.py +241 -0
- terraingenpy-0.1.1.dev73/tests/python/test_layers.py +436 -0
- terraingenpy-0.1.1.dev73/tests/python/test_pipeline.py +224 -0
- terraingenpy-0.1.1.dev73/tests/python/test_raster.py +249 -0
- terraingenpy-0.1.1.dev73/tests/python/test_sources.py +157 -0
- terraingenpy-0.1.1.dev73/tests/python/test_tiles.py +107 -0
- terraingenpy-0.1.1.dev73/tests/python/test_util.py +206 -0
- terraingenpy-0.1.1.dev73/tests/statistical/layers/boulders/boulder_layer_test.cpp +94 -0
- terraingenpy-0.1.1.dev73/tests/unit/CMakeLists.txt +18 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/CMakeLists.txt +14 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/albedo_test.cpp +427 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/bands_test.cpp +71 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/blast_zones_test.cpp +122 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/crater_albedo_test.cpp +829 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/photometry_test.cpp +69 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/rock_albedo_test.cpp +158 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/slope_albedo_test.cpp +113 -0
- terraingenpy-0.1.1.dev73/tests/unit/albedo/splotches_test.cpp +392 -0
- terraingenpy-0.1.1.dev73/tests/unit/app/cli_test.cpp +273 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/CMakeLists.txt +19 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/build_test.cpp +662 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/checks_test.cpp +59 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/config_test.cpp +60 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/configs.h +262 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/feature_lists_test.cpp +140 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/generate_terrain_test.cpp +595 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/json_io_test.cpp +574 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/json_read_test.cpp +152 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/ranges_test.cpp +168 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/schema_test.cpp +522 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/validate_config_test.cpp +601 -0
- terraingenpy-0.1.1.dev73/tests/unit/config/validate_sources_test.cpp +302 -0
- terraingenpy-0.1.1.dev73/tests/unit/distribution/CMakeLists.txt +25 -0
- terraingenpy-0.1.1.dev73/tests/unit/distribution/composition_test.cpp +135 -0
- terraingenpy-0.1.1.dev73/tests/unit/distribution/exponential_chronology_test.cpp +39 -0
- terraingenpy-0.1.1.dev73/tests/unit/distribution/piecewise_uniform_test.cpp +131 -0
- terraingenpy-0.1.1.dev73/tests/unit/distribution/sp8023_test.cpp +53 -0
- terraingenpy-0.1.1.dev73/tests/unit/distribution/synthterrain_test.cpp +22 -0
- terraingenpy-0.1.1.dev73/tests/unit/distribution/tabulated_test.cpp +134 -0
- terraingenpy-0.1.1.dev73/tests/unit/gpu/backend_test.cpp +179 -0
- terraingenpy-0.1.1.dev73/tests/unit/gpu/noise_test.cpp +170 -0
- terraingenpy-0.1.1.dev73/tests/unit/gpu/vulkan_test.cpp +152 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/CMakeLists.txt +55 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/anchored_plane_test.cpp +24 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/bisection_test.cpp +29 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_fragments_test.cpp +311 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_layer_test.cpp +1330 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_models_test.cpp +201 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/boulders/boulder_options_test.cpp +81 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/crater_layer_test.cpp +197 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/degradation/diffusion_test.cpp +227 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/generation/cell_cache_test.cpp +76 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/generation/population_test.cpp +673 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/secondaries_test.cpp +534 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/apply_test.cpp +605 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +491 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/datum_test.cpp +96 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/irregularity_test.cpp +363 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/shaping/slope_test.cpp +303 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/craters/sphere_test.cpp +375 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/exposure_test.cpp +136 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/ground_test.cpp +61 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/lattice_test.cpp +32 -0
- terraingenpy-0.1.1.dev73/tests/unit/layers/sample_block_test.cpp +127 -0
- terraingenpy-0.1.1.dev73/tests/unit/mesh/io/mesh_io_test.cpp +203 -0
- terraingenpy-0.1.1.dev73/tests/unit/mesh/mesh_test.cpp +160 -0
- terraingenpy-0.1.1.dev73/tests/unit/noise/hash_test.cpp +81 -0
- terraingenpy-0.1.1.dev73/tests/unit/pipeline/CMakeLists.txt +12 -0
- terraingenpy-0.1.1.dev73/tests/unit/pipeline/features_test.cpp +143 -0
- terraingenpy-0.1.1.dev73/tests/unit/pipeline/materials_test.cpp +161 -0
- terraingenpy-0.1.1.dev73/tests/unit/pipeline/terrain_test.cpp +417 -0
- terraingenpy-0.1.1.dev73/tests/unit/pipeline/terrain_tiles_test.cpp +337 -0
- terraingenpy-0.1.1.dev73/tests/unit/pipeline/tile_cache_test.cpp +43 -0
- terraingenpy-0.1.1.dev73/tests/unit/pipeline/tiling_test.cpp +85 -0
- terraingenpy-0.1.1.dev73/tests/unit/random/stream_test.cpp +108 -0
- terraingenpy-0.1.1.dev73/tests/unit/random/value_distribution_test.cpp +64 -0
- terraingenpy-0.1.1.dev73/tests/unit/raster/geo_transform_test.cpp +67 -0
- terraingenpy-0.1.1.dev73/tests/unit/raster/geotiff_test.cpp +419 -0
- terraingenpy-0.1.1.dev73/tests/unit/raster/grid_test.cpp +89 -0
- terraingenpy-0.1.1.dev73/tests/unit/raster/raster_test.cpp +86 -0
- terraingenpy-0.1.1.dev73/tests/unit/raster/tiff_format_test.cpp +123 -0
- terraingenpy-0.1.1.dev73/tests/unit/sources/flat_source_test.cpp +56 -0
- terraingenpy-0.1.1.dev73/tests/unit/util/CMakeLists.txt +20 -0
- terraingenpy-0.1.1.dev73/tests/unit/util/cells_test.cpp +87 -0
- terraingenpy-0.1.1.dev73/tests/unit/util/checks_test.cpp +66 -0
- terraingenpy-0.1.1.dev73/tests/unit/util/geometry_test.cpp +64 -0
- terraingenpy-0.1.1.dev73/tests/unit/util/surface_test.cpp +680 -0
- terraingenpy-0.1.1.dev73/tests/unit/util/text_test.cpp +72 -0
- terraingenpy-0.1.1.dev25/.github/workflows/ci.yml +0 -514
- terraingenpy-0.1.1.dev25/CHANGELOG.md +0 -59
- terraingenpy-0.1.1.dev25/CMakeLists.txt +0 -144
- terraingenpy-0.1.1.dev25/PKG-INFO +0 -248
- terraingenpy-0.1.1.dev25/README.md +0 -192
- terraingenpy-0.1.1.dev25/examples/config/boulders/example_boulders_exposure.json +0 -48
- terraingenpy-0.1.1.dev25/examples/config/boulders/example_boulders_rock_abundance.json +0 -65
- terraingenpy-0.1.1.dev25/examples/config/distributions/example_distributions_piecewise_uniform.json +0 -61
- terraingenpy-0.1.1.dev25/examples/config/planets/example_planets_mars_craters.json +0 -53
- terraingenpy-0.1.1.dev25/examples/cpp/albedo/example_albedo_crater_rays.cpp +0 -110
- terraingenpy-0.1.1.dev25/examples/cpp/tiles/example_tiles_quadtree.cpp +0 -155
- terraingenpy-0.1.1.dev25/examples/python/craters/example_craters_simple.py +0 -73
- terraingenpy-0.1.1.dev25/examples/python/tiles/example_tiles_quadtree.py +0 -97
- terraingenpy-0.1.1.dev25/terraingen/CMakeLists.txt +0 -127
- terraingenpy-0.1.1.dev25/terraingen/albedo/CMakeLists.txt +0 -19
- terraingenpy-0.1.1.dev25/terraingen/albedo/albedo.cpp +0 -136
- terraingenpy-0.1.1.dev25/terraingen/albedo/albedo.h +0 -122
- terraingenpy-0.1.1.dev25/terraingen/albedo/blast_zones.cpp +0 -135
- terraingenpy-0.1.1.dev25/terraingen/albedo/crater_albedo.cpp +0 -846
- terraingenpy-0.1.1.dev25/terraingen/albedo/crater_albedo.h +0 -346
- terraingenpy-0.1.1.dev25/terraingen/albedo/raster_albedo.cpp +0 -221
- terraingenpy-0.1.1.dev25/terraingen/albedo/raster_albedo.h +0 -113
- terraingenpy-0.1.1.dev25/terraingen/albedo/rock_albedo.cpp +0 -134
- terraingenpy-0.1.1.dev25/terraingen/albedo/rock_albedo.h +0 -72
- terraingenpy-0.1.1.dev25/terraingen/albedo/slope_albedo.cpp +0 -167
- terraingenpy-0.1.1.dev25/terraingen/albedo/slope_albedo.h +0 -74
- terraingenpy-0.1.1.dev25/terraingen/albedo/splotches.cpp +0 -458
- terraingenpy-0.1.1.dev25/terraingen/albedo/splotches.h +0 -166
- terraingenpy-0.1.1.dev25/terraingen/albedo/synthetic.cpp +0 -86
- terraingenpy-0.1.1.dev25/terraingen/albedo/synthetic.h +0 -78
- terraingenpy-0.1.1.dev25/terraingen/app/CMakeLists.txt +0 -30
- terraingenpy-0.1.1.dev25/terraingen/app/cli.cpp +0 -282
- terraingenpy-0.1.1.dev25/terraingen/app/cli.h +0 -66
- terraingenpy-0.1.1.dev25/terraingen/app/gui/CMakeLists.txt +0 -7
- terraingenpy-0.1.1.dev25/terraingen/app/gui/config_editor.cpp +0 -929
- terraingenpy-0.1.1.dev25/terraingen/app/gui/gui_app.cpp +0 -521
- terraingenpy-0.1.1.dev25/terraingen/app/gui/gui_app.h +0 -134
- terraingenpy-0.1.1.dev25/terraingen/app/gui/run.cpp +0 -31
- terraingenpy-0.1.1.dev25/terraingen/app/gui/run.h +0 -24
- terraingenpy-0.1.1.dev25/terraingen/app/gui/terrain_scene.cpp +0 -94
- terraingenpy-0.1.1.dev25/terraingen/config/CMakeLists.txt +0 -25
- terraingenpy-0.1.1.dev25/terraingen/config/build.cpp +0 -781
- terraingenpy-0.1.1.dev25/terraingen/config/build.h +0 -103
- terraingenpy-0.1.1.dev25/terraingen/config/config.cpp +0 -44
- terraingenpy-0.1.1.dev25/terraingen/config/config.h +0 -803
- terraingenpy-0.1.1.dev25/terraingen/config/feature_lists.cpp +0 -209
- terraingenpy-0.1.1.dev25/terraingen/config/fields/albedo.h +0 -564
- terraingenpy-0.1.1.dev25/terraingen/config/fields/boulders.h +0 -469
- terraingenpy-0.1.1.dev25/terraingen/config/fields/checks.h +0 -72
- terraingenpy-0.1.1.dev25/terraingen/config/fields/common.h +0 -105
- terraingenpy-0.1.1.dev25/terraingen/config/fields/crater_models.h +0 -278
- terraingenpy-0.1.1.dev25/terraingen/config/fields/craters.h +0 -427
- terraingenpy-0.1.1.dev25/terraingen/config/fields/enums.h +0 -367
- terraingenpy-0.1.1.dev25/terraingen/config/fields/json_io.h +0 -316
- terraingenpy-0.1.1.dev25/terraingen/config/fields/layers.h +0 -520
- terraingenpy-0.1.1.dev25/terraingen/config/fields/materials.h +0 -53
- terraingenpy-0.1.1.dev25/terraingen/config/fields/outputs.h +0 -167
- terraingenpy-0.1.1.dev25/terraingen/config/fields/sources.h +0 -107
- terraingenpy-0.1.1.dev25/terraingen/config/generate.cpp +0 -395
- terraingenpy-0.1.1.dev25/terraingen/config/generate.h +0 -102
- terraingenpy-0.1.1.dev25/terraingen/config/json.cpp +0 -181
- terraingenpy-0.1.1.dev25/terraingen/config/json.h +0 -82
- terraingenpy-0.1.1.dev25/terraingen/config/validate.cpp +0 -673
- terraingenpy-0.1.1.dev25/terraingen/config/validate.h +0 -49
- terraingenpy-0.1.1.dev25/terraingen/distribution/CMakeLists.txt +0 -25
- terraingenpy-0.1.1.dev25/terraingen/distribution/combined.cpp +0 -39
- terraingenpy-0.1.1.dev25/terraingen/distribution/combined.h +0 -43
- terraingenpy-0.1.1.dev25/terraingen/distribution/ivanov.cpp +0 -35
- terraingenpy-0.1.1.dev25/terraingen/distribution/minimum.cpp +0 -72
- terraingenpy-0.1.1.dev25/terraingen/distribution/minimum.h +0 -40
- terraingenpy-0.1.1.dev25/terraingen/distribution/neukum.cpp +0 -48
- terraingenpy-0.1.1.dev25/terraingen/distribution/piecewise_power_law.cpp +0 -70
- terraingenpy-0.1.1.dev25/terraingen/distribution/production_surface.cpp +0 -35
- terraingenpy-0.1.1.dev25/terraingen/distribution/size_frequency.cpp +0 -148
- terraingenpy-0.1.1.dev25/terraingen/distribution/size_frequency.h +0 -124
- terraingenpy-0.1.1.dev25/terraingen/distribution/sp8023.cpp +0 -126
- terraingenpy-0.1.1.dev25/terraingen/distribution/sp8023.h +0 -24
- terraingenpy-0.1.1.dev25/terraingen/distribution/spliced.cpp +0 -84
- terraingenpy-0.1.1.dev25/terraingen/distribution/summed.cpp +0 -63
- terraingenpy-0.1.1.dev25/terraingen/distribution/summed.h +0 -43
- terraingenpy-0.1.1.dev25/terraingen/distribution/synthterrain.cpp +0 -19
- terraingenpy-0.1.1.dev25/terraingen/distribution/synthterrain.h +0 -24
- terraingenpy-0.1.1.dev25/terraingen/gpu/backend.cpp +0 -172
- terraingenpy-0.1.1.dev25/terraingen/gpu/backend.h +0 -63
- terraingenpy-0.1.1.dev25/terraingen/gpu/cuda.cpp +0 -300
- terraingenpy-0.1.1.dev25/terraingen/gpu/cuda.h +0 -67
- terraingenpy-0.1.1.dev25/terraingen/gpu/kernel.cpp +0 -121
- terraingenpy-0.1.1.dev25/terraingen/gpu/kernel.h +0 -37
- terraingenpy-0.1.1.dev25/terraingen/gpu/metal.cpp +0 -190
- terraingenpy-0.1.1.dev25/terraingen/gpu/metal.h +0 -52
- terraingenpy-0.1.1.dev25/terraingen/gpu/vulkan.cpp +0 -565
- terraingenpy-0.1.1.dev25/terraingen/gpu/vulkan.h +0 -80
- terraingenpy-0.1.1.dev25/terraingen/layers/CMakeLists.txt +0 -69
- terraingenpy-0.1.1.dev25/terraingen/layers/bedforms.cpp +0 -205
- terraingenpy-0.1.1.dev25/terraingen/layers/bedforms.h +0 -107
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/abundance.cpp +0 -355
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_fragments.cpp +0 -113
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_layer.cpp +0 -905
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_layer.h +0 -303
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_models.cpp +0 -293
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_models.h +0 -73
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_options.cpp +0 -495
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_options.h +0 -477
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_placer.h +0 -39
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_shape.cpp +0 -472
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/boulder_shape.h +0 -107
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/ejecta_index.cpp +0 -90
- terraingenpy-0.1.1.dev25/terraingen/layers/boulders/ejecta_index.h +0 -46
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/ages/steady_state.cpp +0 -63
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater.cpp +0 -91
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater.h +0 -140
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_layer.cpp +0 -225
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_layer.h +0 -134
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_placer.cpp +0 -21
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/crater_placer.h +0 -42
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusion.cpp +0 -289
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusion.h +0 -144
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusivities.cpp +0 -26
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/degradation/diffusivities.h +0 -25
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/cell_cache.cpp +0 -33
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/cell_cache.h +0 -68
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/population.cpp +0 -377
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/population.h +0 -152
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/generation/spacing.cpp +0 -182
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/rays.cpp +0 -50
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/secondaries.cpp +0 -389
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/secondary_model.cpp +0 -259
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/secondary_model.h +0 -187
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/apply.cpp +0 -850
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/apply.h +0 -83
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/apply_options.cpp +0 -118
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/crater_kernel.cpp +0 -196
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/crater_kernel.h +0 -42
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/datum.cpp +0 -191
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/datum.h +0 -127
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/irregularity.cpp +0 -352
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/irregularity.h +0 -135
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/prepared.cpp +0 -27
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/prepared.h +0 -51
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/slope.cpp +0 -84
- terraingenpy-0.1.1.dev25/terraingen/layers/craters/shaping/slope.h +0 -91
- terraingenpy-0.1.1.dev25/terraingen/layers/dunes.cpp +0 -615
- terraingenpy-0.1.1.dev25/terraingen/layers/dunes.h +0 -206
- terraingenpy-0.1.1.dev25/terraingen/layers/evaluation_cache.h +0 -59
- terraingenpy-0.1.1.dev25/terraingen/layers/exposure.cpp +0 -105
- terraingenpy-0.1.1.dev25/terraingen/layers/exposure.h +0 -80
- terraingenpy-0.1.1.dev25/terraingen/layers/ground.h +0 -55
- terraingenpy-0.1.1.dev25/terraingen/layers/kernel.h +0 -52
- terraingenpy-0.1.1.dev25/terraingen/layers/kernels/craters.h +0 -733
- terraingenpy-0.1.1.dev25/terraingen/layers/kernels/craters.slang +0 -40
- terraingenpy-0.1.1.dev25/terraingen/layers/layer.cpp +0 -61
- terraingenpy-0.1.1.dev25/terraingen/layers/noise_relief.cpp +0 -46
- terraingenpy-0.1.1.dev25/terraingen/layers/pavement.cpp +0 -257
- terraingenpy-0.1.1.dev25/terraingen/layers/pavement.h +0 -126
- terraingenpy-0.1.1.dev25/terraingen/layers/region.cpp +0 -243
- terraingenpy-0.1.1.dev25/terraingen/layers/roughness.cpp +0 -197
- terraingenpy-0.1.1.dev25/terraingen/layers/sample_block.cpp +0 -49
- terraingenpy-0.1.1.dev25/terraingen/layers/sample_block.h +0 -61
- terraingenpy-0.1.1.dev25/terraingen/layers/sand_fill.cpp +0 -80
- terraingenpy-0.1.1.dev25/terraingen/layers/sand_fill.h +0 -65
- terraingenpy-0.1.1.dev25/terraingen/layers/sand_shadow.cpp +0 -163
- terraingenpy-0.1.1.dev25/terraingen/layers/sand_shadow.h +0 -101
- terraingenpy-0.1.1.dev25/terraingen/layers/strata.cpp +0 -150
- terraingenpy-0.1.1.dev25/terraingen/layers/strata.h +0 -102
- terraingenpy-0.1.1.dev25/terraingen/materials/CMakeLists.txt +0 -9
- terraingenpy-0.1.1.dev25/terraingen/materials/materials.cpp +0 -200
- terraingenpy-0.1.1.dev25/terraingen/materials/materials.h +0 -87
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/formats.h +0 -61
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/gltf.cpp +0 -308
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/icq.cpp +0 -222
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/icq.h +0 -75
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/mesh_io.cpp +0 -129
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/mesh_io.h +0 -64
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/obj.cpp +0 -114
- terraingenpy-0.1.1.dev25/terraingen/mesh/io/stl.cpp +0 -155
- terraingenpy-0.1.1.dev25/terraingen/mesh/mesh.cpp +0 -232
- terraingenpy-0.1.1.dev25/terraingen/mesh/mesh.h +0 -106
- terraingenpy-0.1.1.dev25/terraingen/mesh/polyhedra.cpp +0 -173
- terraingenpy-0.1.1.dev25/terraingen/mesh/shape_model.cpp +0 -189
- terraingenpy-0.1.1.dev25/terraingen/noise/fractal.h +0 -312
- terraingenpy-0.1.1.dev25/terraingen/noise/hash.h +0 -52
- terraingenpy-0.1.1.dev25/terraingen/pipeline/CMakeLists.txt +0 -14
- terraingenpy-0.1.1.dev25/terraingen/pipeline/body_mesh.cpp +0 -94
- terraingenpy-0.1.1.dev25/terraingen/pipeline/body_mesh.h +0 -37
- terraingenpy-0.1.1.dev25/terraingen/pipeline/features.cpp +0 -23
- terraingenpy-0.1.1.dev25/terraingen/pipeline/features.h +0 -22
- terraingenpy-0.1.1.dev25/terraingen/pipeline/terrain.cpp +0 -192
- terraingenpy-0.1.1.dev25/terraingen/pipeline/terrain.h +0 -113
- terraingenpy-0.1.1.dev25/terraingen/pipeline/tiles.cpp +0 -191
- terraingenpy-0.1.1.dev25/terraingen/pipeline/tiles.h +0 -166
- terraingenpy-0.1.1.dev25/terraingen/python/src/albedo.cpp +0 -617
- terraingenpy-0.1.1.dev25/terraingen/python/src/boulders.cpp +0 -519
- terraingenpy-0.1.1.dev25/terraingen/python/src/common.h +0 -78
- terraingenpy-0.1.1.dev25/terraingen/python/src/crater_models.cpp +0 -333
- terraingenpy-0.1.1.dev25/terraingen/python/src/craters.cpp +0 -594
- terraingenpy-0.1.1.dev25/terraingen/python/src/distribution.cpp +0 -390
- terraingenpy-0.1.1.dev25/terraingen/python/src/layers.cpp +0 -570
- terraingenpy-0.1.1.dev25/terraingen/python/src/materials.cpp +0 -112
- terraingenpy-0.1.1.dev25/terraingen/python/src/mesh.cpp +0 -240
- terraingenpy-0.1.1.dev25/terraingen/python/src/noise.cpp +0 -412
- terraingenpy-0.1.1.dev25/terraingen/python/src/objects.h +0 -96
- terraingenpy-0.1.1.dev25/terraingen/python/src/pipeline.cpp +0 -550
- terraingenpy-0.1.1.dev25/terraingen/python/src/random.cpp +0 -157
- terraingenpy-0.1.1.dev25/terraingen/python/src/raster.cpp +0 -299
- terraingenpy-0.1.1.dev25/terraingen/python/src/sources.cpp +0 -195
- terraingenpy-0.1.1.dev25/terraingen/python/src/tables.h +0 -100
- terraingenpy-0.1.1.dev25/terraingen/python/src/trampolines.h +0 -72
- terraingenpy-0.1.1.dev25/terraingen/python/src/util.cpp +0 -237
- terraingenpy-0.1.1.dev25/terraingen/python/terraingen/render.py +0 -244
- terraingenpy-0.1.1.dev25/terraingen/random/samplers.cpp +0 -134
- terraingenpy-0.1.1.dev25/terraingen/random/samplers.h +0 -59
- terraingenpy-0.1.1.dev25/terraingen/random/stream.h +0 -57
- terraingenpy-0.1.1.dev25/terraingen/random/value_distribution.cpp +0 -77
- terraingenpy-0.1.1.dev25/terraingen/random/value_distribution.h +0 -48
- terraingenpy-0.1.1.dev25/terraingen/raster/cell_loops.h +0 -114
- terraingenpy-0.1.1.dev25/terraingen/raster/geo_transform.h +0 -66
- terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/geotiff_read.cpp +0 -656
- terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/geotiff_write.cpp +0 -291
- terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/tiff_format.cpp +0 -67
- terraingenpy-0.1.1.dev25/terraingen/raster/geotiff/tiff_format.h +0 -136
- terraingenpy-0.1.1.dev25/terraingen/raster/grid.cpp +0 -104
- terraingenpy-0.1.1.dev25/terraingen/raster/grid.h +0 -67
- terraingenpy-0.1.1.dev25/terraingen/raster/raster.h +0 -154
- terraingenpy-0.1.1.dev25/terraingen/raster/raster_stats.h +0 -48
- terraingenpy-0.1.1.dev25/terraingen/raster/resample.cpp +0 -127
- terraingenpy-0.1.1.dev25/terraingen/sources/field.cpp +0 -100
- terraingenpy-0.1.1.dev25/terraingen/sources/field.h +0 -109
- terraingenpy-0.1.1.dev25/terraingen/sources/flat_source.h +0 -44
- terraingenpy-0.1.1.dev25/terraingen/sources/geotiff_source.cpp +0 -170
- terraingenpy-0.1.1.dev25/terraingen/sources/source_chain.cpp +0 -67
- terraingenpy-0.1.1.dev25/terraingen/terraingen.h +0 -131
- terraingenpy-0.1.1.dev25/terraingen/util/CMakeLists.txt +0 -16
- terraingenpy-0.1.1.dev25/terraingen/util/cells.h +0 -168
- terraingenpy-0.1.1.dev25/terraingen/util/checks.cpp +0 -40
- terraingenpy-0.1.1.dev25/terraingen/util/checks.h +0 -45
- terraingenpy-0.1.1.dev25/terraingen/util/cube_faces.h +0 -63
- terraingenpy-0.1.1.dev25/terraingen/util/cube_sphere_cells.cpp +0 -312
- terraingenpy-0.1.1.dev25/terraingen/util/geometry.h +0 -95
- terraingenpy-0.1.1.dev25/terraingen/util/log.cpp +0 -128
- terraingenpy-0.1.1.dev25/terraingen/util/log.h +0 -105
- terraingenpy-0.1.1.dev25/terraingen/util/planar_cells.cpp +0 -52
- terraingenpy-0.1.1.dev25/terraingen/util/radial_shape.cpp +0 -146
- terraingenpy-0.1.1.dev25/terraingen/util/radial_shape.h +0 -88
- terraingenpy-0.1.1.dev25/terraingen/util/surface.cpp +0 -338
- terraingenpy-0.1.1.dev25/terraingen/util/surface.h +0 -216
- terraingenpy-0.1.1.dev25/terraingen/util/version.h.in +0 -31
- terraingenpy-0.1.1.dev25/tests/CMakeLists.txt +0 -50
- terraingenpy-0.1.1.dev25/tests/integration/examples/CMakeLists.txt +0 -58
- terraingenpy-0.1.1.dev25/tests/python/test_albedo.py +0 -293
- terraingenpy-0.1.1.dev25/tests/python/test_boulders.py +0 -284
- terraingenpy-0.1.1.dev25/tests/python/test_config.py +0 -182
- terraingenpy-0.1.1.dev25/tests/python/test_crater_models.py +0 -236
- terraingenpy-0.1.1.dev25/tests/python/test_craters.py +0 -453
- terraingenpy-0.1.1.dev25/tests/python/test_distributions.py +0 -232
- terraingenpy-0.1.1.dev25/tests/python/test_layers.py +0 -431
- terraingenpy-0.1.1.dev25/tests/python/test_pipeline.py +0 -223
- terraingenpy-0.1.1.dev25/tests/python/test_raster.py +0 -239
- terraingenpy-0.1.1.dev25/tests/python/test_sources.py +0 -143
- terraingenpy-0.1.1.dev25/tests/python/test_tiles.py +0 -105
- terraingenpy-0.1.1.dev25/tests/python/test_util.py +0 -206
- terraingenpy-0.1.1.dev25/tests/statistical/layers/boulders/boulder_layer_test.cpp +0 -93
- terraingenpy-0.1.1.dev25/tests/unit/CMakeLists.txt +0 -19
- terraingenpy-0.1.1.dev25/tests/unit/albedo/CMakeLists.txt +0 -12
- terraingenpy-0.1.1.dev25/tests/unit/albedo/albedo_test.cpp +0 -410
- terraingenpy-0.1.1.dev25/tests/unit/albedo/blast_zones_test.cpp +0 -122
- terraingenpy-0.1.1.dev25/tests/unit/albedo/crater_albedo_test.cpp +0 -830
- terraingenpy-0.1.1.dev25/tests/unit/albedo/rock_albedo_test.cpp +0 -158
- terraingenpy-0.1.1.dev25/tests/unit/albedo/slope_albedo_test.cpp +0 -113
- terraingenpy-0.1.1.dev25/tests/unit/albedo/splotches_test.cpp +0 -372
- terraingenpy-0.1.1.dev25/tests/unit/app/cli_test.cpp +0 -261
- terraingenpy-0.1.1.dev25/tests/unit/config/CMakeLists.txt +0 -18
- terraingenpy-0.1.1.dev25/tests/unit/config/build_test.cpp +0 -550
- terraingenpy-0.1.1.dev25/tests/unit/config/checks_test.cpp +0 -53
- terraingenpy-0.1.1.dev25/tests/unit/config/config_test.cpp +0 -60
- terraingenpy-0.1.1.dev25/tests/unit/config/configs.h +0 -260
- terraingenpy-0.1.1.dev25/tests/unit/config/feature_lists_test.cpp +0 -139
- terraingenpy-0.1.1.dev25/tests/unit/config/generate_terrain_test.cpp +0 -588
- terraingenpy-0.1.1.dev25/tests/unit/config/json_io_test.cpp +0 -566
- terraingenpy-0.1.1.dev25/tests/unit/config/json_read_test.cpp +0 -152
- terraingenpy-0.1.1.dev25/tests/unit/config/schema_test.cpp +0 -519
- terraingenpy-0.1.1.dev25/tests/unit/config/validate_config_test.cpp +0 -554
- terraingenpy-0.1.1.dev25/tests/unit/config/validate_sources_test.cpp +0 -302
- terraingenpy-0.1.1.dev25/tests/unit/distribution/CMakeLists.txt +0 -24
- terraingenpy-0.1.1.dev25/tests/unit/distribution/combined_test.cpp +0 -61
- terraingenpy-0.1.1.dev25/tests/unit/distribution/piecewise_uniform_test.cpp +0 -131
- terraingenpy-0.1.1.dev25/tests/unit/distribution/sp8023_test.cpp +0 -53
- terraingenpy-0.1.1.dev25/tests/unit/distribution/synthterrain_test.cpp +0 -22
- terraingenpy-0.1.1.dev25/tests/unit/distribution/tabulated_test.cpp +0 -134
- terraingenpy-0.1.1.dev25/tests/unit/gpu/backend_test.cpp +0 -151
- terraingenpy-0.1.1.dev25/tests/unit/gpu/noise_test.cpp +0 -166
- terraingenpy-0.1.1.dev25/tests/unit/gpu/vulkan_test.cpp +0 -109
- terraingenpy-0.1.1.dev25/tests/unit/layers/CMakeLists.txt +0 -51
- terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_fragments_test.cpp +0 -310
- terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_layer_test.cpp +0 -1246
- terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_models_test.cpp +0 -179
- terraingenpy-0.1.1.dev25/tests/unit/layers/boulders/boulder_options_test.cpp +0 -62
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/crater_layer_test.cpp +0 -200
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/degradation/diffusion_test.cpp +0 -183
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/generation/cell_cache_test.cpp +0 -77
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/generation/population_test.cpp +0 -660
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/secondaries_test.cpp +0 -500
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/apply_test.cpp +0 -573
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/crater_kernel_test.cpp +0 -292
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/datum_test.cpp +0 -115
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/irregularity_test.cpp +0 -361
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/shaping/slope_test.cpp +0 -305
- terraingenpy-0.1.1.dev25/tests/unit/layers/craters/sphere_test.cpp +0 -212
- terraingenpy-0.1.1.dev25/tests/unit/layers/exposure_test.cpp +0 -134
- terraingenpy-0.1.1.dev25/tests/unit/layers/sample_block_test.cpp +0 -96
- terraingenpy-0.1.1.dev25/tests/unit/materials/CMakeLists.txt +0 -1
- terraingenpy-0.1.1.dev25/tests/unit/materials/materials_test.cpp +0 -211
- terraingenpy-0.1.1.dev25/tests/unit/mesh/io/mesh_io_test.cpp +0 -192
- terraingenpy-0.1.1.dev25/tests/unit/mesh/mesh_test.cpp +0 -134
- terraingenpy-0.1.1.dev25/tests/unit/noise/hash_test.cpp +0 -61
- terraingenpy-0.1.1.dev25/tests/unit/pipeline/CMakeLists.txt +0 -11
- terraingenpy-0.1.1.dev25/tests/unit/pipeline/features_test.cpp +0 -105
- terraingenpy-0.1.1.dev25/tests/unit/pipeline/terrain_test.cpp +0 -367
- terraingenpy-0.1.1.dev25/tests/unit/pipeline/terrain_tiles_test.cpp +0 -337
- terraingenpy-0.1.1.dev25/tests/unit/pipeline/tile_cache_test.cpp +0 -44
- terraingenpy-0.1.1.dev25/tests/unit/pipeline/tiling_test.cpp +0 -85
- terraingenpy-0.1.1.dev25/tests/unit/random/stream_test.cpp +0 -77
- terraingenpy-0.1.1.dev25/tests/unit/random/value_distribution_test.cpp +0 -63
- terraingenpy-0.1.1.dev25/tests/unit/raster/geo_transform_test.cpp +0 -61
- terraingenpy-0.1.1.dev25/tests/unit/raster/geotiff_test.cpp +0 -386
- terraingenpy-0.1.1.dev25/tests/unit/raster/grid_test.cpp +0 -78
- terraingenpy-0.1.1.dev25/tests/unit/raster/raster_test.cpp +0 -72
- terraingenpy-0.1.1.dev25/tests/unit/raster/tiff_format_test.cpp +0 -93
- terraingenpy-0.1.1.dev25/tests/unit/sources/flat_source_test.cpp +0 -46
- terraingenpy-0.1.1.dev25/tests/unit/util/CMakeLists.txt +0 -19
- terraingenpy-0.1.1.dev25/tests/unit/util/cells_test.cpp +0 -63
- terraingenpy-0.1.1.dev25/tests/unit/util/checks_test.cpp +0 -56
- terraingenpy-0.1.1.dev25/tests/unit/util/geometry_test.cpp +0 -41
- terraingenpy-0.1.1.dev25/tests/unit/util/surface_test.cpp +0 -668
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.clang-format +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.clang-tidy +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.cmake-format.yaml +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.dockerignore +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.gitattributes +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/pull_request_template.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.github/scripts/install-lavapipe-windows.sh +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.gitignore +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/.pre-commit-config.yaml +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/CITATION.cff +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/CONTRIBUTING.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/Dockerfile +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/LICENSE +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/README.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_diff_4k.jpg +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_disp_4k.png +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_nor_gl_4k.exr +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/moon_01_rough_4k.exr +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_ao_2k.png +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_arm_2k.png +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_diff_2k.png +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_disp_2k.png +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_nor_dx_2k.exr +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_nor_gl_2k.exr +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/assets/textures/seaside_rock_rough_2k.exr +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/BuildInfo.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/CoverageBadge.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/EmbedFile.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/Kernel.cpp.in +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/TerrainGenPackaging.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/TerrainGenSlang.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/TerrainGenTesting.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/terraingenConfig.cmake.in +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/benchmark.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/ernie.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/googletest.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/mesh_formats.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/miniz.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/nanobind.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/nvrtc.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/slang.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/volk.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/cmake/third_party/vulkan_headers.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/.gitignore +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/Makefile +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/README.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/api/cpp.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/api/python.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/concepts/index.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/css/extra.css +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/command-line.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/gui.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/index.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/installation.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/getting-started/quickstart.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/guides/index.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/images/hero_mk1_sn101_connecting_ridge.jpg +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/images/hero_mk1_sn101_connecting_ridge_split.jpg +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/index.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/overrides/home.html +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/overrides/partials/header.html +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/requirements.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/scripts/generate_schema.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/docs/validation/index.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/README.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/ages/example_ages_fresh.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/ages/example_ages_steady_state.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/ages/example_ages_uniform.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_blast_zone.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_crater_rays.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_fresh_crater.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_new_crater.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_oblique_rays.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_rgb.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_rocks_and_slopes.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/albedo/example_albedo_synthetic.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_buried.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_ejecta.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_fragments.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_layer.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_max_slope.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_models.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_patches.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_rolling.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_scene.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_shapes.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_slope_map.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_sp8023.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/boulders/example_boulders_thomas_clusters.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_catalog_and_map.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_datum.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_degradation_diffusion.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_degradation_none.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_interior_replacement.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_irregular.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_manual.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_max_craters.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_profile_complex.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_profile_martin_parkes_dunstan.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_rim_smoothing_soft.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_secondaries.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_secondary_rays.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_simple.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_slopes.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_smoothed_rims.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_spacing.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_texture.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/craters/example_craters_wall_marks.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_moore_rough_mare.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_piecewise_power_law.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_power_law.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_tabulated.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_trask_equilibrium.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/distributions/example_distributions_viper.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/layers/example_layers_regions.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/layers/example_layers_roughness.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/layers/example_layers_scale_and_clamp.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_asteroid_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_bedforms.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_dunes.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_exposure.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_pavement.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_sand_fill.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_sand_shadows.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_strata.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mars_ventifacts.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_mercury_site.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_moon_body_mesh.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/planets/example_planets_moon_site.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_billow.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_cellular.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_domain_warp.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_fbm.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_layered.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_ridged.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_roughness.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/config/terrain/example_terrain_voronoi.json +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/ages/example_ages_models.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/boulders/example_boulders_ejecta.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/boulders/example_boulders_layer.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/boulders/example_boulders_shapes.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/browser.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/browser.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/example.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/example.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/main.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/common/standalone_main.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/config/example_config_load.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_degradation.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_manual.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_profiles.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_secondaries.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/craters/example_craters_simple.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/distributions/example_distributions_csfd.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/layers/example_layers_custom.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/layers/example_layers_regions.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/planets/example_planets_moon.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/sources/example_sources_raster_detail.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/terrain/example_terrain_fbm.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/terrain/example_terrain_layered.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/tiles/example_tiles_body_pyramid.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/cpp/tiles/example_tiles_rover_contacts.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/__main__.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_browser.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_common.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_harness.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/_images.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/ages/example_ages_models.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/albedo/example_albedo_crater_rays.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/albedo/example_albedo_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/albedo/example_albedo_options.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_exposure.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_layer.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_positioning.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_shapes.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/boulders/example_boulders_size_models.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/config/example_config_load.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_age_sweep.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_apply_options.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_degradation.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_irregularity.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_manual.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_positioning.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_profiles.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_rim_smoothing.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/craters/example_craters_secondaries.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/distributions/example_distributions_csfd.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/distributions/example_distributions_custom.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/layers/example_layers_custom.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/layers/example_layers_regions.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_body_mesh.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mars.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mars_dunes.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mars_exposure.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_mercury.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/planets/example_planets_moon_site.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/sources/example_sources_chain.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/sources/example_sources_raster_detail.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_fbm.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_fractal_types.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_hurst_sweep.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_layered.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/terrain/example_terrain_noise_kernels.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/tiles/example_tiles_body_pyramid.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/tiles/example_tiles_point_queries.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/examples/python/tiles/example_tiles_rover_contacts.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/mkdocs.yml +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/pyproject.toml +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/albedo/blast_zones.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/albedo/maturity.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/albedo/maturity.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/gui/config_editor.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/gui/run_none.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/gui/terrain_scene.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/app/main.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/config/fields/fields.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/config/fields/maps.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/config/schema.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/equilibrium.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/equilibrium.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/golombek_rapp.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/golombek_rapp.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/ivanov.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/log_polynomial.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/log_polynomial.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/moore.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/moore.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/neukum.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/piecewise_power_law.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/piecewise_uniform.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/piecewise_uniform.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/power_law.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/power_law.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/production_surface.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/spliced.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/tabulated.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/tabulated.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/viper.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/distribution/viper.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/gpu/kernel.slang +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/gpu/program.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/boulders/boulder.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/boulders/boulder_fragments.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/ages/age_model.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/ages/age_model.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/ages/steady_state.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/degradation_model.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/degradation_model.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/freshness.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/freshness.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/degradation/state.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/generation/spacing.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/complex.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/complex.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/fassett_thomson.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/fassett_thomson.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/martin_parkes_dunstan.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/martin_parkes_dunstan.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/profiles/profile.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/rays.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/secondaries.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/apply_options.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/attributes.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/attributes.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/morphometry.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/craters/shaping/morphometry.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/density_map.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/density_map.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/detail.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/detail.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/fade.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/fade.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/cell.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/crater_datums.slang +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/kernels/noise_relief.slang +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/layer.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/material.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/material.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/noise_relief.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/region.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/roughness.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/transforms.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/layers/transforms.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/mesh/polyhedra.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/mesh/shape_model.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/lattice.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/noise_layers.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/perlin.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/simplex.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/validate.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/validate.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/value.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/noise/worley.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/pipeline/height_mesh.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/pipeline/height_mesh.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/bindings.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/casters.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/gpu.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/src/module.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/python/terraingen/__init__.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/random/philox.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/random/stream.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/cell_loops.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/gaussian_blur.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/gaussian_blur.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/geotiff.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/geotiff.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/tiff_codecs.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/geotiff/tiff_codecs.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/raster/resample.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/flat_source.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/geotiff_source.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/source.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/source_chain.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/synthetic_terrain.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/sources/synthetic_terrain.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/build_info.cpp.in +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/build_info.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/fft.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/fft.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/lru_cache.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/overloaded.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/parallel.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/parallel.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/portable.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/special_functions.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/special_functions.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/terraingen/util/version.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_boulders.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_craters.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_grids.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_point_queries.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/bench_python_subclasses.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/benchmark/fixtures.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/golden/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/golden/noise/kernels_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/build_info_stable.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/package/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/package/main.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/integration/package/test_debian_packages.cmake +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/conftest.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_examples_harness.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_gpu.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_meshes.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_noise.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_random.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_render.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/python/test_stubs.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/distribution/crater_references_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/layers/craters/ages/ages_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/layers/craters/population_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/statistical/random/random_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/log_capture.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/lunar_craters.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/raster_equality.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/statistics.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/support/temp_path.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/config_editor_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/gui_app_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/app/gui/terrain_scene_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/config/json_parse_errors_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/config/write_outputs_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/equilibrium_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/golombek_rapp_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/ivanov_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/log_polynomial_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/minimum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/moore_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/neukum_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/piecewise_power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/power_law_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/production_surface_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/size_frequency_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/spliced_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/summed_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/distribution/viper_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/examples/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/examples/example_browser_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/examples/example_harness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/gpu/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/gpu/kernels/hash_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/gpu/kernels/noise_conformance.slang +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/bedforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/boulders/boulder_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/boulders/ejecta_index_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/ages/age_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/ages/steady_state_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/crater_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/degradation/degradation_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/degradation/freshness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/generation/spacing_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/profiles/complex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/profiles/fassett_thomson_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/profiles/martin_parkes_dunstan_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/shaping/attributes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/craters/shaping/morphometry_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/density_map_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/detail_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/dunes_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/evaluation_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/fade_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/layer_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/noise_relief_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/pavement_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/region_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/roughness_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/sand_fill_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/sand_shadow_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/sphere_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/strata_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/layers/transforms_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/io/icq_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/polyhedra_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/shape_model_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/mesh/support.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/fractal_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/noise3_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/noise_layers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/perlin_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/simplex_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/validate_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/value_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/noise/worley_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/pipeline/height_mesh_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/pipeline/terrains.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/random/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/random/philox_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/random/samplers_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/cell_loops_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/gaussian_blur_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/gdal_fixtures.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/generate_geotiff_fixtures.py +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/geotiff_fixtures.inc +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/raster_stats_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/raster/resample_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/CMakeLists.txt +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/field_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/geotiff_source_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/source_chain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/sources/synthetic_terrain_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/fft_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/log_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/lru_cache_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/overloaded_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/parallel_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/radial_shape_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/special_functions_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/tests/unit/util/version_test.cpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/README.md +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/cgltf/LICENSE +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/cgltf/cgltf.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/cgltf/cgltf_write.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/miniz/LICENSE +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/miniz/miniz.c +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/miniz/miniz.h +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/nlohmann/LICENSE.MIT +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/nlohmann/json.hpp +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/tinyobjloader/LICENSE +0 -0
- {terraingenpy-0.1.1.dev25 → terraingenpy-0.1.1.dev73}/third_party/tinyobjloader/tiny_obj_loader.h +0 -0
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
tags: ["v*"]
|
|
7
|
+
pull_request:
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
# The version's pre-release suffix: .devN on main (N commits since the last release tag), none on
|
|
19
|
+
# release tags (which must match CMakeLists.txt) or pull requests.
|
|
20
|
+
version:
|
|
21
|
+
runs-on: ubuntu-24.04
|
|
22
|
+
timeout-minutes: 5
|
|
23
|
+
outputs:
|
|
24
|
+
version: ${{ steps.version.outputs.version }}
|
|
25
|
+
suffix: ${{ steps.version.outputs.suffix }}
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
28
|
+
with:
|
|
29
|
+
fetch-depth: 0
|
|
30
|
+
- id: version
|
|
31
|
+
run: |
|
|
32
|
+
project=$(sed -nE 's/^set\(TERRAINGEN_FULL_VERSION "([0-9]+\.[0-9]+\.[0-9]+)"\)$/\1/p' CMakeLists.txt)
|
|
33
|
+
suffix=""
|
|
34
|
+
if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
|
|
35
|
+
if [[ "${GITHUB_REF_NAME#v}" != "$project" ]]; then
|
|
36
|
+
echo "::error::Tag $GITHUB_REF_NAME does not match CMakeLists.txt's version $project"
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
elif [[ "$GITHUB_EVENT_NAME" == push && "$GITHUB_REF" == refs/heads/main ]]; then
|
|
40
|
+
if last=$(git describe --tags --abbrev=0 --match 'v*' 2>/dev/null); then
|
|
41
|
+
suffix=".dev$(git rev-list --count "$last..HEAD")"
|
|
42
|
+
else
|
|
43
|
+
suffix=".dev$(git rev-list --count HEAD)"
|
|
44
|
+
fi
|
|
45
|
+
fi
|
|
46
|
+
{
|
|
47
|
+
echo "version=$project$suffix"
|
|
48
|
+
echo "suffix=$suffix"
|
|
49
|
+
} >> "$GITHUB_OUTPUT"
|
|
50
|
+
echo "Version $project$suffix"
|
|
51
|
+
|
|
52
|
+
lint:
|
|
53
|
+
runs-on: ubuntu-24.04
|
|
54
|
+
timeout-minutes: 15
|
|
55
|
+
steps:
|
|
56
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
57
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
58
|
+
with:
|
|
59
|
+
python-version: "3.12"
|
|
60
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
61
|
+
with:
|
|
62
|
+
path: ~/.cache/pre-commit
|
|
63
|
+
key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
|
|
64
|
+
- run: python -m pip install pre-commit
|
|
65
|
+
- run: pre-commit run --all-files --show-diff-on-failure
|
|
66
|
+
- name: Lint workflows
|
|
67
|
+
run: docker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:1.7.12 -color
|
|
68
|
+
|
|
69
|
+
# Build and every test, with the GPU tests on Mesa's lavapipe, the software Vulkan driver, which
|
|
70
|
+
# TerrainGen uses only when TERRAINGEN_DEVICE names it. The runners have no NVIDIA GPU, so the
|
|
71
|
+
# CUDA kernels are compiled to PTX but not run.
|
|
72
|
+
test:
|
|
73
|
+
name: test (${{ matrix.name }})
|
|
74
|
+
runs-on: ${{ matrix.os }}
|
|
75
|
+
timeout-minutes: 60
|
|
76
|
+
strategy:
|
|
77
|
+
fail-fast: false
|
|
78
|
+
matrix:
|
|
79
|
+
include:
|
|
80
|
+
# The oldest supported Ubuntu, compiler and Python.
|
|
81
|
+
- { name: ubuntu-22.04-gcc-11, os: ubuntu-22.04, cc: gcc-11, cxx: g++-11, python: "3.10" }
|
|
82
|
+
- { name: ubuntu-22.04-arm-gcc-11, os: ubuntu-22.04-arm, cc: gcc-11, cxx: g++-11 }
|
|
83
|
+
- { name: ubuntu-24.04-clang-18, os: ubuntu-24.04, cc: clang-18, cxx: clang++-18 }
|
|
84
|
+
- { name: macos-14, os: macos-14 }
|
|
85
|
+
- { name: windows-2022-msvc, os: windows-2022 }
|
|
86
|
+
env:
|
|
87
|
+
CC: ${{ matrix.cc }}
|
|
88
|
+
CXX: ${{ matrix.cxx }}
|
|
89
|
+
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
90
|
+
TERRAINGEN_DEVICE: "0"
|
|
91
|
+
steps:
|
|
92
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
93
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
94
|
+
with:
|
|
95
|
+
python-version: ${{ matrix.python || '3.12' }}
|
|
96
|
+
- run: python -m pip install numpy pytest ninja
|
|
97
|
+
# MSVC on the path for the Ninja generator.
|
|
98
|
+
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
|
|
99
|
+
if: runner.os == 'Windows'
|
|
100
|
+
- uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24
|
|
101
|
+
if: runner.os != 'Windows'
|
|
102
|
+
with:
|
|
103
|
+
key: ${{ matrix.name }}
|
|
104
|
+
max-size: 500M
|
|
105
|
+
- name: Install lavapipe
|
|
106
|
+
if: runner.os == 'Linux'
|
|
107
|
+
run: |
|
|
108
|
+
sudo apt-get update
|
|
109
|
+
sudo apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1
|
|
110
|
+
icd=$(find /usr/share/vulkan/icd.d -name 'lvp_icd*.json' | head -n1)
|
|
111
|
+
echo "VK_DRIVER_FILES=$icd" >> "$GITHUB_ENV"
|
|
112
|
+
echo "VK_ICD_FILENAMES=$icd" >> "$GITHUB_ENV"
|
|
113
|
+
- name: Install lavapipe
|
|
114
|
+
if: runner.os == 'Windows'
|
|
115
|
+
shell: bash
|
|
116
|
+
run: .github/scripts/install-lavapipe-windows.sh
|
|
117
|
+
- name: Install lavapipe
|
|
118
|
+
if: runner.os == 'macOS'
|
|
119
|
+
run: |
|
|
120
|
+
brew install mesa vulkan-loader
|
|
121
|
+
prefix=$(brew --prefix)
|
|
122
|
+
icd=$(find "$prefix/share/vulkan/icd.d" -name 'lvp_icd*.json' | head -n1)
|
|
123
|
+
{
|
|
124
|
+
echo "VK_DRIVER_FILES=$icd"
|
|
125
|
+
echo "VK_ICD_FILENAMES=$icd"
|
|
126
|
+
echo "DYLD_FALLBACK_LIBRARY_PATH=$prefix/lib"
|
|
127
|
+
} >> "$GITHUB_ENV"
|
|
128
|
+
- name: Configure
|
|
129
|
+
shell: bash
|
|
130
|
+
run: >
|
|
131
|
+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DTERRAINGEN_BUILD_BENCHMARKS=OFF
|
|
132
|
+
"-DPython_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')"
|
|
133
|
+
${{ runner.os != 'Windows' && '-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache' || '' }}
|
|
134
|
+
- name: Build
|
|
135
|
+
run: cmake --build build --parallel 4
|
|
136
|
+
- name: Backends
|
|
137
|
+
shell: bash
|
|
138
|
+
run: build/bin/terraingen backends
|
|
139
|
+
- name: Test
|
|
140
|
+
run: ctest --test-dir build --parallel 4 --output-on-failure --timeout 1200
|
|
141
|
+
|
|
142
|
+
# Line coverage of the library, from the tests on lavapipe; GitHub Pages publishes the report from
|
|
143
|
+
# main (pages job).
|
|
144
|
+
coverage:
|
|
145
|
+
runs-on: ubuntu-24.04
|
|
146
|
+
timeout-minutes: 60
|
|
147
|
+
env:
|
|
148
|
+
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
149
|
+
TERRAINGEN_DEVICE: "0"
|
|
150
|
+
steps:
|
|
151
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
152
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
153
|
+
with:
|
|
154
|
+
python-version: "3.12"
|
|
155
|
+
- run: python -m pip install gcovr numpy pytest ninja
|
|
156
|
+
- uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24
|
|
157
|
+
with:
|
|
158
|
+
key: coverage
|
|
159
|
+
max-size: 1G
|
|
160
|
+
- name: Install lavapipe
|
|
161
|
+
run: |
|
|
162
|
+
sudo apt-get update
|
|
163
|
+
sudo apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1
|
|
164
|
+
- name: Configure
|
|
165
|
+
run: >
|
|
166
|
+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug -DTERRAINGEN_COVERAGE=ON
|
|
167
|
+
-DTERRAINGEN_BUILD_BENCHMARKS=OFF
|
|
168
|
+
"-DPython_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')"
|
|
169
|
+
-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
170
|
+
# Everything first: the coverage target builds only the test programs, not the command and
|
|
171
|
+
# examples that the integration tests run.
|
|
172
|
+
- name: Build
|
|
173
|
+
run: cmake --build build --parallel 4
|
|
174
|
+
# The tests four at a time (ctest reads CTEST_PARALLEL_LEVEL), the long examples first.
|
|
175
|
+
- name: Test and report
|
|
176
|
+
env:
|
|
177
|
+
CTEST_PARALLEL_LEVEL: "4"
|
|
178
|
+
run: cmake --build build --target coverage
|
|
179
|
+
- name: Summary
|
|
180
|
+
if: always()
|
|
181
|
+
run: cat build/coverage/summary.md >> "$GITHUB_STEP_SUMMARY" || true
|
|
182
|
+
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
183
|
+
if: always()
|
|
184
|
+
with:
|
|
185
|
+
name: coverage-report
|
|
186
|
+
path: build/coverage/
|
|
187
|
+
if-no-files-found: ignore
|
|
188
|
+
retention-days: 7
|
|
189
|
+
|
|
190
|
+
# One job per platform and Python (pyproject.toml's [tool.cibuildwheel] has the rest), so each
|
|
191
|
+
# platform's wheels build side by side.
|
|
192
|
+
wheel:
|
|
193
|
+
name: wheel (${{ matrix.os }}, ${{ matrix.python }})
|
|
194
|
+
needs: version
|
|
195
|
+
runs-on: ${{ matrix.os }}
|
|
196
|
+
timeout-minutes: 45
|
|
197
|
+
strategy:
|
|
198
|
+
fail-fast: false
|
|
199
|
+
matrix:
|
|
200
|
+
os: [ubuntu-24.04, ubuntu-24.04-arm, macos-15-intel, macos-14, windows-2022]
|
|
201
|
+
python: [cp310, cp311, cp312]
|
|
202
|
+
steps:
|
|
203
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
204
|
+
- name: Version
|
|
205
|
+
shell: bash
|
|
206
|
+
run: >
|
|
207
|
+
sed -i.bak -E 's/^set\(TERRAINGEN_FULL_VERSION "([0-9.]+)"\)$/set(TERRAINGEN_FULL_VERSION "\1${{ needs.version.outputs.suffix }}")/'
|
|
208
|
+
CMakeLists.txt
|
|
209
|
+
- uses: pypa/cibuildwheel@b3395e271a35f73dad77f21802abe9b986dfe299 # v4.3.1
|
|
210
|
+
env:
|
|
211
|
+
CIBW_BUILD: "${{ matrix.python }}-*"
|
|
212
|
+
with:
|
|
213
|
+
output-dir: wheelhouse
|
|
214
|
+
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
215
|
+
with:
|
|
216
|
+
name: wheel-${{ matrix.os }}-${{ matrix.python }}
|
|
217
|
+
path: wheelhouse/*.whl
|
|
218
|
+
|
|
219
|
+
# The sdist, then a wheel built from it and imported, as pip does for platforms without wheels.
|
|
220
|
+
sdist:
|
|
221
|
+
needs: version
|
|
222
|
+
runs-on: ubuntu-24.04
|
|
223
|
+
timeout-minutes: 30
|
|
224
|
+
steps:
|
|
225
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
226
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
227
|
+
with:
|
|
228
|
+
python-version: "3.12"
|
|
229
|
+
- name: Version
|
|
230
|
+
run: >
|
|
231
|
+
sed -i -E 's/^set\(TERRAINGEN_FULL_VERSION "([0-9.]+)"\)$/set(TERRAINGEN_FULL_VERSION "\1${{ needs.version.outputs.suffix }}")/'
|
|
232
|
+
CMakeLists.txt
|
|
233
|
+
- run: python -m pip install build
|
|
234
|
+
- run: python -m build --sdist
|
|
235
|
+
- name: Install from the sdist
|
|
236
|
+
run: |
|
|
237
|
+
python -m pip install dist/*.tar.gz
|
|
238
|
+
cd "$RUNNER_TEMP" && python -c "import terraingen; print(terraingen.__version__)" && terraingen backends
|
|
239
|
+
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
240
|
+
with:
|
|
241
|
+
name: sdist
|
|
242
|
+
path: dist/*.tar.gz
|
|
243
|
+
|
|
244
|
+
# The documentation, built against the Linux wheel, for every push and pull request; another
|
|
245
|
+
# platform's wheel failing does not skip it.
|
|
246
|
+
docs:
|
|
247
|
+
needs: wheel
|
|
248
|
+
if: ${{ !cancelled() }}
|
|
249
|
+
runs-on: ubuntu-24.04
|
|
250
|
+
timeout-minutes: 20
|
|
251
|
+
steps:
|
|
252
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
253
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
254
|
+
with:
|
|
255
|
+
python-version: "3.12"
|
|
256
|
+
cache: pip
|
|
257
|
+
cache-dependency-path: docs/requirements.txt
|
|
258
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
259
|
+
with:
|
|
260
|
+
name: wheel-ubuntu-24.04-cp312
|
|
261
|
+
path: wheel
|
|
262
|
+
- name: Install Doxygen, TerrainGen and the docs requirements
|
|
263
|
+
run: |
|
|
264
|
+
sudo apt-get update && sudo apt-get install -y --no-install-recommends doxygen
|
|
265
|
+
python -m pip install wheel/*.whl -r docs/requirements.txt
|
|
266
|
+
- name: Build
|
|
267
|
+
run: make -C docs build
|
|
268
|
+
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
269
|
+
with:
|
|
270
|
+
name: site
|
|
271
|
+
path: site
|
|
272
|
+
retention-days: 3
|
|
273
|
+
|
|
274
|
+
# The documentation with the coverage report under coverage/ (and coverage/badge.json for the
|
|
275
|
+
# README badge), on GitHub Pages from main. A failed coverage run leaves the report out.
|
|
276
|
+
pages:
|
|
277
|
+
needs: [docs, coverage]
|
|
278
|
+
if: ${{ !cancelled() && needs.docs.result == 'success' && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
|
279
|
+
runs-on: ubuntu-24.04
|
|
280
|
+
timeout-minutes: 10
|
|
281
|
+
permissions:
|
|
282
|
+
contents: read
|
|
283
|
+
pages: write
|
|
284
|
+
id-token: write
|
|
285
|
+
environment:
|
|
286
|
+
name: github-pages
|
|
287
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
288
|
+
steps:
|
|
289
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
290
|
+
with:
|
|
291
|
+
name: site
|
|
292
|
+
path: site
|
|
293
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
294
|
+
continue-on-error: true
|
|
295
|
+
with:
|
|
296
|
+
name: coverage-report
|
|
297
|
+
path: site/coverage
|
|
298
|
+
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
|
|
299
|
+
with:
|
|
300
|
+
path: site
|
|
301
|
+
- id: deployment
|
|
302
|
+
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
|
|
303
|
+
|
|
304
|
+
# The CLI, library, headers and CMake package for each platform as an archive, and Debian packages
|
|
305
|
+
# (terraingen, terraingen-dev) built on the oldest supported Ubuntu.
|
|
306
|
+
packages:
|
|
307
|
+
name: packages (${{ matrix.platform }})
|
|
308
|
+
needs: version
|
|
309
|
+
runs-on: ${{ matrix.os }}
|
|
310
|
+
timeout-minutes: 45
|
|
311
|
+
strategy:
|
|
312
|
+
fail-fast: false
|
|
313
|
+
matrix:
|
|
314
|
+
include:
|
|
315
|
+
- { platform: linux-x86_64, os: ubuntu-22.04 }
|
|
316
|
+
- { platform: linux-aarch64, os: ubuntu-22.04-arm }
|
|
317
|
+
- { platform: macos-arm64, os: macos-14 }
|
|
318
|
+
- { platform: macos-x86_64, os: macos-15-intel }
|
|
319
|
+
- { platform: windows-x86_64, os: windows-2022 }
|
|
320
|
+
env:
|
|
321
|
+
ARCHIVE: terraingen-${{ needs.version.outputs.version }}-${{ matrix.platform }}
|
|
322
|
+
steps:
|
|
323
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
324
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
325
|
+
with:
|
|
326
|
+
python-version: "3.12"
|
|
327
|
+
- run: python -m pip install ninja
|
|
328
|
+
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
|
|
329
|
+
if: runner.os == 'Windows'
|
|
330
|
+
- name: Version
|
|
331
|
+
shell: bash
|
|
332
|
+
run: >
|
|
333
|
+
sed -i.bak -E 's/^set\(TERRAINGEN_FULL_VERSION "([0-9.]+)"\)$/set(TERRAINGEN_FULL_VERSION "\1${{ needs.version.outputs.suffix }}")/'
|
|
334
|
+
CMakeLists.txt
|
|
335
|
+
- name: Build
|
|
336
|
+
shell: bash
|
|
337
|
+
run: |
|
|
338
|
+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DTERRAINGEN_BUILD_TESTS=OFF \
|
|
339
|
+
-DTERRAINGEN_BUILD_BENCHMARKS=OFF -DTERRAINGEN_BUILD_EXAMPLES=OFF \
|
|
340
|
+
-DTERRAINGEN_BUILD_PYTHON=OFF -DTERRAINGEN_INSTALL=ON
|
|
341
|
+
cmake --build build --parallel 4
|
|
342
|
+
cmake --install build --prefix "$ARCHIVE"
|
|
343
|
+
cp LICENSE README.md CHANGELOG.md "$ARCHIVE/"
|
|
344
|
+
- name: Archive
|
|
345
|
+
if: runner.os == 'Windows'
|
|
346
|
+
shell: pwsh
|
|
347
|
+
run: Compress-Archive -Path "$env:ARCHIVE" -DestinationPath "$env:ARCHIVE.zip"
|
|
348
|
+
- name: Archive
|
|
349
|
+
if: runner.os != 'Windows'
|
|
350
|
+
run: tar -czf "$ARCHIVE.tar.gz" "$ARCHIVE"
|
|
351
|
+
- name: Debian packages
|
|
352
|
+
if: runner.os == 'Linux'
|
|
353
|
+
run: cpack --config build/CPackConfig.cmake -G DEB -B debs
|
|
354
|
+
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
355
|
+
with:
|
|
356
|
+
name: packages-${{ matrix.platform }}
|
|
357
|
+
path: |
|
|
358
|
+
${{ env.ARCHIVE }}.zip
|
|
359
|
+
${{ env.ARCHIVE }}.tar.gz
|
|
360
|
+
debs/*.deb
|
|
361
|
+
if-no-files-found: error
|
|
362
|
+
|
|
363
|
+
# The Debian packages installed on clean distributions, where the program must run and list its
|
|
364
|
+
# backends. Only the Linux packages matter here, so another platform's failure does not skip it; a
|
|
365
|
+
# missing Linux package fails its download.
|
|
366
|
+
package-test:
|
|
367
|
+
name: package-test (${{ matrix.image }}, ${{ matrix.arch }})
|
|
368
|
+
needs: packages
|
|
369
|
+
if: ${{ !cancelled() }}
|
|
370
|
+
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
|
|
371
|
+
timeout-minutes: 15
|
|
372
|
+
strategy:
|
|
373
|
+
fail-fast: false
|
|
374
|
+
matrix:
|
|
375
|
+
arch: [x86_64, aarch64]
|
|
376
|
+
image: ["ubuntu:22.04", "ubuntu:24.04", "debian:12"]
|
|
377
|
+
container: ${{ matrix.image }}
|
|
378
|
+
steps:
|
|
379
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
380
|
+
with:
|
|
381
|
+
name: packages-linux-${{ matrix.arch }}
|
|
382
|
+
- name: Install
|
|
383
|
+
run: |
|
|
384
|
+
apt-get update
|
|
385
|
+
apt-get install -y --no-install-recommends ./debs/*.deb
|
|
386
|
+
- name: Run
|
|
387
|
+
run: |
|
|
388
|
+
terraingen --version
|
|
389
|
+
terraingen backends
|
|
390
|
+
|
|
391
|
+
# The Dockerfile's image, built and tested on the oldest supported Ubuntu; pushed to GHCR from main
|
|
392
|
+
# (dev) and release tags.
|
|
393
|
+
docker:
|
|
394
|
+
needs: [version, lint, test]
|
|
395
|
+
runs-on: ubuntu-24.04
|
|
396
|
+
timeout-minutes: 45
|
|
397
|
+
permissions:
|
|
398
|
+
contents: read
|
|
399
|
+
packages: write
|
|
400
|
+
steps:
|
|
401
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
402
|
+
- name: Build
|
|
403
|
+
run: docker build --target dev -t terraingen:test .
|
|
404
|
+
- name: Smoke test
|
|
405
|
+
run: |
|
|
406
|
+
docker run --rm terraingen:test terraingen --version
|
|
407
|
+
docker run --rm terraingen:test terraingen backends
|
|
408
|
+
docker run --rm terraingen:test python -c "import terraingen; print(terraingen.__version__)"
|
|
409
|
+
- name: Push
|
|
410
|
+
if: github.event_name == 'push'
|
|
411
|
+
env:
|
|
412
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
413
|
+
run: |
|
|
414
|
+
image=ghcr.io/${GITHUB_REPOSITORY,,}
|
|
415
|
+
echo "$GH_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin
|
|
416
|
+
if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
|
|
417
|
+
version=${GITHUB_REF_NAME#v}
|
|
418
|
+
tags=("$version" "${version%.*}" latest)
|
|
419
|
+
else
|
|
420
|
+
tags=(dev)
|
|
421
|
+
fi
|
|
422
|
+
for tag in "${tags[@]}"; do
|
|
423
|
+
docker tag terraingen:test "$image:$tag"
|
|
424
|
+
docker push "$image:$tag"
|
|
425
|
+
done
|
|
426
|
+
|
|
427
|
+
# Wheels and the sdist to PyPI by Trusted Publishing (no stored token): X.Y.Z.devN from main,
|
|
428
|
+
# X.Y.Z from release tags, once every platform's build, tests and packages pass.
|
|
429
|
+
pypi:
|
|
430
|
+
needs: [lint, test, wheel, sdist, package-test]
|
|
431
|
+
if: >
|
|
432
|
+
github.event_name == 'push' &&
|
|
433
|
+
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v'))
|
|
434
|
+
runs-on: ubuntu-24.04
|
|
435
|
+
timeout-minutes: 10
|
|
436
|
+
environment:
|
|
437
|
+
name: pypi
|
|
438
|
+
url: https://pypi.org/project/terraingenpy/
|
|
439
|
+
permissions:
|
|
440
|
+
id-token: write
|
|
441
|
+
steps:
|
|
442
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
443
|
+
with:
|
|
444
|
+
pattern: wheel-*
|
|
445
|
+
merge-multiple: true
|
|
446
|
+
path: dist
|
|
447
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
448
|
+
with:
|
|
449
|
+
name: sdist
|
|
450
|
+
path: dist
|
|
451
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
452
|
+
|
|
453
|
+
# The "latest" pre-release: main's packages and their checksums, replaced on every push to main.
|
|
454
|
+
# Marked as a pre-release and never as the latest release, so versioned releases stay the default.
|
|
455
|
+
latest:
|
|
456
|
+
needs: [lint, test, packages, package-test]
|
|
457
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
458
|
+
runs-on: ubuntu-24.04
|
|
459
|
+
timeout-minutes: 10
|
|
460
|
+
permissions:
|
|
461
|
+
contents: write
|
|
462
|
+
steps:
|
|
463
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
464
|
+
with:
|
|
465
|
+
pattern: "packages-*"
|
|
466
|
+
merge-multiple: true
|
|
467
|
+
path: assets
|
|
468
|
+
- name: Flatten
|
|
469
|
+
run: find assets -mindepth 2 -type f -exec mv -t assets {} + && find assets -mindepth 1 -type d -empty -delete
|
|
470
|
+
- name: Checksums
|
|
471
|
+
run: cd assets && sha256sum -- * > SHA256SUMS
|
|
472
|
+
- name: Release
|
|
473
|
+
env:
|
|
474
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
475
|
+
run: |
|
|
476
|
+
gh release delete latest --repo "$GITHUB_REPOSITORY" --cleanup-tag --yes || true
|
|
477
|
+
gh release create latest assets/* --repo "$GITHUB_REPOSITORY" --target "$GITHUB_SHA" \
|
|
478
|
+
--prerelease --latest=false --title "Latest (main)" \
|
|
479
|
+
--notes "Built from main at $GITHUB_SHA. For versioned binaries, use a tagged release."
|
|
480
|
+
|
|
481
|
+
# A GitHub release for each v* tag, with every wheel, the sdist, the packages and their checksums.
|
|
482
|
+
release:
|
|
483
|
+
needs: [lint, test, wheel, sdist, package-test, docker]
|
|
484
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
485
|
+
runs-on: ubuntu-24.04
|
|
486
|
+
timeout-minutes: 10
|
|
487
|
+
permissions:
|
|
488
|
+
contents: write
|
|
489
|
+
steps:
|
|
490
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
491
|
+
with:
|
|
492
|
+
pattern: "wheel-*"
|
|
493
|
+
merge-multiple: true
|
|
494
|
+
path: assets
|
|
495
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
496
|
+
with:
|
|
497
|
+
name: sdist
|
|
498
|
+
path: assets
|
|
499
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
500
|
+
with:
|
|
501
|
+
pattern: "packages-*"
|
|
502
|
+
merge-multiple: true
|
|
503
|
+
path: assets
|
|
504
|
+
- name: Flatten
|
|
505
|
+
run: find assets -mindepth 2 -type f -exec mv -t assets {} + && find assets -mindepth 1 -type d -empty -delete
|
|
506
|
+
- name: Checksums
|
|
507
|
+
run: cd assets && sha256sum -- * > SHA256SUMS
|
|
508
|
+
- name: Release
|
|
509
|
+
env:
|
|
510
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
511
|
+
run: >
|
|
512
|
+
gh release create "$GITHUB_REF_NAME" assets/*
|
|
513
|
+
--repo "$GITHUB_REPOSITORY" --title "TerrainGen ${GITHUB_REF_NAME#v}" --generate-notes
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Piecewise uniform size-frequency distributions: counts per diameter band, given absolutely or as shares of a total.
|
|
13
|
+
- Radial wall marks on craters, ridges and grooves down the wall that are strongest where it is steepest.
|
|
14
|
+
- Thomas cluster process for boulder clusters, with Poisson-scattered centres whose clusters add where they overlap.
|
|
15
|
+
- Craters on slopes: floors offset downslope and rims and ejecta lowered upslope (Plescia et al. 2019), and faster wear toward a critical gradient (Roering et al. 1999).
|
|
16
|
+
- Boulders limited to a maximum slope, optionally rolling down steeper ground to gather at its foot.
|
|
17
|
+
- Density maps from GeoTIFFs or constants: a scale, a count in a diameter range, or an areal fraction such as rock abundance, which set crater and boulder densities point by point.
|
|
18
|
+
- Size slope maps that bend boulder sizes into a local power law, from an exponent or a mean diameter map.
|
|
19
|
+
- Crater and boulder catalogs with a completeness limit, above which they stand in for generated features.
|
|
20
|
+
- Configuration reference in the documentation, generated from the schema at build time, and machine-readable value ranges in the schema.
|
|
21
|
+
- Rock albedo: boulders brighter than the regolith (Holt 1981; Marshal et al. 2023), and a speckle of the share of each sample covered by boulders too small to resolve, with the scatter of randomly placed rocks.
|
|
22
|
+
- Slope albedo: steep ground kept immature by mass wasting, its optical maturity rising with slope beyond 20 degrees (Ikeda et al. 2022; Lucey et al. 2014).
|
|
23
|
+
- Crater shaping and datum fitting on the GPU on spheres, ellipsoids and shape models, not only on planes.
|
|
24
|
+
- Configurations are checked against every field's documented range, and errors name the exact field, such as `layers[2].reach`.
|
|
25
|
+
- Python options classes document every field with its description and unit, and gain `validate()` and a readable `repr`.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- 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.
|
|
30
|
+
- Boulder lists and models hold every boulder of the layer's diameter range; only the heightmap leaves out boulders too small to resolve.
|
|
31
|
+
- Boulder ejecta come from every crater layer before the boulder layer, not only the last one.
|
|
32
|
+
- The boulder layer's `exposure_spacing` key is now `ground_spacing` (Python `ground_spacing`), the spacing of every ground read the layer makes.
|
|
33
|
+
- Crater shaping has one implementation, the kernel, on every surface; craters on bodies and custom profiles may differ from before in the last digits.
|
|
34
|
+
- Random streams and hashes are unified, so boulder, albedo, dune, bedform and pavement outputs for a given seed differ from earlier versions; their statistics are unchanged.
|
|
35
|
+
- Every evaluation defaults to all threads, including `EvaluateAt`, `EvaluateTile` and Python `evaluate_tile`.
|
|
36
|
+
- The `materials` module is folded into `pipeline` (material maps) and `albedo` (Hapke photometry); include `terraingen/pipeline/materials.h` and `terraingen/albedo/photometry.h`.
|
|
37
|
+
- Python: `ExposureField.exposure` takes `(x, y, spacing=0.0, terrain=None, layers=0)` like the other ground queries, unbounded options read as `None` instead of infinity, `write_outputs` returns paths, a subclass missing a required method raises `TypeError`, and `CraterFeatures.write` is `write_list`.
|
|
38
|
+
- Python names: `cell_of` is `cell_at`, `point_of` is `coordinates`, `level_for` is `resolving_level`, `outline_of` is `irregular_outline`, `min_diameter_for_count` is `count_limit_diameter`, `singer_range_for_size` is `singer_max_range`, `SplotchOptions` is `SplotchAlbedoOptions` and `SlopeMaturityOptions` is `SlopeAlbedoOptions`.
|
|
39
|
+
- The CI coverage job builds at `-O1` without atomic counters, so it caches and runs several times faster.
|
|
40
|
+
|
|
41
|
+
- Density maps that count every feature take out the secondaries thrown from a layer's craters and the blocks thrown out around craters, and boulder patches and bedrock keep a map's mean, so nothing is counted twice.
|
|
42
|
+
- Boulder models settle onto a stable face by default instead of balancing on an edge or corner.
|
|
43
|
+
- Boulder generation logs under boulders rather than craters.
|
|
44
|
+
- Crater and boulder generation summaries log at debug level; `terraingen` ends with one line counting the files written instead of listing each, and feature outputs log how long they took.
|
|
45
|
+
- Generation logs each grid as it is evaluated, with the time of every layer, the albedo and the materials, and ends with each step's total and share.
|
|
46
|
+
- Faster boulders: the ground beneath them is read in one batch, outputs over one region share the boulders placed for the first, models are placed in parallel, ejecta craters are found through a spatial index and shapes skip the roughness of fracture planes that cannot reach a vertex. The hero demo runs in about 10 s instead of 276 s.
|
|
47
|
+
- Martin, Parkes and Dunstan is the default crater profile.
|
|
48
|
+
|
|
49
|
+
### Fixed
|
|
50
|
+
|
|
51
|
+
- Freshness degradation never makes a crater deeper than fresh: basins shallower than the cutoff keep their fresh shape.
|
|
52
|
+
- Small craters inside larger ones on sloping ground no longer stand as raised mounds: datums are fitted to the slope-shaped relief that is applied.
|
|
53
|
+
- Crater layers over other layers read the ground beneath their slopes and datums in batches rather than point by point, and point batches are evaluated in spatial order: the hero demo went from 433 s to 11 s with the same output.
|
|
54
|
+
- Secondary craters run on the GPU backend the terrain asks for instead of always on the CPU.
|
|
55
|
+
- A crater layer after a boulder layer no longer refits crater datums for every batch of ground reads.
|
|
56
|
+
- Tilted boulders are no longer cut off at tile edges and point queries.
|
|
57
|
+
- Crater and boulder lists honour a spacing finer than the grid.
|
|
58
|
+
- Zero-area regions and crater sizes below the models' range are rejected with a clear error instead of failing during generation.
|
|
59
|
+
|
|
60
|
+
### Removed
|
|
61
|
+
|
|
62
|
+
- Python `crater_blend_weight` (use `CraterBlend.weight`), `CraterAgeModel.lifetime_gyr` (use `lifetime_at`) and the flat selection aliases on crater irregularity, crater albedo and secondary options (use `selection`).
|
|
63
|
+
|
|
64
|
+
## [0.1.0] - 2026-10-18
|
|
65
|
+
|
|
66
|
+
Initial release.
|
|
67
|
+
|
|
68
|
+
### Added
|
|
69
|
+
|
|
70
|
+
- C++20 library with Python bindings (`terraingenpy` on PyPI) for generating terrain from scratch or adding detail to existing DEMs.
|
|
71
|
+
- Craters and boulders from published size-frequency distributions, with crater ages, profiles, degradation, irregularity, secondaries and ejecta.
|
|
72
|
+
- Procedural 3D boulder models, and small boulders baked into the heightmap.
|
|
73
|
+
- Synthetic albedo with crater ejecta and rays that fade with age.
|
|
74
|
+
- Geologic features: dunes and ripples, layered strata, fractured bedrock, ventifacts and sand pooled in lows or behind boulders.
|
|
75
|
+
- Planes, spheres and ellipsoids, whole-body meshes, tiles and point queries.
|
|
76
|
+
- Deterministic output for a seed on any grid, tile or thread count.
|
|
77
|
+
- GPU acceleration on Vulkan, CUDA and Metal, detected at run time.
|
|
78
|
+
- `terraingen` command-line interface driven by JSON configurations.
|
|
79
|
+
- Examples in C++, Python and JSON.
|
|
80
|
+
- Release archives for Linux, macOS and Windows, Debian packages, and a Docker image.
|
|
81
|
+
|
|
82
|
+
[Unreleased]: https://github.com/alexmaietta/terraingen/compare/v0.1.0...HEAD
|
|
83
|
+
[0.1.0]: https://github.com/alexmaietta/terraingen/releases/tag/v0.1.0
|