Skip to main content

LightSource

Enum LightSource 

Source
pub enum LightSource {
    Distant {
        azimuth: f32,
        elevation: f32,
    },
    Point {
        x: f32,
        y: f32,
        z: f32,
    },
    Spot {
        x: f32,
        y: f32,
        z: f32,
        points_at_x: f32,
        points_at_y: f32,
        points_at_z: f32,
        specular_exponent: f32,
        limiting_cone_angle: Option<f32>,
    },
}
Expand description

Light source configurations for lighting effects.

Defines different types of light sources used in diffuse and specular lighting filter primitives. Each type has different characteristics and use cases.

Variants§

§

Distant

Distant light source (infinitely far away, like the sun).

All rays are parallel, creating uniform lighting across the surface. Direction is specified using spherical coordinates (azimuth and elevation).

Fields

§azimuth: f32

Azimuth angle in degrees (0° = pointing right, 90° = pointing up). Defines the horizontal direction of the light.

§elevation: f32

Elevation angle in degrees (0° = horizon, 90° = directly overhead). Defines the vertical angle of the light source.

§

Point

Point light source at a specific 3D position.

Light radiates uniformly in all directions from a single point. Intensity decreases with distance. Like a light bulb.

Fields

§x: f32

Light source X coordinate in user space.

§y: f32

Light source Y coordinate in user space.

§z: f32

Light source Z coordinate (height above the surface). Larger values create softer lighting across larger areas.

§

Spot

Spot light with position, direction, and cone angle.

Light emanates from a point in a specific direction with limited spread. Like a flashlight or stage spotlight with adjustable focus.

Fields

§x: f32

Light source X coordinate in user space.

§y: f32

Light source Y coordinate in user space.

§z: f32

Light source Z coordinate (height above the surface).

§points_at_x: f32

X coordinate the spotlight is aimed at.

§points_at_y: f32

Y coordinate the spotlight is aimed at.

§points_at_z: f32

Z coordinate the spotlight is aimed at.

§specular_exponent: f32

Specular exponent controlling the focus/sharpness of the spotlight beam. Higher values create tighter, more focused beams.

§limiting_cone_angle: Option<f32>

Optional cone angle in degrees limiting the spotlight spread. If None, the light spreads based only on the specular exponent.

Trait Implementations§

Source§

impl Clone for LightSource

Source§

fn clone(&self) -> LightSource

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LightSource

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for LightSource

Source§

fn eq(&self, other: &LightSource) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for LightSource

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.