Crate eulumdat_photweb

Crate eulumdat_photweb 

Source
Expand description

§eulumdat-photweb

Photometric web representation and sampling for EULUMDAT/IES photometric data.

This crate provides a PhotometricWeb structure that represents the full 3D luminous intensity distribution of a light source. It supports:

  • Sampling: Get intensity at any C/G angle with bilinear interpolation
  • Normalization: Sample normalized (0.0-1.0) intensity values
  • Symmetry handling: Automatic expansion based on symmetry type
  • Mesh generation: Generate 3D LDC solid geometry (coming soon)

§Quick Start

use eulumdat::Eulumdat;
use eulumdat_photweb::PhotometricWeb;

let ldt = Eulumdat::from_file("luminaire.ldt")?;
let web = PhotometricWeb::from(&ldt);

// Sample at any angle
let intensity = web.sample(45.0, 30.0);
let normalized = web.sample_normalized(45.0, 30.0);

// Generate mesh vertices for 3D visualization
let vertices = web.generate_ldc_vertices(5.0, 5.0, 1.0);

Structs§

Color
RGBA color (0.0 - 1.0)
ColoredLdcMesh
A colored 3D mesh with positions, normals, colors, and indices.
LdcMesh
A 3D mesh representing the LDC (Luminous Distribution Curve) solid.
PhotometricWeb
A photometric web representing the full 3D luminous intensity distribution.
Vertex
A 3D vertex with position and normal.

Enums§

ColorMode
Color mode for 3D mesh visualization

Functions§

hsl_to_rgb
Convert HSL to RGB (all values 0.0-1.0)