forge3d 1.13.0__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.
- forge3d-1.13.0/.gitattributes +3 -0
- forge3d-1.13.0/.github/workflows/ci.yml +391 -0
- forge3d-1.13.0/.github/workflows/public-funnel-monitor.yml +47 -0
- forge3d-1.13.0/.github/workflows/publish.yml +232 -0
- forge3d-1.13.0/.gitignore +326 -0
- forge3d-1.13.0/AGENTS.md +63 -0
- forge3d-1.13.0/CHANGELOG.md +1770 -0
- forge3d-1.13.0/CMakeLists.txt +243 -0
- forge3d-1.13.0/CONTRIBUTING.md +41 -0
- forge3d-1.13.0/Cargo.lock +4726 -0
- forge3d-1.13.0/Cargo.toml +183 -0
- forge3d-1.13.0/LICENSE +21 -0
- forge3d-1.13.0/LICENSE-APACHE +190 -0
- forge3d-1.13.0/MANIFEST.in +88 -0
- forge3d-1.13.0/PKG-INFO +194 -0
- forge3d-1.13.0/README.md +126 -0
- forge3d-1.13.0/SECURITY.md +10 -0
- forge3d-1.13.0/bench/upload_policies/policies.rs +496 -0
- forge3d-1.13.0/cmake/ForgeConfig.cmake +233 -0
- forge3d-1.13.0/cmake/README.md +283 -0
- forge3d-1.13.0/conftest.py +22 -0
- forge3d-1.13.0/examples/_import_shim.py +13 -0
- forge3d-1.13.0/examples/_m_3d_preview.py +160 -0
- forge3d-1.13.0/examples/_png.py +65 -0
- forge3d-1.13.0/examples/buildings_viewer_interactive.py +658 -0
- forge3d-1.13.0/examples/bundle_viewer_interactive.py +535 -0
- forge3d-1.13.0/examples/camera_animation_demo.py +940 -0
- forge3d-1.13.0/examples/clipmap_demo.py +923 -0
- forge3d-1.13.0/examples/cog_streaming_demo.py +363 -0
- forge3d-1.13.0/examples/fuji_labels_demo.py +1131 -0
- forge3d-1.13.0/examples/luxembourg_rail_overlay.py +1368 -0
- forge3d-1.13.0/examples/notebooks/map_plate.ipynb +84 -0
- forge3d-1.13.0/examples/notebooks/quickstart.ipynb +83 -0
- forge3d-1.13.0/examples/notebooks/terrain_explorer.ipynb +82 -0
- forge3d-1.13.0/examples/picking_demo.py +481 -0
- forge3d-1.13.0/examples/picking_test_interactive.py +319 -0
- forge3d-1.13.0/examples/png_numpy_roundtrip.py +43 -0
- forge3d-1.13.0/examples/pointcloud_viewer_interactive.py +407 -0
- forge3d-1.13.0/examples/presets/baseline_no_vector_overlays.json +22 -0
- forge3d-1.13.0/examples/presets/rainier_showcase.json +20 -0
- forge3d-1.13.0/examples/sample_style.json +66 -0
- forge3d-1.13.0/examples/style_viewer_interactive.py +565 -0
- forge3d-1.13.0/examples/swiss_terrain_landcover_viewer.py +1195 -0
- forge3d-1.13.0/examples/terrain_demo.py +608 -0
- forge3d-1.13.0/examples/terrain_single_tile.py +38 -0
- forge3d-1.13.0/examples/terrain_viewer_interactive.py +964 -0
- forge3d-1.13.0/examples/tiles3d_demo.py +292 -0
- forge3d-1.13.0/examples/triangle_png.py +34 -0
- forge3d-1.13.0/examples/vector_export_demo.py +472 -0
- forge3d-1.13.0/pyproject.toml +139 -0
- forge3d-1.13.0/pytest.ini +14 -0
- forge3d-1.13.0/python/README.md +29 -0
- forge3d-1.13.0/python/dask/__init__.py +10 -0
- forge3d-1.13.0/python/dask/array/__init__.py +28 -0
- forge3d-1.13.0/python/dask/array/random.py +13 -0
- forge3d-1.13.0/python/forge3d/__init__.py +484 -0
- forge3d-1.13.0/python/forge3d/__init__.pyi +900 -0
- forge3d-1.13.0/python/forge3d/_ed25519.py +169 -0
- forge3d-1.13.0/python/forge3d/_gpu.py +89 -0
- forge3d-1.13.0/python/forge3d/_license.py +305 -0
- forge3d-1.13.0/python/forge3d/_memory.py +126 -0
- forge3d-1.13.0/python/forge3d/_native.py +37 -0
- forge3d-1.13.0/python/forge3d/_png.py +339 -0
- forge3d-1.13.0/python/forge3d/_validate.py +422 -0
- forge3d-1.13.0/python/forge3d/animation.py +204 -0
- forge3d-1.13.0/python/forge3d/api_policy.md +158 -0
- forge3d-1.13.0/python/forge3d/bench.py +227 -0
- forge3d-1.13.0/python/forge3d/buildings.py +576 -0
- forge3d-1.13.0/python/forge3d/bundle.py +362 -0
- forge3d-1.13.0/python/forge3d/cog.py +383 -0
- forge3d-1.13.0/python/forge3d/colormaps/__init__.py +5 -0
- forge3d-1.13.0/python/forge3d/colormaps/core.py +122 -0
- forge3d-1.13.0/python/forge3d/colormaps/core_palettes.py +29 -0
- forge3d-1.13.0/python/forge3d/colormaps/io.py +17 -0
- forge3d-1.13.0/python/forge3d/colormaps/providers.py +52 -0
- forge3d-1.13.0/python/forge3d/colormaps/registry.py +31 -0
- forge3d-1.13.0/python/forge3d/colors.py +64 -0
- forge3d-1.13.0/python/forge3d/config.py +725 -0
- forge3d-1.13.0/python/forge3d/crs.py +353 -0
- forge3d-1.13.0/python/forge3d/data/mini_dem.npy +0 -0
- forge3d-1.13.0/python/forge3d/data/sample_boundaries.geojson +69 -0
- forge3d-1.13.0/python/forge3d/datasets.py +318 -0
- forge3d-1.13.0/python/forge3d/denoise.py +147 -0
- forge3d-1.13.0/python/forge3d/export.py +616 -0
- forge3d-1.13.0/python/forge3d/geometry.py +576 -0
- forge3d-1.13.0/python/forge3d/guiding.py +46 -0
- forge3d-1.13.0/python/forge3d/helpers/__init__.py +91 -0
- forge3d-1.13.0/python/forge3d/helpers/aov_io.py +90 -0
- forge3d-1.13.0/python/forge3d/helpers/frame_dump.py +115 -0
- forge3d-1.13.0/python/forge3d/helpers/ipython_display.py +54 -0
- forge3d-1.13.0/python/forge3d/helpers/mpl_display.py +433 -0
- forge3d-1.13.0/python/forge3d/helpers/offscreen.py +186 -0
- forge3d-1.13.0/python/forge3d/interactive.py +606 -0
- forge3d-1.13.0/python/forge3d/io.py +733 -0
- forge3d-1.13.0/python/forge3d/legend.py +177 -0
- forge3d-1.13.0/python/forge3d/lighting.py +975 -0
- forge3d-1.13.0/python/forge3d/map_plate.py +358 -0
- forge3d-1.13.0/python/forge3d/materials.py +28 -0
- forge3d-1.13.0/python/forge3d/mem.py +74 -0
- forge3d-1.13.0/python/forge3d/mesh.py +676 -0
- forge3d-1.13.0/python/forge3d/north_arrow.py +187 -0
- forge3d-1.13.0/python/forge3d/path_tracing.py +797 -0
- forge3d-1.13.0/python/forge3d/path_tracing.pyi +53 -0
- forge3d-1.13.0/python/forge3d/pointcloud.py +690 -0
- forge3d-1.13.0/python/forge3d/presets.py +314 -0
- forge3d-1.13.0/python/forge3d/py.typed +5 -0
- forge3d-1.13.0/python/forge3d/scale_bar.py +162 -0
- forge3d-1.13.0/python/forge3d/sdf.py +555 -0
- forge3d-1.13.0/python/forge3d/style.py +993 -0
- forge3d-1.13.0/python/forge3d/style_expressions.py +717 -0
- forge3d-1.13.0/python/forge3d/terrain_demo.py +1122 -0
- forge3d-1.13.0/python/forge3d/terrain_params.py +1745 -0
- forge3d-1.13.0/python/forge3d/terrain_pbr_pom.py +50 -0
- forge3d-1.13.0/python/forge3d/textures.py +104 -0
- forge3d-1.13.0/python/forge3d/tiles3d.py +404 -0
- forge3d-1.13.0/python/forge3d/vector.py +448 -0
- forge3d-1.13.0/python/forge3d/viewer.py +698 -0
- forge3d-1.13.0/python/forge3d/viewer.pyi +118 -0
- forge3d-1.13.0/python/forge3d/viewer_ipc.py +941 -0
- forge3d-1.13.0/python/forge3d/widgets.py +516 -0
- forge3d-1.13.0/python/pyproj_stub/__init__.py +22 -0
- forge3d-1.13.0/python/rasterio/__init__.py +67 -0
- forge3d-1.13.0/python/rasterio/enums.py +15 -0
- forge3d-1.13.0/python/rasterio/transform.py +19 -0
- forge3d-1.13.0/python/rasterio/windows.py +19 -0
- forge3d-1.13.0/python/tools/backends_runner.py +164 -0
- forge3d-1.13.0/python/tools/device_diagnostics.py +62 -0
- forge3d-1.13.0/python/tools/perf_sanity.py +135 -0
- forge3d-1.13.0/python/tools/terrain_spike.py +28 -0
- forge3d-1.13.0/python/vshade/__init__.py +2 -0
- forge3d-1.13.0/python/xarray/__init__.py +12 -0
- forge3d-1.13.0/scripts/check_public_funnel.py +62 -0
- forge3d-1.13.0/scripts/compare_images.py +203 -0
- forge3d-1.13.0/scripts/detail_normals.py +254 -0
- forge3d-1.13.0/scripts/gen_gallery_images.py +735 -0
- forge3d-1.13.0/scripts/generate_audit_snapshot.py +592 -0
- forge3d-1.13.0/scripts/generate_license_keypair.py +63 -0
- forge3d-1.13.0/scripts/histogram_match.py +185 -0
- forge3d-1.13.0/scripts/install_compatible_wheel.py +73 -0
- forge3d-1.13.0/scripts/regenerate_gallery.py +659 -0
- forge3d-1.13.0/scripts/sign_license_key.py +81 -0
- forge3d-1.13.0/scripts/style_match_eval.py +605 -0
- forge3d-1.13.0/scripts/terrain_validation.py +470 -0
- forge3d-1.13.0/scripts/validate_gore_strict.py +282 -0
- forge3d-1.13.0/scripts/validate_terrain.py +294 -0
- forge3d-1.13.0/src/accel/cpu_bvh.rs +645 -0
- forge3d-1.13.0/src/accel/instancing.rs +85 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/buffers.rs +131 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/build.rs +76 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/morton.rs +99 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/refit.rs +139 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/setup.rs +131 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/sort.rs +232 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/sort_bitonic.rs +98 -0
- forge3d-1.13.0/src/accel/lbvh_gpu/topology.rs +135 -0
- forge3d-1.13.0/src/accel/lbvh_gpu.rs +81 -0
- forge3d-1.13.0/src/accel/mod.rs +139 -0
- forge3d-1.13.0/src/accel/sah_cpu.rs +440 -0
- forge3d-1.13.0/src/accel/types.rs +313 -0
- forge3d-1.13.0/src/animation/interpolation.rs +81 -0
- forge3d-1.13.0/src/animation/mod.rs +250 -0
- forge3d-1.13.0/src/animation/render_queue.rs +166 -0
- forge3d-1.13.0/src/bin/interactive_viewer.rs +7 -0
- forge3d-1.13.0/src/bundle/manifest.rs +188 -0
- forge3d-1.13.0/src/bundle/mod.rs +40 -0
- forge3d-1.13.0/src/camera/dof.rs +185 -0
- forge3d-1.13.0/src/camera/mod.rs +229 -0
- forge3d-1.13.0/src/camera/validation.rs +149 -0
- forge3d-1.13.0/src/cli/args.rs +102 -0
- forge3d-1.13.0/src/cli/gi_config_output.rs +268 -0
- forge3d-1.13.0/src/cli/gi_config_parse.rs +213 -0
- forge3d-1.13.0/src/cli/gi_formatting.rs +53 -0
- forge3d-1.13.0/src/cli/gi_params.rs +56 -0
- forge3d-1.13.0/src/cli/gi_parsing.rs +106 -0
- forge3d-1.13.0/src/cli/gi_types.rs +109 -0
- forge3d-1.13.0/src/cli/interactive_viewer.rs +283 -0
- forge3d-1.13.0/src/cli/mod.rs +8 -0
- forge3d-1.13.0/src/colormap/assets/magma_256x1.png +0 -0
- forge3d-1.13.0/src/colormap/assets/terrain_256x1.png +0 -0
- forge3d-1.13.0/src/colormap/assets/viridis_256x1.png +0 -0
- forge3d-1.13.0/src/colormap/colormap1d.rs +182 -0
- forge3d-1.13.0/src/colormap/mod.rs +217 -0
- forge3d-1.13.0/src/converters/mod.rs +1 -0
- forge3d-1.13.0/src/converters/multipolygonz_to_obj.rs +111 -0
- forge3d-1.13.0/src/core/async_compute/mod.rs +82 -0
- forge3d-1.13.0/src/core/async_compute/scheduler.rs +291 -0
- forge3d-1.13.0/src/core/async_compute/types.rs +184 -0
- forge3d-1.13.0/src/core/async_readback.rs +418 -0
- forge3d-1.13.0/src/core/big_buffer.rs +329 -0
- forge3d-1.13.0/src/core/bloom/config.rs +49 -0
- forge3d-1.13.0/src/core/bloom/effect.rs +136 -0
- forge3d-1.13.0/src/core/bloom/execute.rs +257 -0
- forge3d-1.13.0/src/core/bloom/init.rs +33 -0
- forge3d-1.13.0/src/core/bloom/resources.rs +241 -0
- forge3d-1.13.0/src/core/bloom.rs +24 -0
- forge3d-1.13.0/src/core/cascade_split.rs +399 -0
- forge3d-1.13.0/src/core/cloud_shadows/mod.rs +56 -0
- forge3d-1.13.0/src/core/cloud_shadows/renderer.rs +356 -0
- forge3d-1.13.0/src/core/cloud_shadows/types.rs +115 -0
- forge3d-1.13.0/src/core/cloud_shadows/utils.rs +47 -0
- forge3d-1.13.0/src/core/clouds/mod.rs +10 -0
- forge3d-1.13.0/src/core/clouds/renderer/controls.rs +136 -0
- forge3d-1.13.0/src/core/clouds/renderer/data.rs +47 -0
- forge3d-1.13.0/src/core/clouds/renderer/init.rs +257 -0
- forge3d-1.13.0/src/core/clouds/renderer/mod.rs +47 -0
- forge3d-1.13.0/src/core/clouds/renderer/render.rs +38 -0
- forge3d-1.13.0/src/core/clouds/renderer/resources.rs +115 -0
- forge3d-1.13.0/src/core/clouds/renderer/textures.rs +239 -0
- forge3d-1.13.0/src/core/clouds/types.rs +166 -0
- forge3d-1.13.0/src/core/compressed_textures/compression.rs +173 -0
- forge3d-1.13.0/src/core/compressed_textures/load.rs +116 -0
- forge3d-1.13.0/src/core/compressed_textures/parsing.rs +70 -0
- forge3d-1.13.0/src/core/compressed_textures/tests.rs +34 -0
- forge3d-1.13.0/src/core/compressed_textures/types.rs +69 -0
- forge3d-1.13.0/src/core/compressed_textures/upload.rs +194 -0
- forge3d-1.13.0/src/core/compressed_textures.rs +10 -0
- forge3d-1.13.0/src/core/context.rs +50 -0
- forge3d-1.13.0/src/core/device_caps.rs +173 -0
- forge3d-1.13.0/src/core/dof/mod.rs +349 -0
- forge3d-1.13.0/src/core/dof/pipeline.rs +107 -0
- forge3d-1.13.0/src/core/dof/types.rs +174 -0
- forge3d-1.13.0/src/core/double_buffer.rs +371 -0
- forge3d-1.13.0/src/core/dual_source_oit/constructor.rs +292 -0
- forge3d-1.13.0/src/core/dual_source_oit/controls.rs +108 -0
- forge3d-1.13.0/src/core/dual_source_oit/mod.rs +112 -0
- forge3d-1.13.0/src/core/dual_source_oit/pass.rs +111 -0
- forge3d-1.13.0/src/core/dual_source_oit/pipeline.rs +112 -0
- forge3d-1.13.0/src/core/envmap.rs +369 -0
- forge3d-1.13.0/src/core/error.rs +74 -0
- forge3d-1.13.0/src/core/feedback_buffer.rs +453 -0
- forge3d-1.13.0/src/core/fence_tracker.rs +230 -0
- forge3d-1.13.0/src/core/framegraph.rs +53 -0
- forge3d-1.13.0/src/core/framegraph_impl/barriers.rs +233 -0
- forge3d-1.13.0/src/core/framegraph_impl/mod.rs +405 -0
- forge3d-1.13.0/src/core/framegraph_impl/types.rs +149 -0
- forge3d-1.13.0/src/core/gbuffer.rs +201 -0
- forge3d-1.13.0/src/core/gpu.rs +157 -0
- forge3d-1.13.0/src/core/gpu_timing.rs +465 -0
- forge3d-1.13.0/src/core/gpu_types.rs +42 -0
- forge3d-1.13.0/src/core/ground_plane/mod.rs +5 -0
- forge3d-1.13.0/src/core/ground_plane/presets.rs +42 -0
- forge3d-1.13.0/src/core/ground_plane/renderer.rs +363 -0
- forge3d-1.13.0/src/core/ground_plane/types.rs +226 -0
- forge3d-1.13.0/src/core/hdr.rs +305 -0
- forge3d-1.13.0/src/core/hdr_readback.rs +223 -0
- forge3d-1.13.0/src/core/hdr_tonemapping.rs +89 -0
- forge3d-1.13.0/src/core/hdr_types.rs +87 -0
- forge3d-1.13.0/src/core/ibl/brdf_lut.rs +77 -0
- forge3d-1.13.0/src/core/ibl/cache.rs +283 -0
- forge3d-1.13.0/src/core/ibl/constructor.rs +294 -0
- forge3d-1.13.0/src/core/ibl/environment.rs +300 -0
- forge3d-1.13.0/src/core/ibl/image_io.rs +273 -0
- forge3d-1.13.0/src/core/ibl/irradiance.rs +108 -0
- forge3d-1.13.0/src/core/ibl/prefilter.rs +127 -0
- forge3d-1.13.0/src/core/ibl/runtime.rs +129 -0
- forge3d-1.13.0/src/core/ibl.rs +285 -0
- forge3d-1.13.0/src/core/jitter.rs +225 -0
- forge3d-1.13.0/src/core/ltc_area_lights.rs +340 -0
- forge3d-1.13.0/src/core/ltc_lut.rs +116 -0
- forge3d-1.13.0/src/core/ltc_types.rs +171 -0
- forge3d-1.13.0/src/core/material.rs +343 -0
- forge3d-1.13.0/src/core/matrix_stack.rs +352 -0
- forge3d-1.13.0/src/core/memory_tracker/helpers.rs +108 -0
- forge3d-1.13.0/src/core/memory_tracker/pool.rs +349 -0
- forge3d-1.13.0/src/core/memory_tracker/registry.rs +127 -0
- forge3d-1.13.0/src/core/memory_tracker/reporting.rs +54 -0
- forge3d-1.13.0/src/core/memory_tracker/tests.rs +165 -0
- forge3d-1.13.0/src/core/memory_tracker/types.rs +51 -0
- forge3d-1.13.0/src/core/memory_tracker.rs +14 -0
- forge3d-1.13.0/src/core/mipmap.rs +340 -0
- forge3d-1.13.0/src/core/mod.rs +166 -0
- forge3d-1.13.0/src/core/multi_thread/mod.rs +284 -0
- forge3d-1.13.0/src/core/multi_thread/pool.rs +93 -0
- forge3d-1.13.0/src/core/multi_thread/tasks.rs +109 -0
- forge3d-1.13.0/src/core/overlay_layer.rs +167 -0
- forge3d-1.13.0/src/core/overlays.rs +490 -0
- forge3d-1.13.0/src/core/pbr.rs +12 -0
- forge3d-1.13.0/src/core/point_spot_lights/creation.rs +299 -0
- forge3d-1.13.0/src/core/point_spot_lights/draw.rs +95 -0
- forge3d-1.13.0/src/core/point_spot_lights/management.rs +111 -0
- forge3d-1.13.0/src/core/point_spot_lights/mod.rs +13 -0
- forge3d-1.13.0/src/core/point_spot_lights/presets.rs +93 -0
- forge3d-1.13.0/src/core/point_spot_lights/structs.rs +38 -0
- forge3d-1.13.0/src/core/point_spot_lights/types.rs +253 -0
- forge3d-1.13.0/src/core/postfx/chain.rs +253 -0
- forge3d-1.13.0/src/core/postfx/config.rs +62 -0
- forge3d-1.13.0/src/core/postfx/effect.rs +47 -0
- forge3d-1.13.0/src/core/postfx/mod.rs +19 -0
- forge3d-1.13.0/src/core/postfx/resources.rs +174 -0
- forge3d-1.13.0/src/core/reflections.rs +349 -0
- forge3d-1.13.0/src/core/reflections_math.rs +91 -0
- forge3d-1.13.0/src/core/reflections_types.rs +197 -0
- forge3d-1.13.0/src/core/render_bundles.rs +309 -0
- forge3d-1.13.0/src/core/render_bundles_types.rs +238 -0
- forge3d-1.13.0/src/core/resource_tracker.rs +159 -0
- forge3d-1.13.0/src/core/sampler_modes.rs +507 -0
- forge3d-1.13.0/src/core/scene_graph.rs +617 -0
- forge3d-1.13.0/src/core/screen_space_effects/hzb.rs +278 -0
- forge3d-1.13.0/src/core/screen_space_effects/manager/accessors.rs +299 -0
- forge3d-1.13.0/src/core/screen_space_effects/manager/core.rs +126 -0
- forge3d-1.13.0/src/core/screen_space_effects/manager/execute.rs +106 -0
- forge3d-1.13.0/src/core/screen_space_effects/manager.rs +18 -0
- forge3d-1.13.0/src/core/screen_space_effects/settings.rs +209 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/accessors.rs +66 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/constructor.rs +150 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/mod.rs +12 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/passes.rs +222 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/pipelines.rs +233 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/resources.rs +237 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/runtime.rs +36 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssao/temporal.rs +131 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi/accessors.rs +73 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi/constructor/layouts.rs +115 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi/constructor/mod.rs +110 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi/constructor/pipelines.rs +115 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi/constructor/resources.rs +202 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi/controls.rs +149 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi/runtime.rs +328 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssgi.rs +74 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr/accessors.rs +89 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr/constructor/layouts.rs +130 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr/constructor/mod.rs +104 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr/constructor/pipelines.rs +103 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr/constructor/resources.rs +205 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr/runtime.rs +287 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr/stats.rs +54 -0
- forge3d-1.13.0/src/core/screen_space_effects/ssr.rs +65 -0
- forge3d-1.13.0/src/core/screen_space_effects.rs +51 -0
- forge3d-1.13.0/src/core/session.rs +95 -0
- forge3d-1.13.0/src/core/shadow_mapping/bind_group.rs +47 -0
- forge3d-1.13.0/src/core/shadow_mapping/mod.rs +14 -0
- forge3d-1.13.0/src/core/shadow_mapping/system.rs +383 -0
- forge3d-1.13.0/src/core/shadow_mapping/types.rs +317 -0
- forge3d-1.13.0/src/core/shadows/frustum.rs +84 -0
- forge3d-1.13.0/src/core/shadows/mod.rs +307 -0
- forge3d-1.13.0/src/core/shadows/resources.rs +69 -0
- forge3d-1.13.0/src/core/shadows/types.rs +161 -0
- forge3d-1.13.0/src/core/soft_light_radius.rs +494 -0
- forge3d-1.13.0/src/core/staging_rings.rs +330 -0
- forge3d-1.13.0/src/core/taa.rs +408 -0
- forge3d-1.13.0/src/core/text_mesh/builder.rs +297 -0
- forge3d-1.13.0/src/core/text_mesh/mod.rs +10 -0
- forge3d-1.13.0/src/core/text_mesh/renderer.rs +232 -0
- forge3d-1.13.0/src/core/text_mesh/types.rs +35 -0
- forge3d-1.13.0/src/core/text_overlay.rs +351 -0
- forge3d-1.13.0/src/core/texture_format.rs +306 -0
- forge3d-1.13.0/src/core/texture_format_defs.rs +223 -0
- forge3d-1.13.0/src/core/texture_upload.rs +631 -0
- forge3d-1.13.0/src/core/tile_cache.rs +620 -0
- forge3d-1.13.0/src/core/tonemap.rs +514 -0
- forge3d-1.13.0/src/core/virtual_texture.rs +674 -0
- forge3d-1.13.0/src/core/water_surface/constructor.rs +262 -0
- forge3d-1.13.0/src/core/water_surface/controls.rs +182 -0
- forge3d-1.13.0/src/core/water_surface/mod.rs +171 -0
- forge3d-1.13.0/src/core/water_surface/render.rs +16 -0
- forge3d-1.13.0/src/core/water_surface/uniforms.rs +119 -0
- forge3d-1.13.0/src/export/mod.rs +157 -0
- forge3d-1.13.0/src/export/projection.rs +252 -0
- forge3d-1.13.0/src/export/svg.rs +442 -0
- forge3d-1.13.0/src/export/svg_labels.rs +301 -0
- forge3d-1.13.0/src/external_image/decode.rs +87 -0
- forge3d-1.13.0/src/external_image/mod.rs +154 -0
- forge3d-1.13.0/src/external_image/types.rs +84 -0
- forge3d-1.13.0/src/external_image/upload.rs +109 -0
- forge3d-1.13.0/src/formats/hdr.rs +343 -0
- forge3d-1.13.0/src/formats/mod.rs +10 -0
- forge3d-1.13.0/src/geo/mod.rs +16 -0
- forge3d-1.13.0/src/geo/reproject.rs +216 -0
- forge3d-1.13.0/src/geometry/array_convert.rs +43 -0
- forge3d-1.13.0/src/geometry/curves.rs +284 -0
- forge3d-1.13.0/src/geometry/displacement.rs +131 -0
- forge3d-1.13.0/src/geometry/extrude.rs +109 -0
- forge3d-1.13.0/src/geometry/grid.rs +138 -0
- forge3d-1.13.0/src/geometry/mesh_python.rs +140 -0
- forge3d-1.13.0/src/geometry/mod.rs +125 -0
- forge3d-1.13.0/src/geometry/primitives.rs +434 -0
- forge3d-1.13.0/src/geometry/py_advanced.rs +187 -0
- forge3d-1.13.0/src/geometry/py_bindings.rs +278 -0
- forge3d-1.13.0/src/geometry/subdivision.rs +409 -0
- forge3d-1.13.0/src/geometry/tangents.rs +117 -0
- forge3d-1.13.0/src/geometry/thick_polyline.rs +83 -0
- forge3d-1.13.0/src/geometry/transform.rs +149 -0
- forge3d-1.13.0/src/geometry/transforms.rs +256 -0
- forge3d-1.13.0/src/geometry/validate.rs +260 -0
- forge3d-1.13.0/src/geometry/weld.rs +228 -0
- forge3d-1.13.0/src/import/building_materials.rs +529 -0
- forge3d-1.13.0/src/import/cityjson/bindings.rs +67 -0
- forge3d-1.13.0/src/import/cityjson/geometry.rs +162 -0
- forge3d-1.13.0/src/import/cityjson/parser.rs +256 -0
- forge3d-1.13.0/src/import/cityjson/tests.rs +52 -0
- forge3d-1.13.0/src/import/cityjson/types.rs +114 -0
- forge3d-1.13.0/src/import/cityjson.rs +14 -0
- forge3d-1.13.0/src/import/mod.rs +11 -0
- forge3d-1.13.0/src/import/osm_buildings.rs +396 -0
- forge3d-1.13.0/src/io/gltf_read.rs +97 -0
- forge3d-1.13.0/src/io/mod.rs +8 -0
- forge3d-1.13.0/src/io/obj_read.rs +396 -0
- forge3d-1.13.0/src/io/obj_write.rs +313 -0
- forge3d-1.13.0/src/io/stl_write.rs +113 -0
- forge3d-1.13.0/src/labels/atlas.rs +442 -0
- forge3d-1.13.0/src/labels/callout.rs +399 -0
- forge3d-1.13.0/src/labels/collision.rs +173 -0
- forge3d-1.13.0/src/labels/curved.rs +295 -0
- forge3d-1.13.0/src/labels/declutter.rs +352 -0
- forge3d-1.13.0/src/labels/layer.rs +556 -0
- forge3d-1.13.0/src/labels/leader.rs +144 -0
- forge3d-1.13.0/src/labels/line_label.rs +251 -0
- forge3d-1.13.0/src/labels/mod.rs +471 -0
- forge3d-1.13.0/src/labels/projection.rs +126 -0
- forge3d-1.13.0/src/labels/py_bindings.rs +215 -0
- forge3d-1.13.0/src/labels/rtree.rs +179 -0
- forge3d-1.13.0/src/labels/types.rs +226 -0
- forge3d-1.13.0/src/labels/typography.rs +261 -0
- forge3d-1.13.0/src/lib.rs +222 -0
- forge3d-1.13.0/src/license/mod.rs +71 -0
- forge3d-1.13.0/src/lighting/area_lights.rs +371 -0
- forge3d-1.13.0/src/lighting/atmospherics.rs +272 -0
- forge3d-1.13.0/src/lighting/ephemeris.rs +339 -0
- forge3d-1.13.0/src/lighting/ibl_cache.rs +242 -0
- forge3d-1.13.0/src/lighting/ibl_wrapper.rs +497 -0
- forge3d-1.13.0/src/lighting/light.rs +218 -0
- forge3d-1.13.0/src/lighting/light_buffer/creation.rs +132 -0
- forge3d-1.13.0/src/lighting/light_buffer/frame.rs +287 -0
- forge3d-1.13.0/src/lighting/light_buffer/mod.rs +14 -0
- forge3d-1.13.0/src/lighting/light_buffer/r2.rs +11 -0
- forge3d-1.13.0/src/lighting/light_buffer/tests.rs +318 -0
- forge3d-1.13.0/src/lighting/light_buffer/types.rs +35 -0
- forge3d-1.13.0/src/lighting/light_buffer/update.rs +76 -0
- forge3d-1.13.0/src/lighting/material.rs +145 -0
- forge3d-1.13.0/src/lighting/mod.rs +40 -0
- forge3d-1.13.0/src/lighting/py_bindings/atmosphere.rs +51 -0
- forge3d-1.13.0/src/lighting/py_bindings/gi.rs +51 -0
- forge3d-1.13.0/src/lighting/py_bindings/light.rs +315 -0
- forge3d-1.13.0/src/lighting/py_bindings/material.rs +125 -0
- forge3d-1.13.0/src/lighting/py_bindings/screen_space.rs +242 -0
- forge3d-1.13.0/src/lighting/py_bindings/shadow.rs +110 -0
- forge3d-1.13.0/src/lighting/py_bindings/sky.rs +108 -0
- forge3d-1.13.0/src/lighting/py_bindings/sun_position.rs +73 -0
- forge3d-1.13.0/src/lighting/py_bindings/volumetrics.rs +168 -0
- forge3d-1.13.0/src/lighting/py_bindings.rs +23 -0
- forge3d-1.13.0/src/lighting/screen_space.rs +263 -0
- forge3d-1.13.0/src/lighting/shadow.rs +225 -0
- forge3d-1.13.0/src/lighting/shadow_map.rs +262 -0
- forge3d-1.13.0/src/lighting/types.rs +183 -0
- forge3d-1.13.0/src/loaders/ktx2/loader.rs +224 -0
- forge3d-1.13.0/src/loaders/ktx2/mod.rs +68 -0
- forge3d-1.13.0/src/loaders/ktx2/parser.rs +179 -0
- forge3d-1.13.0/src/loaders/ktx2/types.rs +95 -0
- forge3d-1.13.0/src/loaders/ktx2/validation.rs +18 -0
- forge3d-1.13.0/src/loaders/mod.rs +7 -0
- forge3d-1.13.0/src/mesh/mod.rs +21 -0
- forge3d-1.13.0/src/mesh/tbn.rs +551 -0
- forge3d-1.13.0/src/mesh/vertex.rs +213 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/api.rs +159 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/debug.rs +81 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/math.rs +56 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/params.rs +16 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/render.rs +64 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/request.rs +167 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/resources/render_pass.rs +38 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/resources/timestamps.rs +62 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/resources.rs +256 -0
- forge3d-1.13.0/src/offscreen/brdf_tile/tests.rs +302 -0
- forge3d-1.13.0/src/offscreen/brdf_tile.rs +13 -0
- forge3d-1.13.0/src/offscreen/mod.rs +11 -0
- forge3d-1.13.0/src/offscreen/pipeline.rs +337 -0
- forge3d-1.13.0/src/offscreen/sphere.rs +262 -0
- forge3d-1.13.0/src/p5/meta/constants.rs +40 -0
- forge3d-1.13.0/src/p5/meta/defaults.rs +123 -0
- forge3d-1.13.0/src/p5/meta/mod.rs +233 -0
- forge3d-1.13.0/src/p5/meta/ssr_status.rs +198 -0
- forge3d-1.13.0/src/p5/mod.rs +3 -0
- forge3d-1.13.0/src/p5/ssr.rs +414 -0
- forge3d-1.13.0/src/p5/ssr_analysis/luminance.rs +45 -0
- forge3d-1.13.0/src/p5/ssr_analysis/mod.rs +346 -0
- forge3d-1.13.0/src/p5/ssr_analysis/roi.rs +144 -0
- forge3d-1.13.0/src/passes/gi/bind_groups.rs +78 -0
- forge3d-1.13.0/src/passes/gi/mod.rs +248 -0
- forge3d-1.13.0/src/passes/gi/params.rs +63 -0
- forge3d-1.13.0/src/passes/mod.rs +6 -0
- forge3d-1.13.0/src/passes/ssgi.rs +46 -0
- forge3d-1.13.0/src/passes/ssr.rs +55 -0
- forge3d-1.13.0/src/path_tracing/accel.rs +378 -0
- forge3d-1.13.0/src/path_tracing/alias_table.rs +193 -0
- forge3d-1.13.0/src/path_tracing/aov.rs +261 -0
- forge3d-1.13.0/src/path_tracing/cache.rs +238 -0
- forge3d-1.13.0/src/path_tracing/compute/dispatch.rs +27 -0
- forge3d-1.13.0/src/path_tracing/compute/mod.rs +34 -0
- forge3d-1.13.0/src/path_tracing/compute/readback.rs +143 -0
- forge3d-1.13.0/src/path_tracing/compute/render.rs +48 -0
- forge3d-1.13.0/src/path_tracing/compute/setup.rs +254 -0
- forge3d-1.13.0/src/path_tracing/compute_types.rs +35 -0
- forge3d-1.13.0/src/path_tracing/hybrid_compute/layouts.rs +133 -0
- forge3d-1.13.0/src/path_tracing/hybrid_compute/mod.rs +136 -0
- forge3d-1.13.0/src/path_tracing/hybrid_compute/render.rs +254 -0
- forge3d-1.13.0/src/path_tracing/hybrid_compute/setup.rs +71 -0
- forge3d-1.13.0/src/path_tracing/importance.rs +61 -0
- forge3d-1.13.0/src/path_tracing/io.rs +287 -0
- forge3d-1.13.0/src/path_tracing/lighting.rs +132 -0
- forge3d-1.13.0/src/path_tracing/mesh/bind_groups.rs +121 -0
- forge3d-1.13.0/src/path_tracing/mesh/mod.rs +14 -0
- forge3d-1.13.0/src/path_tracing/mesh/tests.rs +55 -0
- forge3d-1.13.0/src/path_tracing/mesh/types.rs +83 -0
- forge3d-1.13.0/src/path_tracing/mesh/upload.rs +172 -0
- forge3d-1.13.0/src/path_tracing/mesh/validation.rs +162 -0
- forge3d-1.13.0/src/path_tracing/mod.rs +41 -0
- forge3d-1.13.0/src/path_tracing/restir/buffers.rs +212 -0
- forge3d-1.13.0/src/path_tracing/restir/mod.rs +82 -0
- forge3d-1.13.0/src/path_tracing/restir/system.rs +132 -0
- forge3d-1.13.0/src/path_tracing/restir/types.rs +153 -0
- forge3d-1.13.0/src/path_tracing/wavefront/aov.rs +99 -0
- forge3d-1.13.0/src/path_tracing/wavefront/bindings.rs +71 -0
- forge3d-1.13.0/src/path_tracing/wavefront/control.rs +140 -0
- forge3d-1.13.0/src/path_tracing/wavefront/dispatch.rs +138 -0
- forge3d-1.13.0/src/path_tracing/wavefront/instances.rs +53 -0
- forge3d-1.13.0/src/path_tracing/wavefront/mod.rs +220 -0
- forge3d-1.13.0/src/path_tracing/wavefront/pipeline/layouts.rs +17 -0
- forge3d-1.13.0/src/path_tracing/wavefront/pipeline/restir.rs +109 -0
- forge3d-1.13.0/src/path_tracing/wavefront/pipeline/scene_layout.rs +32 -0
- forge3d-1.13.0/src/path_tracing/wavefront/pipeline/stages_primary.rs +94 -0
- forge3d-1.13.0/src/path_tracing/wavefront/pipeline/stages_secondary.rs +93 -0
- forge3d-1.13.0/src/path_tracing/wavefront/pipeline.rs +227 -0
- forge3d-1.13.0/src/path_tracing/wavefront/queues/intersect_shade.rs +74 -0
- forge3d-1.13.0/src/path_tracing/wavefront/queues/raygen_shadow.rs +71 -0
- forge3d-1.13.0/src/path_tracing/wavefront/queues/scatter_compact.rs +73 -0
- forge3d-1.13.0/src/path_tracing/wavefront/queues/types.rs +178 -0
- forge3d-1.13.0/src/path_tracing/wavefront/queues.rs +10 -0
- forge3d-1.13.0/src/path_tracing/wavefront/render.rs +135 -0
- forge3d-1.13.0/src/path_tracing/wavefront/restir.rs +167 -0
- forge3d-1.13.0/src/picking/bounds.rs +253 -0
- forge3d-1.13.0/src/picking/heightfield_ray.rs +360 -0
- forge3d-1.13.0/src/picking/highlight.rs +377 -0
- forge3d-1.13.0/src/picking/id_buffer.rs +310 -0
- forge3d-1.13.0/src/picking/lasso.rs +506 -0
- forge3d-1.13.0/src/picking/mod.rs +431 -0
- forge3d-1.13.0/src/picking/ray.rs +243 -0
- forge3d-1.13.0/src/picking/selection.rs +380 -0
- forge3d-1.13.0/src/picking/terrain_query.rs +350 -0
- forge3d-1.13.0/src/picking/tile_id.rs +329 -0
- forge3d-1.13.0/src/picking/unified.rs +486 -0
- forge3d-1.13.0/src/pipeline/hdr_offscreen/mod.rs +10 -0
- forge3d-1.13.0/src/pipeline/hdr_offscreen/pipeline.rs +487 -0
- forge3d-1.13.0/src/pipeline/hdr_offscreen/types.rs +62 -0
- forge3d-1.13.0/src/pipeline/mod.rs +27 -0
- forge3d-1.13.0/src/pipeline/normal_mapping.rs +366 -0
- forge3d-1.13.0/src/pipeline/pbr/bindings.rs +275 -0
- forge3d-1.13.0/src/pipeline/pbr/constructor.rs +188 -0
- forge3d-1.13.0/src/pipeline/pbr/ibl.rs +87 -0
- forge3d-1.13.0/src/pipeline/pbr/material.rs +270 -0
- forge3d-1.13.0/src/pipeline/pbr/rendering.rs +248 -0
- forge3d-1.13.0/src/pipeline/pbr/scene_uniforms.rs +39 -0
- forge3d-1.13.0/src/pipeline/pbr/shadow.rs +110 -0
- forge3d-1.13.0/src/pipeline/pbr/state.rs +112 -0
- forge3d-1.13.0/src/pipeline/pbr/textures.rs +156 -0
- forge3d-1.13.0/src/pipeline/pbr/tone_mapping.rs +130 -0
- forge3d-1.13.0/src/pipeline/pbr.rs +91 -0
- forge3d-1.13.0/src/pointcloud/copc.rs +364 -0
- forge3d-1.13.0/src/pointcloud/copc_decode.rs +138 -0
- forge3d-1.13.0/src/pointcloud/ept.rs +297 -0
- forge3d-1.13.0/src/pointcloud/error.rs +52 -0
- forge3d-1.13.0/src/pointcloud/mod.rs +19 -0
- forge3d-1.13.0/src/pointcloud/octree.rs +189 -0
- forge3d-1.13.0/src/pointcloud/renderer.rs +363 -0
- forge3d-1.13.0/src/pointcloud/traversal.rs +196 -0
- forge3d-1.13.0/src/py_functions/brdf/render.rs +257 -0
- forge3d-1.13.0/src/py_functions/brdf/wrappers.rs +184 -0
- forge3d-1.13.0/src/py_functions/brdf.rs +7 -0
- forge3d-1.13.0/src/py_functions/csm.rs +96 -0
- forge3d-1.13.0/src/py_functions/diagnostics.rs +277 -0
- forge3d-1.13.0/src/py_functions/frame.rs +107 -0
- forge3d-1.13.0/src/py_functions/mod.rs +17 -0
- forge3d-1.13.0/src/py_functions/path_tracing/gpu.rs +155 -0
- forge3d-1.13.0/src/py_functions/path_tracing/gpu_mesh.rs +213 -0
- forge3d-1.13.0/src/py_functions/path_tracing/hybrid.rs +154 -0
- forge3d-1.13.0/src/py_functions/path_tracing.rs +9 -0
- forge3d-1.13.0/src/py_functions/pointcloud.rs +39 -0
- forge3d-1.13.0/src/py_functions/vector/basic.rs +20 -0
- forge3d-1.13.0/src/py_functions/vector/demo.rs +140 -0
- forge3d-1.13.0/src/py_functions/vector/inputs.rs +90 -0
- forge3d-1.13.0/src/py_functions/vector/oit.rs +94 -0
- forge3d-1.13.0/src/py_functions/vector/pick.rs +205 -0
- forge3d-1.13.0/src/py_functions/vector/polygon_fill.rs +209 -0
- forge3d-1.13.0/src/py_functions/vector/readback.rs +229 -0
- forge3d-1.13.0/src/py_functions/vector/render.rs +197 -0
- forge3d-1.13.0/src/py_functions/vector.rs +20 -0
- forge3d-1.13.0/src/py_functions/viewer.rs +181 -0
- forge3d-1.13.0/src/py_module/classes.rs +45 -0
- forge3d-1.13.0/src/py_module/functions/camera.rs +60 -0
- forge3d-1.13.0/src/py_module/functions/diagnostics.rs +16 -0
- forge3d-1.13.0/src/py_module/functions/geometry.rs +109 -0
- forge3d-1.13.0/src/py_module/functions/interactive.rs +25 -0
- forge3d-1.13.0/src/py_module/functions/io_import.rs +47 -0
- forge3d-1.13.0/src/py_module/functions/license.rs +32 -0
- forge3d-1.13.0/src/py_module/functions/rendering.rs +43 -0
- forge3d-1.13.0/src/py_module/functions.rs +22 -0
- forge3d-1.13.0/src/py_module/mod.rs +5 -0
- forge3d-1.13.0/src/py_types/aov.rs +165 -0
- forge3d-1.13.0/src/py_types/frame.rs +166 -0
- forge3d-1.13.0/src/py_types/mod.rs +13 -0
- forge3d-1.13.0/src/py_types/picking.rs +287 -0
- forge3d-1.13.0/src/py_types/pointcloud.rs +97 -0
- forge3d-1.13.0/src/py_types/screen_space_gi.rs +104 -0
- forge3d-1.13.0/src/py_types/styles.rs +183 -0
- forge3d-1.13.0/src/render/colormap.rs +59 -0
- forge3d-1.13.0/src/render/instancing.rs +331 -0
- forge3d-1.13.0/src/render/material_set/core.rs +82 -0
- forge3d-1.13.0/src/render/material_set/gpu.rs +306 -0
- forge3d-1.13.0/src/render/material_set/gpu_helpers.rs +131 -0
- forge3d-1.13.0/src/render/material_set/py_api.rs +155 -0
- forge3d-1.13.0/src/render/material_set.rs +13 -0
- forge3d-1.13.0/src/render/memory_budget.rs +471 -0
- forge3d-1.13.0/src/render/mesh_instanced.rs +366 -0
- forge3d-1.13.0/src/render/mod.rs +16 -0
- forge3d-1.13.0/src/render/params/atmosphere.rs +222 -0
- forge3d-1.13.0/src/render/params/common.rs +8 -0
- forge3d-1.13.0/src/render/params/config/mod.rs +222 -0
- forge3d-1.13.0/src/render/params/config/tests/defaults.rs +53 -0
- forge3d-1.13.0/src/render/params/config/tests/enums.rs +272 -0
- forge3d-1.13.0/src/render/params/config/tests/validation/atmosphere.rs +78 -0
- forge3d-1.13.0/src/render/params/config/tests/validation/gi.rs +37 -0
- forge3d-1.13.0/src/render/params/config/tests/validation/lights.rs +137 -0
- forge3d-1.13.0/src/render/params/config/tests/validation/mod.rs +6 -0
- forge3d-1.13.0/src/render/params/config/tests/validation/shadows.rs +99 -0
- forge3d-1.13.0/src/render/params/config/tests.rs +7 -0
- forge3d-1.13.0/src/render/params/gi.rs +167 -0
- forge3d-1.13.0/src/render/params/lights.rs +127 -0
- forge3d-1.13.0/src/render/params/mod.rs +17 -0
- forge3d-1.13.0/src/render/params/shading.rs +110 -0
- forge3d-1.13.0/src/render/params/shadows.rs +193 -0
- forge3d-1.13.0/src/render/pbr_pass.rs +118 -0
- forge3d-1.13.0/src/renderer/readback.rs +120 -0
- forge3d-1.13.0/src/renderer.rs +52 -0
- forge3d-1.13.0/src/scene/core/constructor.rs +237 -0
- forge3d-1.13.0/src/scene/core/height.rs +80 -0
- forge3d-1.13.0/src/scene/core/helpers.rs +129 -0
- forge3d-1.13.0/src/scene/core.rs +12 -0
- forge3d-1.13.0/src/scene/mod.rs +165 -0
- forge3d-1.13.0/src/scene/postfx_cpu.rs +198 -0
- forge3d-1.13.0/src/scene/private_impl/clouds.rs +44 -0
- forge3d-1.13.0/src/scene/private_impl/effects.rs +191 -0
- forge3d-1.13.0/src/scene/private_impl/msaa.rs +117 -0
- forge3d-1.13.0/src/scene/private_impl.rs +9 -0
- forge3d-1.13.0/src/scene/py_api/base.rs +78 -0
- forge3d-1.13.0/src/scene/py_api/bloom.rs +168 -0
- forge3d-1.13.0/src/scene/py_api/cloud_shadows.rs +295 -0
- forge3d-1.13.0/src/scene/py_api/clouds.rs +174 -0
- forge3d-1.13.0/src/scene/py_api/dof.rs +196 -0
- forge3d-1.13.0/src/scene/py_api/ground_plane.rs +197 -0
- forge3d-1.13.0/src/scene/py_api/ibl.rs +250 -0
- forge3d-1.13.0/src/scene/py_api/instanced_mesh.rs +193 -0
- forge3d-1.13.0/src/scene/py_api/native_overlays.rs +170 -0
- forge3d-1.13.0/src/scene/py_api/native_text.rs +230 -0
- forge3d-1.13.0/src/scene/py_api/oit.rs +285 -0
- forge3d-1.13.0/src/scene/py_api/point_spot_lights_core.rs +169 -0
- forge3d-1.13.0/src/scene/py_api/point_spot_lights_query.rs +39 -0
- forge3d-1.13.0/src/scene/py_api/point_spot_lights_update.rs +224 -0
- forge3d-1.13.0/src/scene/py_api/raster_overlay.rs +225 -0
- forge3d-1.13.0/src/scene/py_api/rect_area_lights.rs +213 -0
- forge3d-1.13.0/src/scene/py_api/reflections.rs +187 -0
- forge3d-1.13.0/src/scene/py_api/shoreline.rs +104 -0
- forge3d-1.13.0/src/scene/py_api/soft_light.rs +191 -0
- forge3d-1.13.0/src/scene/py_api/ssgi.rs +57 -0
- forge3d-1.13.0/src/scene/py_api/ssr.rs +58 -0
- forge3d-1.13.0/src/scene/py_api/stats.rs +9 -0
- forge3d-1.13.0/src/scene/py_api/text_mesh.rs +237 -0
- forge3d-1.13.0/src/scene/py_api/water_surface.rs +226 -0
- forge3d-1.13.0/src/scene/py_api.rs +26 -0
- forge3d-1.13.0/src/scene/render_paths/helpers.rs +51 -0
- forge3d-1.13.0/src/scene/render_paths/png.rs +250 -0
- forge3d-1.13.0/src/scene/render_paths/rgba.rs +250 -0
- forge3d-1.13.0/src/scene/render_paths/shared.rs +72 -0
- forge3d-1.13.0/src/scene/render_paths.rs +10 -0
- forge3d-1.13.0/src/scene/ssao/constructor.rs +52 -0
- forge3d-1.13.0/src/scene/ssao/helpers.rs +45 -0
- forge3d-1.13.0/src/scene/ssao/runtime.rs +199 -0
- forge3d-1.13.0/src/scene/ssao/setup.rs +316 -0
- forge3d-1.13.0/src/scene/ssao.rs +49 -0
- forge3d-1.13.0/src/scene/stats.rs +104 -0
- forge3d-1.13.0/src/scene/texture_helpers.rs +134 -0
- forge3d-1.13.0/src/scene/types.rs +48 -0
- forge3d-1.13.0/src/sdf/hybrid.rs +459 -0
- forge3d-1.13.0/src/sdf/hybrid_types.rs +160 -0
- forge3d-1.13.0/src/sdf/mod.rs +466 -0
- forge3d-1.13.0/src/sdf/operations.rs +416 -0
- forge3d-1.13.0/src/sdf/primitives.rs +412 -0
- forge3d-1.13.0/src/sdf/py.rs +332 -0
- forge3d-1.13.0/src/shaders/accumulation_blend.wgsl +58 -0
- forge3d-1.13.0/src/shaders/ao/bilateral_separable.wgsl +61 -0
- forge3d-1.13.0/src/shaders/ao/gtao.wgsl +132 -0
- forge3d-1.13.0/src/shaders/ao/resolve_ao.wgsl +36 -0
- forge3d-1.13.0/src/shaders/ao/ssao.wgsl +105 -0
- forge3d-1.13.0/src/shaders/ao_from_aovs.wgsl +83 -0
- forge3d-1.13.0/src/shaders/bloom_blur_h.wgsl +65 -0
- forge3d-1.13.0/src/shaders/bloom_blur_v.wgsl +65 -0
- forge3d-1.13.0/src/shaders/bloom_brightpass.wgsl +61 -0
- forge3d-1.13.0/src/shaders/bloom_composite.wgsl +39 -0
- forge3d-1.13.0/src/shaders/brdf/ashikhmin_shirley.wgsl +34 -0
- forge3d-1.13.0/src/shaders/brdf/common.wgsl +105 -0
- forge3d-1.13.0/src/shaders/brdf/cook_torrance.wgsl +32 -0
- forge3d-1.13.0/src/shaders/brdf/disney_principled.wgsl +28 -0
- forge3d-1.13.0/src/shaders/brdf/dispatch.wgsl +68 -0
- forge3d-1.13.0/src/shaders/brdf/lambert.wgsl +8 -0
- forge3d-1.13.0/src/shaders/brdf/minnaert.wgsl +27 -0
- forge3d-1.13.0/src/shaders/brdf/oren_nayar.wgsl +26 -0
- forge3d-1.13.0/src/shaders/brdf/phong.wgsl +14 -0
- forge3d-1.13.0/src/shaders/brdf/toon.wgsl +26 -0
- forge3d-1.13.0/src/shaders/brdf/ward.wgsl +32 -0
- forge3d-1.13.0/src/shaders/brdf_tile.wgsl +984 -0
- forge3d-1.13.0/src/shaders/bvh_ray_query.wgsl +142 -0
- forge3d-1.13.0/src/shaders/bvh_refit.wgsl +173 -0
- forge3d-1.13.0/src/shaders/clipmap_lod_select.wgsl +177 -0
- forge3d-1.13.0/src/shaders/clipmap_terrain.wgsl +158 -0
- forge3d-1.13.0/src/shaders/cloud_shadows.wgsl +224 -0
- forge3d-1.13.0/src/shaders/clouds.wgsl +148 -0
- forge3d-1.13.0/src/shaders/csm.wgsl +359 -0
- forge3d-1.13.0/src/shaders/culling_compute.wgsl +161 -0
- forge3d-1.13.0/src/shaders/denoise_atrous.wgsl +72 -0
- forge3d-1.13.0/src/shaders/dof.wgsl +429 -0
- forge3d-1.13.0/src/shaders/extrusion.wgsl +151 -0
- forge3d-1.13.0/src/shaders/filters/bilateral_separable.wgsl +126 -0
- forge3d-1.13.0/src/shaders/filters/edge_aware_upsample.wgsl +90 -0
- forge3d-1.13.0/src/shaders/fog_upsample.wgsl +89 -0
- forge3d-1.13.0/src/shaders/gbuffer/common.wgsl +23 -0
- forge3d-1.13.0/src/shaders/gi/composite.wgsl +312 -0
- forge3d-1.13.0/src/shaders/gi/debug.wgsl +38 -0
- forge3d-1.13.0/src/shaders/ground_plane.wgsl +205 -0
- forge3d-1.13.0/src/shaders/heightfield_ao.wgsl +121 -0
- forge3d-1.13.0/src/shaders/heightfield_sun_vis.wgsl +151 -0
- forge3d-1.13.0/src/shaders/hybrid_kernel.wgsl +283 -0
- forge3d-1.13.0/src/shaders/hybrid_traversal.wgsl +225 -0
- forge3d-1.13.0/src/shaders/hzb_build.wgsl +67 -0
- forge3d-1.13.0/src/shaders/ibl.wgsl +396 -0
- forge3d-1.13.0/src/shaders/ibl_brdf.wgsl +102 -0
- forge3d-1.13.0/src/shaders/ibl_equirect.wgsl +79 -0
- forge3d-1.13.0/src/shaders/ibl_prefilter.wgsl +196 -0
- forge3d-1.13.0/src/shaders/lbvh_link.wgsl +182 -0
- forge3d-1.13.0/src/shaders/lbvh_morton.wgsl +66 -0
- forge3d-1.13.0/src/shaders/lens_effects.wgsl +116 -0
- forge3d-1.13.0/src/shaders/lighting.wgsl +386 -0
- forge3d-1.13.0/src/shaders/lighting_ibl.wgsl +83 -0
- forge3d-1.13.0/src/shaders/lights.wgsl +268 -0
- forge3d-1.13.0/src/shaders/line_aa.wgsl +213 -0
- forge3d-1.13.0/src/shaders/mesh_basic.wgsl +52 -0
- forge3d-1.13.0/src/shaders/mesh_instanced.wgsl +49 -0
- forge3d-1.13.0/src/shaders/moment_generation.wgsl +94 -0
- forge3d-1.13.0/src/shaders/normal_mapping_vertex.wgsl +151 -0
- forge3d-1.13.0/src/shaders/oit_compose.wgsl +79 -0
- forge3d-1.13.0/src/shaders/oit_dual_source.wgsl +179 -0
- forge3d-1.13.0/src/shaders/oit_dual_source_compose.wgsl +236 -0
- forge3d-1.13.0/src/shaders/overlays.wgsl +182 -0
- forge3d-1.13.0/src/shaders/pbr.wgsl +428 -0
- forge3d-1.13.0/src/shaders/planar_reflections.wgsl +63 -0
- forge3d-1.13.0/src/shaders/point_instanced.wgsl +231 -0
- forge3d-1.13.0/src/shaders/point_spot_lights.wgsl +400 -0
- forge3d-1.13.0/src/shaders/polygon_fill.wgsl +48 -0
- forge3d-1.13.0/src/shaders/postprocess_tonemap.wgsl +193 -0
- forge3d-1.13.0/src/shaders/pt_compact.wgsl +176 -0
- forge3d-1.13.0/src/shaders/pt_intersect.wgsl +559 -0
- forge3d-1.13.0/src/shaders/pt_kernel.wgsl +345 -0
- forge3d-1.13.0/src/shaders/pt_raygen.wgsl +222 -0
- forge3d-1.13.0/src/shaders/pt_restir_init.wgsl +196 -0
- forge3d-1.13.0/src/shaders/pt_restir_spatial.wgsl +224 -0
- forge3d-1.13.0/src/shaders/pt_restir_temporal.wgsl +109 -0
- forge3d-1.13.0/src/shaders/pt_scatter.wgsl +125 -0
- forge3d-1.13.0/src/shaders/pt_shade.wgsl +848 -0
- forge3d-1.13.0/src/shaders/pt_shadow.wgsl +294 -0
- forge3d-1.13.0/src/shaders/radix_sort_pairs.wgsl +146 -0
- forge3d-1.13.0/src/shaders/restir_spatial.wgsl +213 -0
- forge3d-1.13.0/src/shaders/restir_temporal.wgsl +162 -0
- forge3d-1.13.0/src/shaders/sdf_operations.wgsl +247 -0
- forge3d-1.13.0/src/shaders/sdf_primitives.wgsl +209 -0
- forge3d-1.13.0/src/shaders/shadow_blur.wgsl +94 -0
- forge3d-1.13.0/src/shaders/shadows.wgsl +816 -0
- forge3d-1.13.0/src/shaders/sky.wgsl +347 -0
- forge3d-1.13.0/src/shaders/soft_light_radius.wgsl +254 -0
- forge3d-1.13.0/src/shaders/ssao/common.wgsl +161 -0
- forge3d-1.13.0/src/shaders/ssao/composite.wgsl +26 -0
- forge3d-1.13.0/src/shaders/ssao/gtao.wgsl +25 -0
- forge3d-1.13.0/src/shaders/ssao/ssao.wgsl +25 -0
- forge3d-1.13.0/src/shaders/ssao.wgsl +309 -0
- forge3d-1.13.0/src/shaders/ssgi/composite.wgsl +31 -0
- forge3d-1.13.0/src/shaders/ssgi/resolve_temporal.wgsl +96 -0
- forge3d-1.13.0/src/shaders/ssgi/shade.wgsl +101 -0
- forge3d-1.13.0/src/shaders/ssgi/trace.wgsl +187 -0
- forge3d-1.13.0/src/shaders/ssr/composite.wgsl +68 -0
- forge3d-1.13.0/src/shaders/ssr/fallback_env.wgsl +123 -0
- forge3d-1.13.0/src/shaders/ssr/shade.wgsl +146 -0
- forge3d-1.13.0/src/shaders/ssr/temporal.wgsl +20 -0
- forge3d-1.13.0/src/shaders/ssr/trace.wgsl +274 -0
- forge3d-1.13.0/src/shaders/taa.wgsl +182 -0
- forge3d-1.13.0/src/shaders/temporal/resolve_ao.wgsl +80 -0
- forge3d-1.13.0/src/shaders/terrain.wgsl +359 -0
- forge3d-1.13.0/src/shaders/terrain_blit.wgsl +34 -0
- forge3d-1.13.0/src/shaders/terrain_minimal.wgsl +114 -0
- forge3d-1.13.0/src/shaders/terrain_pbr_pom.wgsl +3799 -0
- forge3d-1.13.0/src/shaders/terrain_shadow_depth.wgsl +132 -0
- forge3d-1.13.0/src/shaders/terrain_velocity.wgsl +69 -0
- forge3d-1.13.0/src/shaders/text_overlay.wgsl +64 -0
- forge3d-1.13.0/src/shaders/tone_map.wgsl +80 -0
- forge3d-1.13.0/src/shaders/tonemap.wgsl +189 -0
- forge3d-1.13.0/src/shaders/velocity.wgsl +85 -0
- forge3d-1.13.0/src/shaders/viewer_volumetrics.wgsl +530 -0
- forge3d-1.13.0/src/shaders/virtual_texture_feedback.wgsl +58 -0
- forge3d-1.13.0/src/shaders/volumetric.wgsl +462 -0
- forge3d-1.13.0/src/shaders/water_surface.wgsl +329 -0
- forge3d-1.13.0/src/shadows/blur_pass.rs +283 -0
- forge3d-1.13.0/src/shadows/cascade_math.rs +157 -0
- forge3d-1.13.0/src/shadows/csm_depth_control.rs +92 -0
- forge3d-1.13.0/src/shadows/csm_renderer.rs +376 -0
- forge3d-1.13.0/src/shadows/csm_types.rs +211 -0
- forge3d-1.13.0/src/shadows/manager/budget.rs +93 -0
- forge3d-1.13.0/src/shadows/manager/mod.rs +8 -0
- forge3d-1.13.0/src/shadows/manager/system.rs +435 -0
- forge3d-1.13.0/src/shadows/manager/types.rs +35 -0
- forge3d-1.13.0/src/shadows/mod.rs +26 -0
- forge3d-1.13.0/src/shadows/moment_pass.rs +237 -0
- forge3d-1.13.0/src/shadows/state.rs +315 -0
- forge3d-1.13.0/src/style/converters.rs +182 -0
- forge3d-1.13.0/src/style/expressions/comparison.rs +52 -0
- forge3d-1.13.0/src/style/expressions/control.rs +201 -0
- forge3d-1.13.0/src/style/expressions/dispatch.rs +94 -0
- forge3d-1.13.0/src/style/expressions/logic.rs +26 -0
- forge3d-1.13.0/src/style/expressions/math.rs +113 -0
- forge3d-1.13.0/src/style/expressions/mod.rs +52 -0
- forge3d-1.13.0/src/style/expressions/property.rs +27 -0
- forge3d-1.13.0/src/style/expressions/strings.rs +120 -0
- forge3d-1.13.0/src/style/expressions/tests.rs +146 -0
- forge3d-1.13.0/src/style/mod.rs +24 -0
- forge3d-1.13.0/src/style/parser.rs +193 -0
- forge3d-1.13.0/src/style/sprite.rs +365 -0
- forge3d-1.13.0/src/style/types.rs +574 -0
- forge3d-1.13.0/src/terrain/accumulation.rs +309 -0
- forge3d-1.13.0/src/terrain/analysis.rs +450 -0
- forge3d-1.13.0/src/terrain/bloom_processor.rs +631 -0
- forge3d-1.13.0/src/terrain/camera.rs +47 -0
- forge3d-1.13.0/src/terrain/clipmap/geomorph.rs +299 -0
- forge3d-1.13.0/src/terrain/clipmap/gpu_lod.rs +544 -0
- forge3d-1.13.0/src/terrain/clipmap/level.rs +317 -0
- forge3d-1.13.0/src/terrain/clipmap/mod.rs +163 -0
- forge3d-1.13.0/src/terrain/clipmap/py_bindings.rs +199 -0
- forge3d-1.13.0/src/terrain/clipmap/ring.rs +317 -0
- forge3d-1.13.0/src/terrain/clipmap/streaming.rs +161 -0
- forge3d-1.13.0/src/terrain/clipmap/vertex.rs +133 -0
- forge3d-1.13.0/src/terrain/cog/cache.rs +177 -0
- forge3d-1.13.0/src/terrain/cog/cog_reader.rs +461 -0
- forge3d-1.13.0/src/terrain/cog/error.rs +47 -0
- forge3d-1.13.0/src/terrain/cog/ifd_parser.rs +373 -0
- forge3d-1.13.0/src/terrain/cog/mod.rs +19 -0
- forge3d-1.13.0/src/terrain/cog/py_bindings.rs +177 -0
- forge3d-1.13.0/src/terrain/cog/range_reader.rs +213 -0
- forge3d-1.13.0/src/terrain/colormap_lut.rs +301 -0
- forge3d-1.13.0/src/terrain/globals.rs +64 -0
- forge3d-1.13.0/src/terrain/helpers.rs +268 -0
- forge3d-1.13.0/src/terrain/lights.rs +85 -0
- forge3d-1.13.0/src/terrain/lod.rs +319 -0
- forge3d-1.13.0/src/terrain/mesh.rs +260 -0
- forge3d-1.13.0/src/terrain/mod.rs +140 -0
- forge3d-1.13.0/src/terrain/page_table/common.rs +22 -0
- forge3d-1.13.0/src/terrain/page_table/gpu.rs +65 -0
- forge3d-1.13.0/src/terrain/page_table/height_loader.rs +274 -0
- forge3d-1.13.0/src/terrain/page_table/mod.rs +20 -0
- forge3d-1.13.0/src/terrain/page_table/overlay_loader.rs +280 -0
- forge3d-1.13.0/src/terrain/page_table/queue.rs +27 -0
- forge3d-1.13.0/src/terrain/page_table/readers.rs +196 -0
- forge3d-1.13.0/src/terrain/pipeline/bind_groups.rs +182 -0
- forge3d-1.13.0/src/terrain/pipeline/creation.rs +341 -0
- forge3d-1.13.0/src/terrain/pipeline/mod.rs +130 -0
- forge3d-1.13.0/src/terrain/render_params/core.rs +82 -0
- forge3d-1.13.0/src/terrain/render_params/decode_atmosphere.rs +116 -0
- forge3d-1.13.0/src/terrain/render_params/decode_core.rs +239 -0
- forge3d-1.13.0/src/terrain/render_params/decode_effects.rs +235 -0
- forge3d-1.13.0/src/terrain/render_params/decode_lighting.rs +175 -0
- forge3d-1.13.0/src/terrain/render_params/decode_materials.rs +178 -0
- forge3d-1.13.0/src/terrain/render_params/decode_postfx.rs +295 -0
- forge3d-1.13.0/src/terrain/render_params/native_effects.rs +149 -0
- forge3d-1.13.0/src/terrain/render_params/native_lighting.rs +109 -0
- forge3d-1.13.0/src/terrain/render_params/native_material.rs +80 -0
- forge3d-1.13.0/src/terrain/render_params/native_overlays.rs +42 -0
- forge3d-1.13.0/src/terrain/render_params/native_postfx/atmosphere.rs +75 -0
- forge3d-1.13.0/src/terrain/render_params/native_postfx/camera.rs +143 -0
- forge3d-1.13.0/src/terrain/render_params/native_postfx/quality.rs +74 -0
- forge3d-1.13.0/src/terrain/render_params/native_postfx/tonemap.rs +42 -0
- forge3d-1.13.0/src/terrain/render_params/native_postfx.rs +12 -0
- forge3d-1.13.0/src/terrain/render_params/parse.rs +118 -0
- forge3d-1.13.0/src/terrain/render_params/private_impl.rs +97 -0
- forge3d-1.13.0/src/terrain/render_params/py_api.rs +215 -0
- forge3d-1.13.0/src/terrain/render_params.rs +45 -0
- forge3d-1.13.0/src/terrain/renderer/aov.rs +127 -0
- forge3d-1.13.0/src/terrain/renderer/bind_groups/base_layouts.rs +264 -0
- forge3d-1.13.0/src/terrain/renderer/bind_groups/layouts.rs +170 -0
- forge3d-1.13.0/src/terrain/renderer/bind_groups/terrain_pass.rs +234 -0
- forge3d-1.13.0/src/terrain/renderer/bind_groups.rs +7 -0
- forge3d-1.13.0/src/terrain/renderer/constructor.rs +248 -0
- forge3d-1.13.0/src/terrain/renderer/core.rs +144 -0
- forge3d-1.13.0/src/terrain/renderer/draw.rs +567 -0
- forge3d-1.13.0/src/terrain/renderer/height_ao.rs +520 -0
- forge3d-1.13.0/src/terrain/renderer/msaa.rs +235 -0
- forge3d-1.13.0/src/terrain/renderer/pipeline_cache.rs +254 -0
- forge3d-1.13.0/src/terrain/renderer/py_api.rs +126 -0
- forge3d-1.13.0/src/terrain/renderer/resources.rs +613 -0
- forge3d-1.13.0/src/terrain/renderer/shadows/main_bind_group.rs +141 -0
- forge3d-1.13.0/src/terrain/renderer/shadows/render.rs +192 -0
- forge3d-1.13.0/src/terrain/renderer/shadows/resources.rs +254 -0
- forge3d-1.13.0/src/terrain/renderer/shadows/setup.rs +222 -0
- forge3d-1.13.0/src/terrain/renderer/shadows.rs +6 -0
- forge3d-1.13.0/src/terrain/renderer/uniforms.rs +100 -0
- forge3d-1.13.0/src/terrain/renderer/upload.rs +466 -0
- forge3d-1.13.0/src/terrain/renderer/viewer.rs +341 -0
- forge3d-1.13.0/src/terrain/renderer/water_reflection.rs +470 -0
- forge3d-1.13.0/src/terrain/renderer.rs +61 -0
- forge3d-1.13.0/src/terrain/scene.rs +7 -0
- forge3d-1.13.0/src/terrain/spike/analysis.rs +303 -0
- forge3d-1.13.0/src/terrain/spike/async_loader.rs +218 -0
- forge3d-1.13.0/src/terrain/spike/constructor.rs +282 -0
- forge3d-1.13.0/src/terrain/spike/height_mosaic.rs +276 -0
- forge3d-1.13.0/src/terrain/spike/overlay_stream.rs +166 -0
- forge3d-1.13.0/src/terrain/spike/render.rs +172 -0
- forge3d-1.13.0/src/terrain/spike/terrain_ops.rs +172 -0
- forge3d-1.13.0/src/terrain/spike/tiling.rs +169 -0
- forge3d-1.13.0/src/terrain/spike.rs +78 -0
- forge3d-1.13.0/src/terrain/stats.rs +66 -0
- forge3d-1.13.0/src/terrain/stream/color.rs +188 -0
- forge3d-1.13.0/src/terrain/stream/config.rs +17 -0
- forge3d-1.13.0/src/terrain/stream/height.rs +266 -0
- forge3d-1.13.0/src/terrain/stream/mod.rs +13 -0
- forge3d-1.13.0/src/terrain/stream/util.rs +63 -0
- forge3d-1.13.0/src/terrain/tiling.rs +497 -0
- forge3d-1.13.0/src/terrain/uniforms.rs +121 -0
- forge3d-1.13.0/src/tiles3d/b3dm.rs +527 -0
- forge3d-1.13.0/src/tiles3d/bounds.rs +143 -0
- forge3d-1.13.0/src/tiles3d/error.rs +64 -0
- forge3d-1.13.0/src/tiles3d/mod.rs +26 -0
- forge3d-1.13.0/src/tiles3d/pnts.rs +457 -0
- forge3d-1.13.0/src/tiles3d/renderer.rs +414 -0
- forge3d-1.13.0/src/tiles3d/sse.rs +167 -0
- forge3d-1.13.0/src/tiles3d/tile.rs +139 -0
- forge3d-1.13.0/src/tiles3d/tileset.rs +191 -0
- forge3d-1.13.0/src/tiles3d/traversal.rs +297 -0
- forge3d-1.13.0/src/util/debug_pattern.rs +128 -0
- forge3d-1.13.0/src/util/exr_write.rs +295 -0
- forge3d-1.13.0/src/util/image_write.rs +78 -0
- forge3d-1.13.0/src/util/memory_budget.rs +302 -0
- forge3d-1.13.0/src/util/mod.rs +10 -0
- forge3d-1.13.0/src/uv/mod.rs +1 -0
- forge3d-1.13.0/src/uv/unwrap.rs +100 -0
- forge3d-1.13.0/src/vector/api/core.rs +315 -0
- forge3d-1.13.0/src/vector/api/extrusion.rs +208 -0
- forge3d-1.13.0/src/vector/api/py.rs +311 -0
- forge3d-1.13.0/src/vector/api/tests.rs +88 -0
- forge3d-1.13.0/src/vector/api.rs +22 -0
- forge3d-1.13.0/src/vector/batch/aabb.rs +107 -0
- forge3d-1.13.0/src/vector/batch/frustum.rs +77 -0
- forge3d-1.13.0/src/vector/batch/mod.rs +295 -0
- forge3d-1.13.0/src/vector/batch/stats.rs +40 -0
- forge3d-1.13.0/src/vector/data.rs +371 -0
- forge3d-1.13.0/src/vector/extrusion.rs +357 -0
- forge3d-1.13.0/src/vector/gpu_extrusion/buffers.rs +108 -0
- forge3d-1.13.0/src/vector/gpu_extrusion/mod.rs +9 -0
- forge3d-1.13.0/src/vector/gpu_extrusion/pipeline.rs +323 -0
- forge3d-1.13.0/src/vector/gpu_extrusion/tests.rs +117 -0
- forge3d-1.13.0/src/vector/gpu_extrusion/types.rs +34 -0
- forge3d-1.13.0/src/vector/graph.rs +481 -0
- forge3d-1.13.0/src/vector/indirect.rs +619 -0
- forge3d-1.13.0/src/vector/layer.rs +149 -0
- forge3d-1.13.0/src/vector/line.rs +310 -0
- forge3d-1.13.0/src/vector/line_helpers.rs +142 -0
- forge3d-1.13.0/src/vector/line_pipeline.rs +310 -0
- forge3d-1.13.0/src/vector/line_types.rs +69 -0
- forge3d-1.13.0/src/vector/mod.rs +41 -0
- forge3d-1.13.0/src/vector/oit/blend.rs +106 -0
- forge3d-1.13.0/src/vector/oit/mod.rs +212 -0
- forge3d-1.13.0/src/vector/oit/pipeline.rs +176 -0
- forge3d-1.13.0/src/vector/point/atlas.rs +101 -0
- forge3d-1.13.0/src/vector/point/instance.rs +190 -0
- forge3d-1.13.0/src/vector/point/mod.rs +8 -0
- forge3d-1.13.0/src/vector/point/pipeline.rs +343 -0
- forge3d-1.13.0/src/vector/point/renderer/config.rs +120 -0
- forge3d-1.13.0/src/vector/point/renderer/draw.rs +95 -0
- forge3d-1.13.0/src/vector/point/renderer/init.rs +162 -0
- forge3d-1.13.0/src/vector/point/renderer/mod.rs +37 -0
- forge3d-1.13.0/src/vector/point/renderer/pipelines.rs +199 -0
- forge3d-1.13.0/src/vector/point/renderer/tests.rs +107 -0
- forge3d-1.13.0/src/vector/point/renderer/upload.rs +107 -0
- forge3d-1.13.0/src/vector/point/types.rs +193 -0
- forge3d-1.13.0/src/vector/polygon.rs +501 -0
- forge3d-1.13.0/src/viewer/camera_controller.rs +274 -0
- forge3d-1.13.0/src/viewer/cmd/capture_handlers.rs +53 -0
- forge3d-1.13.0/src/viewer/cmd/effects_command.rs +86 -0
- forge3d-1.13.0/src/viewer/cmd/gi_command.rs +525 -0
- forge3d-1.13.0/src/viewer/cmd/gi_handlers.rs +334 -0
- forge3d-1.13.0/src/viewer/cmd/handler.rs +36 -0
- forge3d-1.13.0/src/viewer/cmd/ipc_command.rs +194 -0
- forge3d-1.13.0/src/viewer/cmd/labels_command.rs +266 -0
- forge3d-1.13.0/src/viewer/cmd/legacy_handler.rs +14 -0
- forge3d-1.13.0/src/viewer/cmd/mod.rs +25 -0
- forge3d-1.13.0/src/viewer/cmd/pointcloud_command.rs +102 -0
- forge3d-1.13.0/src/viewer/cmd/scene_command.rs +352 -0
- forge3d-1.13.0/src/viewer/cmd/scene_handlers.rs +62 -0
- forge3d-1.13.0/src/viewer/cmd/ssao_handlers.rs +104 -0
- forge3d-1.13.0/src/viewer/cmd/ssgi_handlers.rs +95 -0
- forge3d-1.13.0/src/viewer/cmd/terrain_command.rs +296 -0
- forge3d-1.13.0/src/viewer/cmd/vector_overlay_command.rs +210 -0
- forge3d-1.13.0/src/viewer/event_loop/cmd_parse_init.rs +305 -0
- forge3d-1.13.0/src/viewer/event_loop/ipc_state.rs +124 -0
- forge3d-1.13.0/src/viewer/event_loop/mod.rs +17 -0
- forge3d-1.13.0/src/viewer/event_loop/runner.rs +387 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/helpers.rs +89 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/environment/atmosphere.rs +175 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/environment/ibl.rs +40 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/environment/lighting.rs +68 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/environment/misc.rs +36 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/environment/mod.rs +14 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/environment/parse.rs +11 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/gi/core.rs +106 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/gi/mod.rs +13 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/gi/ssao.rs +116 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/gi/ssgi.rs +80 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/gi/ssr.rs +25 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser/render.rs +117 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/parser.rs +18 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/spawn.rs +32 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader/tests.rs +55 -0
- forge3d-1.13.0/src/viewer/event_loop/stdin_reader.rs +8 -0
- forge3d-1.13.0/src/viewer/hud.rs +219 -0
- forge3d-1.13.0/src/viewer/image_analysis.rs +243 -0
- forge3d-1.13.0/src/viewer/init/composite_init.rs +154 -0
- forge3d-1.13.0/src/viewer/init/device_init.rs +96 -0
- forge3d-1.13.0/src/viewer/init/fallback_init.rs +53 -0
- forge3d-1.13.0/src/viewer/init/fog_init.rs +511 -0
- forge3d-1.13.0/src/viewer/init/gbuffer_init.rs +282 -0
- forge3d-1.13.0/src/viewer/init/gi_baseline_init.rs +293 -0
- forge3d-1.13.0/src/viewer/init/lit_init.rs +280 -0
- forge3d-1.13.0/src/viewer/init/mod.rs +22 -0
- forge3d-1.13.0/src/viewer/init/sky_init.rs +134 -0
- forge3d-1.13.0/src/viewer/init/viewer_new.rs +470 -0
- forge3d-1.13.0/src/viewer/input/keyboard.rs +79 -0
- forge3d-1.13.0/src/viewer/input/mod.rs +53 -0
- forge3d-1.13.0/src/viewer/input/mouse.rs +81 -0
- forge3d-1.13.0/src/viewer/input/viewer_input.rs +330 -0
- forge3d-1.13.0/src/viewer/ipc/mod.rs +84 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/defaults.rs +71 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/mod.rs +12 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/parse.rs +5 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/payloads.rs +230 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/request.rs +116 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/response.rs +86 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/translate/core.rs +73 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/translate/labels.rs +148 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/translate/mod.rs +29 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/translate/overlays.rs +105 -0
- forge3d-1.13.0/src/viewer/ipc/protocol/translate/terrain.rs +246 -0
- forge3d-1.13.0/src/viewer/ipc/server.rs +238 -0
- forge3d-1.13.0/src/viewer/mod.rs +230 -0
- forge3d-1.13.0/src/viewer/p5/ao.rs +348 -0
- forge3d-1.13.0/src/viewer/p5/cornell.rs +196 -0
- forge3d-1.13.0/src/viewer/p5/gbuffer_dump.rs +402 -0
- forge3d-1.13.0/src/viewer/p5/gi_ablation.rs +247 -0
- forge3d-1.13.0/src/viewer/p5/gi_verification.rs +285 -0
- forge3d-1.13.0/src/viewer/p5/mod.rs +15 -0
- forge3d-1.13.0/src/viewer/p5/ssgi_cornell.rs +321 -0
- forge3d-1.13.0/src/viewer/p5/ssgi_temporal.rs +154 -0
- forge3d-1.13.0/src/viewer/p5/ssr_glossy.rs +322 -0
- forge3d-1.13.0/src/viewer/p5/ssr_helpers.rs +58 -0
- forge3d-1.13.0/src/viewer/p5/ssr_scene_impl.rs +203 -0
- forge3d-1.13.0/src/viewer/p5/ssr_thickness.rs +132 -0
- forge3d-1.13.0/src/viewer/pointcloud/load.rs +157 -0
- forge3d-1.13.0/src/viewer/pointcloud/pointcloud.wgsl +127 -0
- forge3d-1.13.0/src/viewer/pointcloud/shader.rs +1 -0
- forge3d-1.13.0/src/viewer/pointcloud/state.rs +305 -0
- forge3d-1.13.0/src/viewer/pointcloud/types.rs +44 -0
- forge3d-1.13.0/src/viewer/pointcloud.rs +9 -0
- forge3d-1.13.0/src/viewer/render/bind_groups.rs +50 -0
- forge3d-1.13.0/src/viewer/render/fog.rs +84 -0
- forge3d-1.13.0/src/viewer/render/lighting.rs +38 -0
- forge3d-1.13.0/src/viewer/render/main_loop/finalize.rs +116 -0
- forge3d-1.13.0/src/viewer/render/main_loop/frame_setup.rs +241 -0
- forge3d-1.13.0/src/viewer/render/main_loop/geometry/fog.rs +221 -0
- forge3d-1.13.0/src/viewer/render/main_loop/geometry/fog_dispatch.rs +229 -0
- forge3d-1.13.0/src/viewer/render/main_loop/geometry/mod.rs +100 -0
- forge3d-1.13.0/src/viewer/render/main_loop/geometry/pass.rs +213 -0
- forge3d-1.13.0/src/viewer/render/main_loop/postfx.rs +342 -0
- forge3d-1.13.0/src/viewer/render/main_loop/secondary.rs +396 -0
- forge3d-1.13.0/src/viewer/render/main_loop.rs +42 -0
- forge3d-1.13.0/src/viewer/render/mod.rs +13 -0
- forge3d-1.13.0/src/viewer/render/sky.rs +120 -0
- forge3d-1.13.0/src/viewer/render/snapshot.rs +53 -0
- forge3d-1.13.0/src/viewer/render/textures.rs +98 -0
- forge3d-1.13.0/src/viewer/state/fog_state.rs +85 -0
- forge3d-1.13.0/src/viewer/state/gi_state.rs +58 -0
- forge3d-1.13.0/src/viewer/state/gpu_state.rs +22 -0
- forge3d-1.13.0/src/viewer/state/labels.rs +80 -0
- forge3d-1.13.0/src/viewer/state/mesh_upload.rs +93 -0
- forge3d-1.13.0/src/viewer/state/mod.rs +16 -0
- forge3d-1.13.0/src/viewer/state/resize.rs +270 -0
- forge3d-1.13.0/src/viewer/state/scene_state.rs +71 -0
- forge3d-1.13.0/src/viewer/state/sky_state.rs +59 -0
- forge3d-1.13.0/src/viewer/state/viewer_helpers/core.rs +51 -0
- forge3d-1.13.0/src/viewer/state/viewer_helpers/gi/geometry.rs +194 -0
- forge3d-1.13.0/src/viewer/state/viewer_helpers/gi/reexecute.rs +246 -0
- forge3d-1.13.0/src/viewer/state/viewer_helpers/gi.rs +2 -0
- forge3d-1.13.0/src/viewer/state/viewer_helpers/ibl.rs +71 -0
- forge3d-1.13.0/src/viewer/state/viewer_helpers/readback.rs +117 -0
- forge3d-1.13.0/src/viewer/state/viewer_helpers.rs +8 -0
- forge3d-1.13.0/src/viewer/terrain/denoise.rs +259 -0
- forge3d-1.13.0/src/viewer/terrain/dof/dof.wgsl +202 -0
- forge3d-1.13.0/src/viewer/terrain/dof/pass/execute.rs +230 -0
- forge3d-1.13.0/src/viewer/terrain/dof/pass/setup.rs +193 -0
- forge3d-1.13.0/src/viewer/terrain/dof/pass.rs +19 -0
- forge3d-1.13.0/src/viewer/terrain/dof/shader.rs +1 -0
- forge3d-1.13.0/src/viewer/terrain/dof/types.rs +39 -0
- forge3d-1.13.0/src/viewer/terrain/dof.rs +9 -0
- forge3d-1.13.0/src/viewer/terrain/mod.rs +30 -0
- forge3d-1.13.0/src/viewer/terrain/motion_blur.rs +344 -0
- forge3d-1.13.0/src/viewer/terrain/overlay/config.rs +111 -0
- forge3d-1.13.0/src/viewer/terrain/overlay/sampling.rs +87 -0
- forge3d-1.13.0/src/viewer/terrain/overlay/stack/composite.rs +203 -0
- forge3d-1.13.0/src/viewer/terrain/overlay/stack/core.rs +248 -0
- forge3d-1.13.0/src/viewer/terrain/overlay/stack.rs +18 -0
- forge3d-1.13.0/src/viewer/terrain/overlay/tests.rs +18 -0
- forge3d-1.13.0/src/viewer/terrain/overlay.rs +9 -0
- forge3d-1.13.0/src/viewer/terrain/pbr_renderer.rs +605 -0
- forge3d-1.13.0/src/viewer/terrain/post_process.rs +445 -0
- forge3d-1.13.0/src/viewer/terrain/render/helpers.rs +504 -0
- forge3d-1.13.0/src/viewer/terrain/render/motion_blur.rs +368 -0
- forge3d-1.13.0/src/viewer/terrain/render/offscreen/effects.rs +154 -0
- forge3d-1.13.0/src/viewer/terrain/render/offscreen/mod.rs +78 -0
- forge3d-1.13.0/src/viewer/terrain/render/offscreen/scene.rs +304 -0
- forge3d-1.13.0/src/viewer/terrain/render/offscreen/setup.rs +266 -0
- forge3d-1.13.0/src/viewer/terrain/render/screen/effects.rs +204 -0
- forge3d-1.13.0/src/viewer/terrain/render/screen/mod.rs +60 -0
- forge3d-1.13.0/src/viewer/terrain/render/screen/resources.rs +78 -0
- forge3d-1.13.0/src/viewer/terrain/render/screen/scene.rs +263 -0
- forge3d-1.13.0/src/viewer/terrain/render/screen/setup.rs +249 -0
- forge3d-1.13.0/src/viewer/terrain/render/shadow.rs +177 -0
- forge3d-1.13.0/src/viewer/terrain/render.rs +113 -0
- forge3d-1.13.0/src/viewer/terrain/scene/core.rs +457 -0
- forge3d-1.13.0/src/viewer/terrain/scene/overlays.rs +294 -0
- forge3d-1.13.0/src/viewer/terrain/scene/pbr_compute.rs +461 -0
- forge3d-1.13.0/src/viewer/terrain/scene/pipeline_init.rs +553 -0
- forge3d-1.13.0/src/viewer/terrain/scene/terrain_load.rs +265 -0
- forge3d-1.13.0/src/viewer/terrain/scene.rs +194 -0
- forge3d-1.13.0/src/viewer/terrain/shader.rs +109 -0
- forge3d-1.13.0/src/viewer/terrain/shader_pbr/terrain_pbr.wgsl +690 -0
- forge3d-1.13.0/src/viewer/terrain/shader_pbr.rs +4 -0
- forge3d-1.13.0/src/viewer/terrain/vector_overlay/core.rs +164 -0
- forge3d-1.13.0/src/viewer/terrain/vector_overlay/id_buffer.rs +276 -0
- forge3d-1.13.0/src/viewer/terrain/vector_overlay/pipelines.rs +654 -0
- forge3d-1.13.0/src/viewer/terrain/vector_overlay.rs +553 -0
- forge3d-1.13.0/src/viewer/terrain/volumetrics.rs +287 -0
- forge3d-1.13.0/src/viewer/util.rs +51 -0
- forge3d-1.13.0/src/viewer/viewer_analysis.rs +84 -0
- forge3d-1.13.0/src/viewer/viewer_cmd_parse.rs +334 -0
- forge3d-1.13.0/src/viewer/viewer_config.rs +95 -0
- forge3d-1.13.0/src/viewer/viewer_constants.rs +24 -0
- forge3d-1.13.0/src/viewer/viewer_enums/commands.rs +131 -0
- forge3d-1.13.0/src/viewer/viewer_enums/config.rs +149 -0
- forge3d-1.13.0/src/viewer/viewer_enums/modes.rs +45 -0
- forge3d-1.13.0/src/viewer/viewer_enums.rs +18 -0
- forge3d-1.13.0/src/viewer/viewer_image_utils.rs +178 -0
- forge3d-1.13.0/src/viewer/viewer_render_helpers.rs +149 -0
- forge3d-1.13.0/src/viewer/viewer_ssr_scene.rs +113 -0
- forge3d-1.13.0/src/viewer/viewer_struct.rs +257 -0
- forge3d-1.13.0/src/viewer/viewer_types.rs +182 -0
- forge3d-1.13.0/tests/__init__.py +2 -0
- forge3d-1.13.0/tests/_license_test_keys.py +33 -0
- forge3d-1.13.0/tests/_ssim.py +115 -0
- forge3d-1.13.0/tests/conftest.py +199 -0
- forge3d-1.13.0/tests/fixtures/mapbox_streets_v8.json +157 -0
- forge3d-1.13.0/tests/helpers_namespace.py +9 -0
- forge3d-1.13.0/tests/requirements.txt +13 -0
- forge3d-1.13.0/tests/smoke_test.py +21 -0
- forge3d-1.13.0/tests/test_3dtiles_parse.py +254 -0
- forge3d-1.13.0/tests/test_3dtiles_sse.py +194 -0
- forge3d-1.13.0/tests/test_accumulation_aa.py +287 -0
- forge3d-1.13.0/tests/test_animation_mvp.py +323 -0
- forge3d-1.13.0/tests/test_aov.py +276 -0
- forge3d-1.13.0/tests/test_api_contracts.py +1545 -0
- forge3d-1.13.0/tests/test_blender_quality_integration.py +369 -0
- forge3d-1.13.0/tests/test_bloom_effect.py +343 -0
- forge3d-1.13.0/tests/test_bloom_execute_behavior.py +210 -0
- forge3d-1.13.0/tests/test_buildings_cityjson.py +302 -0
- forge3d-1.13.0/tests/test_buildings_extrude.py +245 -0
- forge3d-1.13.0/tests/test_buildings_materials.py +185 -0
- forge3d-1.13.0/tests/test_buildings_roof.py +157 -0
- forge3d-1.13.0/tests/test_bundle_cli.py +130 -0
- forge3d-1.13.0/tests/test_bundle_render.py +84 -0
- forge3d-1.13.0/tests/test_bundle_roundtrip.py +197 -0
- forge3d-1.13.0/tests/test_cam_phi_wiring.py +194 -0
- forge3d-1.13.0/tests/test_clipmap_structure.py +262 -0
- forge3d-1.13.0/tests/test_cog_streaming.py +465 -0
- forge3d-1.13.0/tests/test_copc_laz_fixture.py +8 -0
- forge3d-1.13.0/tests/test_crs_auto.py +86 -0
- forge3d-1.13.0/tests/test_crs_reproject.py +160 -0
- forge3d-1.13.0/tests/test_datasets.py +105 -0
- forge3d-1.13.0/tests/test_dem_loading.py +172 -0
- forge3d-1.13.0/tests/test_denoise_settings.py +252 -0
- forge3d-1.13.0/tests/test_dof.py +228 -0
- forge3d-1.13.0/tests/test_export_projection.py +249 -0
- forge3d-1.13.0/tests/test_export_svg.py +481 -0
- forge3d-1.13.0/tests/test_exr_output.py +173 -0
- forge3d-1.13.0/tests/test_fog_offline.py +327 -0
- forge3d-1.13.0/tests/test_geomorph_seams.py +243 -0
- forge3d-1.13.0/tests/test_gpu_lod_selection.py +266 -0
- forge3d-1.13.0/tests/test_heightfield_ao.py +340 -0
- forge3d-1.13.0/tests/test_install_compatible_wheel.py +89 -0
- forge3d-1.13.0/tests/test_install_smoke.py +98 -0
- forge3d-1.13.0/tests/test_jitter_sequence.py +211 -0
- forge3d-1.13.0/tests/test_labels_pybindings.py +8 -0
- forge3d-1.13.0/tests/test_lens_effects.py +226 -0
- forge3d-1.13.0/tests/test_license.py +182 -0
- forge3d-1.13.0/tests/test_lighting_alignment.py +197 -0
- forge3d-1.13.0/tests/test_lighting_preset.py +246 -0
- forge3d-1.13.0/tests/test_map_plate_layout.py +298 -0
- forge3d-1.13.0/tests/test_mapbox_streets_fixture.py +157 -0
- forge3d-1.13.0/tests/test_mesh_tbn.py +8 -0
- forge3d-1.13.0/tests/test_motion_blur.py +264 -0
- forge3d-1.13.0/tests/test_motion_blur_runner.py +140 -0
- forge3d-1.13.0/tests/test_motion_vectors.py +156 -0
- forge3d-1.13.0/tests/test_oit_transparency.py +153 -0
- forge3d-1.13.0/tests/test_p7_preset_cli_merge.py +47 -0
- forge3d-1.13.0/tests/test_perspective_probe.py +210 -0
- forge3d-1.13.0/tests/test_perspective_projection.py +95 -0
- forge3d-1.13.0/tests/test_picking_ipc.py +199 -0
- forge3d-1.13.0/tests/test_picking_premium.py +91 -0
- forge3d-1.13.0/tests/test_png_io_fallback.py +99 -0
- forge3d-1.13.0/tests/test_pointcloud_gpu_integration.py +86 -0
- forge3d-1.13.0/tests/test_pointcloud_lod.py +232 -0
- forge3d-1.13.0/tests/test_pro_gating.py +117 -0
- forge3d-1.13.0/tests/test_shadow_techniques.py +355 -0
- forge3d-1.13.0/tests/test_ssgi_ssr_wiring.py +231 -0
- forge3d-1.13.0/tests/test_style_parser.py +343 -0
- forge3d-1.13.0/tests/test_style_pixel_diff.py +205 -0
- forge3d-1.13.0/tests/test_style_render.py +184 -0
- forge3d-1.13.0/tests/test_style_visual.py +422 -0
- forge3d-1.13.0/tests/test_sun_ephemeris.py +364 -0
- forge3d-1.13.0/tests/test_sun_visibility.py +345 -0
- forge3d-1.13.0/tests/test_taa_convergence.py +245 -0
- forge3d-1.13.0/tests/test_taa_toggle.py +248 -0
- forge3d-1.13.0/tests/test_terrain_analysis_api.py +8 -0
- forge3d-1.13.0/tests/test_terrain_demo.py +362 -0
- forge3d-1.13.0/tests/test_terrain_demo_cli_smoke.py +53 -0
- forge3d-1.13.0/tests/test_terrain_demo_preset_integration.py +34 -0
- forge3d-1.13.0/tests/test_terrain_materials.py +404 -0
- forge3d-1.13.0/tests/test_terrain_overlay_stack.py +258 -0
- forge3d-1.13.0/tests/test_terrain_render_color_space.py +245 -0
- forge3d-1.13.0/tests/test_terrain_renderer.py +233 -0
- forge3d-1.13.0/tests/test_terrain_viewer_pbr.py +470 -0
- forge3d-1.13.0/tests/test_tonemap_lut.py +384 -0
- forge3d-1.13.0/tests/test_vector_drape.py +380 -0
- forge3d-1.13.0/tests/test_vector_overlay_drape.py +266 -0
- forge3d-1.13.0/tests/test_vector_overlay_rendering.py +284 -0
- forge3d-1.13.0/tests/test_viewer_ipc.py +349 -0
- forge3d-1.13.0/tests/test_volumetrics_sky.py +320 -0
- forge3d-1.13.0/tests/test_widgets.py +118 -0
- forge3d-1.13.0/tests/validate_terrain_output.py +245 -0
- forge3d-1.13.0/tests/validate_terrain_p4.py +874 -0
- forge3d-1.13.0/tests/verify_terrain_pbr_pom_shader.py +171 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main, develop]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
env:
|
|
11
|
+
CARGO_TERM_COLOR: always
|
|
12
|
+
RUST_BACKTRACE: 1
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
# ============================================================================
|
|
16
|
+
# Rust Tests (cargo test)
|
|
17
|
+
# ============================================================================
|
|
18
|
+
test-rust:
|
|
19
|
+
name: Test Rust (${{ matrix.os }})
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
os: [windows-latest, ubuntu-latest, macos-latest]
|
|
25
|
+
include:
|
|
26
|
+
- os: windows-latest
|
|
27
|
+
target: x86_64-pc-windows-msvc
|
|
28
|
+
- os: ubuntu-latest
|
|
29
|
+
target: x86_64-unknown-linux-gnu
|
|
30
|
+
- os: macos-latest
|
|
31
|
+
target: x86_64-apple-darwin
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v4
|
|
35
|
+
|
|
36
|
+
- name: Install Rust toolchain
|
|
37
|
+
uses: dtolnay/rust-toolchain@stable
|
|
38
|
+
with:
|
|
39
|
+
targets: ${{ matrix.target }}
|
|
40
|
+
|
|
41
|
+
- name: Cache Rust dependencies
|
|
42
|
+
uses: actions/cache@v3
|
|
43
|
+
with:
|
|
44
|
+
path: |
|
|
45
|
+
~/.cargo/bin/
|
|
46
|
+
~/.cargo/registry/index/
|
|
47
|
+
~/.cargo/registry/cache/
|
|
48
|
+
~/.cargo/git/db/
|
|
49
|
+
target/
|
|
50
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
51
|
+
restore-keys: |
|
|
52
|
+
${{ runner.os }}-cargo-
|
|
53
|
+
|
|
54
|
+
- name: Install system dependencies (Linux)
|
|
55
|
+
if: matrix.os == 'ubuntu-latest'
|
|
56
|
+
run: |
|
|
57
|
+
sudo apt-get update
|
|
58
|
+
sudo apt-get install -y libvulkan-dev
|
|
59
|
+
|
|
60
|
+
- name: Run cargo check
|
|
61
|
+
run: cargo check --workspace --features default,async_readback,copc_laz,weighted-oit,enable-pbr,enable-ibl,enable-csm,enable-tbn,enable-normal-mapping,enable-hdr-offscreen,enable-render-bundles,enable-renderer-config,enable-memory-pools,enable-staging-rings
|
|
62
|
+
|
|
63
|
+
- name: Run cargo test (skip GPU-dependent tests)
|
|
64
|
+
run: cargo test --workspace --features default,async_readback,copc_laz,weighted-oit,enable-pbr,enable-ibl,enable-csm,enable-tbn,enable-normal-mapping,enable-hdr-offscreen,enable-render-bundles,enable-renderer-config,enable-memory-pools,enable-staging-rings -- --test-threads=1 --skip gpu_extrusion --skip brdf_tile
|
|
65
|
+
env:
|
|
66
|
+
RUST_TEST_THREADS: 1
|
|
67
|
+
|
|
68
|
+
- name: Run cargo clippy
|
|
69
|
+
run: cargo clippy --workspace --features default,async_readback,copc_laz,weighted-oit,enable-pbr,enable-ibl,enable-csm,enable-tbn,enable-normal-mapping,enable-hdr-offscreen,enable-render-bundles,enable-renderer-config,enable-memory-pools,enable-staging-rings -- -D warnings
|
|
70
|
+
|
|
71
|
+
# ============================================================================
|
|
72
|
+
# Interactive Viewer E2E (macOS only; optional)
|
|
73
|
+
# ============================================================================
|
|
74
|
+
test-interactive-viewer-macos:
|
|
75
|
+
name: Interactive Viewer (macOS)
|
|
76
|
+
needs: build-wheels
|
|
77
|
+
runs-on: macos-latest
|
|
78
|
+
timeout-minutes: 15
|
|
79
|
+
|
|
80
|
+
steps:
|
|
81
|
+
- uses: actions/checkout@v4
|
|
82
|
+
|
|
83
|
+
- name: Set up Python
|
|
84
|
+
uses: actions/setup-python@v4
|
|
85
|
+
with:
|
|
86
|
+
python-version: '3.11'
|
|
87
|
+
|
|
88
|
+
- name: Install Rust toolchain
|
|
89
|
+
uses: dtolnay/rust-toolchain@stable
|
|
90
|
+
|
|
91
|
+
- name: Download macOS wheel artifact
|
|
92
|
+
uses: actions/download-artifact@v4
|
|
93
|
+
with:
|
|
94
|
+
name: wheels-macos
|
|
95
|
+
path: dist/
|
|
96
|
+
|
|
97
|
+
- name: Install wheel and pytest
|
|
98
|
+
run: |
|
|
99
|
+
python scripts/install_compatible_wheel.py dist
|
|
100
|
+
pip install pytest numpy
|
|
101
|
+
|
|
102
|
+
- name: Run interactive viewer tests
|
|
103
|
+
env:
|
|
104
|
+
FORGE3D_NO_BOOTSTRAP: '1'
|
|
105
|
+
RUN_INTERACTIVE_VIEWER_CI: '1'
|
|
106
|
+
run: |
|
|
107
|
+
pytest tests/ -m interactive_viewer -v --tb=short
|
|
108
|
+
continue-on-error: true
|
|
109
|
+
|
|
110
|
+
# ============================================================================
|
|
111
|
+
# Python Wheel Build (maturin)
|
|
112
|
+
# ============================================================================
|
|
113
|
+
build-wheels:
|
|
114
|
+
name: Build Wheel (${{ matrix.platform.os }})
|
|
115
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
116
|
+
strategy:
|
|
117
|
+
fail-fast: false
|
|
118
|
+
matrix:
|
|
119
|
+
platform:
|
|
120
|
+
- os: windows
|
|
121
|
+
runner: windows-latest
|
|
122
|
+
target: x86_64-pc-windows-msvc
|
|
123
|
+
maturin_args: --release --out dist
|
|
124
|
+
- os: linux
|
|
125
|
+
runner: ubuntu-latest
|
|
126
|
+
target: x86_64-unknown-linux-gnu
|
|
127
|
+
maturin_args: --release --out dist -i python3.10
|
|
128
|
+
- os: macos
|
|
129
|
+
runner: macos-latest
|
|
130
|
+
target: universal2-apple-darwin
|
|
131
|
+
maturin_args: --release --out dist
|
|
132
|
+
- os: linux-arm
|
|
133
|
+
runner: ubuntu-latest
|
|
134
|
+
target: aarch64-unknown-linux-gnu
|
|
135
|
+
maturin_args: --release --out dist -i python3.10
|
|
136
|
+
|
|
137
|
+
steps:
|
|
138
|
+
- uses: actions/checkout@v4
|
|
139
|
+
|
|
140
|
+
- name: Build wheel
|
|
141
|
+
uses: PyO3/maturin-action@v1
|
|
142
|
+
with:
|
|
143
|
+
target: ${{ matrix.platform.target }}
|
|
144
|
+
args: ${{ matrix.platform.maturin_args }}
|
|
145
|
+
manylinux: auto
|
|
146
|
+
|
|
147
|
+
- name: Upload wheel artifact
|
|
148
|
+
uses: actions/upload-artifact@v4
|
|
149
|
+
with:
|
|
150
|
+
name: wheels-${{ matrix.platform.os }}
|
|
151
|
+
path: dist/*.whl
|
|
152
|
+
|
|
153
|
+
# ============================================================================
|
|
154
|
+
# Python Tests (pytest)
|
|
155
|
+
# ============================================================================
|
|
156
|
+
test-python:
|
|
157
|
+
name: Test Python (${{ matrix.os }})
|
|
158
|
+
needs: build-wheels
|
|
159
|
+
runs-on: ${{ matrix.os }}
|
|
160
|
+
strategy:
|
|
161
|
+
fail-fast: false
|
|
162
|
+
matrix:
|
|
163
|
+
os: [windows-latest, ubuntu-latest, macos-latest]
|
|
164
|
+
python-version: ['3.10', '3.11', '3.12', '3.13']
|
|
165
|
+
|
|
166
|
+
steps:
|
|
167
|
+
- uses: actions/checkout@v4
|
|
168
|
+
|
|
169
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
170
|
+
uses: actions/setup-python@v4
|
|
171
|
+
with:
|
|
172
|
+
python-version: ${{ matrix.python-version }}
|
|
173
|
+
|
|
174
|
+
- name: Download wheel artifact
|
|
175
|
+
uses: actions/download-artifact@v4
|
|
176
|
+
with:
|
|
177
|
+
name: wheels-${{ runner.os == 'Windows' && 'windows' || runner.os == 'Linux' && 'linux' || 'macos' }}
|
|
178
|
+
path: dist/
|
|
179
|
+
|
|
180
|
+
- name: Install wheel and test dependencies
|
|
181
|
+
run: |
|
|
182
|
+
python scripts/install_compatible_wheel.py dist
|
|
183
|
+
pip install pytest numpy pillow
|
|
184
|
+
|
|
185
|
+
- name: Run install smoke tests
|
|
186
|
+
env:
|
|
187
|
+
FORGE3D_NO_BOOTSTRAP: '1'
|
|
188
|
+
run: pytest tests/test_install_smoke.py -v --tb=short
|
|
189
|
+
|
|
190
|
+
- name: Run license tests
|
|
191
|
+
env:
|
|
192
|
+
FORGE3D_NO_BOOTSTRAP: '1'
|
|
193
|
+
run: pytest tests/test_license.py -v --tb=short
|
|
194
|
+
|
|
195
|
+
- name: Run pytest (skip viewer/GPU tests)
|
|
196
|
+
env:
|
|
197
|
+
FORGE3D_NO_BOOTSTRAP: '1'
|
|
198
|
+
run: pytest tests/ -v --tb=short -m "not viewer and not interactive_viewer and not offscreen"
|
|
199
|
+
|
|
200
|
+
# ============================================================================
|
|
201
|
+
# Linux aarch64 Wheel Smoke Test (QEMU)
|
|
202
|
+
# ============================================================================
|
|
203
|
+
test-python-linux-arm:
|
|
204
|
+
name: Install Smoke (linux-arm)
|
|
205
|
+
needs: build-wheels
|
|
206
|
+
runs-on: ubuntu-latest
|
|
207
|
+
|
|
208
|
+
steps:
|
|
209
|
+
- uses: actions/checkout@v4
|
|
210
|
+
|
|
211
|
+
- name: Set up QEMU
|
|
212
|
+
uses: docker/setup-qemu-action@v3
|
|
213
|
+
with:
|
|
214
|
+
platforms: arm64
|
|
215
|
+
|
|
216
|
+
- name: Download linux-arm wheel artifact
|
|
217
|
+
uses: actions/download-artifact@v4
|
|
218
|
+
with:
|
|
219
|
+
name: wheels-linux-arm
|
|
220
|
+
path: dist/
|
|
221
|
+
|
|
222
|
+
- name: Run smoke test in arm64 container
|
|
223
|
+
shell: bash
|
|
224
|
+
run: |
|
|
225
|
+
docker run --rm --platform linux/arm64/v8 \
|
|
226
|
+
-v "${PWD}:/workspace" \
|
|
227
|
+
-w /workspace \
|
|
228
|
+
python:3.11-slim \
|
|
229
|
+
bash -lc "python -m pip install -U pip pytest && python /workspace/scripts/install_compatible_wheel.py /workspace/dist && FORGE3D_NO_BOOTSTRAP=1 pytest tests/test_install_smoke.py -v --tb=short"
|
|
230
|
+
|
|
231
|
+
# ============================================================================
|
|
232
|
+
# Golden Image Tests
|
|
233
|
+
# ============================================================================
|
|
234
|
+
test-golden-images:
|
|
235
|
+
name: Golden Images (${{ matrix.os }})
|
|
236
|
+
needs: build-wheels
|
|
237
|
+
runs-on: ${{ matrix.os }}
|
|
238
|
+
strategy:
|
|
239
|
+
fail-fast: false
|
|
240
|
+
matrix:
|
|
241
|
+
os: [windows-latest, ubuntu-latest] # Skip macOS for golden images (no GPU in CI)
|
|
242
|
+
|
|
243
|
+
steps:
|
|
244
|
+
- uses: actions/checkout@v4
|
|
245
|
+
|
|
246
|
+
- name: Set up Python
|
|
247
|
+
uses: actions/setup-python@v4
|
|
248
|
+
with:
|
|
249
|
+
python-version: '3.11'
|
|
250
|
+
|
|
251
|
+
- name: Download wheel artifact
|
|
252
|
+
uses: actions/download-artifact@v4
|
|
253
|
+
with:
|
|
254
|
+
name: wheels-${{ runner.os == 'Windows' && 'windows' || 'linux' }}
|
|
255
|
+
path: dist/
|
|
256
|
+
|
|
257
|
+
- name: Install wheel
|
|
258
|
+
run: python scripts/install_compatible_wheel.py dist
|
|
259
|
+
|
|
260
|
+
- name: Generate golden images
|
|
261
|
+
run: python scripts/generate_golden_images.py --output-dir tests/golden
|
|
262
|
+
continue-on-error: true
|
|
263
|
+
|
|
264
|
+
- name: Run golden image tests
|
|
265
|
+
run: cargo test --test golden_images -- --ignored --test-threads=1
|
|
266
|
+
continue-on-error: true
|
|
267
|
+
|
|
268
|
+
- name: Upload golden image artifacts on failure
|
|
269
|
+
if: failure()
|
|
270
|
+
uses: actions/upload-artifact@v4
|
|
271
|
+
with:
|
|
272
|
+
name: golden-image-diffs-${{ matrix.os }}
|
|
273
|
+
path: tests/golden/diff/
|
|
274
|
+
|
|
275
|
+
# ============================================================================
|
|
276
|
+
# Example Sanity Tests (640×360 renders within 90s)
|
|
277
|
+
# ============================================================================
|
|
278
|
+
test-examples:
|
|
279
|
+
name: Example Sanity (${{ matrix.os }})
|
|
280
|
+
needs: build-wheels
|
|
281
|
+
runs-on: ${{ matrix.os }}
|
|
282
|
+
timeout-minutes: 5
|
|
283
|
+
strategy:
|
|
284
|
+
fail-fast: false
|
|
285
|
+
matrix:
|
|
286
|
+
os: [windows-latest, ubuntu-latest]
|
|
287
|
+
example:
|
|
288
|
+
- name: "Triangle"
|
|
289
|
+
script: "examples/triangle_png.py"
|
|
290
|
+
args: "--width 640 --height 360"
|
|
291
|
+
- name: "Terrain Single Tile"
|
|
292
|
+
script: "examples/terrain_single_tile.py"
|
|
293
|
+
args: ""
|
|
294
|
+
- name: "PNG NumPy Roundtrip"
|
|
295
|
+
script: "examples/png_numpy_roundtrip.py"
|
|
296
|
+
args: ""
|
|
297
|
+
|
|
298
|
+
steps:
|
|
299
|
+
- uses: actions/checkout@v4
|
|
300
|
+
|
|
301
|
+
- name: Set up Python
|
|
302
|
+
uses: actions/setup-python@v4
|
|
303
|
+
with:
|
|
304
|
+
python-version: '3.11'
|
|
305
|
+
|
|
306
|
+
- name: Download wheel artifact
|
|
307
|
+
uses: actions/download-artifact@v4
|
|
308
|
+
with:
|
|
309
|
+
name: wheels-${{ runner.os == 'Windows' && 'windows' || 'linux' }}
|
|
310
|
+
path: dist/
|
|
311
|
+
|
|
312
|
+
- name: Install wheel and dependencies
|
|
313
|
+
run: |
|
|
314
|
+
python scripts/install_compatible_wheel.py dist
|
|
315
|
+
pip install numpy pillow
|
|
316
|
+
|
|
317
|
+
- name: "Run example: ${{ matrix.example.name }}"
|
|
318
|
+
run: python ${{ matrix.example.script }} ${{ matrix.example.args }}
|
|
319
|
+
timeout-minutes: 2
|
|
320
|
+
|
|
321
|
+
- name: Verify output exists
|
|
322
|
+
shell: bash
|
|
323
|
+
run: |
|
|
324
|
+
# Check that at least one PNG was created
|
|
325
|
+
if ls *.png 1> /dev/null 2>&1; then
|
|
326
|
+
echo "✓ PNG output found"
|
|
327
|
+
else
|
|
328
|
+
echo "✗ No PNG output found"
|
|
329
|
+
exit 1
|
|
330
|
+
fi
|
|
331
|
+
|
|
332
|
+
# ============================================================================
|
|
333
|
+
# Documentation Build
|
|
334
|
+
# ============================================================================
|
|
335
|
+
build-docs:
|
|
336
|
+
name: Build Documentation
|
|
337
|
+
runs-on: ubuntu-latest
|
|
338
|
+
|
|
339
|
+
steps:
|
|
340
|
+
- uses: actions/checkout@v4
|
|
341
|
+
|
|
342
|
+
- name: Install Rust toolchain
|
|
343
|
+
uses: dtolnay/rust-toolchain@stable
|
|
344
|
+
|
|
345
|
+
- name: Build Rust docs
|
|
346
|
+
run: cargo doc --workspace --features default,async_readback,copc_laz,weighted-oit,enable-pbr,enable-ibl,enable-csm,enable-tbn,enable-normal-mapping,enable-hdr-offscreen,enable-render-bundles,enable-renderer-config,enable-memory-pools,enable-staging-rings --no-deps
|
|
347
|
+
|
|
348
|
+
- name: Set up Python
|
|
349
|
+
uses: actions/setup-python@v4
|
|
350
|
+
with:
|
|
351
|
+
python-version: '3.11'
|
|
352
|
+
|
|
353
|
+
- name: Install Sphinx dependencies
|
|
354
|
+
run: |
|
|
355
|
+
pip install sphinx sphinx-rtd-theme myst-parser numpy pillow ipywidgets pooch
|
|
356
|
+
|
|
357
|
+
- name: Build Sphinx docs
|
|
358
|
+
run: |
|
|
359
|
+
cd docs
|
|
360
|
+
make html
|
|
361
|
+
|
|
362
|
+
- name: Upload docs artifact
|
|
363
|
+
uses: actions/upload-artifact@v4
|
|
364
|
+
with:
|
|
365
|
+
name: documentation
|
|
366
|
+
path: |
|
|
367
|
+
target/doc/
|
|
368
|
+
docs/_build/html/
|
|
369
|
+
|
|
370
|
+
# ============================================================================
|
|
371
|
+
# Final Status
|
|
372
|
+
# ============================================================================
|
|
373
|
+
ci-success:
|
|
374
|
+
name: CI Success
|
|
375
|
+
needs: [test-rust, build-wheels, test-python, test-python-linux-arm, build-docs]
|
|
376
|
+
runs-on: ubuntu-latest
|
|
377
|
+
if: always()
|
|
378
|
+
|
|
379
|
+
steps:
|
|
380
|
+
- name: Check all jobs succeeded
|
|
381
|
+
run: |
|
|
382
|
+
if [ "${{ needs.test-rust.result }}" != "success" ] || \
|
|
383
|
+
[ "${{ needs.build-wheels.result }}" != "success" ] || \
|
|
384
|
+
[ "${{ needs.test-python.result }}" != "success" ] || \
|
|
385
|
+
[ "${{ needs.test-python-linux-arm.result }}" != "success" ] || \
|
|
386
|
+
[ "${{ needs.build-docs.result }}" != "success" ]; then
|
|
387
|
+
echo "❌ CI failed"
|
|
388
|
+
exit 1
|
|
389
|
+
else
|
|
390
|
+
echo "✅ CI passed"
|
|
391
|
+
fi
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: Public Funnel Monitor
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "0 * * * *"
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
public-funnel:
|
|
13
|
+
name: Public Funnel Reachability
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: "3.11"
|
|
23
|
+
|
|
24
|
+
- name: Check homepage, docs, Pro path, PyPI, and dataset URLs
|
|
25
|
+
run: python scripts/check_public_funnel.py
|
|
26
|
+
|
|
27
|
+
source-links:
|
|
28
|
+
name: Source Link Check
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- name: Check shipped links
|
|
35
|
+
uses: lycheeverse/lychee-action@v2
|
|
36
|
+
with:
|
|
37
|
+
fail: true
|
|
38
|
+
args: >-
|
|
39
|
+
--no-progress
|
|
40
|
+
--verbose
|
|
41
|
+
README.md
|
|
42
|
+
pyproject.toml
|
|
43
|
+
python/forge3d/datasets.py
|
|
44
|
+
docs/gallery/05-3d-buildings.md
|
|
45
|
+
docs/gallery/10-map-plate.md
|
|
46
|
+
docs/tutorials/gis-track/03-build-a-map-plate.md
|
|
47
|
+
docs/tutorials/gis-track/04-3d-buildings.md
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
push:
|
|
7
|
+
tags:
|
|
8
|
+
- 'v*'
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
inputs:
|
|
11
|
+
dry_run:
|
|
12
|
+
description: Dry run (build artifacts only, do not publish)
|
|
13
|
+
required: false
|
|
14
|
+
default: 'true'
|
|
15
|
+
type: choice
|
|
16
|
+
options:
|
|
17
|
+
- 'true'
|
|
18
|
+
- 'false'
|
|
19
|
+
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
id-token: write
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
build-wheels:
|
|
26
|
+
name: Build Wheel (${{ matrix.platform.os }})
|
|
27
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
28
|
+
strategy:
|
|
29
|
+
fail-fast: false
|
|
30
|
+
matrix:
|
|
31
|
+
platform:
|
|
32
|
+
- os: windows
|
|
33
|
+
runner: windows-latest
|
|
34
|
+
target: x86_64-pc-windows-msvc
|
|
35
|
+
maturin_args: --release --out dist
|
|
36
|
+
- os: linux
|
|
37
|
+
runner: ubuntu-latest
|
|
38
|
+
target: x86_64-unknown-linux-gnu
|
|
39
|
+
maturin_args: --release --out dist -i python3.10
|
|
40
|
+
- os: linux-arm
|
|
41
|
+
runner: ubuntu-latest
|
|
42
|
+
target: aarch64-unknown-linux-gnu
|
|
43
|
+
maturin_args: --release --out dist -i python3.10
|
|
44
|
+
- os: macos
|
|
45
|
+
runner: macos-latest
|
|
46
|
+
target: universal2-apple-darwin
|
|
47
|
+
maturin_args: --release --out dist
|
|
48
|
+
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@v4
|
|
51
|
+
|
|
52
|
+
- name: Build wheel
|
|
53
|
+
uses: PyO3/maturin-action@v1
|
|
54
|
+
with:
|
|
55
|
+
target: ${{ matrix.platform.target }}
|
|
56
|
+
args: ${{ matrix.platform.maturin_args }}
|
|
57
|
+
manylinux: auto
|
|
58
|
+
|
|
59
|
+
- name: Upload wheel artifact
|
|
60
|
+
uses: actions/upload-artifact@v4
|
|
61
|
+
with:
|
|
62
|
+
name: wheels-${{ matrix.platform.os }}
|
|
63
|
+
path: dist/*.whl
|
|
64
|
+
|
|
65
|
+
build-sdist:
|
|
66
|
+
name: Build sdist
|
|
67
|
+
runs-on: ubuntu-latest
|
|
68
|
+
|
|
69
|
+
steps:
|
|
70
|
+
- uses: actions/checkout@v4
|
|
71
|
+
|
|
72
|
+
- name: Set up Python
|
|
73
|
+
uses: actions/setup-python@v5
|
|
74
|
+
with:
|
|
75
|
+
python-version: '3.11'
|
|
76
|
+
|
|
77
|
+
- name: Install maturin
|
|
78
|
+
run: python -m pip install --upgrade maturin
|
|
79
|
+
|
|
80
|
+
- name: Build sdist
|
|
81
|
+
run: maturin sdist --out dist
|
|
82
|
+
|
|
83
|
+
- name: Upload sdist artifact
|
|
84
|
+
uses: actions/upload-artifact@v4
|
|
85
|
+
with:
|
|
86
|
+
name: sdist
|
|
87
|
+
path: dist/*.tar.gz
|
|
88
|
+
|
|
89
|
+
smoke-test:
|
|
90
|
+
name: Smoke Test (${{ matrix.platform.os }})
|
|
91
|
+
needs: [build-wheels]
|
|
92
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
93
|
+
strategy:
|
|
94
|
+
fail-fast: false
|
|
95
|
+
matrix:
|
|
96
|
+
platform:
|
|
97
|
+
- os: windows
|
|
98
|
+
runner: windows-latest
|
|
99
|
+
artifact: wheels-windows
|
|
100
|
+
- os: linux
|
|
101
|
+
runner: ubuntu-latest
|
|
102
|
+
artifact: wheels-linux
|
|
103
|
+
- os: linux-arm
|
|
104
|
+
runner: ubuntu-latest
|
|
105
|
+
artifact: wheels-linux-arm
|
|
106
|
+
- os: macos
|
|
107
|
+
runner: macos-latest
|
|
108
|
+
artifact: wheels-macos
|
|
109
|
+
|
|
110
|
+
steps:
|
|
111
|
+
- uses: actions/checkout@v4
|
|
112
|
+
|
|
113
|
+
- name: Set up Python
|
|
114
|
+
if: matrix.platform.os != 'linux-arm'
|
|
115
|
+
uses: actions/setup-python@v5
|
|
116
|
+
with:
|
|
117
|
+
python-version: '3.11'
|
|
118
|
+
|
|
119
|
+
- name: Download wheel artifact
|
|
120
|
+
uses: actions/download-artifact@v4
|
|
121
|
+
with:
|
|
122
|
+
name: ${{ matrix.platform.artifact }}
|
|
123
|
+
path: dist/
|
|
124
|
+
|
|
125
|
+
- name: Install wheel and run smoke tests
|
|
126
|
+
if: matrix.platform.os != 'linux-arm'
|
|
127
|
+
env:
|
|
128
|
+
FORGE3D_NO_BOOTSTRAP: '1'
|
|
129
|
+
run: |
|
|
130
|
+
python -m pip install --upgrade pip pytest
|
|
131
|
+
python scripts/install_compatible_wheel.py dist
|
|
132
|
+
pytest tests/test_install_smoke.py -v --tb=short
|
|
133
|
+
|
|
134
|
+
- name: Set up QEMU
|
|
135
|
+
if: matrix.platform.os == 'linux-arm'
|
|
136
|
+
uses: docker/setup-qemu-action@v3
|
|
137
|
+
with:
|
|
138
|
+
platforms: arm64
|
|
139
|
+
|
|
140
|
+
- name: Run smoke test in arm64 container
|
|
141
|
+
if: matrix.platform.os == 'linux-arm'
|
|
142
|
+
shell: bash
|
|
143
|
+
run: |
|
|
144
|
+
docker run --rm --platform linux/arm64/v8 \
|
|
145
|
+
-v "${PWD}:/workspace" \
|
|
146
|
+
-w /workspace \
|
|
147
|
+
python:3.11-slim \
|
|
148
|
+
bash -lc "python -m pip install -U pip pytest && python /workspace/scripts/install_compatible_wheel.py /workspace/dist && FORGE3D_NO_BOOTSTRAP=1 pytest tests/test_install_smoke.py -v --tb=short"
|
|
149
|
+
|
|
150
|
+
release-assets:
|
|
151
|
+
name: Upload Release Assets
|
|
152
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
153
|
+
needs: [build-wheels, build-sdist, smoke-test]
|
|
154
|
+
runs-on: ubuntu-latest
|
|
155
|
+
permissions:
|
|
156
|
+
contents: write
|
|
157
|
+
|
|
158
|
+
steps:
|
|
159
|
+
- uses: actions/checkout@v4
|
|
160
|
+
|
|
161
|
+
- name: Set up Python
|
|
162
|
+
uses: actions/setup-python@v5
|
|
163
|
+
with:
|
|
164
|
+
python-version: '3.11'
|
|
165
|
+
|
|
166
|
+
- name: Validate tag matches pyproject version
|
|
167
|
+
run: |
|
|
168
|
+
python -c "import tomllib; from pathlib import Path; version = tomllib.loads(Path('pyproject.toml').read_text(encoding='utf-8'))['project']['version']; tag = '${{ github.ref_name }}'.lstrip('v'); assert version == tag, f'{version}!={tag}'"
|
|
169
|
+
|
|
170
|
+
- name: Download wheel artifacts
|
|
171
|
+
uses: actions/download-artifact@v4
|
|
172
|
+
with:
|
|
173
|
+
pattern: wheels-*
|
|
174
|
+
merge-multiple: true
|
|
175
|
+
path: dist/
|
|
176
|
+
|
|
177
|
+
- name: Download sdist artifact
|
|
178
|
+
uses: actions/download-artifact@v4
|
|
179
|
+
with:
|
|
180
|
+
name: sdist
|
|
181
|
+
path: dist/
|
|
182
|
+
|
|
183
|
+
- name: Create GitHub release assets
|
|
184
|
+
uses: softprops/action-gh-release@v2
|
|
185
|
+
with:
|
|
186
|
+
files: dist/*
|
|
187
|
+
generate_release_notes: true
|
|
188
|
+
|
|
189
|
+
publish:
|
|
190
|
+
name: Publish
|
|
191
|
+
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'false')
|
|
192
|
+
needs: [build-wheels, build-sdist, smoke-test]
|
|
193
|
+
runs-on: ubuntu-latest
|
|
194
|
+
permissions:
|
|
195
|
+
contents: read
|
|
196
|
+
id-token: write
|
|
197
|
+
environment:
|
|
198
|
+
name: pypi
|
|
199
|
+
url: https://pypi.org/project/forge3d/
|
|
200
|
+
|
|
201
|
+
steps:
|
|
202
|
+
- uses: actions/checkout@v4
|
|
203
|
+
|
|
204
|
+
- name: Set up Python
|
|
205
|
+
uses: actions/setup-python@v5
|
|
206
|
+
with:
|
|
207
|
+
python-version: '3.11'
|
|
208
|
+
|
|
209
|
+
- name: Validate tag matches pyproject version
|
|
210
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
211
|
+
run: |
|
|
212
|
+
python -c "import tomllib; from pathlib import Path; version = tomllib.loads(Path('pyproject.toml').read_text(encoding='utf-8'))['project']['version']; tag = '${{ github.ref_name }}'.lstrip('v'); assert version == tag, f'{version}!={tag}'"
|
|
213
|
+
|
|
214
|
+
- name: Download wheel artifacts
|
|
215
|
+
uses: actions/download-artifact@v4
|
|
216
|
+
with:
|
|
217
|
+
pattern: wheels-*
|
|
218
|
+
merge-multiple: true
|
|
219
|
+
path: dist/
|
|
220
|
+
|
|
221
|
+
- name: Download sdist artifact
|
|
222
|
+
uses: actions/download-artifact@v4
|
|
223
|
+
with:
|
|
224
|
+
name: sdist
|
|
225
|
+
path: dist/
|
|
226
|
+
|
|
227
|
+
- name: Publish to PyPI
|
|
228
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
229
|
+
with:
|
|
230
|
+
packages-dir: dist/
|
|
231
|
+
user: __token__
|
|
232
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|