mirror of
https://github.com/bevyengine/bevy
synced 2024-11-10 07:04:33 +00:00
Add new
constructors for Circle
and Sphere
(#11526)
# Objective Make APIs more consistent and ergonomic by adding a `new` constructor for `Circle` and `Sphere`. This could be seen as a redundant "trivial constructor", but in practise, it seems valuable to me. I have lots of cases where formatting becomes ugly because of the lack of a constructor, like this: ```rust Circle { radius: self.radius(), } .contains_local_point(centered_pt) ``` With `new`, it'd be formatted much nicer: ```rust Circle::new(self.radius()).contains_local_point(centered_pt) ``` Of course, this is just one example, but my circle/sphere definitions very frequently span three or more lines when they could fit on one. Adding `new` also increases consistency. `Ellipse` has `new` already, and so does the mesh version of `Circle`. ## Solution Add a `new` constructor for `Circle` and `Sphere`.
This commit is contained in:
parent
10f95956a6
commit
dd4d07dc9c
2 changed files with 12 additions and 0 deletions
|
@ -88,6 +88,12 @@ pub struct Circle {
|
|||
impl Primitive2d for Circle {}
|
||||
|
||||
impl Circle {
|
||||
/// Create a new [`Circle`] from a `radius`
|
||||
#[inline(always)]
|
||||
pub const fn new(radius: f32) -> Self {
|
||||
Self { radius }
|
||||
}
|
||||
|
||||
/// Finds the point on the circle that is closest to the given `point`.
|
||||
///
|
||||
/// If the point is outside the circle, the returned point will be on the perimeter of the circle.
|
||||
|
|
|
@ -92,6 +92,12 @@ pub struct Sphere {
|
|||
impl Primitive3d for Sphere {}
|
||||
|
||||
impl Sphere {
|
||||
/// Create a new [`Sphere`] from a `radius`
|
||||
#[inline(always)]
|
||||
pub const fn new(radius: f32) -> Self {
|
||||
Self { radius }
|
||||
}
|
||||
|
||||
/// Finds the point on the sphere that is closest to the given `point`.
|
||||
///
|
||||
/// If the point is outside the sphere, the returned point will be on the surface of the sphere.
|
||||
|
|
Loading…
Reference in a new issue