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}