@photivra/engine 0.5.1 → 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 +218 -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 +157 -56
- 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 +101 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99 -7
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +76 -0
- package/dist/motion/camera-rotation.d.ts.map +1 -1
- package/dist/motion/camera-rotation.js +111 -0
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +113 -0
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -0
- package/dist/motion/capture-rotation-inverse-mapping.js +184 -0
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +104 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js +131 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -0
- package/dist/motion/capture-rotation-trajectory.d.ts +113 -0
- package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -0
- package/dist/motion/capture-rotation-trajectory.js +168 -0
- package/dist/motion/capture-rotation-trajectory.js.map +1 -0
- 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 +23 -4
- 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 +22 -2
- package/dist/optics/radial-distortion.d.ts.map +1 -1
- package/dist/optics/radial-distortion.js +101 -23
- 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 +32 -11
- 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 +212 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -0
- package/dist/sensor/capture-color-sampling-binding.js +437 -0
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -0
- 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 +157 -0
- package/dist/sensor/capture-mode.d.ts.map +1 -0
- package/dist/sensor/capture-mode.js +447 -0
- package/dist/sensor/capture-mode.js.map +1 -0
- package/dist/sensor/color-sampling.d.ts +133 -0
- package/dist/sensor/color-sampling.d.ts.map +1 -0
- package/dist/sensor/color-sampling.js +245 -0
- package/dist/sensor/color-sampling.js.map +1 -0
- 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 +117 -0
- package/dist/sensor/exposure-window.d.ts.map +1 -0
- package/dist/sensor/exposure-window.js +305 -0
- package/dist/sensor/exposure-window.js.map +1 -0
- 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 +132 -0
- package/dist/sensor/optical-stack.d.ts.map +1 -0
- package/dist/sensor/optical-stack.js +303 -0
- package/dist/sensor/optical-stack.js.map +1 -0
- 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 +123 -0
- package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -0
- package/dist/sensor/readout-exposure-linkage.js +222 -0
- package/dist/sensor/readout-exposure-linkage.js.map +1 -0
- package/dist/sensor/readout-timing.d.ts +137 -0
- package/dist/sensor/readout-timing.d.ts.map +1 -0
- package/dist/sensor/readout-timing.js +243 -0
- package/dist/sensor/readout-timing.js.map +1 -0
- 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 +154 -0
- package/dist/sensor/sampling-aperture.d.ts.map +1 -0
- package/dist/sensor/sampling-aperture.js +388 -0
- package/dist/sensor/sampling-aperture.js.map +1 -0
- 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 +171 -0
- package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -0
- package/dist/sensor/spatial-sample-reduction.js +345 -0
- package/dist/sensor/spatial-sample-reduction.js.map +1 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts +179 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -0
- package/dist/sensor/spatial-sampling-quadrature.js +224 -0
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -0
- 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 +150 -23
- package/docs/AUTOMATION_COORDINATION.md +190 -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 +105 -9
- package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
- package/docs/MOTION_AND_SIGNAL.md +145 -1
- 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 +5604 -331
- 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 +18 -4
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Module boundary and integration notes.
|
|
4
|
+
* Pack validated unsigned integer tag values into little-endian BYTE, SHORT or LONG payloads; reject
|
|
5
|
+
* values outside the selected storage range.
|
|
6
|
+
* Describe an internal BYTE/UNDEFINED tag using the supplied byte array. The payload is borrowed here;
|
|
7
|
+
* the final TIFF packer copies it into its owned output buffer.
|
|
8
|
+
* @see docs/SIMULATED_CAPTURE.md for equations, coordinate/unit conventions, blockers and support
|
|
9
|
+
* limits.
|
|
10
|
+
*/
|
|
11
|
+
import { InvalidConfigurationError } from "../core/configuration-error.js";
|
|
12
|
+
/**
|
|
13
|
+
* Pack validated unsigned integer tag values into little-endian BYTE, SHORT or LONG payloads; reject
|
|
14
|
+
* values outside the selected storage range.
|
|
15
|
+
* @param id - number. See the linked contract for coordinate, unit and profile binding semantics.
|
|
16
|
+
* @param type - 1 | 3 | 4. See the linked contract for coordinate, unit and profile binding semantics.
|
|
17
|
+
* @param values - readonly number[]. See the linked contract for coordinate, unit and profile binding semantics.
|
|
18
|
+
* @returns ExportTiffTag. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
19
|
+
*
|
|
20
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
21
|
+
*/
|
|
22
|
+
export function exportTiffNumbers(id, type, values) {
|
|
23
|
+
const size = type === 1 ? 1 : type === 3 ? 2 : 4, data = new Uint8Array(values.length * size), view = new DataView(data.buffer);
|
|
24
|
+
values.forEach((v, i) => {
|
|
25
|
+
if (!Number.isSafeInteger(v) || v < 0 || v > (type === 1 ? 255 : type === 3 ? 65535 : 4294967295))
|
|
26
|
+
throw new InvalidConfigurationError("TIFF integer is out of range.");
|
|
27
|
+
if (size === 1)
|
|
28
|
+
view.setUint8(i, v);
|
|
29
|
+
else if (size === 2)
|
|
30
|
+
view.setUint16(i * size, v, true);
|
|
31
|
+
else
|
|
32
|
+
view.setUint32(i * size, v, true);
|
|
33
|
+
});
|
|
34
|
+
return { id, type, count: values.length, data };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Describe an internal BYTE/UNDEFINED tag using the supplied byte array. The payload is borrowed here;
|
|
38
|
+
* the final TIFF packer copies it into its owned output buffer.
|
|
39
|
+
* @param id - number. See the linked contract for coordinate, unit and profile binding semantics.
|
|
40
|
+
* @param type - 1 | 7. See the linked contract for coordinate, unit and profile binding semantics.
|
|
41
|
+
* @param data - Uint8Array. See the linked contract for coordinate, unit and profile binding semantics.
|
|
42
|
+
* @returns ExportTiffTag. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
43
|
+
*
|
|
44
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
45
|
+
*/
|
|
46
|
+
export function exportTiffBytes(id, type, data) {
|
|
47
|
+
return { id, type, count: data.length, data };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Encode printable ASCII with the required NUL terminator; reject unsupported characters instead of
|
|
51
|
+
* silent lossy replacement.
|
|
52
|
+
* @param id - number. See the linked contract for coordinate, unit and profile binding semantics.
|
|
53
|
+
* @param value - string. See the linked contract for coordinate, unit and profile binding semantics.
|
|
54
|
+
* @returns ExportTiffTag. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
55
|
+
*
|
|
56
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
57
|
+
*/
|
|
58
|
+
export function exportTiffAscii(id, value) {
|
|
59
|
+
if (!/^[\x20-\x7e]*$/.test(value))
|
|
60
|
+
throw new InvalidConfigurationError("TIFF text requires printable ASCII.");
|
|
61
|
+
const data = new TextEncoder().encode(value + "\0");
|
|
62
|
+
return { id, type: 2, count: data.length, data };
|
|
63
|
+
}
|
|
64
|
+
/** Bounded rational approximation; matrix/metadata precision is explicit, never silent overflow. */
|
|
65
|
+
export function exportTiffRationals(id, signed, values) {
|
|
66
|
+
const data = new Uint8Array(values.length * 8), view = new DataView(data.buffer);
|
|
67
|
+
values.forEach((v, i) => {
|
|
68
|
+
const limit = signed ? 2147483647 : 4294967295;
|
|
69
|
+
const denominator = Math.min(1000000000, 10 ** Math.floor(Math.log10(limit / Math.max(1, Math.abs(v))))), numerator = Math.round(v * denominator);
|
|
70
|
+
if (!Number.isFinite(v) || denominator < 1 || (!signed && v < 0) || Math.abs(numerator) > limit ||
|
|
71
|
+
(v !== 0 && numerator === 0))
|
|
72
|
+
throw new InvalidConfigurationError("TIFF rational exceeds supported precision/range.");
|
|
73
|
+
if (signed)
|
|
74
|
+
view.setInt32(i * 8, numerator, true);
|
|
75
|
+
else
|
|
76
|
+
view.setUint32(i * 8, numerator, true);
|
|
77
|
+
view.setUint32(i * 8 + 4, denominator, true);
|
|
78
|
+
});
|
|
79
|
+
return { id, type: signed ? 10 : 5, count: values.length, data };
|
|
80
|
+
}
|
|
81
|
+
/** Independently authored little-endian TIFF6 IFD0 + EXIF IFD, with optional uncompressed strip. */
|
|
82
|
+
export function packExportTiff(main, exif, pixels = new Uint8Array()) {
|
|
83
|
+
const pointer = { ...exportTiffNumbers(34665, 4, [0]), pointer: "exif" };
|
|
84
|
+
const lists = [[...main, pointer].sort((a, b) => a.id - b.id), [...exif].sort((a, b) => a.id - b.id)];
|
|
85
|
+
for (const tags of lists) {
|
|
86
|
+
if (tags.length > 128 || new Set(tags.map((t) => t.id)).size !== tags.length)
|
|
87
|
+
throw new InvalidConfigurationError("Duplicate/oversized TIFF directory.");
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Directories precede their out-of-line payloads. Four-byte alignment applies to
|
|
91
|
+
* payload addresses; values up to four bytes stay in the directory slot. Pointer
|
|
92
|
+
* placeholders are resolved only against this newly owned buffer, preventing a
|
|
93
|
+
* caller-supplied address from becoming an external file/memory reference.
|
|
94
|
+
*/
|
|
95
|
+
const exifOffset = 8 + 2 + lists[0].length * 12 + 4;
|
|
96
|
+
let cursor = exifOffset + 2 + lists[1].length * 12 + 4;
|
|
97
|
+
const offsets = new Map();
|
|
98
|
+
for (const tags of lists)
|
|
99
|
+
for (const t of tags) {
|
|
100
|
+
if (t.data.length > 4) {
|
|
101
|
+
cursor = (cursor + 3) & ~3;
|
|
102
|
+
offsets.set(t, cursor);
|
|
103
|
+
cursor += t.data.length;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const pixelOffset = (cursor + 3) & ~3, result = new Uint8Array(pixelOffset + pixels.length), view = new DataView(result.buffer);
|
|
107
|
+
result.set([73, 73, 42, 0, 8, 0, 0, 0]);
|
|
108
|
+
lists.forEach((tags, directory) => {
|
|
109
|
+
const base = directory === 0 ? 8 : exifOffset;
|
|
110
|
+
view.setUint16(base, tags.length, true);
|
|
111
|
+
tags.forEach((t, i) => {
|
|
112
|
+
const p = base + 2 + i * 12;
|
|
113
|
+
view.setUint16(p, t.id, true);
|
|
114
|
+
view.setUint16(p + 2, t.type, true);
|
|
115
|
+
view.setUint32(p + 4, t.count, true);
|
|
116
|
+
if (t.pointer)
|
|
117
|
+
view.setUint32(p + 8, t.pointer === "exif" ? exifOffset : pixelOffset, true);
|
|
118
|
+
else if (t.data.length <= 4)
|
|
119
|
+
result.set(t.data, p + 8);
|
|
120
|
+
else {
|
|
121
|
+
view.setUint32(p + 8, offsets.get(t), true);
|
|
122
|
+
result.set(t.data, offsets.get(t));
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
result.set(pixels, pixelOffset);
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=export-tiff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-tiff.js","sourceRoot":"","sources":["../../src/capture/export-tiff.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;GAQG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAI3E;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU,EAAE,IAAe,EAAE,MAAyB;IACtF,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9H,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,yBAAyB,CAAC,+BAA+B,CAAC,CAAC;QACxK,IAAI,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAAM,IAAI,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;;YAAM,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAClI,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AACD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,IAAW,EAAE,IAAgB;IACvE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AAChD,CAAC;AACD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,KAAa;IACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,yBAAyB,CAAC,qCAAqC,CAAC,CAAC;IAC9G,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,GAAC,IAAI,CAAC,CAAC;IAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AACtG,CAAC;AACD,oGAAoG;AACpG,MAAM,UAAU,mBAAmB,CAAC,EAAU,EAAE,MAAe,EAAE,MAAyB;IACxF,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/E,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,WAAW,CAAC,CAAC;QAC3I,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK;YAC3F,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,yBAAyB,CAAC,kDAAkD,CAAC,CAAC;QAC1H,IAAI,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;;YAAM,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AACnE,CAAC;AACD,oGAAoG;AACpG,MAAM,UAAU,cAAc,CAAC,IAA8B,EAAE,IAA8B,EAAE,MAAM,GAAG,IAAI,UAAU,EAAE;IACtH,MAAM,OAAO,GAAkB,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACxF,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,yBAAyB,CAAC,qCAAqC,CAAC,CAAC;IAC3J,CAAC;IACH;;;;;OAKG;IACD,MAAM,UAAU,GAAG,CAAC,GAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,GAAC,EAAE,GAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,GAAG,UAAU,GAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,GAAC,EAAE,GAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAC,CAAC;QACpG,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,GAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1H,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC,IAAI,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,IAAI,GAAC,CAAC,GAAC,CAAC,GAAC,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,IAAI,CAAC,CAAC;YACtH,IAAI,CAAC,CAAC,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;iBACnF,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;iBAC/C,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,EAAC,IAAI,CAAC,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;YAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAC,WAAW,CAAC,CAAC;IAAC,OAAO,MAAM,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { type EvidenceProvenance } from "../core/evidence-provenance.js";
|
|
2
|
+
import { type FocusPlane } from "../optics/focus-state.js";
|
|
3
|
+
export declare const FOCUS_CONTROL_PROFILE_SCHEMA_VERSION: "0.1.0";
|
|
4
|
+
export declare const FOCUS_CONTROL_STATE_VERSION: "0.1.0";
|
|
5
|
+
export type FocusControlMode = "manual" | "single-af" | "continuous-af";
|
|
6
|
+
export type FocusAcquisitionState = "idle" | "acquiring" | "acquired" | "target-lost" | "locked";
|
|
7
|
+
export type FocusReleasePriority = "focus-priority" | "release-priority" | "balanced";
|
|
8
|
+
export type FocusTargetLossReason = "occluded" | "out-of-frame" | "identity-lost" | "outside-focus-area";
|
|
9
|
+
export interface FocusControlProfile {
|
|
10
|
+
schemaVersion: typeof FOCUS_CONTROL_PROFILE_SCHEMA_VERSION;
|
|
11
|
+
profileId: string;
|
|
12
|
+
profileVersion: string;
|
|
13
|
+
scientificStatus: "approximation";
|
|
14
|
+
supportedModes: readonly FocusControlMode[];
|
|
15
|
+
actuator: {
|
|
16
|
+
kind: "ideal-instantaneous";
|
|
17
|
+
evidence: readonly EvidenceProvenance[];
|
|
18
|
+
};
|
|
19
|
+
continuousTargetLossPolicy: "hold-last-focus-require-explicit-reacquisition";
|
|
20
|
+
supportedReleasePriorities: readonly FocusReleasePriority[];
|
|
21
|
+
evidence: readonly EvidenceProvenance[];
|
|
22
|
+
limitations: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
interface FocusTargetObservationBase {
|
|
25
|
+
targetId: string;
|
|
26
|
+
focusAreaId?: string;
|
|
27
|
+
observedAtSeconds: number;
|
|
28
|
+
}
|
|
29
|
+
export type FocusTargetObservation = (FocusTargetObservationBase & {
|
|
30
|
+
kind: "finite-surface";
|
|
31
|
+
/**
|
|
32
|
+
* Longitudinal camera-space/conjugate distance from #103, not renderer
|
|
33
|
+
* ray length.
|
|
34
|
+
*/
|
|
35
|
+
longitudinalDistanceM: number;
|
|
36
|
+
}) | (FocusTargetObservationBase & {
|
|
37
|
+
kind: "infinity-environment";
|
|
38
|
+
}) | (FocusTargetObservationBase & {
|
|
39
|
+
kind: "unavailable";
|
|
40
|
+
reason: FocusTargetLossReason;
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Immutable logical MF/single-AF/continuous-AF state. Resolved focus remains a
|
|
44
|
+
* finite longitudinal distance in metres or explicit infinity. Acquisition, loss,
|
|
45
|
+
* reacquisition and lock records explain why a target is usable; a focus-release
|
|
46
|
+
* gate remains separate from shutter sequencing. The ideal actuator does not model
|
|
47
|
+
* commercial AF measurement accuracy or physical acquisition time.
|
|
48
|
+
*/
|
|
49
|
+
export interface FocusControlState {
|
|
50
|
+
version: typeof FOCUS_CONTROL_STATE_VERSION;
|
|
51
|
+
stateId: string;
|
|
52
|
+
sourceProfile: {
|
|
53
|
+
profileId: string;
|
|
54
|
+
profileVersion: string;
|
|
55
|
+
};
|
|
56
|
+
profileLimitations: readonly string[];
|
|
57
|
+
mode: FocusControlMode;
|
|
58
|
+
acquisitionState: FocusAcquisitionState;
|
|
59
|
+
focus: FocusPlane;
|
|
60
|
+
activeTargetId?: string;
|
|
61
|
+
activeFocusAreaId?: string;
|
|
62
|
+
lastEventTimeSeconds: number;
|
|
63
|
+
focusResolvedAtSeconds: number;
|
|
64
|
+
locked: boolean;
|
|
65
|
+
lock?: {
|
|
66
|
+
lockedAtSeconds: number;
|
|
67
|
+
resumeAcquisitionState: Exclude<FocusAcquisitionState, "locked">;
|
|
68
|
+
};
|
|
69
|
+
actuatorModel: "ideal-instantaneous";
|
|
70
|
+
continuousTargetLossPolicy: "hold-last-focus-require-explicit-reacquisition";
|
|
71
|
+
exposureModified: false;
|
|
72
|
+
meteringModified: false;
|
|
73
|
+
whiteBalanceModified: false;
|
|
74
|
+
subjectTrackingRecognitionModeled: false;
|
|
75
|
+
rendererCoordinatesConsumed: false;
|
|
76
|
+
limitations: readonly string[];
|
|
77
|
+
}
|
|
78
|
+
export interface CreateFocusControlStateInput {
|
|
79
|
+
stateId: string;
|
|
80
|
+
profile: FocusControlProfile;
|
|
81
|
+
mode: FocusControlMode;
|
|
82
|
+
initialFocus: FocusPlane;
|
|
83
|
+
initialTimeSeconds?: number;
|
|
84
|
+
}
|
|
85
|
+
export interface SetManualFocusStateInput {
|
|
86
|
+
state: FocusControlState;
|
|
87
|
+
stateId: string;
|
|
88
|
+
focus: FocusPlane;
|
|
89
|
+
eventTimeSeconds: number;
|
|
90
|
+
commandId?: string;
|
|
91
|
+
}
|
|
92
|
+
export type FocusTargetControlEvent = "acquire" | "update";
|
|
93
|
+
export interface ResolveFocusTargetObservationInput {
|
|
94
|
+
state: FocusControlState;
|
|
95
|
+
stateId: string;
|
|
96
|
+
event: FocusTargetControlEvent;
|
|
97
|
+
observation: FocusTargetObservation;
|
|
98
|
+
}
|
|
99
|
+
export interface FocusTargetResolution {
|
|
100
|
+
state: FocusControlState;
|
|
101
|
+
targetObservationApplied: boolean;
|
|
102
|
+
focusChanged: boolean;
|
|
103
|
+
acquisitionEvent: FocusTargetControlEvent;
|
|
104
|
+
actuatorModel: "ideal-instantaneous";
|
|
105
|
+
silentRetargetingPerformed: false;
|
|
106
|
+
}
|
|
107
|
+
export interface SetFocusLockInput {
|
|
108
|
+
state: FocusControlState;
|
|
109
|
+
stateId: string;
|
|
110
|
+
locked: boolean;
|
|
111
|
+
eventTimeSeconds: number;
|
|
112
|
+
}
|
|
113
|
+
export interface AssessFocusReleaseGateInput {
|
|
114
|
+
state: FocusControlState;
|
|
115
|
+
profile: FocusControlProfile;
|
|
116
|
+
priority: FocusReleasePriority;
|
|
117
|
+
}
|
|
118
|
+
export interface FocusReleaseGateAssessment {
|
|
119
|
+
priority: FocusReleasePriority;
|
|
120
|
+
releaseAuthorized: boolean;
|
|
121
|
+
reason: "manual-focus-state" | "focus-acquired" | "focus-locked" | "release-priority-bypasses-focus-gate" | "focus-not-acquired" | "balanced-policy-not-modeled";
|
|
122
|
+
requiresProfileSpecificBalancedPolicy: boolean;
|
|
123
|
+
opticalFocusModified: false;
|
|
124
|
+
exposureModified: false;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
128
|
+
* missing required fields and incompatible scientific data fail at this boundary.
|
|
129
|
+
*
|
|
130
|
+
* Focus is a longitudinal plane or explicit infinity state, never a screen-space distance. The ideal
|
|
131
|
+
* actuator resolves supplied target observations; it does not infer a commercial AF sensor, focus-ring
|
|
132
|
+
* scale or acquisition latency. Target loss, reacquisition, focus lock and release priority remain
|
|
133
|
+
* separate state transitions.
|
|
134
|
+
* @param value - unknown. Treated as untrusted data; static typing alone is not validation.
|
|
135
|
+
* @returns FocusControlProfile. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
136
|
+
*
|
|
137
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
138
|
+
*/
|
|
139
|
+
export declare function parseFocusControlProfile(value: unknown): FocusControlProfile;
|
|
140
|
+
/**
|
|
141
|
+
* Create the initial ideal focus-controller state from an explicit profile, focus plane and public
|
|
142
|
+
* state identity.
|
|
143
|
+
*
|
|
144
|
+
* Focus is a longitudinal plane or explicit infinity state, never a screen-space distance. The ideal
|
|
145
|
+
* actuator resolves supplied target observations; it does not infer a commercial AF sensor, focus-ring
|
|
146
|
+
* scale or acquisition latency. Target loss, reacquisition, focus lock and release priority remain
|
|
147
|
+
* separate state transitions.
|
|
148
|
+
* @param input - CreateFocusControlStateInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
149
|
+
* @returns FocusControlState. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
150
|
+
*
|
|
151
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
152
|
+
*/
|
|
153
|
+
export declare function createFocusControlState(input: CreateFocusControlStateInput): FocusControlState;
|
|
154
|
+
/**
|
|
155
|
+
* Return a manual focus transition to the supplied finite/infinity plane without inventing a lens
|
|
156
|
+
* actuator or focus-ring conversion.
|
|
157
|
+
*
|
|
158
|
+
* Focus is a longitudinal plane or explicit infinity state, never a screen-space distance. The ideal
|
|
159
|
+
* actuator resolves supplied target observations; it does not infer a commercial AF sensor, focus-ring
|
|
160
|
+
* scale or acquisition latency. Target loss, reacquisition, focus lock and release priority remain
|
|
161
|
+
* separate state transitions.
|
|
162
|
+
* @param input - SetManualFocusStateInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
163
|
+
* @returns FocusControlState. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
164
|
+
*
|
|
165
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
166
|
+
*/
|
|
167
|
+
export declare function setManualFocusState(input: SetManualFocusStateInput): FocusControlState;
|
|
168
|
+
/**
|
|
169
|
+
* Resolve an explicit available/lost target observation under the selected single/continuous AF
|
|
170
|
+
* policy, retaining acquisition and reacquisition disposition.
|
|
171
|
+
*
|
|
172
|
+
* Focus is a longitudinal plane or explicit infinity state, never a screen-space distance. The ideal
|
|
173
|
+
* actuator resolves supplied target observations; it does not infer a commercial AF sensor, focus-ring
|
|
174
|
+
* scale or acquisition latency. Target loss, reacquisition, focus lock and release priority remain
|
|
175
|
+
* separate state transitions.
|
|
176
|
+
* @param input - ResolveFocusTargetObservationInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
177
|
+
* @returns FocusTargetResolution. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
178
|
+
*
|
|
179
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
180
|
+
*/
|
|
181
|
+
export declare function resolveFocusTargetObservation(input: ResolveFocusTargetObservationInput): FocusTargetResolution;
|
|
182
|
+
/**
|
|
183
|
+
* Return an explicit lock/unlock transition without changing the underlying physical focus plane.
|
|
184
|
+
*
|
|
185
|
+
* Focus is a longitudinal plane or explicit infinity state, never a screen-space distance. The ideal
|
|
186
|
+
* actuator resolves supplied target observations; it does not infer a commercial AF sensor, focus-ring
|
|
187
|
+
* scale or acquisition latency. Target loss, reacquisition, focus lock and release priority remain
|
|
188
|
+
* separate state transitions.
|
|
189
|
+
* @param input - SetFocusLockInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
190
|
+
* @returns FocusControlState. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
191
|
+
*
|
|
192
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
193
|
+
*/
|
|
194
|
+
export declare function setFocusLock(input: SetFocusLockInput): FocusControlState;
|
|
195
|
+
/**
|
|
196
|
+
* Report whether release may proceed under focus-priority or release-priority policy; this does not
|
|
197
|
+
* operate a shutter.
|
|
198
|
+
*
|
|
199
|
+
* Focus is a longitudinal plane or explicit infinity state, never a screen-space distance. The ideal
|
|
200
|
+
* actuator resolves supplied target observations; it does not infer a commercial AF sensor, focus-ring
|
|
201
|
+
* scale or acquisition latency. Target loss, reacquisition, focus lock and release priority remain
|
|
202
|
+
* separate state transitions.
|
|
203
|
+
* @param input - AssessFocusReleaseGateInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
204
|
+
* @returns FocusReleaseGateAssessment. Read structured blockers before consuming an authorization.
|
|
205
|
+
*
|
|
206
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
207
|
+
*/
|
|
208
|
+
export declare function assessFocusReleaseGate(input: AssessFocusReleaseGateInput): FocusReleaseGateAssessment;
|
|
209
|
+
export {};
|
|
210
|
+
//# sourceMappingURL=focus-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-control.d.ts","sourceRoot":"","sources":["../../src/capture/focus-control.ts"],"names":[],"mappings":"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"}
|