Struct Sphere

Source
pub struct Sphere {
    pub center: Point3,
    pub radius: f64,
    pub material: Option<Arc<dyn Material>>,
}
Expand description

A sphere defined by a center, a radius, and an optional material.

Fields§

§center: Point3

Center of the sphere.

§radius: f64

Radius of the sphere (negative radius creates a hollow sphere).

§material: Option<Arc<dyn Material>>

Material of the sphere (None means no material is assigned).

Implementations§

Source§

impl Sphere

Source

pub fn new(center: Point3, radius: f64) -> Self

Creates a sphere without a material (backward-compatible with earlier chapters).

Source

pub fn with_material( center: Point3, radius: f64, material: Arc<dyn Material>, ) -> Self

Creates a sphere with a material (used from chapter 1.9 onward).

Trait Implementations§

Source§

impl Hittable for Sphere

Source§

fn hit(&self, r: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>

Returns Some(HitRecord) if the ray intersects in the interval [t_min, t_max], or None.

Auto Trait Implementations§

§

impl Freeze for Sphere

§

impl !RefUnwindSafe for Sphere

§

impl Send for Sphere

§

impl Sync for Sphere

§

impl Unpin for Sphere

§

impl !UnwindSafe for Sphere

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.