use super::*;
#[derive(Clone, Data, Debug, PartialEq)]
pub struct Ray {
#[get(type(copy))]
pub(crate) origin: Vector3D,
#[get(type(copy))]
pub(crate) direction: Vector3D,
#[get(type(copy))]
pub(crate) t_min: f64,
#[get(type(copy))]
pub(crate) t_max: f64,
#[get(type(copy))]
pub(crate) depth: u32,
}
#[derive(Clone, Data, Debug, PartialEq)]
pub struct Hit {
#[get(type(copy))]
pub(crate) t: f64,
#[get(type(copy))]
pub(crate) position: Vector3D,
#[get(type(copy))]
pub(crate) normal: Vector3D,
pub(crate) material: Material,
}
#[derive(Clone, Data, Debug, PartialEq)]
pub struct Occluder {
#[get(type(copy))]
pub(crate) kind: OccluderKind,
#[get(type(copy))]
pub(crate) center: Vector3D,
#[get(type(copy))]
pub(crate) extent: Vector3D,
pub(crate) material: Material,
}