@photivra/engine 0.6.0 → 1.0.0
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 +186 -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 +138 -71
- 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 +14 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +15 -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 +132 -0
- 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 +65 -0
- package/docs/RELEASE_AUDIT.md +38 -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,53 @@
|
|
|
1
|
+
# optics/thin-lens.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.0**, root API **0.116.0**. [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
|
+
## calculateThinLensImageDistance
|
|
6
|
+
|
|
7
|
+
Calculates Gaussian thin-lens image distance:
|
|
8
|
+
|
|
9
|
+
1/f = 1/s + 1/v
|
|
10
|
+
|
|
11
|
+
where f is focal length, s is object distance, and v is image distance.
|
|
12
|
+
|
|
13
|
+
This is a paraxial ideal-lens model. It does not model real-lens focus
|
|
14
|
+
breathing, pupil magnification, principal-plane movement, or aberrations.
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
export function calculateThinLensImageDistance(
|
|
18
|
+
input: CalculateThinLensImageDistanceInput
|
|
19
|
+
): CalculationResult<ThinLensImageDistance>;
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
23
|
+
|
|
24
|
+
## CalculateThinLensImageDistanceInput
|
|
25
|
+
|
|
26
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
export interface CalculateThinLensImageDistanceInput {
|
|
30
|
+
/** Lens focal length in millimetres. */
|
|
31
|
+
focalLengthMm: number;
|
|
32
|
+
/** Object/focus-plane distance from the lens principal plane in metres. */
|
|
33
|
+
objectDistanceM: number;
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## ThinLensImageDistance
|
|
38
|
+
|
|
39
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
export interface ThinLensImageDistance {
|
|
43
|
+
/** Image/sensor-plane distance from the lens principal plane in millimetres. */
|
|
44
|
+
imageDistanceMm: number;
|
|
45
|
+
/** Absolute paraxial magnification at the supplied object distance. */
|
|
46
|
+
magnification: number;
|
|
47
|
+
/**
|
|
48
|
+
* Image-distance scale relative to the infinity-focus approximation f.
|
|
49
|
+
* Values approach 1 as object distance becomes large.
|
|
50
|
+
*/
|
|
51
|
+
infinityProjectionScale: number;
|
|
52
|
+
}
|
|
53
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# output/capture-corrected-sdr.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.0**, root API **0.116.0**. [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
|
+
## calculateCaptureCorrectedSdr
|
|
6
|
+
|
|
7
|
+
Bounded committed capture → color/WB → native correction → oriented output view → SDR. No physical stage activation.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export function calculateCaptureCorrectedSdr(input: CaptureCorrectedSdrInput): CalculationResult<CaptureCorrectedSdrResult>;
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
14
|
+
|
|
15
|
+
## CAPTURE_CORRECTED_SDR_SCHEMA_VERSION
|
|
16
|
+
|
|
17
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
CAPTURE_CORRECTED_SDR_SCHEMA_VERSION = "0.1.0" as const
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## CaptureCorrectedSdrInput
|
|
24
|
+
|
|
25
|
+
Explicit native-optical correction binding. Body/lens/mode identities remain producer declarations.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
export interface CaptureCorrectedSdrInput extends CaptureSdrInput {
|
|
29
|
+
correction: {
|
|
30
|
+
profile: GenericLensCorrectionProfile;
|
|
31
|
+
state: OpticalProfileState;
|
|
32
|
+
/** Native optical +X right/+Y up, RGB basis after the selected color/WB operation. */
|
|
33
|
+
coordinateFrame: "native-optical-linear-srgb-d65";
|
|
34
|
+
selections: Readonly<Record<string, "on" | "off" | "auto">>;
|
|
35
|
+
selectionKind: ResolvedLensCorrectionPlan["selectionKind"];
|
|
36
|
+
/** Seconds from exposure start, not the capture's scene-clock time. */
|
|
37
|
+
frameTimeSeconds: number;
|
|
38
|
+
resampler: GeometricResampler;
|
|
39
|
+
clippingLevel: number;
|
|
40
|
+
invalidSupport: "reject" | "joint-valid-crop";
|
|
41
|
+
outputImageStateId: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## CaptureCorrectedSdrResult
|
|
47
|
+
|
|
48
|
+
Derived output view, never a replacement for the committed capture's physical geometry.
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
export interface CaptureCorrectedSdrResult extends Omit<CaptureSdrResult, "schemaVersion"> {
|
|
52
|
+
schemaVersion: typeof CAPTURE_CORRECTED_SDR_SCHEMA_VERSION;
|
|
53
|
+
sceneTimeSeconds: number;
|
|
54
|
+
plan: CalculationResult<ResolvedLensCorrectionPlan>;
|
|
55
|
+
correction: ReturnType<typeof calculateLensCorrectedCapture>;
|
|
56
|
+
projection: ReturnType<typeof calculateFieldOfView>;
|
|
57
|
+
/** Oriented full-output support; child correction plans retain native optical coordinates. */
|
|
58
|
+
validSourceMask: readonly boolean[];
|
|
59
|
+
outputView: { imageStateId: string; rect: RasterRect; pixelWidth: number; pixelHeight: number; samples: readonly number[] };
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## parseCaptureCorrectedSdrInput
|
|
64
|
+
|
|
65
|
+
Strict boundary; execution also checks capture optics, native raster binding and source history.
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
export function parseCaptureCorrectedSdrInput(input: unknown): CaptureCorrectedSdrInput;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
# output/capture-geometry.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.0**, root API **0.116.0**. [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
|
+
## ActiveCaptureFieldOfView
|
|
6
|
+
|
|
7
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export interface ActiveCaptureFieldOfView {
|
|
11
|
+
orientation: CaptureOrientation;
|
|
12
|
+
horizontalDegrees: number;
|
|
13
|
+
verticalDegrees: number;
|
|
14
|
+
/**
|
|
15
|
+
* Larger of the two opposite-corner diagonal angular spans. For centered
|
|
16
|
+
* crops both diagonal spans are equal.
|
|
17
|
+
*/
|
|
18
|
+
diagonalDegrees: number;
|
|
19
|
+
horizontalBoundsDegrees: {
|
|
20
|
+
minimum: number;
|
|
21
|
+
maximum: number;
|
|
22
|
+
};
|
|
23
|
+
verticalBoundsDegrees: {
|
|
24
|
+
minimum: number;
|
|
25
|
+
maximum: number;
|
|
26
|
+
};
|
|
27
|
+
diagonalDegreesByCornerPair: {
|
|
28
|
+
topLeftToBottomRight: number;
|
|
29
|
+
topRightToBottomLeft: number;
|
|
30
|
+
};
|
|
31
|
+
activeImagingArea: SensorImagingArea;
|
|
32
|
+
centerOffsetFromOpticalAxisMm: RasterVector;
|
|
33
|
+
projection: {
|
|
34
|
+
projectionDistanceMm: number;
|
|
35
|
+
provenance: CalculationProvenance;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## calculateActiveCaptureFieldOfView
|
|
41
|
+
|
|
42
|
+
Calculates asymmetric horizontal/vertical FOV plus opposite-corner diagonal
|
|
43
|
+
spans for the active physical capture area after physical camera orientation.
|
|
44
|
+
|
|
45
|
+
Final digital/output crop is intentionally excluded.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export function calculateActiveCaptureFieldOfView(
|
|
49
|
+
input: CalculateActiveCaptureFieldOfViewInput
|
|
50
|
+
): CalculationResult<ActiveCaptureFieldOfView>;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
54
|
+
|
|
55
|
+
## CalculateActiveCaptureFieldOfViewInput
|
|
56
|
+
|
|
57
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
export interface CalculateActiveCaptureFieldOfViewInput {
|
|
61
|
+
imagingArea: SensorImagingArea;
|
|
62
|
+
nativeRaster: NativeImageRaster;
|
|
63
|
+
orientation: CaptureOrientation;
|
|
64
|
+
activeCaptureRect?: RasterRect;
|
|
65
|
+
focalLengthMm: number;
|
|
66
|
+
focusDistanceM?: number;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## calculateOutputFieldOfView
|
|
71
|
+
|
|
72
|
+
Calculates final visible field of view after physical active capture,
|
|
73
|
+
orientation, and digital/output crop. Output raster resolution does not
|
|
74
|
+
affect this optical/framing result.
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
export function calculateOutputFieldOfView(
|
|
78
|
+
input: CalculateOutputFieldOfViewInput
|
|
79
|
+
): CalculationResult<OutputFieldOfView>;
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
83
|
+
|
|
84
|
+
## CalculateOutputFieldOfViewInput
|
|
85
|
+
|
|
86
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
export interface CalculateOutputFieldOfViewInput {
|
|
90
|
+
imagingArea: SensorImagingArea;
|
|
91
|
+
nativeRaster: NativeImageRaster;
|
|
92
|
+
orientation: CaptureOrientation;
|
|
93
|
+
activeCaptureRect?: RasterRect;
|
|
94
|
+
outputCropRect?: RasterRect;
|
|
95
|
+
focalLengthMm: number;
|
|
96
|
+
focusDistanceM?: number;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## CaptureOrientation
|
|
101
|
+
|
|
102
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
export type CaptureOrientation =
|
|
106
|
+
| "landscape"
|
|
107
|
+
| "portrait-clockwise"
|
|
108
|
+
| "landscape-inverted"
|
|
109
|
+
| "portrait-counter-clockwise";
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## ImagePlaneMetricPointMm
|
|
113
|
+
|
|
114
|
+
Pre-orientation optical image-plane coordinate in millimetres.
|
|
115
|
+
|
|
116
|
+
Origin is the optical axis; +X points right and +Y points up.
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
export interface ImagePlaneMetricPointMm {
|
|
120
|
+
x: number;
|
|
121
|
+
y: number;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## mapImagePlanePointToOrientedPhysicalUv
|
|
126
|
+
|
|
127
|
+
Maps a pre-orientation optical image-plane point into normalized coordinates
|
|
128
|
+
of an oriented physical raster region.
|
|
129
|
+
|
|
130
|
+
This is the exact coordinate inverse of
|
|
131
|
+
mapOrientedPhysicalUvToImagePlanePoint(). Points outside the supplied region
|
|
132
|
+
fail closed; a tiny tolerance only absorbs floating-point round-trip noise at
|
|
133
|
+
an edge.
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
export function mapImagePlanePointToOrientedPhysicalUv(
|
|
137
|
+
input: MapImagePlanePointToOrientedPhysicalUvInput
|
|
138
|
+
): NormalizedRasterUv;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
142
|
+
|
|
143
|
+
## MapImagePlanePointToOrientedPhysicalUvInput
|
|
144
|
+
|
|
145
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
export interface MapImagePlanePointToOrientedPhysicalUvInput {
|
|
149
|
+
imagePlanePointMm: ImagePlaneMetricPointMm;
|
|
150
|
+
/**
|
|
151
|
+
* Physical region represented by the normalized raster, after physical
|
|
152
|
+
* camera orientation, using the capture contract's +Y-down physical basis.
|
|
153
|
+
*/
|
|
154
|
+
orientedPhysicalBoundsFromOpticalAxisMm: PhysicalBoundsFromOpticalAxisMm;
|
|
155
|
+
orientation: CaptureOrientation;
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## MapOrientedPhysicalUvToImagePlaneInput
|
|
160
|
+
|
|
161
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
export interface MapOrientedPhysicalUvToImagePlaneInput {
|
|
165
|
+
uv: NormalizedRasterUv;
|
|
166
|
+
/**
|
|
167
|
+
* Physical region represented by the normalized raster, after physical
|
|
168
|
+
* camera orientation, using the capture contract's +Y-down physical basis.
|
|
169
|
+
*/
|
|
170
|
+
orientedPhysicalBoundsFromOpticalAxisMm: PhysicalBoundsFromOpticalAxisMm;
|
|
171
|
+
orientation: CaptureOrientation;
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## mapOrientedPhysicalUvToImagePlanePoint
|
|
176
|
+
|
|
177
|
+
Maps normalized coordinates in an oriented physical raster region into the
|
|
178
|
+
pre-orientation optical image plane used by lens-field and camera-mapping
|
|
179
|
+
APIs.
|
|
180
|
+
|
|
181
|
+
The supplied physical bounds use the capture contract's +Y-down basis after
|
|
182
|
+
physical camera orientation. The returned image-plane point uses optical-axis
|
|
183
|
+
origin, +X right and +Y up. No lens or projection equation is applied.
|
|
184
|
+
|
|
185
|
+
```ts
|
|
186
|
+
export function mapOrientedPhysicalUvToImagePlanePoint(
|
|
187
|
+
input: MapOrientedPhysicalUvToImagePlaneInput
|
|
188
|
+
): ImagePlaneMetricPointMm;
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
192
|
+
|
|
193
|
+
## NormalizedRasterUv
|
|
194
|
+
|
|
195
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
export interface NormalizedRasterUv {
|
|
199
|
+
/** 0 at the left edge, 1 at the right edge. */
|
|
200
|
+
u: number;
|
|
201
|
+
/** 0 at the top edge, 1 at the bottom edge. */
|
|
202
|
+
v: number;
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## OutputFieldOfView
|
|
207
|
+
|
|
208
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
209
|
+
|
|
210
|
+
```ts
|
|
211
|
+
export interface OutputFieldOfView {
|
|
212
|
+
orientation: CaptureOrientation;
|
|
213
|
+
horizontalDegrees: number;
|
|
214
|
+
verticalDegrees: number;
|
|
215
|
+
diagonalDegrees: number;
|
|
216
|
+
horizontalBoundsDegrees: {
|
|
217
|
+
minimum: number;
|
|
218
|
+
maximum: number;
|
|
219
|
+
};
|
|
220
|
+
verticalBoundsDegrees: {
|
|
221
|
+
minimum: number;
|
|
222
|
+
maximum: number;
|
|
223
|
+
};
|
|
224
|
+
diagonalDegreesByCornerPair: {
|
|
225
|
+
topLeftToBottomRight: number;
|
|
226
|
+
topRightToBottomLeft: number;
|
|
227
|
+
};
|
|
228
|
+
outputImagingArea: SensorImagingArea;
|
|
229
|
+
centerOffsetFromOpticalAxisMm: RasterVector;
|
|
230
|
+
projection: {
|
|
231
|
+
projectionDistanceMm: number;
|
|
232
|
+
provenance: CalculationProvenance;
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## PhysicalBoundsFromOpticalAxisMm
|
|
238
|
+
|
|
239
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
240
|
+
|
|
241
|
+
```ts
|
|
242
|
+
export interface PhysicalBoundsFromOpticalAxisMm {
|
|
243
|
+
left: number;
|
|
244
|
+
right: number;
|
|
245
|
+
top: number;
|
|
246
|
+
bottom: number;
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## RasterPoint
|
|
251
|
+
|
|
252
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
253
|
+
|
|
254
|
+
```ts
|
|
255
|
+
export interface RasterPoint {
|
|
256
|
+
x: number;
|
|
257
|
+
y: number;
|
|
258
|
+
}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## RasterRect
|
|
262
|
+
|
|
263
|
+
Integer half-open rectangle in raster coordinates.
|
|
264
|
+
|
|
265
|
+
Coordinates use a top-left origin with +X to the right and +Y downward.
|
|
266
|
+
The covered extent is [x, x + width) × [y, y + height).
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
export interface RasterRect {
|
|
270
|
+
x: number;
|
|
271
|
+
y: number;
|
|
272
|
+
width: number;
|
|
273
|
+
height: number;
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## RasterVector
|
|
278
|
+
|
|
279
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
280
|
+
|
|
281
|
+
```ts
|
|
282
|
+
export interface RasterVector {
|
|
283
|
+
x: number;
|
|
284
|
+
y: number;
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## resolveCaptureGeometry
|
|
289
|
+
|
|
290
|
+
Resolves native sensor geometry, active capture, physical camera orientation,
|
|
291
|
+
and final digital/output geometry without conflating their identities.
|
|
292
|
+
|
|
293
|
+
```ts
|
|
294
|
+
export function resolveCaptureGeometry(
|
|
295
|
+
input: ResolveCaptureGeometryInput
|
|
296
|
+
): CalculationResult<ResolvedCaptureGeometry>;
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
300
|
+
|
|
301
|
+
## ResolveCaptureGeometryInput
|
|
302
|
+
|
|
303
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
304
|
+
|
|
305
|
+
```ts
|
|
306
|
+
export interface ResolveCaptureGeometryInput {
|
|
307
|
+
imagingArea: SensorImagingArea;
|
|
308
|
+
nativeRaster: NativeImageRaster;
|
|
309
|
+
orientation: CaptureOrientation;
|
|
310
|
+
/**
|
|
311
|
+
* Active capture rectangle in native sensor raster coordinates.
|
|
312
|
+
*
|
|
313
|
+
* Defaults to the full native raster.
|
|
314
|
+
*/
|
|
315
|
+
activeCaptureRect?: RasterRect;
|
|
316
|
+
/**
|
|
317
|
+
* Final digital/output crop in oriented active-capture raster coordinates.
|
|
318
|
+
*
|
|
319
|
+
* Defaults to the full oriented active capture.
|
|
320
|
+
*/
|
|
321
|
+
outputCropRect?: RasterRect;
|
|
322
|
+
/**
|
|
323
|
+
* Final output raster after optional digital crop/resampling.
|
|
324
|
+
*
|
|
325
|
+
* Defaults to the output-crop dimensions. The output raster must preserve
|
|
326
|
+
* the crop aspect ratio within a small integer-rounding tolerance.
|
|
327
|
+
*/
|
|
328
|
+
outputRaster?: RasterDimensions;
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## ResolvedCaptureGeometry
|
|
333
|
+
|
|
334
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
335
|
+
|
|
336
|
+
```ts
|
|
337
|
+
export interface ResolvedCaptureGeometry {
|
|
338
|
+
native: {
|
|
339
|
+
imagingArea: SensorImagingArea;
|
|
340
|
+
raster: NativeImageRaster;
|
|
341
|
+
};
|
|
342
|
+
activeCapture: {
|
|
343
|
+
nativeRect: RasterRect;
|
|
344
|
+
imagingArea: SensorImagingArea;
|
|
345
|
+
/**
|
|
346
|
+
* Top-left active-area offset from the native imaging-area top-left.
|
|
347
|
+
*/
|
|
348
|
+
physicalOffsetMm: {
|
|
349
|
+
x: number;
|
|
350
|
+
y: number;
|
|
351
|
+
};
|
|
352
|
+
/** Active-area center relative to the native optical axis. */
|
|
353
|
+
centerOffsetFromOpticalAxisMm: RasterVector;
|
|
354
|
+
/** Native physical bounds relative to the optical axis. */
|
|
355
|
+
physicalBoundsFromOpticalAxisMm: PhysicalBoundsFromOpticalAxisMm;
|
|
356
|
+
/**
|
|
357
|
+
* Current generic model assumes native image samples uniformly span the
|
|
358
|
+
* declared physical imaging area.
|
|
359
|
+
*/
|
|
360
|
+
imagingAreaDerivation: "uniform-native-raster";
|
|
361
|
+
raster: RasterDimensions;
|
|
362
|
+
};
|
|
363
|
+
orientedCapture: {
|
|
364
|
+
orientation: CaptureOrientation;
|
|
365
|
+
imagingArea: SensorImagingArea;
|
|
366
|
+
/** Oriented physical bounds relative to the optical axis. */
|
|
367
|
+
physicalBoundsFromOpticalAxisMm: PhysicalBoundsFromOpticalAxisMm;
|
|
368
|
+
raster: RasterDimensions;
|
|
369
|
+
};
|
|
370
|
+
output: {
|
|
371
|
+
/**
|
|
372
|
+
* Digital/output crop expressed in oriented active-capture coordinates.
|
|
373
|
+
*
|
|
374
|
+
* This crop does not mutate physical sensor identity or active-capture
|
|
375
|
+
* geometry.
|
|
376
|
+
*/
|
|
377
|
+
cropRect: RasterRect;
|
|
378
|
+
raster: RasterDimensions;
|
|
379
|
+
/** Physical region retained by the digital/output crop. */
|
|
380
|
+
imagingArea: SensorImagingArea;
|
|
381
|
+
physicalBoundsFromOpticalAxisMm: PhysicalBoundsFromOpticalAxisMm;
|
|
382
|
+
centerOffsetFromOpticalAxisMm: RasterVector;
|
|
383
|
+
sourceRetainedAreaFraction: number;
|
|
384
|
+
/** Pixel-domain resampling from oriented active capture into output. */
|
|
385
|
+
orientedCaptureToOutputScale: {
|
|
386
|
+
x: number;
|
|
387
|
+
y: number;
|
|
388
|
+
axisRelativeDifference: number;
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
## transformNativeRasterPointToOriented
|
|
395
|
+
|
|
396
|
+
Transforms a continuous native raster edge-coordinate point into oriented
|
|
397
|
+
capture coordinates. Pixel centers can be represented with +0.5 offsets.
|
|
398
|
+
|
|
399
|
+
```ts
|
|
400
|
+
export function transformNativeRasterPointToOriented(
|
|
401
|
+
input: TransformRasterPointInput
|
|
402
|
+
): RasterPoint;
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
406
|
+
|
|
407
|
+
## transformNativeRasterRectToOriented
|
|
408
|
+
|
|
409
|
+
Transforms an integer half-open native raster rectangle into oriented coordinates.
|
|
410
|
+
|
|
411
|
+
```ts
|
|
412
|
+
export function transformNativeRasterRectToOriented(
|
|
413
|
+
input: TransformRasterRectInput
|
|
414
|
+
): RasterRect;
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
418
|
+
|
|
419
|
+
## transformNativeRasterVectorToOriented
|
|
420
|
+
|
|
421
|
+
Rotates a native raster vector into oriented coordinates.
|
|
422
|
+
|
|
423
|
+
```ts
|
|
424
|
+
export function transformNativeRasterVectorToOriented(
|
|
425
|
+
input: TransformRasterVectorInput
|
|
426
|
+
): RasterVector;
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
430
|
+
|
|
431
|
+
## transformOrientedRasterPointToNative
|
|
432
|
+
|
|
433
|
+
Transforms an oriented raster edge-coordinate point back to native coordinates.
|
|
434
|
+
|
|
435
|
+
```ts
|
|
436
|
+
export function transformOrientedRasterPointToNative(
|
|
437
|
+
input: TransformRasterPointInput
|
|
438
|
+
): RasterPoint;
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
442
|
+
|
|
443
|
+
## transformOrientedRasterRectToNative
|
|
444
|
+
|
|
445
|
+
Transforms an oriented integer half-open rectangle back to native coordinates.
|
|
446
|
+
|
|
447
|
+
```ts
|
|
448
|
+
export function transformOrientedRasterRectToNative(
|
|
449
|
+
input: TransformRasterRectInput
|
|
450
|
+
): RasterRect;
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
454
|
+
|
|
455
|
+
## transformOrientedRasterVectorToNative
|
|
456
|
+
|
|
457
|
+
Rotates an oriented raster vector back into native coordinates.
|
|
458
|
+
|
|
459
|
+
```ts
|
|
460
|
+
export function transformOrientedRasterVectorToNative(
|
|
461
|
+
input: TransformRasterVectorInput
|
|
462
|
+
): RasterVector;
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
466
|
+
|
|
467
|
+
## TransformRasterPointInput
|
|
468
|
+
|
|
469
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
470
|
+
|
|
471
|
+
```ts
|
|
472
|
+
export interface TransformRasterPointInput {
|
|
473
|
+
point: RasterPoint;
|
|
474
|
+
nativeRaster: NativeImageRaster;
|
|
475
|
+
orientation: CaptureOrientation;
|
|
476
|
+
}
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
## TransformRasterRectInput
|
|
480
|
+
|
|
481
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
482
|
+
|
|
483
|
+
```ts
|
|
484
|
+
export interface TransformRasterRectInput {
|
|
485
|
+
rect: RasterRect;
|
|
486
|
+
nativeRaster: NativeImageRaster;
|
|
487
|
+
orientation: CaptureOrientation;
|
|
488
|
+
}
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
## TransformRasterVectorInput
|
|
492
|
+
|
|
493
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
494
|
+
|
|
495
|
+
```ts
|
|
496
|
+
export interface TransformRasterVectorInput {
|
|
497
|
+
vector: RasterVector;
|
|
498
|
+
orientation: CaptureOrientation;
|
|
499
|
+
}
|
|
500
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# output/capture-sdr.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.0**, root API **0.116.0**. [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
|
+
## calculateCaptureSdr
|
|
6
|
+
|
|
7
|
+
Renders the validated capture color state without correction or resampling.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export function calculateCaptureSdr(input: CaptureSdrInput): CalculationResult<CaptureSdrResult>;
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
14
|
+
|
|
15
|
+
## CAPTURE_SDR_SCHEMA_VERSION
|
|
16
|
+
|
|
17
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
CAPTURE_SDR_SCHEMA_VERSION = "0.1.0" as const
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## CaptureSdrInput
|
|
24
|
+
|
|
25
|
+
Select an existing RGB state or explicitly derive one; never estimate WB here.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
export interface CaptureSdrInput {
|
|
29
|
+
capture: SimulatedCapture;
|
|
30
|
+
sourcePlaneId: string;
|
|
31
|
+
color: { kind: "already-transformed" } | {
|
|
32
|
+
kind: "transform";
|
|
33
|
+
outputPlaneId: string;
|
|
34
|
+
outputImageStateId: string;
|
|
35
|
+
whiteBalance: CaptureColorTransformInput["whiteBalance"];
|
|
36
|
+
};
|
|
37
|
+
profile: SdrRenderingProfile;
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## CaptureSdrResult
|
|
42
|
+
|
|
43
|
+
Keeps source capture history, optional color derivation and SDR diagnostics distinct.
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
export interface CaptureSdrResult {
|
|
47
|
+
schemaVersion: typeof CAPTURE_SDR_SCHEMA_VERSION;
|
|
48
|
+
captureId: string;
|
|
49
|
+
sourcePlaneId: string;
|
|
50
|
+
sourceImageStateId: string;
|
|
51
|
+
rasterBinding: CaptureLinearPlane["rasterBinding"];
|
|
52
|
+
sourceCaptureSaturation: CaptureLinearPlane["captureSaturation"];
|
|
53
|
+
sourceDynamicRangeHistory: SimulatedCapture["source"]["dynamicRangeHistory"];
|
|
54
|
+
noiseRealizationId: string;
|
|
55
|
+
whiteBalance: "applied-here" | "already-applied-upstream" | "not-required";
|
|
56
|
+
color: CalculationResult<CaptureColorTransformResult> | null;
|
|
57
|
+
rendering: CalculationResult<SdrRenderingResult>;
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## parseCaptureSdrInput
|
|
62
|
+
|
|
63
|
+
Validates the capture and explicit color/render choices at an untrusted boundary.
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
export function parseCaptureSdrInput(value: unknown): CaptureSdrInput;
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|