bevy/crates
Sorseg f9cf277634
Make RayMap map public (#18544)
Migration guide:
# Objective

Currently there seems to be no way to enable picking through
render-to-texture cameras

## Solution

This PR allows casting rays from the game code quite easily.

## Testing

- I've tested these in my game and it seems to work
- I haven't tested edge cases

--- 

## Showcase

<details>
  <summary>Click to view showcase</summary>

```rust

fn cast_rays_from_additional_camera(
    cameras: Query<(&GlobalTransform, &Camera, Entity), With<RenderToTextureCamera>>,
    mut rays: ResMut<RayMap>,
    pointers: Query<(&PointerId, &PointerLocation)>,
) {
    for (camera_global_transform, camera, camera_entity) in &cameras {
        for (pointer_id, pointer_loc) in &pointers {
            let Some(viewport_pos) = pointer_loc.location() else {
                continue;
            };
            // if camera result is transformed in any way, the reverse transformation
            // should be applied somewhere here
            let ray = camera
                .viewport_to_world(camera_global_transform, viewport_pos.position)
                .ok();
            if let Some(r) = ray {
                rays.map.insert(RayId::new(camera_entity, *pointer_id), r);
            }
        }
    }
}

```

</details>

## Migration Guide
The `bevy_picking::backend::ray::RayMap::map` method is removed as
redundant,
In systems using `Res<RayMap>` replace `ray_map.map()` with
`&ray_map.map`
2025-03-25 19:15:20 +00:00
..
bevy_a11y Update accesskit and accesskit_winit requirements (#18285) 2025-03-25 04:04:28 +00:00
bevy_animation Reduce dependencies on bevy_render by preferring bevy_mesh imports (#18437) 2025-03-25 04:14:42 +00:00
bevy_anti_aliasing Ensure dds enables bevy_core_pipeline/dds in bevy_anti_aliasing (#18484) 2025-03-22 12:27:14 +00:00
bevy_app Create new NonSendMarker (#18301) 2025-03-23 21:37:40 +00:00
bevy_asset Don't panic on temporary files in file watcher (#18462) 2025-03-25 04:16:33 +00:00
bevy_audio bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
bevy_color bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
bevy_core_pipeline Record bloom render commands in parallel (#18330) 2025-03-25 04:06:42 +00:00
bevy_derive Link iOS example with rustc, and avoid C trampoline (#14780) 2025-03-17 21:14:07 +00:00
bevy_dev_tools Generic system config (#17962) 2025-03-12 00:12:30 +00:00
bevy_diagnostic Add process cpu/memory usage to SystemInformationDiagnosticsPlugin (#18279) 2025-03-16 21:14:46 +00:00
bevy_dylib Switch from OnceCell to LazyLock in bevy_tasks (#18506) 2025-03-24 07:43:22 +00:00
bevy_ecs Define system param validation on a per-system parameter basis (#18504) 2025-03-25 04:27:20 +00:00
bevy_encase_derive Internalize BevyManifest logic. Switch to RwLock (#18263) 2025-03-12 00:46:01 +00:00
bevy_gilrs Replace some !Send resources with thread_local! (#17730) 2025-03-04 07:48:02 +00:00
bevy_gizmos Define system param validation on a per-system parameter basis (#18504) 2025-03-25 04:27:20 +00:00
bevy_gltf Reduce dependencies on bevy_render by preferring bevy_mesh imports (#18437) 2025-03-25 04:14:42 +00:00
bevy_image Ensure dds enables bevy_core_pipeline/dds in bevy_anti_aliasing (#18484) 2025-03-22 12:27:14 +00:00
bevy_input bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
bevy_input_focus bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
bevy_internal Fix bevy_math/transform/input Improper Inclusion (#18526) 2025-03-25 08:20:51 +00:00
bevy_log Add print_stdout and print_stderr lints (#17446) (#18233) 2025-03-11 19:35:48 +00:00
bevy_macro_utils Switch to ImDocument in BevyManifest (#18272) 2025-03-12 20:15:39 +00:00
bevy_math Add no_std compatible ceil method (#18498) 2025-03-25 04:18:00 +00:00
bevy_mesh Reduce dependencies on bevy_render by preferring bevy_mesh imports (#18437) 2025-03-25 04:14:42 +00:00
bevy_mikktspace Add print_stdout and print_stderr lints (#17446) (#18233) 2025-03-11 19:35:48 +00:00
bevy_pbr Move non-generic parts of the PrepassPipeline to internal field (#18322) 2025-03-25 18:47:31 +00:00
bevy_picking Make RayMap map public (#18544) 2025-03-25 19:15:20 +00:00
bevy_platform_support Address lints in bevy_platform_support (#18477) 2025-03-22 11:21:18 +00:00
bevy_ptr moved Debug from derive to impl_ptr in bevy_ptr (#18042) 2025-02-28 02:54:46 +00:00
bevy_reflect Update bincode to 2.0 (#18396) 2025-03-25 04:09:46 +00:00
bevy_remote fix error and lints when building for wasm32 (#18500) 2025-03-23 22:06:28 +00:00
bevy_render Define system param validation on a per-system parameter basis (#18504) 2025-03-25 04:27:20 +00:00
bevy_scene Update bincode to 2.0 (#18396) 2025-03-25 04:09:46 +00:00
bevy_sprite don't flip sprites twice (#18535) 2025-03-25 18:20:13 +00:00
bevy_state bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
bevy_tasks Switch from OnceCell to LazyLock in bevy_tasks (#18506) 2025-03-24 07:43:22 +00:00
bevy_text ExtractedSprites slice buffer (#17041) 2025-03-25 03:51:50 +00:00
bevy_time Fix clippy::unnecessary-literal-unwrap in bevy_time (#18485) 2025-03-22 13:27:37 +00:00
bevy_transform Revert "Transform Propagation Optimization: Static Subtree Marking (#18094)" (#18363) 2025-03-17 20:01:29 +00:00
bevy_ui Update accesskit and accesskit_winit requirements (#18285) 2025-03-25 04:04:28 +00:00
bevy_utils Address clippy::let_and_return in bevy_utils (#18480) 2025-03-22 11:44:49 +00:00
bevy_window Replace VisitEntities with MapEntities (#18432) 2025-03-21 00:18:10 +00:00
bevy_winit Update accesskit and accesskit_winit requirements (#18285) 2025-03-25 04:04:28 +00:00