use nalgebra::Vector3;
#[derive(Clone)]
pub struct DirectionalLightDefinition {
pub intensity: f32,
pub direction: Vector3<f32>,
pub color: Vector3<f32>,
}
#[derive(Clone)]
pub struct SpotLightDefinition {
pub intensity: f32,
pub color: Vector3<f32>,
pub direction: Vector3<f32>,
pub position: Vector3<f32>,
pub distance: f32,
pub sqr_distance: f32,
pub edge0: f32,
pub edge1: f32,
}
#[derive(Clone)]
pub struct PointLightDefinition {
pub intensity: f32,
pub position: Vector3<f32>,
pub color: Vector3<f32>,
pub radius: f32,
pub sqr_radius: f32,
}
#[derive(Clone)]
pub enum LightDefinition {
Directional(DirectionalLightDefinition),
Spot(SpotLightDefinition),
Point(PointLightDefinition),
}