Skip to content

Commit 0e13b1c

Browse files
authored
Added new method to Cone 3D primitive (#14325)
Reference to #14299. # Objective - Ensuring consistent practice of instantiating 3D primitive shapes in Bevy. ## Solution - Add `new` method, containing `radius` and `height` arguments, to Cone 3D primitive shape. ## Testing - Instantiated cone using same values (radius is `2.` and height is `5.`), using the current method and the added `new` method. - Basic setup of Bevy Default Plugins and `3DCameraBundle`. --- ## Showcase <details> <summary>Click to view showcase</summary> ```rust use bevy::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) .add_systems(Startup, setup) .run(); } fn setup( mut commands: Commands, mut meshes: ResMut<Assets<Mesh>>, mut materials: ResMut<Assets<StandardMaterial>>, ) { let new_cone = meshes.add(Cone::new(2., 5.)); commands.spawn(PbrBundle { mesh: new_cone, ..default() }); let old_cone = meshes.add(Cone { radius: 2., height: 5., }); commands.spawn(PbrBundle { mesh: old_cone, material: materials.add(Color::WHITE), transform: Transform::from_xyz(10., 0., 0.), ..default() }); commands.spawn(Camera3dBundle { transform: Transform::from_xyz(20., 20., 20.).looking_at(Vec3::ZERO, Dir3::Y), ..default() }); } ``` </details> ![image](https://github.com/user-attachments/assets/267f8124-8734-4c20-8840-fcf35375a778) - Pink Cone is created using the `new` method. - Black Cone is created using the existing method. ## Migration Guide - Addition of `new` method to the 3D primitive Cone struct.
1 parent cfcb56f commit 0e13b1c

File tree

1 file changed

+4
-0
lines changed
  • crates/bevy_math/src/primitives

1 file changed

+4
-0
lines changed

crates/bevy_math/src/primitives/dim3.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,10 @@ impl Default for Cone {
625625
}
626626

627627
impl Cone {
628+
/// Create a new [`Cone`] from a radius and height.
629+
pub fn new(radius: f32, height: f32) -> Self {
630+
Self { radius, height }
631+
}
628632
/// Get the base of the cone as a [`Circle`]
629633
#[inline(always)]
630634
pub fn base(&self) -> Circle {

0 commit comments

Comments
 (0)