diff --git a/examples/2d/mesh2d_manual.rs b/examples/2d/mesh2d_manual.rs index 13fd3c24d6632..cdd31c8f93e42 100644 --- a/examples/2d/mesh2d_manual.rs +++ b/examples/2d/mesh2d_manual.rs @@ -3,6 +3,8 @@ //! It doesn't use the [`Material2d`] abstraction, but changes the vertex buffer to include vertex color. //! Check out the "mesh2d" example for simpler / higher level 2d meshes. +use std::f32::consts::PI; + use bevy::{ core_pipeline::core_2d::Transparent2d, prelude::*, @@ -62,12 +64,12 @@ fn star( // These vertices are specified in 3D space. let mut v_pos = vec![[0.0, 0.0, 0.0]]; for i in 0..10 { - // Angle of each vertex is 1/10 of TAU, plus PI/2 for positioning vertex 0 - let a = std::f32::consts::FRAC_PI_2 - i as f32 * std::f32::consts::TAU / 10.0; - // Radius of internal vertices (2, 4, 6, 8, 10) is 100, it's 200 for external + // The angle between each vertex is 1/10 of a full rotation. + let a = i as f32 * PI / 5.0; + // The radius of inner vertices (even indices) is 100. For outer vertices (odd indices) it's 200. let r = (1 - i % 2) as f32 * 100.0 + 100.0; - // Add the vertex coordinates - v_pos.push([r * a.cos(), r * a.sin(), 0.0]); + // Add the vertex position. + v_pos.push([r * a.sin(), r * a.cos(), 0.0]); } // Set the position attribute star.insert_attribute(Mesh::ATTRIBUTE_POSITION, v_pos); diff --git a/examples/3d/lighting.rs b/examples/3d/lighting.rs index 425dfcd48bba3..2a6ef6839b578 100644 --- a/examples/3d/lighting.rs +++ b/examples/3d/lighting.rs @@ -1,6 +1,8 @@ //! Illustrates different lights of various types and colors, some static, some moving over //! a simple scene. +use std::f32::consts::PI; + use bevy::prelude::*; fn main() { @@ -34,7 +36,7 @@ fn setup( // left wall let mut transform = Transform::from_xyz(2.5, 2.5, 0.0); - transform.rotate_z(std::f32::consts::FRAC_PI_2); + transform.rotate_z(PI / 2.); commands.spawn_bundle(PbrBundle { mesh: meshes.add(Mesh::from(shape::Box::new(5.0, 0.15, 5.0))), transform, @@ -47,7 +49,7 @@ fn setup( }); // back (right) wall let mut transform = Transform::from_xyz(0.0, 2.5, -2.5); - transform.rotate_x(std::f32::consts::FRAC_PI_2); + transform.rotate_x(PI / 2.); commands.spawn_bundle(PbrBundle { mesh: meshes.add(Mesh::from(shape::Box::new(5.0, 0.15, 5.0))), transform, @@ -138,9 +140,7 @@ fn setup( }) .with_children(|builder| { builder.spawn_bundle(PbrBundle { - transform: Transform::from_rotation(Quat::from_rotation_x( - std::f32::consts::PI / 2.0, - )), + transform: Transform::from_rotation(Quat::from_rotation_x(PI / 2.0)), mesh: meshes.add(Mesh::from(shape::Capsule { depth: 0.125, radius: 0.1, @@ -202,7 +202,7 @@ fn setup( }, transform: Transform { translation: Vec3::new(0.0, 2.0, 0.0), - rotation: Quat::from_rotation_x(-std::f32::consts::FRAC_PI_4), + rotation: Quat::from_rotation_x(-PI / 4.), ..default() }, ..default() diff --git a/examples/3d/load_gltf.rs b/examples/3d/load_gltf.rs index 1248801a5c336..bc7ee046b327e 100644 --- a/examples/3d/load_gltf.rs +++ b/examples/3d/load_gltf.rs @@ -1,5 +1,7 @@ //! Loads and renders a glTF file as a scene. +use std::f32::consts::PI; + use bevy::prelude::*; fn main() { @@ -50,8 +52,8 @@ fn animate_light_direction( transform.rotation = Quat::from_euler( EulerRot::ZYX, 0.0, - time.seconds_since_startup() as f32 * std::f32::consts::TAU / 10.0, - -std::f32::consts::FRAC_PI_4, + time.seconds_since_startup() as f32 * PI / 5.0, + -PI / 4., ); } } diff --git a/examples/3d/render_to_texture.rs b/examples/3d/render_to_texture.rs index b4c2ea3ce12cb..801f44f3caead 100644 --- a/examples/3d/render_to_texture.rs +++ b/examples/3d/render_to_texture.rs @@ -1,5 +1,7 @@ //! Shows how to render to a texture. Useful for mirrors, UI, or exporting images. +use std::f32::consts::PI; + use bevy::{ core_pipeline::clear_color::ClearColorConfig, prelude::*, @@ -104,7 +106,7 @@ fn setup( ..default() }, transform: Transform::from_translation(Vec3::new(0.0, 0.0, 15.0)) - .looking_at(Vec3::default(), Vec3::Y), + .looking_at(Vec3::ZERO, Vec3::Y), ..default() }) .insert(first_pass_layer); @@ -125,19 +127,15 @@ fn setup( .spawn_bundle(PbrBundle { mesh: cube_handle, material: material_handle, - transform: Transform { - translation: Vec3::new(0.0, 0.0, 1.5), - rotation: Quat::from_rotation_x(-std::f32::consts::PI / 5.0), - ..default() - }, + transform: Transform::from_xyz(0.0, 0.0, 1.5) + .with_rotation(Quat::from_rotation_x(-PI / 5.0)), ..default() }) .insert(MainPassCube); // The main pass camera. commands.spawn_bundle(Camera3dBundle { - transform: Transform::from_translation(Vec3::new(0.0, 0.0, 15.0)) - .looking_at(Vec3::default(), Vec3::Y), + transform: Transform::from_xyz(0.0, 0.0, 15.0).looking_at(Vec3::ZERO, Vec3::Y), ..default() }); } diff --git a/examples/3d/shadow_biases.rs b/examples/3d/shadow_biases.rs index af0c83442c600..51f4d483d355b 100644 --- a/examples/3d/shadow_biases.rs +++ b/examples/3d/shadow_biases.rs @@ -1,5 +1,7 @@ //! Demonstrates how shadow biases affect shadows in a 3d scene. +use std::f32::consts::PI; + use bevy::{input::mouse::MouseMotion, prelude::*}; fn main() { @@ -61,8 +63,6 @@ fn setup( ..default() }); - let theta = std::f32::consts::FRAC_PI_4; - let light_transform = Mat4::from_euler(EulerRot::ZYX, 0.0, std::f32::consts::FRAC_PI_2, -theta); commands.spawn_bundle(DirectionalLightBundle { directional_light: DirectionalLight { illuminance: 100000.0, @@ -80,7 +80,12 @@ fn setup( shadows_enabled: true, ..default() }, - transform: Transform::from_matrix(light_transform), + transform: Transform::from_rotation(Quat::from_euler( + EulerRot::ZYX, + 0.0, + PI / 2., + -PI / 4., + )), ..default() }); @@ -308,16 +313,10 @@ fn camera_controller( if mouse_delta != Vec2::ZERO { // Apply look update - let (pitch, yaw) = ( - (options.pitch - mouse_delta.y * 0.5 * options.sensitivity * dt).clamp( - -0.99 * std::f32::consts::FRAC_PI_2, - 0.99 * std::f32::consts::FRAC_PI_2, - ), - options.yaw - mouse_delta.x * options.sensitivity * dt, - ); - transform.rotation = Quat::from_euler(EulerRot::ZYX, 0.0, yaw, pitch); - options.pitch = pitch; - options.yaw = yaw; + options.pitch = (options.pitch - mouse_delta.y * 0.5 * options.sensitivity * dt) + .clamp(-PI / 2., PI / 2.); + options.yaw -= mouse_delta.x * options.sensitivity * dt; + transform.rotation = Quat::from_euler(EulerRot::ZYX, 0.0, options.yaw, options.pitch); } } } diff --git a/examples/3d/shadow_caster_receiver.rs b/examples/3d/shadow_caster_receiver.rs index 4c197a5654a0c..eeed6f0939bc6 100644 --- a/examples/3d/shadow_caster_receiver.rs +++ b/examples/3d/shadow_caster_receiver.rs @@ -1,5 +1,7 @@ //! Demonstrates how to prevent meshes from casting/receiving shadows in a 3d scene. +use std::f32::consts::PI; + use bevy::{ pbr::{NotShadowCaster, NotShadowReceiver}, prelude::*, @@ -89,8 +91,6 @@ fn setup( ..default() }); - let theta = std::f32::consts::FRAC_PI_4; - let light_transform = Mat4::from_euler(EulerRot::ZYX, 0.0, std::f32::consts::FRAC_PI_2, -theta); commands.spawn_bundle(DirectionalLightBundle { directional_light: DirectionalLight { illuminance: 100000.0, @@ -106,7 +106,12 @@ fn setup( shadows_enabled: true, ..default() }, - transform: Transform::from_matrix(light_transform), + transform: Transform::from_rotation(Quat::from_euler( + EulerRot::ZYX, + 0.0, + PI / 2., + -PI / 4., + )), ..default() }); diff --git a/examples/3d/shapes.rs b/examples/3d/shapes.rs index 354b156524e77..3e75decfdd47b 100644 --- a/examples/3d/shapes.rs +++ b/examples/3d/shapes.rs @@ -1,6 +1,8 @@ //! This example demonstrates the built-in 3d shapes in Bevy. //! The scene includes a patterned texture and a rotation for visualizing the normals and UVs. +use std::f32::consts::PI; + use bevy::{ prelude::*, render::render_resource::{Extent3d, TextureDimension, TextureFormat}, @@ -48,15 +50,12 @@ fn setup( .spawn_bundle(PbrBundle { mesh: shape, material: debug_material.clone(), - transform: Transform { - translation: Vec3::new( - -X_EXTENT / 2. + i as f32 / (num_shapes - 1) as f32 * X_EXTENT, - 2.0, - 0.0, - ), - rotation: Quat::from_rotation_x(-std::f32::consts::PI / 4.), - ..default() - }, + transform: Transform::from_xyz( + -X_EXTENT / 2. + i as f32 / (num_shapes - 1) as f32 * X_EXTENT, + 2.0, + 0.0, + ) + .with_rotation(Quat::from_rotation_x(-PI / 4.)), ..default() }) .insert(Shape); diff --git a/examples/3d/skybox.rs b/examples/3d/skybox.rs index ae6aa9a0f86c6..c1602ba5d57e8 100644 --- a/examples/3d/skybox.rs +++ b/examples/3d/skybox.rs @@ -1,5 +1,7 @@ //! Load a cubemap texture onto a cube like a skybox and cycle through different compressed texture formats +use std::f32::consts::PI; + use bevy::{ asset::LoadState, input::mouse::MouseMotion, @@ -66,11 +68,8 @@ fn setup(mut commands: Commands, asset_server: Res) { illuminance: 32000.0, ..default() }, - transform: Transform { - translation: Vec3::new(0.0, 2.0, 0.0), - rotation: Quat::from_rotation_x(-std::f32::consts::FRAC_PI_4), - ..default() - }, + transform: Transform::from_xyz(0.0, 2.0, 0.0) + .with_rotation(Quat::from_rotation_x(-PI / 4.)), ..default() }); @@ -78,7 +77,7 @@ fn setup(mut commands: Commands, asset_server: Res) { // camera commands .spawn_bundle(Camera3dBundle { - transform: Transform::from_xyz(0.0, 0.0, 8.0).looking_at(Vec3::default(), Vec3::Y), + transform: Transform::from_xyz(0.0, 0.0, 8.0).looking_at(Vec3::ZERO, Vec3::Y), ..default() }) .insert(CameraController::default()); @@ -410,16 +409,10 @@ pub fn camera_controller( if mouse_delta != Vec2::ZERO { // Apply look update - let (pitch, yaw) = ( - (options.pitch - mouse_delta.y * 0.5 * options.sensitivity * dt).clamp( - -0.99 * std::f32::consts::FRAC_PI_2, - 0.99 * std::f32::consts::FRAC_PI_2, - ), - options.yaw - mouse_delta.x * options.sensitivity * dt, - ); - transform.rotation = Quat::from_euler(EulerRot::ZYX, 0.0, yaw, pitch); - options.pitch = pitch; - options.yaw = yaw; + options.pitch = (options.pitch - mouse_delta.y * 0.5 * options.sensitivity * dt) + .clamp(-PI / 2., PI / 2.); + options.yaw -= mouse_delta.x * options.sensitivity * dt; + transform.rotation = Quat::from_euler(EulerRot::ZYX, 0.0, options.yaw, options.pitch); } } } diff --git a/examples/3d/split_screen.rs b/examples/3d/split_screen.rs index 6dffd9d60ba60..7724280840e49 100644 --- a/examples/3d/split_screen.rs +++ b/examples/3d/split_screen.rs @@ -1,5 +1,7 @@ //! Renders two cameras to the same window to accomplish "split screen". +use std::f32::consts::PI; + use bevy::{ core_pipeline::clear_color::ClearColorConfig, prelude::*, @@ -36,12 +38,7 @@ fn setup( // Light commands.spawn_bundle(DirectionalLightBundle { - transform: Transform::from_rotation(Quat::from_euler( - EulerRot::ZYX, - 0.0, - 1.0, - -std::f32::consts::FRAC_PI_4, - )), + transform: Transform::from_rotation(Quat::from_euler(EulerRot::ZYX, 0.0, 1.0, -PI / 4.)), directional_light: DirectionalLight { shadows_enabled: true, ..default() diff --git a/examples/3d/spotlight.rs b/examples/3d/spotlight.rs index d241d3d236eb0..c7ea21b568f9b 100644 --- a/examples/3d/spotlight.rs +++ b/examples/3d/spotlight.rs @@ -1,3 +1,5 @@ +use std::f32::consts::PI; + use bevy::{ diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, pbr::NotShadowCaster, @@ -74,8 +76,8 @@ fn setup( intensity: 200.0, // lumens color: Color::WHITE, shadows_enabled: true, - inner_angle: std::f32::consts::PI / 4.0 * 0.85, - outer_angle: std::f32::consts::PI / 4.0, + inner_angle: PI / 4.0 * 0.85, + outer_angle: PI / 4.0, ..default() }, ..default() @@ -123,13 +125,11 @@ fn light_sway(time: Res