lightwalk/primitives/
empty.rs

1use num::Float;
2
3use crate::Sdf;
4
5/// The empty SDF. Each point in space is infinitely far away from the
6/// surface.
7///
8/// This implements `Sdf<Scalar, DIM, State = ()>`.
9#[derive(PartialEq, Eq, Clone, Copy, Debug, Default, Hash)]
10pub struct Empty;
11
12impl<Scalar: Float, const DIM: usize> Sdf<Scalar, DIM> for Empty {
13    type State = ();
14
15    #[inline]
16    fn distance(&self, _: [Scalar; DIM]) -> Scalar {
17        Scalar::infinity()
18    }
19
20    #[inline]
21    fn state(&self, _: [Scalar; DIM]) {}
22}