Skip to main content

ifc_style/surface_style/
refraction.rs

1//! `IfcSurfaceStyleRefraction` projection.
2
3use crate::error::StyleResult;
4use crate::view::Record;
5
6/// Borrowed projection of `IfcSurfaceStyleRefraction`.
7#[derive(Debug, Clone, Copy)]
8pub struct SurfaceStyleRefraction<'m, 's> {
9    record: Record<'m, 's>,
10}
11
12impl<'m, 's> SurfaceStyleRefraction<'m, 's> {
13    pub(crate) fn from_record(record: Record<'m, 's>) -> Self {
14        Self { record }
15    }
16
17    /// The `RefractionIndex` attribute, when authored.
18    pub fn refraction_index(&self) -> StyleResult<Option<f64>> {
19        self.record.optional_number("RefractionIndex")
20    }
21
22    /// The `DispersionFactor` attribute, when authored.
23    pub fn dispersion_factor(&self) -> StyleResult<Option<f64>> {
24        self.record.optional_number("DispersionFactor")
25    }
26}