Add doc example to viewport_to_world(_2d)
This commit is contained in:
parent
20dfae9a2d
commit
c5c4c6f8dc
@ -567,6 +567,30 @@ impl Camera {
|
|||||||
/// To get the world space coordinates with Normalized Device Coordinates, you should use
|
/// To get the world space coordinates with Normalized Device Coordinates, you should use
|
||||||
/// [`ndc_to_world`](Self::ndc_to_world).
|
/// [`ndc_to_world`](Self::ndc_to_world).
|
||||||
///
|
///
|
||||||
|
/// # Example
|
||||||
|
/// ```no_run
|
||||||
|
/// # use bevy_window::Window;
|
||||||
|
/// # use bevy_ecs::prelude::{Single, IntoScheduleConfigs};
|
||||||
|
/// # use bevy_transform::prelude::{GlobalTransform, TransformSystems};
|
||||||
|
/// # use bevy_camera::Camera;
|
||||||
|
/// # use bevy_app::{App, PostUpdate};
|
||||||
|
/// #
|
||||||
|
/// fn system(camera_query: Single<(&Camera, &GlobalTransform)>, window: Single<&Window>) {
|
||||||
|
/// let (camera, camera_transform) = *camera_query;
|
||||||
|
///
|
||||||
|
/// if let Some(cursor_position) = window.cursor_position()
|
||||||
|
/// // Calculate a ray pointing from the camera into the world based on the cursor's position.
|
||||||
|
/// && let Ok(ray) = camera.viewport_to_world(camera_transform, cursor_position)
|
||||||
|
/// {
|
||||||
|
/// println!("{ray:?}");
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// # let mut app = App::new();
|
||||||
|
/// // Run the system after transform propagation so the camera's global transform is up-to-date.
|
||||||
|
/// app.add_systems(PostUpdate, system.after(TransformSystems::Propagate));
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// Will panic if the camera's projection matrix is invalid (has a determinant of 0) and
|
/// Will panic if the camera's projection matrix is invalid (has a determinant of 0) and
|
||||||
@ -605,6 +629,30 @@ impl Camera {
|
|||||||
/// To get the world space coordinates with Normalized Device Coordinates, you should use
|
/// To get the world space coordinates with Normalized Device Coordinates, you should use
|
||||||
/// [`ndc_to_world`](Self::ndc_to_world).
|
/// [`ndc_to_world`](Self::ndc_to_world).
|
||||||
///
|
///
|
||||||
|
/// # Example
|
||||||
|
/// ```no_run
|
||||||
|
/// # use bevy_window::Window;
|
||||||
|
/// # use bevy_ecs::prelude::*;
|
||||||
|
/// # use bevy_transform::prelude::{GlobalTransform, TransformSystems};
|
||||||
|
/// # use bevy_camera::Camera;
|
||||||
|
/// # use bevy_app::{App, PostUpdate};
|
||||||
|
/// #
|
||||||
|
/// fn system(camera_query: Single<(&Camera, &GlobalTransform)>, window: Single<&Window>) {
|
||||||
|
/// let (camera, camera_transform) = *camera_query;
|
||||||
|
///
|
||||||
|
/// if let Some(cursor_position) = window.cursor_position()
|
||||||
|
/// // Calculate a world position based on the cursor's position.
|
||||||
|
/// && let Ok(world_pos) = camera.viewport_to_world_2d(camera_transform, cursor_position)
|
||||||
|
/// {
|
||||||
|
/// println!("World position: {world_pos:.2}");
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// # let mut app = App::new();
|
||||||
|
/// // Run the system after transform propagation so the camera's global transform is up-to-date.
|
||||||
|
/// app.add_systems(PostUpdate, system.after(TransformSystems::Propagate));
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// Will panic if the camera's projection matrix is invalid (has a determinant of 0) and
|
/// Will panic if the camera's projection matrix is invalid (has a determinant of 0) and
|
||||||
|
Loading…
Reference in New Issue
Block a user