euv_engine/lighting/enum.rs
1use super::*;
2
3/// Describes the kind of light source being represented.
4#[derive(Clone, Copy, Debug, Default, PartialEq)]
5pub enum LightType {
6 /// An infinitely distant directional light (e.g. sunlight). The `direction`
7 /// field carries the unit vector pointing away from the light source.
8 #[default]
9 Directional,
10 /// A positional point light with inverse-square falloff.
11 Point,
12 /// A positional spotlight with a cone defined by a unit direction and a
13 /// half-angle whose cosine is stored in the light's `spot_cos` field.
14 Spot,
15}
16
17/// Describes the shading model applied to a [`Material`] during lighting and
18/// ray-tracing evaluation.
19#[derive(Clone, Copy, Debug, Default, PartialEq)]
20pub enum MaterialKind {
21 /// Pure Lambertian diffuse, no specular highlight.
22 #[default]
23 Lambert,
24 /// Lambertian diffuse plus Blinn-Phong style specular highlight.
25 Phong,
26 /// Physically based rendering model placeholder (full PBR is intentionally
27 /// not implemented in this revision; we keep the variant so callers can
28 /// branch on it without a breaking change later).
29 Pbr,
30}