// /var/www/makearmy.io/app/app/laser-toolkit/_lib/conversions.ts // ---------- DPI / LPI / DPCM ---------- export function dpiToLpi(dpi: number) { return dpi; // 1:1 if treating “lines” as rows in raster (common convention) } export function dpiToDpcm(dpi: number) { return dpi / 2.54; } export function lpiToDpi(lpi: number) { return lpi; // same note as above } export function lpiToDpcm(lpi: number) { return lpi / 2.54; } export function dpcmToDpi(dpcm: number) { return dpcm * 2.54; } export function dpcmToLpi(dpcm: number) { return dpcm * 2.54; } // ---------- Power & Lens Scaler ---------- // Simple “keep energy density roughly constant” heuristic: // newSpeed ≈ oldSpeed * (toPower / fromPower) * (fromField / toField) export function scaleSpeed( oldSpeed_mm_s: number, fromPower_W: number, toPower_W: number, fromField_mm: number, toField_mm: number ) { if (fromPower_W <= 0 || toPower_W <= 0 || fromField_mm <= 0 || toField_mm <= 0) { return oldSpeed_mm_s; } const k = (toPower_W / fromPower_W) * (fromField_mm / toField_mm); return oldSpeed_mm_s * k; }