@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,92 @@
|
|
|
1
|
+
# optics/depth-of-field.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
|
+
## calculateDefocusCircle
|
|
6
|
+
|
|
7
|
+
Calculates the geometric defocus-circle diameter at the sensor plane for a
|
|
8
|
+
subject plane away from the selected focus plane.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
export function calculateDefocusCircle(
|
|
12
|
+
input: CalculateDefocusCircleInput
|
|
13
|
+
): CalculationResult<DefocusCircle>;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
17
|
+
|
|
18
|
+
## CalculateDefocusCircleInput
|
|
19
|
+
|
|
20
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
export interface CalculateDefocusCircleInput {
|
|
24
|
+
/** Lens focal length in millimetres. */
|
|
25
|
+
focalLengthMm: number;
|
|
26
|
+
/** F-number. */
|
|
27
|
+
aperture: number;
|
|
28
|
+
/** Focus-plane distance from the lens plane in metres. */
|
|
29
|
+
focusDistanceM: number;
|
|
30
|
+
/** Subject-plane distance from the lens plane in metres. */
|
|
31
|
+
subjectDistanceM: number;
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## calculateDepthOfField
|
|
36
|
+
|
|
37
|
+
Calculates thin-lens depth-of-field limits using the conventional
|
|
38
|
+
hyperfocal-distance formulation.
|
|
39
|
+
|
|
40
|
+
The model is geometric and does not include diffraction, aberrations,
|
|
41
|
+
focus breathing, pupil magnification, or macro/high-magnification effects.
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
export function calculateDepthOfField(
|
|
45
|
+
input: CalculateDepthOfFieldInput
|
|
46
|
+
): CalculationResult<DepthOfField>;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
50
|
+
|
|
51
|
+
## CalculateDepthOfFieldInput
|
|
52
|
+
|
|
53
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
export interface CalculateDepthOfFieldInput {
|
|
57
|
+
/** Lens focal length in millimetres. */
|
|
58
|
+
focalLengthMm: number;
|
|
59
|
+
/** F-number. */
|
|
60
|
+
aperture: number;
|
|
61
|
+
/** Focus distance from the lens plane in metres. */
|
|
62
|
+
focusDistanceM: number;
|
|
63
|
+
/** Acceptable circle of confusion diameter in millimetres. */
|
|
64
|
+
circleOfConfusionMm: number;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## DefocusCircle
|
|
69
|
+
|
|
70
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
export interface DefocusCircle {
|
|
74
|
+
/** Geometric blur-circle diameter at the sensor plane in millimetres. */
|
|
75
|
+
diameterMm: number;
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## DepthOfField
|
|
80
|
+
|
|
81
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
export interface DepthOfField {
|
|
85
|
+
hyperfocalDistanceM: number;
|
|
86
|
+
nearLimitM: number;
|
|
87
|
+
/** Null represents an infinite far limit. */
|
|
88
|
+
farLimitM: number | null;
|
|
89
|
+
/** Null represents infinite total depth of field. */
|
|
90
|
+
totalDepthOfFieldM: number | null;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# optics/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
|
+
## AiryDisk
|
|
6
|
+
|
|
7
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export interface AiryDisk {
|
|
11
|
+
/**
|
|
12
|
+
* Diameter from the center of the diffraction pattern to the first dark-ring
|
|
13
|
+
* diameter, in micrometres: 2.44 * wavelength * f-number.
|
|
14
|
+
*/
|
|
15
|
+
firstZeroDiameterMicrometers: number;
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## calculateAiryDisk
|
|
20
|
+
|
|
21
|
+
Calculates the first-zero Airy-disk diameter for an ideal circular aperture.
|
|
22
|
+
|
|
23
|
+
This uses the established diffraction relation d = 2.44 * lambda * N.
|
|
24
|
+
It is an independent implementation of the mathematical relation and does
|
|
25
|
+
not model lens aberrations or non-circular pupil geometry.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
export function calculateAiryDisk(
|
|
29
|
+
input: CalculateAiryDiskInput
|
|
30
|
+
): CalculationResult<AiryDisk>;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
34
|
+
|
|
35
|
+
## CalculateAiryDiskInput
|
|
36
|
+
|
|
37
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
export interface CalculateAiryDiskInput {
|
|
41
|
+
/** F-number. */
|
|
42
|
+
aperture: number;
|
|
43
|
+
/** Wavelength in nanometres. Defaults are intentionally left to callers. */
|
|
44
|
+
wavelengthNm: number;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# optics/focus-breathing.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
|
+
## calculateFocusBreathingFieldOfView
|
|
6
|
+
|
|
7
|
+
Calculates one-axis field of view for the generic declared-scale focus-
|
|
8
|
+
breathing projection and reports the corresponding ideal thin-lens FOV.
|
|
9
|
+
|
|
10
|
+
A breathingProjectionScale of 1 reproduces the current focus-aware
|
|
11
|
+
thin-lens field-of-view result exactly.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
export function calculateFocusBreathingFieldOfView(
|
|
15
|
+
input: CalculateFocusBreathingFieldOfViewInput
|
|
16
|
+
): CalculationResult<FocusBreathingFieldOfView>;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
20
|
+
|
|
21
|
+
## CalculateFocusBreathingFieldOfViewInput
|
|
22
|
+
|
|
23
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
export interface CalculateFocusBreathingFieldOfViewInput
|
|
27
|
+
extends CalculateFocusBreathingProjectionInput {
|
|
28
|
+
/** Sensor/capture dimension corresponding to the requested FOV, in millimetres. */
|
|
29
|
+
sensorDimensionMm: number;
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## calculateFocusBreathingProjection
|
|
34
|
+
|
|
35
|
+
Applies a caller-declared focus-breathing projection scale to the ideal
|
|
36
|
+
Gaussian thin-lens projection for one focus state.
|
|
37
|
+
|
|
38
|
+
Photivra does not infer the scale from focal length, focus distance, lens
|
|
39
|
+
identity, or marketing data. A value of 1 exactly preserves the current
|
|
40
|
+
thin-lens projection.
|
|
41
|
+
|
|
42
|
+
This is a generic approximation of focus-dependent projection/magnification,
|
|
43
|
+
not a calibrated real-lens model. The physical focal length remains
|
|
44
|
+
authoritative and unchanged.
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
export function calculateFocusBreathingProjection(
|
|
48
|
+
input: CalculateFocusBreathingProjectionInput
|
|
49
|
+
): CalculationResult<FocusBreathingProjection>;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
53
|
+
|
|
54
|
+
## CalculateFocusBreathingProjectionInput
|
|
55
|
+
|
|
56
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
export interface CalculateFocusBreathingProjectionInput {
|
|
60
|
+
/** Physical lens focal length in millimetres. This value is never rewritten. */
|
|
61
|
+
focalLengthMm: number;
|
|
62
|
+
/** Selected focus distance in metres. */
|
|
63
|
+
focusDistanceM: number;
|
|
64
|
+
/**
|
|
65
|
+
* Caller-declared projection scale for this focus state, relative to the
|
|
66
|
+
* ideal thin-lens image distance.
|
|
67
|
+
*
|
|
68
|
+
* 1 means no additional breathing relative to the current thin-lens model.
|
|
69
|
+
* Values above 1 narrow framing / increase magnification; values below 1
|
|
70
|
+
* widen framing / reduce magnification.
|
|
71
|
+
*/
|
|
72
|
+
breathingProjectionScale: number;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## FocusBreathingFieldOfView
|
|
77
|
+
|
|
78
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
export interface FocusBreathingFieldOfView {
|
|
82
|
+
physicalFocalLengthMm: number;
|
|
83
|
+
focusDistanceM: number;
|
|
84
|
+
sensorDimensionMm: number;
|
|
85
|
+
breathingProjectionScale: number;
|
|
86
|
+
idealProjectionDistanceMm: number;
|
|
87
|
+
effectiveProjectionDistanceMm: number;
|
|
88
|
+
idealDegrees: number;
|
|
89
|
+
effectiveDegrees: number;
|
|
90
|
+
deltaDegrees: number;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## FocusBreathingProjection
|
|
95
|
+
|
|
96
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
export interface FocusBreathingProjection {
|
|
100
|
+
/** Authoritative physical focal length supplied by the caller. */
|
|
101
|
+
physicalFocalLengthMm: number;
|
|
102
|
+
focusDistanceM: number;
|
|
103
|
+
/** Ideal Gaussian thin-lens image distance before breathing adjustment. */
|
|
104
|
+
idealProjectionDistanceMm: number;
|
|
105
|
+
/**
|
|
106
|
+
* Effective projection distance used by the generic breathing model.
|
|
107
|
+
*
|
|
108
|
+
* This is a projection/magnification parameter, not a replacement physical
|
|
109
|
+
* focal length.
|
|
110
|
+
*/
|
|
111
|
+
effectiveProjectionDistanceMm: number;
|
|
112
|
+
/** Caller-declared scale relative to ideal thin-lens projection. */
|
|
113
|
+
breathingProjectionScale: number;
|
|
114
|
+
/** Ideal Gaussian thin-lens magnification at the selected focus distance. */
|
|
115
|
+
idealMagnification: number;
|
|
116
|
+
/** Generic breathing-adjusted magnification. */
|
|
117
|
+
effectiveMagnification: number;
|
|
118
|
+
}
|
|
119
|
+
```
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# optics/focus-state.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
|
+
## calculateFocusPlaneImageDistance
|
|
6
|
+
|
|
7
|
+
Calculates the ideal image-plane distance for an explicit focus state.
|
|
8
|
+
|
|
9
|
+
Finite focus delegates to the existing Gaussian thin-lens calculation, so
|
|
10
|
+
its numerical result and provenance are unchanged. Infinity focus resolves
|
|
11
|
+
exactly to the nominal focal length with zero limiting magnification.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
export function calculateFocusPlaneImageDistance(
|
|
15
|
+
input: CalculateFocusPlaneImageDistanceInput
|
|
16
|
+
): CalculationResult<ThinLensImageDistance>;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
20
|
+
|
|
21
|
+
## CalculateFocusPlaneImageDistanceInput
|
|
22
|
+
|
|
23
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
export interface CalculateFocusPlaneImageDistanceInput {
|
|
27
|
+
/** Lens focal length in millimetres. */
|
|
28
|
+
focalLengthMm: number;
|
|
29
|
+
/** Explicit finite or infinity focus-plane state. */
|
|
30
|
+
focus: FocusPlane;
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## FocusPlane
|
|
35
|
+
|
|
36
|
+
Explicit ideal focus-plane state.
|
|
37
|
+
|
|
38
|
+
Finite distance is the longitudinal object-plane distance from the ideal
|
|
39
|
+
lens principal plane along the camera optical axis. Infinity is a semantic
|
|
40
|
+
state and is never represented with JavaScript Infinity or a fabricated
|
|
41
|
+
large distance.
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
export type FocusPlane =
|
|
45
|
+
| {
|
|
46
|
+
kind: "finite";
|
|
47
|
+
distanceM: number;
|
|
48
|
+
}
|
|
49
|
+
| {
|
|
50
|
+
kind: "infinity";
|
|
51
|
+
};
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## parseFocusPlane
|
|
55
|
+
|
|
56
|
+
Parses an explicit focus-plane state from an untrusted JSON boundary.
|
|
57
|
+
|
|
58
|
+
Missing/unknown focus is rejected rather than being interpreted as infinity.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
export function parseFocusPlane(value: unknown): FocusPlane;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
# optics/front-of-lens-filter.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
|
+
## ComposedFrontOfLensFilterTransmission
|
|
6
|
+
|
|
7
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export interface ComposedFrontOfLensFilterTransmission {
|
|
11
|
+
schemaVersion:
|
|
12
|
+
typeof FRONT_OF_LENS_FILTER_PROFILE_SCHEMA_VERSION;
|
|
13
|
+
wavelengthNanometers: number;
|
|
14
|
+
wavelengthBasis:
|
|
15
|
+
Exclude<
|
|
16
|
+
SpectralWavelengthBasis,
|
|
17
|
+
"unspecified"
|
|
18
|
+
>;
|
|
19
|
+
appliedFilterCount: number;
|
|
20
|
+
components:
|
|
21
|
+
readonly ResolvedFrontOfLensFilterTransmission[];
|
|
22
|
+
combinedLinearTransmissionFactor:
|
|
23
|
+
number;
|
|
24
|
+
combinedAttenuationStops: number;
|
|
25
|
+
scientificStatus:
|
|
26
|
+
FrontOfLensFilterScientificStatus;
|
|
27
|
+
uncertaintyPropagation:
|
|
28
|
+
"not-propagated";
|
|
29
|
+
uncertaintyLimitation: string;
|
|
30
|
+
compositionModel:
|
|
31
|
+
"independent-multiplicative-unpolarized-transmission-no-inter-filter-reflections";
|
|
32
|
+
polarizationModeled: false;
|
|
33
|
+
wavelengthChangingBehaviorModeled:
|
|
34
|
+
false;
|
|
35
|
+
lensTransmissionIncluded: false;
|
|
36
|
+
sensorOpticalStackIncluded: false;
|
|
37
|
+
fieldThroughputIncluded: false;
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## composeFrontOfLensFilterTransmission
|
|
42
|
+
|
|
43
|
+
Composes multiple passive front-of-lens filters multiplicatively at one
|
|
44
|
+
wavelength while preserving each component's identity.
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
export function composeFrontOfLensFilterTransmission(
|
|
48
|
+
input:
|
|
49
|
+
ComposeFrontOfLensFilterTransmissionInput
|
|
50
|
+
): ComposedFrontOfLensFilterTransmission;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
54
|
+
|
|
55
|
+
## ComposeFrontOfLensFilterTransmissionInput
|
|
56
|
+
|
|
57
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
export interface ComposeFrontOfLensFilterTransmissionInput {
|
|
61
|
+
filters:
|
|
62
|
+
readonly FrontOfLensFilterProfile[];
|
|
63
|
+
wavelengthNanometers: number;
|
|
64
|
+
wavelengthBasis:
|
|
65
|
+
Exclude<
|
|
66
|
+
SpectralWavelengthBasis,
|
|
67
|
+
"unspecified"
|
|
68
|
+
>;
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## FRONT_OF_LENS_FILTER_PROFILE_SCHEMA_VERSION
|
|
73
|
+
|
|
74
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
FRONT_OF_LENS_FILTER_PROFILE_SCHEMA_VERSION =
|
|
78
|
+
"0.1.0" as const
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## FrontOfLensFilterProfile
|
|
82
|
+
|
|
83
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
export interface FrontOfLensFilterProfile {
|
|
87
|
+
schemaVersion:
|
|
88
|
+
typeof FRONT_OF_LENS_FILTER_PROFILE_SCHEMA_VERSION;
|
|
89
|
+
filterId: string;
|
|
90
|
+
profileVersion: string;
|
|
91
|
+
identityScope:
|
|
92
|
+
"photivra-generic-unbranded";
|
|
93
|
+
position: "front-of-lens";
|
|
94
|
+
scientificStatus:
|
|
95
|
+
FrontOfLensFilterScientificStatus;
|
|
96
|
+
wavelengthBasis:
|
|
97
|
+
Exclude<
|
|
98
|
+
SpectralWavelengthBasis,
|
|
99
|
+
"unspecified"
|
|
100
|
+
>;
|
|
101
|
+
wavelengthRangeNanometers: {
|
|
102
|
+
minimum: number;
|
|
103
|
+
maximum: number;
|
|
104
|
+
};
|
|
105
|
+
transmission:
|
|
106
|
+
FrontOfLensFilterTransmissionModel;
|
|
107
|
+
uncertainty:
|
|
108
|
+
FrontOfLensFilterUncertainty;
|
|
109
|
+
polarizationModeled: false;
|
|
110
|
+
wavelengthChangingBehaviorModeled:
|
|
111
|
+
false;
|
|
112
|
+
evidence: readonly EvidenceProvenance[];
|
|
113
|
+
limitations: readonly string[];
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## FrontOfLensFilterScientificStatus
|
|
118
|
+
|
|
119
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
export type FrontOfLensFilterScientificStatus =
|
|
123
|
+
| "calibrated"
|
|
124
|
+
| "approximation";
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## FrontOfLensFilterSpectralSample
|
|
128
|
+
|
|
129
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
export interface FrontOfLensFilterSpectralSample {
|
|
133
|
+
wavelengthNanometers: number;
|
|
134
|
+
linearTransmissionFactor: number;
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## FrontOfLensFilterTransmissionModel
|
|
139
|
+
|
|
140
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
export type FrontOfLensFilterTransmissionModel =
|
|
144
|
+
| {
|
|
145
|
+
kind: "neutral-linear-transmission";
|
|
146
|
+
linearTransmissionFactor:
|
|
147
|
+
EvidenceBackedFact<number>;
|
|
148
|
+
}
|
|
149
|
+
| {
|
|
150
|
+
kind: "neutral-optical-density";
|
|
151
|
+
opticalDensityBase10:
|
|
152
|
+
EvidenceBackedFact<number>;
|
|
153
|
+
}
|
|
154
|
+
| {
|
|
155
|
+
kind: "spectral-transmission";
|
|
156
|
+
samples:
|
|
157
|
+
EvidenceBackedFact<
|
|
158
|
+
readonly FrontOfLensFilterSpectralSample[]
|
|
159
|
+
>;
|
|
160
|
+
};
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## FrontOfLensFilterUncertainty
|
|
164
|
+
|
|
165
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
166
|
+
|
|
167
|
+
```ts
|
|
168
|
+
export type FrontOfLensFilterUncertainty =
|
|
169
|
+
| {
|
|
170
|
+
kind: "relative";
|
|
171
|
+
fraction: number;
|
|
172
|
+
basis: string;
|
|
173
|
+
}
|
|
174
|
+
| {
|
|
175
|
+
kind: "not-quantified";
|
|
176
|
+
limitation: string;
|
|
177
|
+
};
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## parseFrontOfLensFilterProfile
|
|
181
|
+
|
|
182
|
+
Parses one generic front-of-lens transmission filter.
|
|
183
|
+
|
|
184
|
+
Schema 0.1.0 is explicitly unbranded and unpolarized. It models only
|
|
185
|
+
passive transmission placed before the lens. Reflections between stacked
|
|
186
|
+
filters, polarization, flare/ghosting and wavelength-changing behavior are
|
|
187
|
+
outside this contract.
|
|
188
|
+
|
|
189
|
+
```ts
|
|
190
|
+
export function parseFrontOfLensFilterProfile(
|
|
191
|
+
value: unknown
|
|
192
|
+
): FrontOfLensFilterProfile;
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
196
|
+
|
|
197
|
+
## ResolvedFrontOfLensFilterTransmission
|
|
198
|
+
|
|
199
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
200
|
+
|
|
201
|
+
```ts
|
|
202
|
+
export interface ResolvedFrontOfLensFilterTransmission {
|
|
203
|
+
schemaVersion:
|
|
204
|
+
typeof FRONT_OF_LENS_FILTER_PROFILE_SCHEMA_VERSION;
|
|
205
|
+
filterId: string;
|
|
206
|
+
profileVersion: string;
|
|
207
|
+
identityScope:
|
|
208
|
+
"photivra-generic-unbranded";
|
|
209
|
+
position: "front-of-lens";
|
|
210
|
+
scientificStatus:
|
|
211
|
+
FrontOfLensFilterScientificStatus;
|
|
212
|
+
wavelengthNanometers: number;
|
|
213
|
+
wavelengthBasis:
|
|
214
|
+
Exclude<
|
|
215
|
+
SpectralWavelengthBasis,
|
|
216
|
+
"unspecified"
|
|
217
|
+
>;
|
|
218
|
+
transmissionKind:
|
|
219
|
+
FrontOfLensFilterTransmissionModel["kind"];
|
|
220
|
+
linearTransmissionFactor: number;
|
|
221
|
+
attenuationStops: number;
|
|
222
|
+
opticalDensityBase10: number;
|
|
223
|
+
polarizationModeled: false;
|
|
224
|
+
wavelengthChangingBehaviorModeled:
|
|
225
|
+
false;
|
|
226
|
+
lensTransmissionIncluded: false;
|
|
227
|
+
sensorOpticalStackIncluded: false;
|
|
228
|
+
fieldThroughputIncluded: false;
|
|
229
|
+
uncertainty:
|
|
230
|
+
FrontOfLensFilterUncertainty;
|
|
231
|
+
evidence: readonly EvidenceProvenance[];
|
|
232
|
+
limitations: readonly string[];
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## resolveFrontOfLensFilterTransmission
|
|
237
|
+
|
|
238
|
+
Resolves one passive filter at one wavelength.
|
|
239
|
+
|
|
240
|
+
```ts
|
|
241
|
+
export function resolveFrontOfLensFilterTransmission(
|
|
242
|
+
input:
|
|
243
|
+
ResolveFrontOfLensFilterTransmissionInput
|
|
244
|
+
): ResolvedFrontOfLensFilterTransmission;
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
248
|
+
|
|
249
|
+
## ResolveFrontOfLensFilterTransmissionInput
|
|
250
|
+
|
|
251
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
252
|
+
|
|
253
|
+
```ts
|
|
254
|
+
export interface ResolveFrontOfLensFilterTransmissionInput {
|
|
255
|
+
profile: FrontOfLensFilterProfile;
|
|
256
|
+
wavelengthNanometers: number;
|
|
257
|
+
wavelengthBasis:
|
|
258
|
+
Exclude<
|
|
259
|
+
SpectralWavelengthBasis,
|
|
260
|
+
"unspecified"
|
|
261
|
+
>;
|
|
262
|
+
}
|
|
263
|
+
```
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# optics/illumination-vignetting.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
|
+
## calculateIlluminationVignetting
|
|
6
|
+
|
|
7
|
+
Calculates generic field-dependent illumination falloff as a multiplicative
|
|
8
|
+
linear-light throughput factor.
|
|
9
|
+
|
|
10
|
+
The profile is accepted only when its relative throughput remains strictly
|
|
11
|
+
positive and never exceeds the optical-axis normalization of 1 throughout
|
|
12
|
+
the complete declared operating envelope.
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
export function calculateIlluminationVignetting(
|
|
16
|
+
input: CalculateIlluminationVignettingInput
|
|
17
|
+
): CalculationResult<IlluminationVignetting>;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
21
|
+
|
|
22
|
+
## CalculateIlluminationVignettingInput
|
|
23
|
+
|
|
24
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
export interface CalculateIlluminationVignettingInput {
|
|
28
|
+
/**
|
|
29
|
+
* Ideal image-plane field position relative to the optical axis, in mm.
|
|
30
|
+
*
|
|
31
|
+
* This slice evaluates throughput from the declared ideal field coordinate;
|
|
32
|
+
* it does not apply or invert geometric distortion.
|
|
33
|
+
*/
|
|
34
|
+
imagePointMm: LensFieldPointMm;
|
|
35
|
+
profile: IlluminationVignettingProfile;
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## IlluminationVignetting
|
|
40
|
+
|
|
41
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
export interface IlluminationVignetting {
|
|
45
|
+
imagePointMm: LensFieldPointMm;
|
|
46
|
+
normalizedRadius: number;
|
|
47
|
+
/**
|
|
48
|
+
* Multiplicative factor for scene-linear/channel-linear signal.
|
|
49
|
+
*
|
|
50
|
+
* 1 means no attenuation; values are required to remain in (0, 1].
|
|
51
|
+
*/
|
|
52
|
+
linearThroughputFactor: number;
|
|
53
|
+
/** Positive exposure loss relative to the optical axis, in stops. */
|
|
54
|
+
attenuationStops: number;
|
|
55
|
+
profileMinimumThroughputFactor: number;
|
|
56
|
+
profileMaximumThroughputFactor: number;
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## IlluminationVignettingCoefficients
|
|
61
|
+
|
|
62
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
export interface IlluminationVignettingCoefficients {
|
|
66
|
+
/** Coefficient on normalized radius squared. */
|
|
67
|
+
r2: number;
|
|
68
|
+
/** Coefficient on normalized radius to the fourth power. */
|
|
69
|
+
r4: number;
|
|
70
|
+
/** Coefficient on normalized radius to the sixth power. */
|
|
71
|
+
r6: number;
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## IlluminationVignettingProfile
|
|
76
|
+
|
|
77
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
export interface IlluminationVignettingProfile {
|
|
81
|
+
/** Physical image-plane radius used to normalize field position, in mm. */
|
|
82
|
+
normalizationRadiusMm: number;
|
|
83
|
+
/** Maximum normalized image-plane radius over which the profile is valid. */
|
|
84
|
+
maximumNormalizedRadius: number;
|
|
85
|
+
/**
|
|
86
|
+
* Generic radial relative-illumination coefficients.
|
|
87
|
+
*
|
|
88
|
+
* Relative linear throughput is:
|
|
89
|
+
* 1 + r2 * rho^2 + r4 * rho^4 + r6 * rho^6
|
|
90
|
+
*
|
|
91
|
+
* where rho is physical image-plane radius / normalizationRadiusMm.
|
|
92
|
+
*/
|
|
93
|
+
coefficients: IlluminationVignettingCoefficients;
|
|
94
|
+
}
|
|
95
|
+
```
|