pub struct HairBSDF {
    pub h: Float,
    pub gamma_o: Float,
    pub eta: Float,
    pub sigma_a: Spectrum,
    pub beta_m: Float,
    pub beta_n: Float,
    pub v: [Float; 4],
    pub s: Float,
    pub sin_2k_alpha: [Float; 3],
    pub cos_2k_alpha: [Float; 3],
    pub sc_opt: Option<Spectrum>,
}Fields
h: Floatgamma_o: Floateta: Floatsigma_a: Spectrumbeta_m: Floatbeta_n: Floatv: [Float; 4]s: Floatsin_2k_alpha: [Float; 3]cos_2k_alpha: [Float; 3]sc_opt: Option<Spectrum>Implementations
sourceimpl HairBSDF
 
impl HairBSDF
pub fn new(
    h: Float, 
    eta: Float, 
    sigma_a: Spectrum, 
    beta_m: Float, 
    beta_n: Float, 
    alpha: Float, 
    sc_opt: Option<Spectrum>
) -> Self
pub fn compute_ap_pdf(&self, cos_theta_o: Float) -> [Float; 4]
pub fn sigma_a_from_concentration(ce: Float, cp: Float) -> Spectrum
pub fn sigma_a_from_reflectance(c: Spectrum, beta_n: Float) -> Spectrum
pub fn f(&self, wo: &Vector3f, wi: &Vector3f) -> Spectrum
pub fn sample_f(
    &self, 
    wo: &Vector3f, 
    wi: &mut Vector3f, 
    sample: &Point2f, 
    pdf: &mut Float, 
    _sampled_type: &mut u8
) -> Spectrum
pub fn pdf(&self, wo: &Vector3f, wi: &Vector3f) -> Float
pub fn get_type(&self) -> u8
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for HairBSDF
impl Send for HairBSDF
impl Sync for HairBSDF
impl Unpin for HairBSDF
impl UnwindSafe for HairBSDF
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
    T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
    T: ?Sized, 
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Pointable for T
 
impl<T> Pointable for T
sourceimpl<R, P> ReadPrimitive<R> for P where
    R: Read + ReadEndian<P>,
    P: Default, 
 
impl<R, P> ReadPrimitive<R> for P where
    R: Read + ReadEndian<P>,
    P: Default, 
sourcefn read_from_little_endian(read: &mut R) -> Result<Self, Error>
 
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
sourcefn read_from_big_endian(read: &mut R) -> Result<Self, Error>
 
fn read_from_big_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
sourcefn read_from_native_endian(read: &mut R) -> Result<Self, Error>
 
fn read_from_native_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
sourceimpl<T> ToOwned for T where
    T: Clone, 
 
impl<T> ToOwned for T where
    T: Clone, 
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
 
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more