@photivra/engine 0.6.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +674 -0
- package/CHANGELOG.md +191 -0
- package/CITATION.cff +1 -1
- package/CONTRIBUTING.md +76 -0
- package/DCO +33 -0
- package/NODE_SUPPORT.md +37 -0
- package/NOTICE +2 -0
- package/README.md +139 -72
- package/SECURITY.md +55 -0
- package/THIRD_PARTY.md +63 -0
- package/dist/camera/equivalent-focal-length.d.ts +9 -0
- package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
- package/dist/camera/equivalent-focal-length.js +9 -0
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +13 -0
- package/dist/camera/field-of-view.d.ts.map +1 -1
- package/dist/camera/field-of-view.js +13 -0
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/projected-object-size.d.ts +8 -0
- package/dist/camera/projected-object-size.d.ts.map +1 -1
- package/dist/camera/projected-object-size.js +8 -0
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +60 -0
- package/dist/capture/capture-export-metadata.d.ts.map +1 -0
- package/dist/capture/capture-export-metadata.js +62 -0
- package/dist/capture/capture-export-metadata.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +55 -0
- package/dist/capture/environment-raw-producer.d.ts.map +1 -0
- package/dist/capture/environment-raw-producer.js +88 -0
- package/dist/capture/environment-raw-producer.js.map +1 -0
- package/dist/capture/export-jpeg.d.ts +12 -0
- package/dist/capture/export-jpeg.d.ts.map +1 -0
- package/dist/capture/export-jpeg.js +126 -0
- package/dist/capture/export-jpeg.js.map +1 -0
- package/dist/capture/export-tiff.d.ts +45 -0
- package/dist/capture/export-tiff.d.ts.map +1 -0
- package/dist/capture/export-tiff.js +129 -0
- package/dist/capture/export-tiff.js.map +1 -0
- package/dist/capture/focus-control.d.ts +210 -0
- package/dist/capture/focus-control.d.ts.map +1 -0
- package/dist/capture/focus-control.js +664 -0
- package/dist/capture/focus-control.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +59 -0
- package/dist/capture/linear-encoding.d.ts.map +1 -0
- package/dist/capture/linear-encoding.js +98 -0
- package/dist/capture/linear-encoding.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +135 -0
- package/dist/capture/photographic-export.d.ts.map +1 -0
- package/dist/capture/photographic-export.js +273 -0
- package/dist/capture/photographic-export.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +12 -0
- package/dist/capture/raw-frame-limits.d.ts.map +1 -0
- package/dist/capture/raw-frame-limits.js +13 -0
- package/dist/capture/raw-frame-limits.js.map +1 -0
- package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
- package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
- package/dist/capture/raw-frame-reconstruction.js +146 -0
- package/dist/capture/raw-frame-reconstruction.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +120 -0
- package/dist/capture/release-sequence.d.ts.map +1 -0
- package/dist/capture/release-sequence.js +446 -0
- package/dist/capture/release-sequence.js.map +1 -0
- package/dist/capture/sensor-raw-frame.d.ts +34 -0
- package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
- package/dist/capture/sensor-raw-frame.js +106 -0
- package/dist/capture/sensor-raw-frame.js.map +1 -0
- package/dist/capture/sensor-raw-producer.d.ts +51 -0
- package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
- package/dist/capture/sensor-raw-producer.js +235 -0
- package/dist/capture/sensor-raw-producer.js.map +1 -0
- package/dist/capture/simulated-capture.d.ts +125 -0
- package/dist/capture/simulated-capture.d.ts.map +1 -0
- package/dist/capture/simulated-capture.js +248 -0
- package/dist/capture/simulated-capture.js.map +1 -0
- package/dist/color/capture-color.d.ts +73 -0
- package/dist/color/capture-color.d.ts.map +1 -0
- package/dist/color/capture-color.js +145 -0
- package/dist/color/capture-color.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +23 -0
- package/dist/color/sensor-color-development.d.ts.map +1 -0
- package/dist/color/sensor-color-development.js +56 -0
- package/dist/color/sensor-color-development.js.map +1 -0
- package/dist/color/white-balance.d.ts +175 -0
- package/dist/color/white-balance.d.ts.map +1 -0
- package/dist/color/white-balance.js +606 -0
- package/dist/color/white-balance.js.map +1 -0
- package/dist/composition/image-formation-plan.d.ts +481 -0
- package/dist/composition/image-formation-plan.d.ts.map +1 -0
- package/dist/composition/image-formation-plan.js +2499 -0
- package/dist/composition/image-formation-plan.js.map +1 -0
- package/dist/composition/plan-consumer.d.ts +53 -0
- package/dist/composition/plan-consumer.d.ts.map +1 -0
- package/dist/composition/plan-consumer.js +119 -0
- package/dist/composition/plan-consumer.js.map +1 -0
- package/dist/core/calculation-result.d.ts.map +1 -1
- package/dist/core/calculation-result.js +6 -0
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +18 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +44 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/configuration-error.d.ts +6 -0
- package/dist/core/configuration-error.d.ts.map +1 -1
- package/dist/core/configuration-error.js +6 -0
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +6 -0
- package/dist/core/evidence-provenance.d.ts.map +1 -1
- package/dist/core/evidence-provenance.js +7 -0
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +9 -3
- package/dist/core/image-formation.d.ts.map +1 -1
- package/dist/core/image-formation.js +29 -5
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +25 -0
- package/dist/core/owned-data.d.ts.map +1 -0
- package/dist/core/owned-data.js +34 -0
- package/dist/core/owned-data.js.map +1 -0
- package/dist/core/record-validation.d.ts +17 -0
- package/dist/core/record-validation.d.ts.map +1 -0
- package/dist/core/record-validation.js +44 -0
- package/dist/core/record-validation.js.map +1 -0
- package/dist/core/scientific-assurance.d.ts +101 -0
- package/dist/core/scientific-assurance.d.ts.map +1 -0
- package/dist/core/scientific-assurance.js +301 -0
- package/dist/core/scientific-assurance.js.map +1 -0
- package/dist/core/spectral-composition.d.ts +106 -0
- package/dist/core/spectral-composition.d.ts.map +1 -0
- package/dist/core/spectral-composition.js +334 -0
- package/dist/core/spectral-composition.js.map +1 -0
- package/dist/core/spectral.d.ts +34 -0
- package/dist/core/spectral.d.ts.map +1 -0
- package/dist/core/spectral.js +57 -0
- package/dist/core/spectral.js.map +1 -0
- package/dist/core/validation.d.ts +6 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +6 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +9 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +10 -0
- package/dist/core/version.js.map +1 -0
- package/dist/equipment/exposure-capabilities.d.ts +125 -0
- package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
- package/dist/equipment/exposure-capabilities.js +391 -0
- package/dist/equipment/exposure-capabilities.js.map +1 -0
- package/dist/equipment/generic-tier-assets.d.ts +82 -0
- package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-assets.js +119 -0
- package/dist/equipment/generic-tier-assets.js.map +1 -0
- package/dist/equipment/generic-tier-presets.d.ts +57 -0
- package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-presets.js +122 -0
- package/dist/equipment/generic-tier-presets.js.map +1 -0
- package/dist/equipment/iso-capabilities.d.ts +143 -0
- package/dist/equipment/iso-capabilities.d.ts.map +1 -0
- package/dist/equipment/iso-capabilities.js +578 -0
- package/dist/equipment/iso-capabilities.js.map +1 -0
- package/dist/equipment/metering-capabilities.d.ts +58 -0
- package/dist/equipment/metering-capabilities.d.ts.map +1 -0
- package/dist/equipment/metering-capabilities.js +151 -0
- package/dist/equipment/metering-capabilities.js.map +1 -0
- package/dist/equipment/release-capabilities.d.ts +33 -0
- package/dist/equipment/release-capabilities.d.ts.map +1 -0
- package/dist/equipment/release-capabilities.js +176 -0
- package/dist/equipment/release-capabilities.js.map +1 -0
- package/dist/exposure/exposure-duration-control.d.ts +72 -0
- package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
- package/dist/exposure/exposure-duration-control.js +161 -0
- package/dist/exposure/exposure-duration-control.js.map +1 -0
- package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
- package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
- package/dist/exposure/exposure-mode-resolver.js +1905 -0
- package/dist/exposure/exposure-mode-resolver.js.map +1 -0
- package/dist/exposure/exposure.d.ts +8 -0
- package/dist/exposure/exposure.d.ts.map +1 -1
- package/dist/exposure/exposure.js +8 -0
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash.d.ts +179 -0
- package/dist/exposure/flash.d.ts.map +1 -0
- package/dist/exposure/flash.js +644 -0
- package/dist/exposure/flash.js.map +1 -0
- package/dist/exposure/metering-scene-radiance.d.ts +72 -0
- package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
- package/dist/exposure/metering-scene-radiance.js +222 -0
- package/dist/exposure/metering-scene-radiance.js.map +1 -0
- package/dist/exposure/metering-target.d.ts +67 -0
- package/dist/exposure/metering-target.d.ts.map +1 -0
- package/dist/exposure/metering-target.js +265 -0
- package/dist/exposure/metering-target.js.map +1 -0
- package/dist/exposure/metering-temporal.d.ts +76 -0
- package/dist/exposure/metering-temporal.d.ts.map +1 -0
- package/dist/exposure/metering-temporal.js +210 -0
- package/dist/exposure/metering-temporal.js.map +1 -0
- package/dist/exposure/metering.d.ts +124 -0
- package/dist/exposure/metering.d.ts.map +1 -0
- package/dist/exposure/metering.js +422 -0
- package/dist/exposure/metering.js.map +1 -0
- package/dist/exposure/program-line.d.ts +29 -0
- package/dist/exposure/program-line.d.ts.map +1 -0
- package/dist/exposure/program-line.js +126 -0
- package/dist/exposure/program-line.js.map +1 -0
- package/dist/index.d.ts +87 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -6
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +16 -0
- package/dist/motion/camera-rotation.d.ts.map +1 -1
- package/dist/motion/camera-rotation.js +16 -0
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
- package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
- package/dist/motion/capture-rotation-trajectory.js +15 -0
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
- package/dist/motion/extended-object-projection.d.ts +175 -0
- package/dist/motion/extended-object-projection.d.ts.map +1 -0
- package/dist/motion/extended-object-projection.js +402 -0
- package/dist/motion/extended-object-projection.js.map +1 -0
- package/dist/motion/projected-motion.d.ts +11 -0
- package/dist/motion/projected-motion.d.ts.map +1 -1
- package/dist/motion/projected-motion.js +11 -0
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/optics/aperture.d.ts +9 -0
- package/dist/optics/aperture.d.ts.map +1 -1
- package/dist/optics/aperture.js +9 -0
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/circle-of-confusion.d.ts +8 -0
- package/dist/optics/circle-of-confusion.d.ts.map +1 -1
- package/dist/optics/circle-of-confusion.js +8 -0
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +128 -0
- package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
- package/dist/optics/complex-pupil-psf.js +462 -0
- package/dist/optics/complex-pupil-psf.js.map +1 -0
- package/dist/optics/depth-of-field.d.ts +18 -0
- package/dist/optics/depth-of-field.d.ts.map +1 -1
- package/dist/optics/depth-of-field.js +29 -4
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction.d.ts +8 -0
- package/dist/optics/diffraction.d.ts.map +1 -1
- package/dist/optics/diffraction.js +8 -0
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +13 -0
- package/dist/optics/focus-breathing.d.ts.map +1 -1
- package/dist/optics/focus-breathing.js +13 -0
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +47 -0
- package/dist/optics/focus-state.d.ts.map +1 -0
- package/dist/optics/focus-state.js +78 -0
- package/dist/optics/focus-state.js.map +1 -0
- package/dist/optics/front-of-lens-filter.d.ts +114 -0
- package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
- package/dist/optics/front-of-lens-filter.js +468 -0
- package/dist/optics/front-of-lens-filter.js.map +1 -0
- package/dist/optics/illumination-vignetting.d.ts +9 -0
- package/dist/optics/illumination-vignetting.d.ts.map +1 -1
- package/dist/optics/illumination-vignetting.js +9 -0
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.js +11 -0
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-profile.d.ts +217 -0
- package/dist/optics/lens-psf-profile.d.ts.map +1 -0
- package/dist/optics/lens-psf-profile.js +823 -0
- package/dist/optics/lens-psf-profile.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +67 -0
- package/dist/optics/polygon-diffraction.d.ts.map +1 -0
- package/dist/optics/polygon-diffraction.js +145 -0
- package/dist/optics/polygon-diffraction.js.map +1 -0
- package/dist/optics/profile-contract.d.ts +42 -0
- package/dist/optics/profile-contract.d.ts.map +1 -0
- package/dist/optics/profile-contract.js +92 -0
- package/dist/optics/profile-contract.js.map +1 -0
- package/dist/optics/psf-foundation.d.ts +16 -3
- package/dist/optics/psf-foundation.d.ts.map +1 -1
- package/dist/optics/psf-foundation.js +28 -15
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/radial-distortion.d.ts +18 -0
- package/dist/optics/radial-distortion.d.ts.map +1 -1
- package/dist/optics/radial-distortion.js +18 -0
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-irradiance.js +662 -0
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.js +82 -0
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
- package/dist/optics/sensor-environment-query.d.ts +60 -0
- package/dist/optics/sensor-environment-query.d.ts.map +1 -0
- package/dist/optics/sensor-environment-query.js +50 -0
- package/dist/optics/sensor-environment-query.js.map +1 -0
- package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
- package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
- package/dist/optics/sensor-psf-quadrature.js +101 -0
- package/dist/optics/sensor-psf-quadrature.js.map +1 -0
- package/dist/optics/sensor-psf-support.d.ts +20 -0
- package/dist/optics/sensor-psf-support.d.ts.map +1 -0
- package/dist/optics/sensor-psf-support.js +13 -0
- package/dist/optics/sensor-psf-support.js.map +1 -0
- package/dist/optics/stray-light.d.ts +91 -0
- package/dist/optics/stray-light.d.ts.map +1 -0
- package/dist/optics/stray-light.js +110 -0
- package/dist/optics/stray-light.js.map +1 -0
- package/dist/optics/thin-lens.d.ts +8 -0
- package/dist/optics/thin-lens.d.ts.map +1 -1
- package/dist/optics/thin-lens.js +8 -0
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/output/capture-corrected-sdr.d.ts +49 -0
- package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
- package/dist/output/capture-corrected-sdr.js +149 -0
- package/dist/output/capture-corrected-sdr.js.map +1 -0
- package/dist/output/capture-geometry.d.ts.map +1 -1
- package/dist/output/capture-geometry.js +8 -0
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +49 -0
- package/dist/output/capture-sdr.d.ts.map +1 -0
- package/dist/output/capture-sdr.js +90 -0
- package/dist/output/capture-sdr.js.map +1 -0
- package/dist/output/crop.d.ts +6 -0
- package/dist/output/crop.d.ts.map +1 -1
- package/dist/output/crop.js +6 -0
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +137 -0
- package/dist/output/geometric-transforms.d.ts.map +1 -0
- package/dist/output/geometric-transforms.js +225 -0
- package/dist/output/geometric-transforms.js.map +1 -0
- package/dist/output/lens-corrections.d.ts +121 -0
- package/dist/output/lens-corrections.d.ts.map +1 -0
- package/dist/output/lens-corrections.js +210 -0
- package/dist/output/lens-corrections.js.map +1 -0
- package/dist/output/sdr-rendering.d.ts +81 -0
- package/dist/output/sdr-rendering.d.ts.map +1 -0
- package/dist/output/sdr-rendering.js +106 -0
- package/dist/output/sdr-rendering.js.map +1 -0
- package/dist/output/subject-framing-crop.d.ts +8 -0
- package/dist/output/subject-framing-crop.d.ts.map +1 -1
- package/dist/output/subject-framing-crop.js +8 -0
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/schema/camera.d.ts +6 -0
- package/dist/schema/camera.d.ts.map +1 -1
- package/dist/schema/illumination-spectral.d.ts +51 -0
- package/dist/schema/illumination-spectral.d.ts.map +1 -0
- package/dist/schema/illumination-spectral.js +132 -0
- package/dist/schema/illumination-spectral.js.map +1 -0
- package/dist/schema/illumination-temporal.d.ts +156 -0
- package/dist/schema/illumination-temporal.d.ts.map +1 -0
- package/dist/schema/illumination-temporal.js +554 -0
- package/dist/schema/illumination-temporal.js.map +1 -0
- package/dist/schema/illumination.d.ts +138 -0
- package/dist/schema/illumination.d.ts.map +1 -0
- package/dist/schema/illumination.js +483 -0
- package/dist/schema/illumination.js.map +1 -0
- package/dist/schema/scene-radiance-temporal.d.ts +107 -0
- package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
- package/dist/schema/scene-radiance-temporal.js +259 -0
- package/dist/schema/scene-radiance-temporal.js.map +1 -0
- package/dist/schema/scene-radiance.d.ts +185 -0
- package/dist/schema/scene-radiance.d.ts.map +1 -0
- package/dist/schema/scene-radiance.js +535 -0
- package/dist/schema/scene-radiance.js.map +1 -0
- package/dist/schema/scene.d.ts +7 -0
- package/dist/schema/scene.d.ts.map +1 -1
- package/dist/schema/validation.d.ts.map +1 -1
- package/dist/schema/validation.js +7 -0
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +199 -0
- package/dist/sensor/accumulated-charge.d.ts.map +1 -0
- package/dist/sensor/accumulated-charge.js +450 -0
- package/dist/sensor/accumulated-charge.js.map +1 -0
- package/dist/sensor/architecture.d.ts +48 -13
- package/dist/sensor/architecture.d.ts.map +1 -1
- package/dist/sensor/architecture.js +58 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
- package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
- package/dist/sensor/camera-saturation-capacity.js +356 -0
- package/dist/sensor/camera-saturation-capacity.js.map +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.js +14 -0
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +63 -0
- package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
- package/dist/sensor/capture-mode-timing.js +270 -0
- package/dist/sensor/capture-mode-timing.js.map +1 -0
- package/dist/sensor/capture-mode.d.ts.map +1 -1
- package/dist/sensor/capture-mode.js +13 -0
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts.map +1 -1
- package/dist/sensor/color-sampling.js +19 -0
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
- package/dist/sensor/constant-rate-temporal-integration.js +382 -0
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
- package/dist/sensor/dark-current.d.ts +169 -0
- package/dist/sensor/dark-current.d.ts.map +1 -0
- package/dist/sensor/dark-current.js +427 -0
- package/dist/sensor/dark-current.js.map +1 -0
- package/dist/sensor/environment-photo-signal.d.ts +123 -0
- package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
- package/dist/sensor/environment-photo-signal.js +186 -0
- package/dist/sensor/environment-photo-signal.js.map +1 -0
- package/dist/sensor/eqe-electron-rate.d.ts +107 -0
- package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
- package/dist/sensor/eqe-electron-rate.js +561 -0
- package/dist/sensor/eqe-electron-rate.js.map +1 -0
- package/dist/sensor/eqe-local-exposure.d.ts +65 -0
- package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-local-exposure.js +84 -0
- package/dist/sensor/eqe-local-exposure.js.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.js +62 -0
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/exposure-window.d.ts +14 -0
- package/dist/sensor/exposure-window.d.ts.map +1 -1
- package/dist/sensor/exposure-window.js +14 -0
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/iso-signal-chain.d.ts +148 -0
- package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
- package/dist/sensor/iso-signal-chain.js +411 -0
- package/dist/sensor/iso-signal-chain.js.map +1 -0
- package/dist/sensor/local-exposure-binding.d.ts +87 -0
- package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
- package/dist/sensor/local-exposure-binding.js +214 -0
- package/dist/sensor/local-exposure-binding.js.map +1 -0
- package/dist/sensor/optical-stack.d.ts.map +1 -1
- package/dist/sensor/optical-stack.js +17 -0
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +97 -0
- package/dist/sensor/photon-energy.d.ts.map +1 -0
- package/dist/sensor/photon-energy.js +390 -0
- package/dist/sensor/photon-energy.js.map +1 -0
- package/dist/sensor/physical-charge-capacity.d.ts +130 -0
- package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
- package/dist/sensor/physical-charge-capacity.js +345 -0
- package/dist/sensor/physical-charge-capacity.js.map +1 -0
- package/dist/sensor/pixel-pitch.d.ts +6 -0
- package/dist/sensor/pixel-pitch.d.ts.map +1 -1
- package/dist/sensor/pixel-pitch.js +6 -0
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +10 -0
- package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
- package/dist/sensor/radiometry-readiness.js +10 -0
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +314 -0
- package/dist/sensor/raw-readout.d.ts.map +1 -0
- package/dist/sensor/raw-readout.js +914 -0
- package/dist/sensor/raw-readout.js.map +1 -0
- package/dist/sensor/raw-reconstruction.d.ts +170 -0
- package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
- package/dist/sensor/raw-reconstruction.js +424 -0
- package/dist/sensor/raw-reconstruction.js.map +1 -0
- package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
- package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
- package/dist/sensor/readout-exposure-linkage.js +12 -0
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +13 -0
- package/dist/sensor/readout-timing.d.ts.map +1 -1
- package/dist/sensor/readout-timing.js +13 -0
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +136 -0
- package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
- package/dist/sensor/response-application-compatibility.js +408 -0
- package/dist/sensor/response-application-compatibility.js.map +1 -0
- package/dist/sensor/response-operating-range.d.ts +173 -0
- package/dist/sensor/response-operating-range.d.ts.map +1 -0
- package/dist/sensor/response-operating-range.js +672 -0
- package/dist/sensor/response-operating-range.js.map +1 -0
- package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
- package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
- package/dist/sensor/responsivity-photocurrent.js +644 -0
- package/dist/sensor/responsivity-photocurrent.js.map +1 -0
- package/dist/sensor/sampling-aperture.d.ts.map +1 -1
- package/dist/sensor/sampling-aperture.js +14 -0
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/sensor-geometry.d.ts +12 -0
- package/dist/sensor/sensor-geometry.d.ts.map +1 -1
- package/dist/sensor/sensor-geometry.js +12 -0
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +10 -0
- package/dist/sensor/signal-noise.d.ts.map +1 -1
- package/dist/sensor/signal-noise.js +10 -0
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
- package/dist/sensor/spatial-sample-reduction.js +51 -5
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.js +27 -0
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
- package/dist/sensor/spatio-spectral-reduction.js +373 -0
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
- package/dist/sensor/spectral-coverage.d.ts +24 -0
- package/dist/sensor/spectral-coverage.d.ts.map +1 -0
- package/dist/sensor/spectral-coverage.js +86 -0
- package/dist/sensor/spectral-coverage.js.map +1 -0
- package/dist/sensor/spectral-quadrature.d.ts +169 -0
- package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
- package/dist/sensor/spectral-quadrature.js +542 -0
- package/dist/sensor/spectral-quadrature.js.map +1 -0
- package/dist/sensor/spectral-response.d.ts +192 -0
- package/dist/sensor/spectral-response.d.ts.map +1 -0
- package/dist/sensor/spectral-response.js +664 -0
- package/dist/sensor/spectral-response.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
- package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
- package/dist/sensor/temporal-eqe-sum.js +30 -0
- package/dist/sensor/temporal-eqe-sum.js.map +1 -0
- package/dist/sensor/temporal-photo-signal.d.ts +38 -0
- package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
- package/dist/sensor/temporal-photo-signal.js +110 -0
- package/dist/sensor/temporal-photo-signal.js.map +1 -0
- package/dist/sensor/temporal-sample-binding.d.ts +6 -0
- package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
- package/dist/sensor/temporal-sample-binding.js +32 -0
- package/dist/sensor/temporal-sample-binding.js.map +1 -0
- package/dist/simulation/poc-simulation.d.ts.map +1 -1
- package/dist/simulation/poc-simulation.js +34 -11
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +11 -0
- package/dist/stabilization/camera-shake.d.ts.map +1 -1
- package/dist/stabilization/camera-shake.js +11 -0
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +218 -0
- package/dist/stabilization/system.d.ts.map +1 -0
- package/dist/stabilization/system.js +695 -0
- package/dist/stabilization/system.js.map +1 -0
- package/docs/API_REFERENCE.md +2017 -0
- package/docs/API_STYLE.md +139 -3
- package/docs/ARCHITECTURE.md +134 -24
- package/docs/AUTOMATION_COORDINATION.md +2 -0
- package/docs/CAPTURE_COLOR.md +25 -0
- package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
- package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
- package/docs/CAPTURE_SDR.md +20 -0
- package/docs/DEVELOPERS.md +60 -0
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
- package/docs/EXPORT_ACCEPTANCE.md +133 -0
- package/docs/GENERIC_TIER_PRESETS.md +269 -0
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
- package/docs/IMAGE_FORMATION.md +80 -10
- package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
- package/docs/MOTION_AND_SIGNAL.md +5 -3
- package/docs/NUMERICAL_CORRECTNESS.md +191 -0
- package/docs/PERFORMANCE_BASELINE.md +56 -0
- package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
- package/docs/PHYSICS_FOUNDATION.md +152 -5
- package/docs/POC_API.md +2 -0
- package/docs/POC_PROJECTION_REUSE.md +124 -0
- package/docs/PROCESSED_OUTPUT.md +157 -0
- package/docs/PRODUCTION_COMPOSITION.md +373 -0
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
- package/docs/PROVENANCE.md +4 -0
- package/docs/PSF_FOUNDATION.md +110 -88
- package/docs/RAW_FRAME_ENVELOPE.md +56 -0
- package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
- package/docs/RELEASE_1_0.md +66 -0
- package/docs/RELEASE_1_0_1.md +61 -0
- package/docs/RELEASE_AUDIT.md +39 -0
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
- package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
- package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
- package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
- package/docs/SDR_RENDERING.md +33 -0
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
- package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
- package/docs/SENSOR_RAW_FRAME.md +20 -0
- package/docs/SENSOR_RAW_PRODUCER.md +77 -0
- package/docs/SIGNAL_CONFORMANCE.md +23 -0
- package/docs/SIMULATED_CAPTURE.md +65 -0
- package/docs/STABILIZATION.md +160 -17
- package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
- package/docs/TIER_ACCEPTANCE.md +129 -0
- package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
- package/docs/USAGE.md +5050 -1047
- package/docs/V1_COMPOSITION_MAP.md +123 -0
- package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
- package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
- package/docs/api/camera-equivalent-focal-length.md +53 -0
- package/docs/api/camera-field-of-view.md +119 -0
- package/docs/api/camera-projected-object-size.md +54 -0
- package/docs/api/capture-capture-export-metadata.md +107 -0
- package/docs/api/capture-environment-raw-producer.md +56 -0
- package/docs/api/capture-focus-control.md +419 -0
- package/docs/api/capture-linear-encoding.md +99 -0
- package/docs/api/capture-photographic-export.md +172 -0
- package/docs/api/capture-raw-frame-reconstruction.md +87 -0
- package/docs/api/capture-release-sequence.md +252 -0
- package/docs/api/capture-sensor-raw-frame.md +66 -0
- package/docs/api/capture-sensor-raw-producer.md +98 -0
- package/docs/api/capture-simulated-capture.md +179 -0
- package/docs/api/color-capture-color.md +122 -0
- package/docs/api/color-white-balance.md +386 -0
- package/docs/api/composition-image-formation-plan.md +825 -0
- package/docs/api/composition-plan-consumer.md +98 -0
- package/docs/api/core-calculation-result.md +220 -0
- package/docs/api/core-configuration-error.md +19 -0
- package/docs/api/core-image-formation.md +204 -0
- package/docs/api/core-scientific-assurance.md +214 -0
- package/docs/api/core-spectral-composition.md +268 -0
- package/docs/api/core-spectral.md +78 -0
- package/docs/api/core-validation.md +34 -0
- package/docs/api/core-version.md +14 -0
- package/docs/api/equipment-exposure-capabilities.md +270 -0
- package/docs/api/equipment-generic-tier-assets.md +82 -0
- package/docs/api/equipment-generic-tier-presets.md +103 -0
- package/docs/api/equipment-iso-capabilities.md +295 -0
- package/docs/api/equipment-metering-capabilities.md +126 -0
- package/docs/api/equipment-release-capabilities.md +91 -0
- package/docs/api/exports.json +5656 -0
- package/docs/api/exposure-exposure-duration-control.md +115 -0
- package/docs/api/exposure-exposure-mode-resolver.md +966 -0
- package/docs/api/exposure-exposure.md +150 -0
- package/docs/api/exposure-flash.md +327 -0
- package/docs/api/exposure-metering-scene-radiance.md +154 -0
- package/docs/api/exposure-metering-target.md +134 -0
- package/docs/api/exposure-metering-temporal.md +77 -0
- package/docs/api/exposure-metering.md +172 -0
- package/docs/api/exposure-program-line.md +64 -0
- package/docs/api/motion-camera-rotation.md +215 -0
- package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
- package/docs/api/motion-capture-rotation-trajectory.md +132 -0
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
- package/docs/api/motion-extended-object-projection.md +312 -0
- package/docs/api/motion-projected-motion.md +60 -0
- package/docs/api/optics-aperture.md +69 -0
- package/docs/api/optics-circle-of-confusion.md +46 -0
- package/docs/api/optics-complex-pupil-psf.md +193 -0
- package/docs/api/optics-depth-of-field.md +92 -0
- package/docs/api/optics-diffraction.md +46 -0
- package/docs/api/optics-focus-breathing.md +119 -0
- package/docs/api/optics-focus-state.md +64 -0
- package/docs/api/optics-front-of-lens-filter.md +263 -0
- package/docs/api/optics-illumination-vignetting.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
- package/docs/api/optics-lens-psf-profile.md +380 -0
- package/docs/api/optics-polygon-diffraction.md +68 -0
- package/docs/api/optics-profile-contract.md +47 -0
- package/docs/api/optics-psf-foundation.md +181 -0
- package/docs/api/optics-radial-distortion.md +194 -0
- package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
- package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
- package/docs/api/optics-sensor-environment-query.md +58 -0
- package/docs/api/optics-sensor-psf-quadrature.md +81 -0
- package/docs/api/optics-stray-light.md +109 -0
- package/docs/api/optics-thin-lens.md +53 -0
- package/docs/api/output-capture-corrected-sdr.md +71 -0
- package/docs/api/output-capture-geometry.md +500 -0
- package/docs/api/output-capture-sdr.md +69 -0
- package/docs/api/output-crop.md +47 -0
- package/docs/api/output-geometric-transforms.md +199 -0
- package/docs/api/output-lens-corrections.md +162 -0
- package/docs/api/output-sdr-rendering.md +122 -0
- package/docs/api/output-subject-framing-crop.md +59 -0
- package/docs/api/schema-camera.md +84 -0
- package/docs/api/schema-illumination-spectral.md +77 -0
- package/docs/api/schema-illumination-temporal.md +289 -0
- package/docs/api/schema-illumination.md +246 -0
- package/docs/api/schema-scene-radiance-temporal.md +215 -0
- package/docs/api/schema-scene-radiance.md +415 -0
- package/docs/api/schema-scene.md +105 -0
- package/docs/api/schema-validation.md +25 -0
- package/docs/api/sensor-accumulated-charge.md +273 -0
- package/docs/api/sensor-architecture.md +155 -0
- package/docs/api/sensor-camera-saturation-capacity.md +215 -0
- package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
- package/docs/api/sensor-capture-mode-timing.md +123 -0
- package/docs/api/sensor-capture-mode.md +321 -0
- package/docs/api/sensor-color-sampling.md +228 -0
- package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
- package/docs/api/sensor-dark-current.md +227 -0
- package/docs/api/sensor-environment-photo-signal.md +77 -0
- package/docs/api/sensor-eqe-electron-rate.md +166 -0
- package/docs/api/sensor-eqe-local-exposure.md +68 -0
- package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
- package/docs/api/sensor-exposure-window.md +183 -0
- package/docs/api/sensor-iso-signal-chain.md +264 -0
- package/docs/api/sensor-local-exposure-binding.md +126 -0
- package/docs/api/sensor-optical-stack.md +211 -0
- package/docs/api/sensor-photon-energy.md +149 -0
- package/docs/api/sensor-physical-charge-capacity.md +196 -0
- package/docs/api/sensor-pixel-pitch.md +41 -0
- package/docs/api/sensor-radiometry-readiness.md +240 -0
- package/docs/api/sensor-raw-readout.md +499 -0
- package/docs/api/sensor-raw-reconstruction.md +260 -0
- package/docs/api/sensor-readout-exposure-linkage.md +172 -0
- package/docs/api/sensor-readout-timing.md +209 -0
- package/docs/api/sensor-response-application-compatibility.md +256 -0
- package/docs/api/sensor-response-operating-range.md +293 -0
- package/docs/api/sensor-responsivity-photocurrent.md +245 -0
- package/docs/api/sensor-sampling-aperture.md +221 -0
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
- package/docs/api/sensor-sensor-geometry.md +143 -0
- package/docs/api/sensor-signal-noise.md +75 -0
- package/docs/api/sensor-spatial-sample-reduction.md +186 -0
- package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
- package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
- package/docs/api/sensor-spectral-coverage.md +33 -0
- package/docs/api/sensor-spectral-quadrature.md +183 -0
- package/docs/api/sensor-spectral-response.md +291 -0
- package/docs/api/sensor-temporal-photo-signal.md +62 -0
- package/docs/api/simulation-poc-simulation.md +364 -0
- package/docs/api/stabilization-camera-shake.md +71 -0
- package/docs/api/stabilization-system.md +442 -0
- package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
- package/docs/examples/production-capture.mjs +34 -0
- package/docs/examples/production-request.json +4613 -0
- package/docs/examples/quick-start.mjs +12 -0
- package/docs/validation/documentation-fragments.json +212 -0
- package/docs/validation/release-audit-inventory.json +1306 -0
- package/docs/validation/tier-acceptance-report-v1.json +2538 -0
- package/package.json +15 -3
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# optics/lateral-chromatic-aberration.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateInverseLateralChromaticAberrationMapping
|
|
6
|
+
|
|
7
|
+
Inverse-maps one distorted output destination independently for the
|
|
8
|
+
representative red/green/blue channels.
|
|
9
|
+
|
|
10
|
+
Renderers can use the returned per-channel ideal source coordinates for
|
|
11
|
+
inverse sampling without inventing chromatic-aberration equations.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
export function calculateInverseLateralChromaticAberrationMapping(
|
|
15
|
+
input: CalculateInverseLateralChromaticAberrationMappingInput
|
|
16
|
+
): CalculationResult<InverseLateralChromaticAberrationMapping>;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
20
|
+
|
|
21
|
+
## CalculateInverseLateralChromaticAberrationMappingInput
|
|
22
|
+
|
|
23
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
export interface CalculateInverseLateralChromaticAberrationMappingInput {
|
|
27
|
+
/**
|
|
28
|
+
* Distorted output image-plane destination. Each output channel is inverse-
|
|
29
|
+
* mapped independently to its ideal source coordinate.
|
|
30
|
+
*/
|
|
31
|
+
distortedImagePointMm: LensFieldPointMm;
|
|
32
|
+
profile: LateralChromaticAberrationProfile;
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## calculateInverseLateralChromaticAberrationMappings
|
|
37
|
+
|
|
38
|
+
Inverse-maps multiple distorted destinations while resolving the shared CA
|
|
39
|
+
profile once and validating each combined channel profile once for the
|
|
40
|
+
complete batch.
|
|
41
|
+
|
|
42
|
+
Per-point values match calculateInverseLateralChromaticAberrationMapping();
|
|
43
|
+
provenance is shared once at the batch boundary.
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
export function calculateInverseLateralChromaticAberrationMappings(
|
|
47
|
+
input: CalculateInverseLateralChromaticAberrationMappingsInput
|
|
48
|
+
): CalculationResult<InverseLateralChromaticAberrationMappings>;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
52
|
+
|
|
53
|
+
## CalculateInverseLateralChromaticAberrationMappingsInput
|
|
54
|
+
|
|
55
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
export interface CalculateInverseLateralChromaticAberrationMappingsInput {
|
|
59
|
+
/**
|
|
60
|
+
* Distorted output image-plane destinations. Each destination is inverse-
|
|
61
|
+
* mapped independently for red, green, and blue after one profile-resolution
|
|
62
|
+
* step for the batch.
|
|
63
|
+
*/
|
|
64
|
+
distortedImagePointsMm: readonly LensFieldPointMm[];
|
|
65
|
+
profile: LateralChromaticAberrationProfile;
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## calculateLateralChromaticAberrationMapping
|
|
70
|
+
|
|
71
|
+
Calculates generic lateral chromatic-aberration field separation by mapping
|
|
72
|
+
one ideal image-plane point through a shared green-reference base distortion
|
|
73
|
+
and red/blue radial coefficient offsets.
|
|
74
|
+
|
|
75
|
+
This is channel-dependent field mapping, not a blur kernel.
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
export function calculateLateralChromaticAberrationMapping(
|
|
79
|
+
input: CalculateLateralChromaticAberrationMappingInput
|
|
80
|
+
): CalculationResult<LateralChromaticAberrationMapping>;
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
84
|
+
|
|
85
|
+
## CalculateLateralChromaticAberrationMappingInput
|
|
86
|
+
|
|
87
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
export interface CalculateLateralChromaticAberrationMappingInput {
|
|
91
|
+
/** Ideal/undistorted image-plane point shared by all channels. */
|
|
92
|
+
imagePointMm: LensFieldPointMm;
|
|
93
|
+
profile: LateralChromaticAberrationProfile;
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## ChannelSeparationVectorMm
|
|
98
|
+
|
|
99
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
export interface ChannelSeparationVectorMm {
|
|
103
|
+
x: number;
|
|
104
|
+
y: number;
|
|
105
|
+
distance: number;
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## InverseLateralChromaticAberrationChannelMapping
|
|
110
|
+
|
|
111
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
export interface InverseLateralChromaticAberrationChannelMapping {
|
|
115
|
+
sourceImagePointMm: LensFieldPointMm;
|
|
116
|
+
radialScaleAtSource: number;
|
|
117
|
+
combinedCoefficients: RadialDistortionCoefficients;
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## InverseLateralChromaticAberrationMapping
|
|
122
|
+
|
|
123
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
export interface InverseLateralChromaticAberrationMapping {
|
|
127
|
+
direction: "distorted-output-to-channel-sources";
|
|
128
|
+
referenceChannel: "green";
|
|
129
|
+
distortedImagePointMm: LensFieldPointMm;
|
|
130
|
+
channels: {
|
|
131
|
+
red: InverseLateralChromaticAberrationChannelMapping;
|
|
132
|
+
green: InverseLateralChromaticAberrationChannelMapping;
|
|
133
|
+
blue: InverseLateralChromaticAberrationChannelMapping;
|
|
134
|
+
};
|
|
135
|
+
sourceSeparation: LateralChromaticAberrationSeparation;
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## InverseLateralChromaticAberrationMappings
|
|
140
|
+
|
|
141
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
export interface InverseLateralChromaticAberrationMappings {
|
|
145
|
+
direction: "distorted-output-to-channel-sources-batch";
|
|
146
|
+
referenceChannel: "green";
|
|
147
|
+
mappings: readonly InverseLateralChromaticAberrationMapping[];
|
|
148
|
+
pointCount: number;
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## LateralChromaticAberrationChannel
|
|
153
|
+
|
|
154
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
export type LateralChromaticAberrationChannel = "red" | "green" | "blue";
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## LateralChromaticAberrationChannelMapping
|
|
161
|
+
|
|
162
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
export interface LateralChromaticAberrationChannelMapping {
|
|
166
|
+
mappedImagePointMm: LensFieldPointMm;
|
|
167
|
+
radialScale: number;
|
|
168
|
+
combinedCoefficients: RadialDistortionCoefficients;
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## LateralChromaticAberrationMapping
|
|
173
|
+
|
|
174
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
export interface LateralChromaticAberrationMapping {
|
|
178
|
+
direction: "undistorted-to-channel-distorted";
|
|
179
|
+
referenceChannel: "green";
|
|
180
|
+
sourceImagePointMm: LensFieldPointMm;
|
|
181
|
+
channels: {
|
|
182
|
+
red: LateralChromaticAberrationChannelMapping;
|
|
183
|
+
green: LateralChromaticAberrationChannelMapping;
|
|
184
|
+
blue: LateralChromaticAberrationChannelMapping;
|
|
185
|
+
};
|
|
186
|
+
separation: LateralChromaticAberrationSeparation;
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## LateralChromaticAberrationProfile
|
|
191
|
+
|
|
192
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
193
|
+
|
|
194
|
+
```ts
|
|
195
|
+
export interface LateralChromaticAberrationProfile {
|
|
196
|
+
/** Shared physical image-plane normalization radius in millimetres. */
|
|
197
|
+
normalizationRadiusMm: number;
|
|
198
|
+
/** Shared undistorted normalized-radius operating envelope. */
|
|
199
|
+
maximumNormalizedRadius: number;
|
|
200
|
+
/**
|
|
201
|
+
* Green-reference base geometric distortion.
|
|
202
|
+
*
|
|
203
|
+
* This common mapping is included in every channel. Red/blue CA terms are
|
|
204
|
+
* added to this base, so callers should not apply a second distortion pass.
|
|
205
|
+
*/
|
|
206
|
+
baseDistortionCoefficients: RadialDistortionCoefficients;
|
|
207
|
+
/** Additional red-channel radial coefficients relative to green. */
|
|
208
|
+
redCoefficientOffset: RadialDistortionCoefficients;
|
|
209
|
+
/** Additional blue-channel radial coefficients relative to green. */
|
|
210
|
+
blueCoefficientOffset: RadialDistortionCoefficients;
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## LateralChromaticAberrationSeparation
|
|
215
|
+
|
|
216
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
217
|
+
|
|
218
|
+
```ts
|
|
219
|
+
export interface LateralChromaticAberrationSeparation {
|
|
220
|
+
redGreen: ChannelSeparationVectorMm;
|
|
221
|
+
blueGreen: ChannelSeparationVectorMm;
|
|
222
|
+
redBlue: ChannelSeparationVectorMm;
|
|
223
|
+
maximumPairDistanceMm: number;
|
|
224
|
+
}
|
|
225
|
+
```
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
# optics/lens-psf-profile.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## assessMtfOnlyPsfRenderability
|
|
6
|
+
|
|
7
|
+
Explain why MTF-only evidence cannot determine a unique renderable PSF; return blockers instead of
|
|
8
|
+
fabricating phase information.
|
|
9
|
+
|
|
10
|
+
Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
|
|
11
|
+
support. Interpolation stays within declared applicability and preserves normalized shape separately
|
|
12
|
+
from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
|
|
13
|
+
unique PSF.
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
export function assessMtfOnlyPsfRenderability(
|
|
17
|
+
profile:
|
|
18
|
+
LensMtfDiagnosticProfile
|
|
19
|
+
): MtfOnlyPsfRenderabilityAssessment;
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
23
|
+
|
|
24
|
+
## LENS_MTF_DIAGNOSTIC_PROFILE_SCHEMA_VERSION
|
|
25
|
+
|
|
26
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
LENS_MTF_DIAGNOSTIC_PROFILE_SCHEMA_VERSION =
|
|
30
|
+
"0.1.0" as const
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## LENS_SAMPLED_PSF_PROFILE_SCHEMA_VERSION
|
|
34
|
+
|
|
35
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
LENS_SAMPLED_PSF_PROFILE_SCHEMA_VERSION =
|
|
39
|
+
"0.1.0" as const
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## LensMtfDiagnosticProfile
|
|
43
|
+
|
|
44
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
export interface LensMtfDiagnosticProfile {
|
|
48
|
+
schemaVersion:
|
|
49
|
+
typeof LENS_MTF_DIAGNOSTIC_PROFILE_SCHEMA_VERSION;
|
|
50
|
+
profileId: string;
|
|
51
|
+
profileVersion: string;
|
|
52
|
+
opticalDomain:
|
|
53
|
+
"lens-primary-optical-path-only";
|
|
54
|
+
phaseInformationAvailable:
|
|
55
|
+
false;
|
|
56
|
+
magnitudeMeaning:
|
|
57
|
+
"mtf-magnitude-only";
|
|
58
|
+
fieldPointMm: {
|
|
59
|
+
x: number;
|
|
60
|
+
y: number;
|
|
61
|
+
};
|
|
62
|
+
focalLengthMm: number;
|
|
63
|
+
focus: FocusPlane;
|
|
64
|
+
apertureFNumber: number;
|
|
65
|
+
wavelengthNm: number | null;
|
|
66
|
+
samples:
|
|
67
|
+
readonly LensMtfDiagnosticSample[];
|
|
68
|
+
evidence:
|
|
69
|
+
readonly EvidenceProvenance[];
|
|
70
|
+
limitations: readonly string[];
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## LensMtfDiagnosticSample
|
|
75
|
+
|
|
76
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
export interface LensMtfDiagnosticSample {
|
|
80
|
+
spatialFrequencyCyclesPerMm:
|
|
81
|
+
number;
|
|
82
|
+
sagittalMagnitude: number;
|
|
83
|
+
tangentialMagnitude: number;
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## LensPsfGridAxes
|
|
88
|
+
|
|
89
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
90
|
+
|
|
91
|
+
```ts
|
|
92
|
+
export interface LensPsfGridAxes {
|
|
93
|
+
focalLengthMm:
|
|
94
|
+
readonly number[];
|
|
95
|
+
focusDiopters:
|
|
96
|
+
readonly number[];
|
|
97
|
+
apertureFNumber:
|
|
98
|
+
readonly number[];
|
|
99
|
+
fieldXmm:
|
|
100
|
+
readonly number[];
|
|
101
|
+
fieldYmm:
|
|
102
|
+
readonly number[];
|
|
103
|
+
wavelengthNm:
|
|
104
|
+
readonly number[];
|
|
105
|
+
signedDefocusImagePlaneMicrometers:
|
|
106
|
+
readonly number[];
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## LensPsfKernel
|
|
111
|
+
|
|
112
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
113
|
+
|
|
114
|
+
```ts
|
|
115
|
+
export interface LensPsfKernel {
|
|
116
|
+
widthSamples: number;
|
|
117
|
+
heightSamples: number;
|
|
118
|
+
samplePitchMicrometersX: number;
|
|
119
|
+
samplePitchMicrometersY: number;
|
|
120
|
+
centerSampleX: number;
|
|
121
|
+
centerSampleY: number;
|
|
122
|
+
normalizedIntensity:
|
|
123
|
+
readonly number[];
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## LensPsfScientificStatus
|
|
128
|
+
|
|
129
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
export type LensPsfScientificStatus =
|
|
133
|
+
| "calibrated"
|
|
134
|
+
| "approximation";
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## LensPsfUncertainty
|
|
138
|
+
|
|
139
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
export type LensPsfUncertainty =
|
|
143
|
+
| {
|
|
144
|
+
kind: "relative";
|
|
145
|
+
fraction: number;
|
|
146
|
+
basis: string;
|
|
147
|
+
}
|
|
148
|
+
| {
|
|
149
|
+
kind: "not-quantified";
|
|
150
|
+
limitation: string;
|
|
151
|
+
};
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## LensSampledPsfGridCoordinate
|
|
155
|
+
|
|
156
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
export interface LensSampledPsfGridCoordinate {
|
|
160
|
+
focalLengthMm: number;
|
|
161
|
+
focusDiopters: number;
|
|
162
|
+
apertureFNumber: number;
|
|
163
|
+
fieldXmm: number;
|
|
164
|
+
fieldYmm: number;
|
|
165
|
+
wavelengthNm: number;
|
|
166
|
+
signedDefocusImagePlaneMicrometers:
|
|
167
|
+
number;
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## LensSampledPsfGridNode
|
|
172
|
+
|
|
173
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
export interface LensSampledPsfGridNode {
|
|
177
|
+
nodeId: string;
|
|
178
|
+
coordinate:
|
|
179
|
+
LensSampledPsfGridCoordinate;
|
|
180
|
+
kernel: LensPsfKernel;
|
|
181
|
+
bestFocusImagePlaneOffsetMicrometers:
|
|
182
|
+
number;
|
|
183
|
+
relativePupilThroughputFactor:
|
|
184
|
+
number;
|
|
185
|
+
evidence:
|
|
186
|
+
readonly EvidenceProvenance[];
|
|
187
|
+
uncertainty:
|
|
188
|
+
LensPsfUncertainty;
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## LensSampledPsfProfile
|
|
193
|
+
|
|
194
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
195
|
+
|
|
196
|
+
```ts
|
|
197
|
+
export interface LensSampledPsfProfile {
|
|
198
|
+
schemaVersion:
|
|
199
|
+
typeof LENS_SAMPLED_PSF_PROFILE_SCHEMA_VERSION;
|
|
200
|
+
profileId: string;
|
|
201
|
+
profileVersion: string;
|
|
202
|
+
scientificStatus:
|
|
203
|
+
LensPsfScientificStatus;
|
|
204
|
+
opticalDomain:
|
|
205
|
+
"lens-primary-optical-path-only";
|
|
206
|
+
coordinateSystem:
|
|
207
|
+
"image-plane-metric";
|
|
208
|
+
fieldAxes:
|
|
209
|
+
"+X right, +Y up";
|
|
210
|
+
kernelEnergyNormalization:
|
|
211
|
+
"unit-energy-shape";
|
|
212
|
+
interpolation:
|
|
213
|
+
"bounded-regular-grid-multilinear";
|
|
214
|
+
throughputOwnership:
|
|
215
|
+
"separate-relative-pupil-throughput-factor";
|
|
216
|
+
responseIncludes: {
|
|
217
|
+
diffraction: boolean;
|
|
218
|
+
aberration: boolean;
|
|
219
|
+
defocus: boolean;
|
|
220
|
+
pupilClippingShape:
|
|
221
|
+
boolean;
|
|
222
|
+
};
|
|
223
|
+
sensorOpticalStackIncluded:
|
|
224
|
+
false;
|
|
225
|
+
sensorSamplingIncluded:
|
|
226
|
+
false;
|
|
227
|
+
reconstructionIncluded:
|
|
228
|
+
false;
|
|
229
|
+
strayLightIncluded: false;
|
|
230
|
+
axes: LensPsfGridAxes;
|
|
231
|
+
nodes:
|
|
232
|
+
readonly LensSampledPsfGridNode[];
|
|
233
|
+
evidence:
|
|
234
|
+
readonly EvidenceProvenance[];
|
|
235
|
+
limitations: readonly string[];
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## MtfOnlyPsfRenderabilityAssessment
|
|
240
|
+
|
|
241
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
242
|
+
|
|
243
|
+
```ts
|
|
244
|
+
export interface MtfOnlyPsfRenderabilityAssessment {
|
|
245
|
+
profileId: string;
|
|
246
|
+
psfReconstructionAuthorized:
|
|
247
|
+
false;
|
|
248
|
+
reason:
|
|
249
|
+
"mtf-magnitude-lacks-phase-and-does-not-uniquely-determine-psf";
|
|
250
|
+
diagnosticUseAuthorized: true;
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## parseLensMtfDiagnosticProfile
|
|
255
|
+
|
|
256
|
+
Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
257
|
+
missing required fields and incompatible scientific data fail at this boundary.
|
|
258
|
+
|
|
259
|
+
Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
|
|
260
|
+
support. Interpolation stays within declared applicability and preserves normalized shape separately
|
|
261
|
+
from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
|
|
262
|
+
unique PSF.
|
|
263
|
+
|
|
264
|
+
```ts
|
|
265
|
+
export function parseLensMtfDiagnosticProfile(
|
|
266
|
+
value: unknown
|
|
267
|
+
): LensMtfDiagnosticProfile;
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
271
|
+
|
|
272
|
+
## parseLensSampledPsfProfile
|
|
273
|
+
|
|
274
|
+
Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
275
|
+
missing required fields and incompatible scientific data fail at this boundary.
|
|
276
|
+
|
|
277
|
+
Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
|
|
278
|
+
support. Interpolation stays within declared applicability and preserves normalized shape separately
|
|
279
|
+
from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
|
|
280
|
+
unique PSF.
|
|
281
|
+
|
|
282
|
+
```ts
|
|
283
|
+
export function parseLensSampledPsfProfile(
|
|
284
|
+
value: unknown
|
|
285
|
+
): LensSampledPsfProfile;
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
289
|
+
|
|
290
|
+
## ResolvedLensSampledPsf
|
|
291
|
+
|
|
292
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
293
|
+
|
|
294
|
+
```ts
|
|
295
|
+
export interface ResolvedLensSampledPsf {
|
|
296
|
+
profileId: string;
|
|
297
|
+
profileVersion: string;
|
|
298
|
+
scientificStatus:
|
|
299
|
+
LensPsfScientificStatus;
|
|
300
|
+
resolutionStatus:
|
|
301
|
+
| "exact-grid-sample"
|
|
302
|
+
| "interpolated";
|
|
303
|
+
coordinate:
|
|
304
|
+
LensSampledPsfGridCoordinate;
|
|
305
|
+
focus: FocusPlane;
|
|
306
|
+
kernel: LensPsfKernel;
|
|
307
|
+
bestFocusImagePlaneOffsetMicrometers:
|
|
308
|
+
number;
|
|
309
|
+
relativePupilThroughputFactor:
|
|
310
|
+
number;
|
|
311
|
+
sourceNodes:
|
|
312
|
+
readonly {
|
|
313
|
+
nodeId: string;
|
|
314
|
+
weight: number;
|
|
315
|
+
evidence:
|
|
316
|
+
readonly EvidenceProvenance[];
|
|
317
|
+
uncertainty:
|
|
318
|
+
LensPsfUncertainty;
|
|
319
|
+
}[];
|
|
320
|
+
responseIncludes:
|
|
321
|
+
LensSampledPsfProfile["responseIncludes"];
|
|
322
|
+
throughputOwnership:
|
|
323
|
+
"separate-relative-pupil-throughput-factor";
|
|
324
|
+
longitudinalChromaticFocusMayVaryWithWavelength:
|
|
325
|
+
true;
|
|
326
|
+
fieldCurvatureMayVaryWithFieldPosition:
|
|
327
|
+
true;
|
|
328
|
+
geometricDistortionModified:
|
|
329
|
+
false;
|
|
330
|
+
lateralChromaticPositionShiftApplied:
|
|
331
|
+
false;
|
|
332
|
+
sensorOpticalStackIncluded:
|
|
333
|
+
false;
|
|
334
|
+
sensorSamplingIncluded: false;
|
|
335
|
+
reconstructionIncluded: false;
|
|
336
|
+
strayLightIncluded: false;
|
|
337
|
+
scalarSharpnessScoreProduced:
|
|
338
|
+
false;
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
## resolveLensSampledPsf
|
|
343
|
+
|
|
344
|
+
Resolve the bounded sampled PSF for a declared optical state and support point without extrapolation
|
|
345
|
+
or silently inventing missing dimensions.
|
|
346
|
+
|
|
347
|
+
Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
|
|
348
|
+
support. Interpolation stays within declared applicability and preserves normalized shape separately
|
|
349
|
+
from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
|
|
350
|
+
unique PSF.
|
|
351
|
+
|
|
352
|
+
```ts
|
|
353
|
+
export function resolveLensSampledPsf(
|
|
354
|
+
input:
|
|
355
|
+
ResolveLensSampledPsfInput
|
|
356
|
+
): CalculationResult<ResolvedLensSampledPsf>;
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
360
|
+
|
|
361
|
+
## ResolveLensSampledPsfInput
|
|
362
|
+
|
|
363
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
364
|
+
|
|
365
|
+
```ts
|
|
366
|
+
export interface ResolveLensSampledPsfInput {
|
|
367
|
+
profile:
|
|
368
|
+
LensSampledPsfProfile;
|
|
369
|
+
focalLengthMm: number;
|
|
370
|
+
focus: FocusPlane;
|
|
371
|
+
apertureFNumber: number;
|
|
372
|
+
fieldPointMm: {
|
|
373
|
+
x: number;
|
|
374
|
+
y: number;
|
|
375
|
+
};
|
|
376
|
+
wavelengthNm: number;
|
|
377
|
+
signedDefocusImagePlaneMicrometers:
|
|
378
|
+
number;
|
|
379
|
+
}
|
|
380
|
+
```
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# optics/polygon-diffraction.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## CalculateIdealPolygonDiffractionInput
|
|
6
|
+
|
|
7
|
+
On-axis, in-focus scalar diffraction of one ideal regular polygon pupil.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export interface CalculateIdealPolygonDiffractionInput extends CalculateIdealApertureInput {
|
|
11
|
+
/** Diameter of a circle with the SAME AREA as the physical polygon opening. */
|
|
12
|
+
equivalentAreaPupilDiameterMm: number;
|
|
13
|
+
/** Paraxial pupil-to-image propagation scale; not silently inferred from focus. */
|
|
14
|
+
pupilToImageDistanceMm: number;
|
|
15
|
+
/** Wavelength in the declared propagation medium; no air/vacuum conversion. */
|
|
16
|
+
wavelengthNm: number;
|
|
17
|
+
wavelengthBasis: Exclude<SpectralWavelengthBasis, "unspecified">;
|
|
18
|
+
/** Displacements from the on-axis PSF center, +X right / +Y up; at most 4096. */
|
|
19
|
+
imagePointsMicrometers: readonly { x: number; y: number }[];
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## calculateIdealPolygonDiffractionPsf
|
|
24
|
+
|
|
25
|
+
Calculates continuous monochromatic Fraunhofer PSF density for a uniformly
|
|
26
|
+
illuminated, zero-phase, on-axis ideal straight-edged regular polygon.
|
|
27
|
+
Physical area is explicit; f/N may supply the equal-area diameter only under
|
|
28
|
+
a declared nominal-area convention. No phase aberration, clipping, field
|
|
29
|
+
dependence, curved blades, defocus or polychromatic behavior is inferred.
|
|
30
|
+
|
|
31
|
+
Density = A |F/A|² / (lambda * propagationDistance)². Parseval normalization
|
|
32
|
+
is over the infinite plane, NOT over the supplied point list. Downstream
|
|
33
|
+
quadrature must preserve density × area and report truncation/convergence.
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
export function calculateIdealPolygonDiffractionPsf(
|
|
37
|
+
input: CalculateIdealPolygonDiffractionInput
|
|
38
|
+
): CalculationResult<IdealPolygonDiffraction>;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
42
|
+
|
|
43
|
+
## IdealPolygonDiffraction
|
|
44
|
+
|
|
45
|
+
Continuous unit-energy PSF samples, not a normalized finite convolution kernel.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export interface IdealPolygonDiffraction {
|
|
49
|
+
bladeCount: number;
|
|
50
|
+
firstBladeEdgeAngleDegrees: number;
|
|
51
|
+
pupilToImageDistanceMm: number;
|
|
52
|
+
wavelengthNm: number;
|
|
53
|
+
wavelengthBasis: Exclude<SpectralWavelengthBasis, "unspecified">;
|
|
54
|
+
pupilAreaSquareMm: number;
|
|
55
|
+
pupilCircumradiusMm: number;
|
|
56
|
+
pupilNormalization: "equal-area-circle";
|
|
57
|
+
fieldAxes: "+X right, +Y up";
|
|
58
|
+
energyNormalization: "unit-integral-over-infinite-image-plane";
|
|
59
|
+
throughputApplied: false;
|
|
60
|
+
samples: readonly {
|
|
61
|
+
imagePointMicrometers: { x: number; y: number };
|
|
62
|
+
/** |F/A|²; unity at the origin. Not an energy/probability weight. */
|
|
63
|
+
peakNormalizedIntensity: number;
|
|
64
|
+
/** Density integrating to unity over the full image plane, in 1/µm². */
|
|
65
|
+
intensityDensityPerSquareMicrometer: number;
|
|
66
|
+
}[];
|
|
67
|
+
}
|
|
68
|
+
```
|