@photivra/engine 0.6.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +674 -0
- package/CHANGELOG.md +191 -0
- package/CITATION.cff +1 -1
- package/CONTRIBUTING.md +76 -0
- package/DCO +33 -0
- package/NODE_SUPPORT.md +37 -0
- package/NOTICE +2 -0
- package/README.md +139 -72
- package/SECURITY.md +55 -0
- package/THIRD_PARTY.md +63 -0
- package/dist/camera/equivalent-focal-length.d.ts +9 -0
- package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
- package/dist/camera/equivalent-focal-length.js +9 -0
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +13 -0
- package/dist/camera/field-of-view.d.ts.map +1 -1
- package/dist/camera/field-of-view.js +13 -0
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/projected-object-size.d.ts +8 -0
- package/dist/camera/projected-object-size.d.ts.map +1 -1
- package/dist/camera/projected-object-size.js +8 -0
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +60 -0
- package/dist/capture/capture-export-metadata.d.ts.map +1 -0
- package/dist/capture/capture-export-metadata.js +62 -0
- package/dist/capture/capture-export-metadata.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +55 -0
- package/dist/capture/environment-raw-producer.d.ts.map +1 -0
- package/dist/capture/environment-raw-producer.js +88 -0
- package/dist/capture/environment-raw-producer.js.map +1 -0
- package/dist/capture/export-jpeg.d.ts +12 -0
- package/dist/capture/export-jpeg.d.ts.map +1 -0
- package/dist/capture/export-jpeg.js +126 -0
- package/dist/capture/export-jpeg.js.map +1 -0
- package/dist/capture/export-tiff.d.ts +45 -0
- package/dist/capture/export-tiff.d.ts.map +1 -0
- package/dist/capture/export-tiff.js +129 -0
- package/dist/capture/export-tiff.js.map +1 -0
- package/dist/capture/focus-control.d.ts +210 -0
- package/dist/capture/focus-control.d.ts.map +1 -0
- package/dist/capture/focus-control.js +664 -0
- package/dist/capture/focus-control.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +59 -0
- package/dist/capture/linear-encoding.d.ts.map +1 -0
- package/dist/capture/linear-encoding.js +98 -0
- package/dist/capture/linear-encoding.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +135 -0
- package/dist/capture/photographic-export.d.ts.map +1 -0
- package/dist/capture/photographic-export.js +273 -0
- package/dist/capture/photographic-export.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +12 -0
- package/dist/capture/raw-frame-limits.d.ts.map +1 -0
- package/dist/capture/raw-frame-limits.js +13 -0
- package/dist/capture/raw-frame-limits.js.map +1 -0
- package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
- package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
- package/dist/capture/raw-frame-reconstruction.js +146 -0
- package/dist/capture/raw-frame-reconstruction.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +120 -0
- package/dist/capture/release-sequence.d.ts.map +1 -0
- package/dist/capture/release-sequence.js +446 -0
- package/dist/capture/release-sequence.js.map +1 -0
- package/dist/capture/sensor-raw-frame.d.ts +34 -0
- package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
- package/dist/capture/sensor-raw-frame.js +106 -0
- package/dist/capture/sensor-raw-frame.js.map +1 -0
- package/dist/capture/sensor-raw-producer.d.ts +51 -0
- package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
- package/dist/capture/sensor-raw-producer.js +235 -0
- package/dist/capture/sensor-raw-producer.js.map +1 -0
- package/dist/capture/simulated-capture.d.ts +125 -0
- package/dist/capture/simulated-capture.d.ts.map +1 -0
- package/dist/capture/simulated-capture.js +248 -0
- package/dist/capture/simulated-capture.js.map +1 -0
- package/dist/color/capture-color.d.ts +73 -0
- package/dist/color/capture-color.d.ts.map +1 -0
- package/dist/color/capture-color.js +145 -0
- package/dist/color/capture-color.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +23 -0
- package/dist/color/sensor-color-development.d.ts.map +1 -0
- package/dist/color/sensor-color-development.js +56 -0
- package/dist/color/sensor-color-development.js.map +1 -0
- package/dist/color/white-balance.d.ts +175 -0
- package/dist/color/white-balance.d.ts.map +1 -0
- package/dist/color/white-balance.js +606 -0
- package/dist/color/white-balance.js.map +1 -0
- package/dist/composition/image-formation-plan.d.ts +481 -0
- package/dist/composition/image-formation-plan.d.ts.map +1 -0
- package/dist/composition/image-formation-plan.js +2499 -0
- package/dist/composition/image-formation-plan.js.map +1 -0
- package/dist/composition/plan-consumer.d.ts +53 -0
- package/dist/composition/plan-consumer.d.ts.map +1 -0
- package/dist/composition/plan-consumer.js +119 -0
- package/dist/composition/plan-consumer.js.map +1 -0
- package/dist/core/calculation-result.d.ts.map +1 -1
- package/dist/core/calculation-result.js +6 -0
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +18 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +44 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/configuration-error.d.ts +6 -0
- package/dist/core/configuration-error.d.ts.map +1 -1
- package/dist/core/configuration-error.js +6 -0
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +6 -0
- package/dist/core/evidence-provenance.d.ts.map +1 -1
- package/dist/core/evidence-provenance.js +7 -0
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +9 -3
- package/dist/core/image-formation.d.ts.map +1 -1
- package/dist/core/image-formation.js +29 -5
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +25 -0
- package/dist/core/owned-data.d.ts.map +1 -0
- package/dist/core/owned-data.js +34 -0
- package/dist/core/owned-data.js.map +1 -0
- package/dist/core/record-validation.d.ts +17 -0
- package/dist/core/record-validation.d.ts.map +1 -0
- package/dist/core/record-validation.js +44 -0
- package/dist/core/record-validation.js.map +1 -0
- package/dist/core/scientific-assurance.d.ts +101 -0
- package/dist/core/scientific-assurance.d.ts.map +1 -0
- package/dist/core/scientific-assurance.js +301 -0
- package/dist/core/scientific-assurance.js.map +1 -0
- package/dist/core/spectral-composition.d.ts +106 -0
- package/dist/core/spectral-composition.d.ts.map +1 -0
- package/dist/core/spectral-composition.js +334 -0
- package/dist/core/spectral-composition.js.map +1 -0
- package/dist/core/spectral.d.ts +34 -0
- package/dist/core/spectral.d.ts.map +1 -0
- package/dist/core/spectral.js +57 -0
- package/dist/core/spectral.js.map +1 -0
- package/dist/core/validation.d.ts +6 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +6 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +9 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +10 -0
- package/dist/core/version.js.map +1 -0
- package/dist/equipment/exposure-capabilities.d.ts +125 -0
- package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
- package/dist/equipment/exposure-capabilities.js +391 -0
- package/dist/equipment/exposure-capabilities.js.map +1 -0
- package/dist/equipment/generic-tier-assets.d.ts +82 -0
- package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-assets.js +119 -0
- package/dist/equipment/generic-tier-assets.js.map +1 -0
- package/dist/equipment/generic-tier-presets.d.ts +57 -0
- package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-presets.js +122 -0
- package/dist/equipment/generic-tier-presets.js.map +1 -0
- package/dist/equipment/iso-capabilities.d.ts +143 -0
- package/dist/equipment/iso-capabilities.d.ts.map +1 -0
- package/dist/equipment/iso-capabilities.js +578 -0
- package/dist/equipment/iso-capabilities.js.map +1 -0
- package/dist/equipment/metering-capabilities.d.ts +58 -0
- package/dist/equipment/metering-capabilities.d.ts.map +1 -0
- package/dist/equipment/metering-capabilities.js +151 -0
- package/dist/equipment/metering-capabilities.js.map +1 -0
- package/dist/equipment/release-capabilities.d.ts +33 -0
- package/dist/equipment/release-capabilities.d.ts.map +1 -0
- package/dist/equipment/release-capabilities.js +176 -0
- package/dist/equipment/release-capabilities.js.map +1 -0
- package/dist/exposure/exposure-duration-control.d.ts +72 -0
- package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
- package/dist/exposure/exposure-duration-control.js +161 -0
- package/dist/exposure/exposure-duration-control.js.map +1 -0
- package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
- package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
- package/dist/exposure/exposure-mode-resolver.js +1905 -0
- package/dist/exposure/exposure-mode-resolver.js.map +1 -0
- package/dist/exposure/exposure.d.ts +8 -0
- package/dist/exposure/exposure.d.ts.map +1 -1
- package/dist/exposure/exposure.js +8 -0
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash.d.ts +179 -0
- package/dist/exposure/flash.d.ts.map +1 -0
- package/dist/exposure/flash.js +644 -0
- package/dist/exposure/flash.js.map +1 -0
- package/dist/exposure/metering-scene-radiance.d.ts +72 -0
- package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
- package/dist/exposure/metering-scene-radiance.js +222 -0
- package/dist/exposure/metering-scene-radiance.js.map +1 -0
- package/dist/exposure/metering-target.d.ts +67 -0
- package/dist/exposure/metering-target.d.ts.map +1 -0
- package/dist/exposure/metering-target.js +265 -0
- package/dist/exposure/metering-target.js.map +1 -0
- package/dist/exposure/metering-temporal.d.ts +76 -0
- package/dist/exposure/metering-temporal.d.ts.map +1 -0
- package/dist/exposure/metering-temporal.js +210 -0
- package/dist/exposure/metering-temporal.js.map +1 -0
- package/dist/exposure/metering.d.ts +124 -0
- package/dist/exposure/metering.d.ts.map +1 -0
- package/dist/exposure/metering.js +422 -0
- package/dist/exposure/metering.js.map +1 -0
- package/dist/exposure/program-line.d.ts +29 -0
- package/dist/exposure/program-line.d.ts.map +1 -0
- package/dist/exposure/program-line.js +126 -0
- package/dist/exposure/program-line.js.map +1 -0
- package/dist/index.d.ts +87 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -6
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +16 -0
- package/dist/motion/camera-rotation.d.ts.map +1 -1
- package/dist/motion/camera-rotation.js +16 -0
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
- package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
- package/dist/motion/capture-rotation-trajectory.js +15 -0
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
- package/dist/motion/extended-object-projection.d.ts +175 -0
- package/dist/motion/extended-object-projection.d.ts.map +1 -0
- package/dist/motion/extended-object-projection.js +402 -0
- package/dist/motion/extended-object-projection.js.map +1 -0
- package/dist/motion/projected-motion.d.ts +11 -0
- package/dist/motion/projected-motion.d.ts.map +1 -1
- package/dist/motion/projected-motion.js +11 -0
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/optics/aperture.d.ts +9 -0
- package/dist/optics/aperture.d.ts.map +1 -1
- package/dist/optics/aperture.js +9 -0
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/circle-of-confusion.d.ts +8 -0
- package/dist/optics/circle-of-confusion.d.ts.map +1 -1
- package/dist/optics/circle-of-confusion.js +8 -0
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +128 -0
- package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
- package/dist/optics/complex-pupil-psf.js +462 -0
- package/dist/optics/complex-pupil-psf.js.map +1 -0
- package/dist/optics/depth-of-field.d.ts +18 -0
- package/dist/optics/depth-of-field.d.ts.map +1 -1
- package/dist/optics/depth-of-field.js +29 -4
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction.d.ts +8 -0
- package/dist/optics/diffraction.d.ts.map +1 -1
- package/dist/optics/diffraction.js +8 -0
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +13 -0
- package/dist/optics/focus-breathing.d.ts.map +1 -1
- package/dist/optics/focus-breathing.js +13 -0
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +47 -0
- package/dist/optics/focus-state.d.ts.map +1 -0
- package/dist/optics/focus-state.js +78 -0
- package/dist/optics/focus-state.js.map +1 -0
- package/dist/optics/front-of-lens-filter.d.ts +114 -0
- package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
- package/dist/optics/front-of-lens-filter.js +468 -0
- package/dist/optics/front-of-lens-filter.js.map +1 -0
- package/dist/optics/illumination-vignetting.d.ts +9 -0
- package/dist/optics/illumination-vignetting.d.ts.map +1 -1
- package/dist/optics/illumination-vignetting.js +9 -0
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.js +11 -0
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-profile.d.ts +217 -0
- package/dist/optics/lens-psf-profile.d.ts.map +1 -0
- package/dist/optics/lens-psf-profile.js +823 -0
- package/dist/optics/lens-psf-profile.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +67 -0
- package/dist/optics/polygon-diffraction.d.ts.map +1 -0
- package/dist/optics/polygon-diffraction.js +145 -0
- package/dist/optics/polygon-diffraction.js.map +1 -0
- package/dist/optics/profile-contract.d.ts +42 -0
- package/dist/optics/profile-contract.d.ts.map +1 -0
- package/dist/optics/profile-contract.js +92 -0
- package/dist/optics/profile-contract.js.map +1 -0
- package/dist/optics/psf-foundation.d.ts +16 -3
- package/dist/optics/psf-foundation.d.ts.map +1 -1
- package/dist/optics/psf-foundation.js +28 -15
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/radial-distortion.d.ts +18 -0
- package/dist/optics/radial-distortion.d.ts.map +1 -1
- package/dist/optics/radial-distortion.js +18 -0
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-irradiance.js +662 -0
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.js +82 -0
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
- package/dist/optics/sensor-environment-query.d.ts +60 -0
- package/dist/optics/sensor-environment-query.d.ts.map +1 -0
- package/dist/optics/sensor-environment-query.js +50 -0
- package/dist/optics/sensor-environment-query.js.map +1 -0
- package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
- package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
- package/dist/optics/sensor-psf-quadrature.js +101 -0
- package/dist/optics/sensor-psf-quadrature.js.map +1 -0
- package/dist/optics/sensor-psf-support.d.ts +20 -0
- package/dist/optics/sensor-psf-support.d.ts.map +1 -0
- package/dist/optics/sensor-psf-support.js +13 -0
- package/dist/optics/sensor-psf-support.js.map +1 -0
- package/dist/optics/stray-light.d.ts +91 -0
- package/dist/optics/stray-light.d.ts.map +1 -0
- package/dist/optics/stray-light.js +110 -0
- package/dist/optics/stray-light.js.map +1 -0
- package/dist/optics/thin-lens.d.ts +8 -0
- package/dist/optics/thin-lens.d.ts.map +1 -1
- package/dist/optics/thin-lens.js +8 -0
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/output/capture-corrected-sdr.d.ts +49 -0
- package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
- package/dist/output/capture-corrected-sdr.js +149 -0
- package/dist/output/capture-corrected-sdr.js.map +1 -0
- package/dist/output/capture-geometry.d.ts.map +1 -1
- package/dist/output/capture-geometry.js +8 -0
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +49 -0
- package/dist/output/capture-sdr.d.ts.map +1 -0
- package/dist/output/capture-sdr.js +90 -0
- package/dist/output/capture-sdr.js.map +1 -0
- package/dist/output/crop.d.ts +6 -0
- package/dist/output/crop.d.ts.map +1 -1
- package/dist/output/crop.js +6 -0
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +137 -0
- package/dist/output/geometric-transforms.d.ts.map +1 -0
- package/dist/output/geometric-transforms.js +225 -0
- package/dist/output/geometric-transforms.js.map +1 -0
- package/dist/output/lens-corrections.d.ts +121 -0
- package/dist/output/lens-corrections.d.ts.map +1 -0
- package/dist/output/lens-corrections.js +210 -0
- package/dist/output/lens-corrections.js.map +1 -0
- package/dist/output/sdr-rendering.d.ts +81 -0
- package/dist/output/sdr-rendering.d.ts.map +1 -0
- package/dist/output/sdr-rendering.js +106 -0
- package/dist/output/sdr-rendering.js.map +1 -0
- package/dist/output/subject-framing-crop.d.ts +8 -0
- package/dist/output/subject-framing-crop.d.ts.map +1 -1
- package/dist/output/subject-framing-crop.js +8 -0
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/schema/camera.d.ts +6 -0
- package/dist/schema/camera.d.ts.map +1 -1
- package/dist/schema/illumination-spectral.d.ts +51 -0
- package/dist/schema/illumination-spectral.d.ts.map +1 -0
- package/dist/schema/illumination-spectral.js +132 -0
- package/dist/schema/illumination-spectral.js.map +1 -0
- package/dist/schema/illumination-temporal.d.ts +156 -0
- package/dist/schema/illumination-temporal.d.ts.map +1 -0
- package/dist/schema/illumination-temporal.js +554 -0
- package/dist/schema/illumination-temporal.js.map +1 -0
- package/dist/schema/illumination.d.ts +138 -0
- package/dist/schema/illumination.d.ts.map +1 -0
- package/dist/schema/illumination.js +483 -0
- package/dist/schema/illumination.js.map +1 -0
- package/dist/schema/scene-radiance-temporal.d.ts +107 -0
- package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
- package/dist/schema/scene-radiance-temporal.js +259 -0
- package/dist/schema/scene-radiance-temporal.js.map +1 -0
- package/dist/schema/scene-radiance.d.ts +185 -0
- package/dist/schema/scene-radiance.d.ts.map +1 -0
- package/dist/schema/scene-radiance.js +535 -0
- package/dist/schema/scene-radiance.js.map +1 -0
- package/dist/schema/scene.d.ts +7 -0
- package/dist/schema/scene.d.ts.map +1 -1
- package/dist/schema/validation.d.ts.map +1 -1
- package/dist/schema/validation.js +7 -0
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +199 -0
- package/dist/sensor/accumulated-charge.d.ts.map +1 -0
- package/dist/sensor/accumulated-charge.js +450 -0
- package/dist/sensor/accumulated-charge.js.map +1 -0
- package/dist/sensor/architecture.d.ts +48 -13
- package/dist/sensor/architecture.d.ts.map +1 -1
- package/dist/sensor/architecture.js +58 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
- package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
- package/dist/sensor/camera-saturation-capacity.js +356 -0
- package/dist/sensor/camera-saturation-capacity.js.map +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.js +14 -0
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +63 -0
- package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
- package/dist/sensor/capture-mode-timing.js +270 -0
- package/dist/sensor/capture-mode-timing.js.map +1 -0
- package/dist/sensor/capture-mode.d.ts.map +1 -1
- package/dist/sensor/capture-mode.js +13 -0
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts.map +1 -1
- package/dist/sensor/color-sampling.js +19 -0
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
- package/dist/sensor/constant-rate-temporal-integration.js +382 -0
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
- package/dist/sensor/dark-current.d.ts +169 -0
- package/dist/sensor/dark-current.d.ts.map +1 -0
- package/dist/sensor/dark-current.js +427 -0
- package/dist/sensor/dark-current.js.map +1 -0
- package/dist/sensor/environment-photo-signal.d.ts +123 -0
- package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
- package/dist/sensor/environment-photo-signal.js +186 -0
- package/dist/sensor/environment-photo-signal.js.map +1 -0
- package/dist/sensor/eqe-electron-rate.d.ts +107 -0
- package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
- package/dist/sensor/eqe-electron-rate.js +561 -0
- package/dist/sensor/eqe-electron-rate.js.map +1 -0
- package/dist/sensor/eqe-local-exposure.d.ts +65 -0
- package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-local-exposure.js +84 -0
- package/dist/sensor/eqe-local-exposure.js.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.js +62 -0
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/exposure-window.d.ts +14 -0
- package/dist/sensor/exposure-window.d.ts.map +1 -1
- package/dist/sensor/exposure-window.js +14 -0
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/iso-signal-chain.d.ts +148 -0
- package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
- package/dist/sensor/iso-signal-chain.js +411 -0
- package/dist/sensor/iso-signal-chain.js.map +1 -0
- package/dist/sensor/local-exposure-binding.d.ts +87 -0
- package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
- package/dist/sensor/local-exposure-binding.js +214 -0
- package/dist/sensor/local-exposure-binding.js.map +1 -0
- package/dist/sensor/optical-stack.d.ts.map +1 -1
- package/dist/sensor/optical-stack.js +17 -0
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +97 -0
- package/dist/sensor/photon-energy.d.ts.map +1 -0
- package/dist/sensor/photon-energy.js +390 -0
- package/dist/sensor/photon-energy.js.map +1 -0
- package/dist/sensor/physical-charge-capacity.d.ts +130 -0
- package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
- package/dist/sensor/physical-charge-capacity.js +345 -0
- package/dist/sensor/physical-charge-capacity.js.map +1 -0
- package/dist/sensor/pixel-pitch.d.ts +6 -0
- package/dist/sensor/pixel-pitch.d.ts.map +1 -1
- package/dist/sensor/pixel-pitch.js +6 -0
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +10 -0
- package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
- package/dist/sensor/radiometry-readiness.js +10 -0
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +314 -0
- package/dist/sensor/raw-readout.d.ts.map +1 -0
- package/dist/sensor/raw-readout.js +914 -0
- package/dist/sensor/raw-readout.js.map +1 -0
- package/dist/sensor/raw-reconstruction.d.ts +170 -0
- package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
- package/dist/sensor/raw-reconstruction.js +424 -0
- package/dist/sensor/raw-reconstruction.js.map +1 -0
- package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
- package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
- package/dist/sensor/readout-exposure-linkage.js +12 -0
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +13 -0
- package/dist/sensor/readout-timing.d.ts.map +1 -1
- package/dist/sensor/readout-timing.js +13 -0
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +136 -0
- package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
- package/dist/sensor/response-application-compatibility.js +408 -0
- package/dist/sensor/response-application-compatibility.js.map +1 -0
- package/dist/sensor/response-operating-range.d.ts +173 -0
- package/dist/sensor/response-operating-range.d.ts.map +1 -0
- package/dist/sensor/response-operating-range.js +672 -0
- package/dist/sensor/response-operating-range.js.map +1 -0
- package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
- package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
- package/dist/sensor/responsivity-photocurrent.js +644 -0
- package/dist/sensor/responsivity-photocurrent.js.map +1 -0
- package/dist/sensor/sampling-aperture.d.ts.map +1 -1
- package/dist/sensor/sampling-aperture.js +14 -0
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/sensor-geometry.d.ts +12 -0
- package/dist/sensor/sensor-geometry.d.ts.map +1 -1
- package/dist/sensor/sensor-geometry.js +12 -0
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +10 -0
- package/dist/sensor/signal-noise.d.ts.map +1 -1
- package/dist/sensor/signal-noise.js +10 -0
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
- package/dist/sensor/spatial-sample-reduction.js +51 -5
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.js +27 -0
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
- package/dist/sensor/spatio-spectral-reduction.js +373 -0
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
- package/dist/sensor/spectral-coverage.d.ts +24 -0
- package/dist/sensor/spectral-coverage.d.ts.map +1 -0
- package/dist/sensor/spectral-coverage.js +86 -0
- package/dist/sensor/spectral-coverage.js.map +1 -0
- package/dist/sensor/spectral-quadrature.d.ts +169 -0
- package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
- package/dist/sensor/spectral-quadrature.js +542 -0
- package/dist/sensor/spectral-quadrature.js.map +1 -0
- package/dist/sensor/spectral-response.d.ts +192 -0
- package/dist/sensor/spectral-response.d.ts.map +1 -0
- package/dist/sensor/spectral-response.js +664 -0
- package/dist/sensor/spectral-response.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
- package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
- package/dist/sensor/temporal-eqe-sum.js +30 -0
- package/dist/sensor/temporal-eqe-sum.js.map +1 -0
- package/dist/sensor/temporal-photo-signal.d.ts +38 -0
- package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
- package/dist/sensor/temporal-photo-signal.js +110 -0
- package/dist/sensor/temporal-photo-signal.js.map +1 -0
- package/dist/sensor/temporal-sample-binding.d.ts +6 -0
- package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
- package/dist/sensor/temporal-sample-binding.js +32 -0
- package/dist/sensor/temporal-sample-binding.js.map +1 -0
- package/dist/simulation/poc-simulation.d.ts.map +1 -1
- package/dist/simulation/poc-simulation.js +34 -11
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +11 -0
- package/dist/stabilization/camera-shake.d.ts.map +1 -1
- package/dist/stabilization/camera-shake.js +11 -0
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +218 -0
- package/dist/stabilization/system.d.ts.map +1 -0
- package/dist/stabilization/system.js +695 -0
- package/dist/stabilization/system.js.map +1 -0
- package/docs/API_REFERENCE.md +2017 -0
- package/docs/API_STYLE.md +139 -3
- package/docs/ARCHITECTURE.md +134 -24
- package/docs/AUTOMATION_COORDINATION.md +2 -0
- package/docs/CAPTURE_COLOR.md +25 -0
- package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
- package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
- package/docs/CAPTURE_SDR.md +20 -0
- package/docs/DEVELOPERS.md +60 -0
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
- package/docs/EXPORT_ACCEPTANCE.md +133 -0
- package/docs/GENERIC_TIER_PRESETS.md +269 -0
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
- package/docs/IMAGE_FORMATION.md +80 -10
- package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
- package/docs/MOTION_AND_SIGNAL.md +5 -3
- package/docs/NUMERICAL_CORRECTNESS.md +191 -0
- package/docs/PERFORMANCE_BASELINE.md +56 -0
- package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
- package/docs/PHYSICS_FOUNDATION.md +152 -5
- package/docs/POC_API.md +2 -0
- package/docs/POC_PROJECTION_REUSE.md +124 -0
- package/docs/PROCESSED_OUTPUT.md +157 -0
- package/docs/PRODUCTION_COMPOSITION.md +373 -0
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
- package/docs/PROVENANCE.md +4 -0
- package/docs/PSF_FOUNDATION.md +110 -88
- package/docs/RAW_FRAME_ENVELOPE.md +56 -0
- package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
- package/docs/RELEASE_1_0.md +66 -0
- package/docs/RELEASE_1_0_1.md +61 -0
- package/docs/RELEASE_AUDIT.md +39 -0
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
- package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
- package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
- package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
- package/docs/SDR_RENDERING.md +33 -0
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
- package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
- package/docs/SENSOR_RAW_FRAME.md +20 -0
- package/docs/SENSOR_RAW_PRODUCER.md +77 -0
- package/docs/SIGNAL_CONFORMANCE.md +23 -0
- package/docs/SIMULATED_CAPTURE.md +65 -0
- package/docs/STABILIZATION.md +160 -17
- package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
- package/docs/TIER_ACCEPTANCE.md +129 -0
- package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
- package/docs/USAGE.md +5050 -1047
- package/docs/V1_COMPOSITION_MAP.md +123 -0
- package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
- package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
- package/docs/api/camera-equivalent-focal-length.md +53 -0
- package/docs/api/camera-field-of-view.md +119 -0
- package/docs/api/camera-projected-object-size.md +54 -0
- package/docs/api/capture-capture-export-metadata.md +107 -0
- package/docs/api/capture-environment-raw-producer.md +56 -0
- package/docs/api/capture-focus-control.md +419 -0
- package/docs/api/capture-linear-encoding.md +99 -0
- package/docs/api/capture-photographic-export.md +172 -0
- package/docs/api/capture-raw-frame-reconstruction.md +87 -0
- package/docs/api/capture-release-sequence.md +252 -0
- package/docs/api/capture-sensor-raw-frame.md +66 -0
- package/docs/api/capture-sensor-raw-producer.md +98 -0
- package/docs/api/capture-simulated-capture.md +179 -0
- package/docs/api/color-capture-color.md +122 -0
- package/docs/api/color-white-balance.md +386 -0
- package/docs/api/composition-image-formation-plan.md +825 -0
- package/docs/api/composition-plan-consumer.md +98 -0
- package/docs/api/core-calculation-result.md +220 -0
- package/docs/api/core-configuration-error.md +19 -0
- package/docs/api/core-image-formation.md +204 -0
- package/docs/api/core-scientific-assurance.md +214 -0
- package/docs/api/core-spectral-composition.md +268 -0
- package/docs/api/core-spectral.md +78 -0
- package/docs/api/core-validation.md +34 -0
- package/docs/api/core-version.md +14 -0
- package/docs/api/equipment-exposure-capabilities.md +270 -0
- package/docs/api/equipment-generic-tier-assets.md +82 -0
- package/docs/api/equipment-generic-tier-presets.md +103 -0
- package/docs/api/equipment-iso-capabilities.md +295 -0
- package/docs/api/equipment-metering-capabilities.md +126 -0
- package/docs/api/equipment-release-capabilities.md +91 -0
- package/docs/api/exports.json +5656 -0
- package/docs/api/exposure-exposure-duration-control.md +115 -0
- package/docs/api/exposure-exposure-mode-resolver.md +966 -0
- package/docs/api/exposure-exposure.md +150 -0
- package/docs/api/exposure-flash.md +327 -0
- package/docs/api/exposure-metering-scene-radiance.md +154 -0
- package/docs/api/exposure-metering-target.md +134 -0
- package/docs/api/exposure-metering-temporal.md +77 -0
- package/docs/api/exposure-metering.md +172 -0
- package/docs/api/exposure-program-line.md +64 -0
- package/docs/api/motion-camera-rotation.md +215 -0
- package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
- package/docs/api/motion-capture-rotation-trajectory.md +132 -0
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
- package/docs/api/motion-extended-object-projection.md +312 -0
- package/docs/api/motion-projected-motion.md +60 -0
- package/docs/api/optics-aperture.md +69 -0
- package/docs/api/optics-circle-of-confusion.md +46 -0
- package/docs/api/optics-complex-pupil-psf.md +193 -0
- package/docs/api/optics-depth-of-field.md +92 -0
- package/docs/api/optics-diffraction.md +46 -0
- package/docs/api/optics-focus-breathing.md +119 -0
- package/docs/api/optics-focus-state.md +64 -0
- package/docs/api/optics-front-of-lens-filter.md +263 -0
- package/docs/api/optics-illumination-vignetting.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
- package/docs/api/optics-lens-psf-profile.md +380 -0
- package/docs/api/optics-polygon-diffraction.md +68 -0
- package/docs/api/optics-profile-contract.md +47 -0
- package/docs/api/optics-psf-foundation.md +181 -0
- package/docs/api/optics-radial-distortion.md +194 -0
- package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
- package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
- package/docs/api/optics-sensor-environment-query.md +58 -0
- package/docs/api/optics-sensor-psf-quadrature.md +81 -0
- package/docs/api/optics-stray-light.md +109 -0
- package/docs/api/optics-thin-lens.md +53 -0
- package/docs/api/output-capture-corrected-sdr.md +71 -0
- package/docs/api/output-capture-geometry.md +500 -0
- package/docs/api/output-capture-sdr.md +69 -0
- package/docs/api/output-crop.md +47 -0
- package/docs/api/output-geometric-transforms.md +199 -0
- package/docs/api/output-lens-corrections.md +162 -0
- package/docs/api/output-sdr-rendering.md +122 -0
- package/docs/api/output-subject-framing-crop.md +59 -0
- package/docs/api/schema-camera.md +84 -0
- package/docs/api/schema-illumination-spectral.md +77 -0
- package/docs/api/schema-illumination-temporal.md +289 -0
- package/docs/api/schema-illumination.md +246 -0
- package/docs/api/schema-scene-radiance-temporal.md +215 -0
- package/docs/api/schema-scene-radiance.md +415 -0
- package/docs/api/schema-scene.md +105 -0
- package/docs/api/schema-validation.md +25 -0
- package/docs/api/sensor-accumulated-charge.md +273 -0
- package/docs/api/sensor-architecture.md +155 -0
- package/docs/api/sensor-camera-saturation-capacity.md +215 -0
- package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
- package/docs/api/sensor-capture-mode-timing.md +123 -0
- package/docs/api/sensor-capture-mode.md +321 -0
- package/docs/api/sensor-color-sampling.md +228 -0
- package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
- package/docs/api/sensor-dark-current.md +227 -0
- package/docs/api/sensor-environment-photo-signal.md +77 -0
- package/docs/api/sensor-eqe-electron-rate.md +166 -0
- package/docs/api/sensor-eqe-local-exposure.md +68 -0
- package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
- package/docs/api/sensor-exposure-window.md +183 -0
- package/docs/api/sensor-iso-signal-chain.md +264 -0
- package/docs/api/sensor-local-exposure-binding.md +126 -0
- package/docs/api/sensor-optical-stack.md +211 -0
- package/docs/api/sensor-photon-energy.md +149 -0
- package/docs/api/sensor-physical-charge-capacity.md +196 -0
- package/docs/api/sensor-pixel-pitch.md +41 -0
- package/docs/api/sensor-radiometry-readiness.md +240 -0
- package/docs/api/sensor-raw-readout.md +499 -0
- package/docs/api/sensor-raw-reconstruction.md +260 -0
- package/docs/api/sensor-readout-exposure-linkage.md +172 -0
- package/docs/api/sensor-readout-timing.md +209 -0
- package/docs/api/sensor-response-application-compatibility.md +256 -0
- package/docs/api/sensor-response-operating-range.md +293 -0
- package/docs/api/sensor-responsivity-photocurrent.md +245 -0
- package/docs/api/sensor-sampling-aperture.md +221 -0
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
- package/docs/api/sensor-sensor-geometry.md +143 -0
- package/docs/api/sensor-signal-noise.md +75 -0
- package/docs/api/sensor-spatial-sample-reduction.md +186 -0
- package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
- package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
- package/docs/api/sensor-spectral-coverage.md +33 -0
- package/docs/api/sensor-spectral-quadrature.md +183 -0
- package/docs/api/sensor-spectral-response.md +291 -0
- package/docs/api/sensor-temporal-photo-signal.md +62 -0
- package/docs/api/simulation-poc-simulation.md +364 -0
- package/docs/api/stabilization-camera-shake.md +71 -0
- package/docs/api/stabilization-system.md +442 -0
- package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
- package/docs/examples/production-capture.mjs +34 -0
- package/docs/examples/production-request.json +4613 -0
- package/docs/examples/quick-start.mjs +12 -0
- package/docs/validation/documentation-fragments.json +212 -0
- package/docs/validation/release-audit-inventory.json +1306 -0
- package/docs/validation/tier-acceptance-report-v1.json +2538 -0
- package/package.json +15 -3
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# output/crop.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateCenteredCrop
|
|
6
|
+
|
|
7
|
+
Calculates dimensions remaining after a centered, same-aspect-ratio crop.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export function calculateCenteredCrop(
|
|
11
|
+
input: CalculateCenteredCropInput
|
|
12
|
+
): CalculationResult<CenteredCrop>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
16
|
+
|
|
17
|
+
## CalculateCenteredCropInput
|
|
18
|
+
|
|
19
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
export interface CalculateCenteredCropInput {
|
|
23
|
+
/** Original image width in pixels. */
|
|
24
|
+
pixelWidth: number;
|
|
25
|
+
/** Original image height in pixels. */
|
|
26
|
+
pixelHeight: number;
|
|
27
|
+
/**
|
|
28
|
+
* Linear crop factor. 1 means no crop; 1.5 retains 1 / 1.5 of each
|
|
29
|
+
* dimension while preserving aspect ratio.
|
|
30
|
+
*/
|
|
31
|
+
cropFactor: number;
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## CenteredCrop
|
|
36
|
+
|
|
37
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
export interface CenteredCrop {
|
|
41
|
+
pixelWidth: number;
|
|
42
|
+
pixelHeight: number;
|
|
43
|
+
megapixels: number;
|
|
44
|
+
/** Fraction of original pixel area retained, from 0 to 1. */
|
|
45
|
+
retainedAreaFraction: number;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# output/geometric-transforms.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## AffineGeometricTransform
|
|
6
|
+
|
|
7
|
+
Explicit destination-to-source affine map, including rotation/shear/offset.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export interface AffineGeometricTransform extends TransformIdentity {
|
|
11
|
+
kind: "affine";
|
|
12
|
+
matrix: GeometricJacobian;
|
|
13
|
+
offsetMm: LensFieldPointMm;
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## calculateComposedGeometricMapping
|
|
18
|
+
|
|
19
|
+
Authoritative display-to-capture map and full local directional derivatives.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
export function calculateComposedGeometricMapping(input: {
|
|
23
|
+
mapping: PreparedGeometricMapping; destinationPointMm: LensFieldPointMm;
|
|
24
|
+
}): CalculationResult<GeometricMappingPoint>;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
28
|
+
|
|
29
|
+
## calculateForwardGeometricMapping
|
|
30
|
+
|
|
31
|
+
Capture-to-display bridge for focus, metering and overlays; reverses the same maps.
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
export function calculateForwardGeometricMapping(input: {
|
|
35
|
+
mapping: PreparedGeometricMapping; sourcePointMm: LensFieldPointMm;
|
|
36
|
+
}): CalculationResult<LensFieldPointMm>;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
40
|
+
|
|
41
|
+
## calculateGeometricResampling
|
|
42
|
+
|
|
43
|
+
Samples an already-formed scalar image once; null output marks missing source support.
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
export function calculateGeometricResampling(input: {
|
|
47
|
+
plan: GeometricSamplingPlan; sourceSamples: readonly number[];
|
|
48
|
+
}): CalculationResult<{ samples: readonly (number | null)[]; resamplePasses: 1; resampler: GeometricResampler }>;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
52
|
+
|
|
53
|
+
## calculateGeometricSamplingPlan
|
|
54
|
+
|
|
55
|
+
Resolves one joint validity/crop/AA plan after composing compatible inverse maps.
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
export function calculateGeometricSamplingPlan(input: {
|
|
59
|
+
mapping: PreparedGeometricMapping; sourceRaster: GeometricRaster; destinationRaster: GeometricRaster;
|
|
60
|
+
resampler: GeometricResampler; physicalProjectionDistanceMm: number;
|
|
61
|
+
}): CalculationResult<GeometricSamplingPlan>;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
65
|
+
|
|
66
|
+
## DigitalGeometricTransform
|
|
67
|
+
|
|
68
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
export type DigitalGeometricTransform = AffineGeometricTransform | RadialGeometricTransform;
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## GeometricImageDomain
|
|
75
|
+
|
|
76
|
+
Domains are barriers: only contiguous equal-domain maps share a resample.
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
export type GeometricImageDomain = "raw-channel" | "reconstructed-linear" | "processed-output";
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## GeometricJacobian
|
|
83
|
+
|
|
84
|
+
Row-major derivative d(source mm)/d(destination mm).
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
export type GeometricJacobian = readonly [number, number, number, number];
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## GeometricMappingPoint
|
|
91
|
+
|
|
92
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
export interface GeometricMappingPoint {
|
|
96
|
+
sourcePointMm: LensFieldPointMm;
|
|
97
|
+
jacobian: GeometricJacobian;
|
|
98
|
+
determinant: number;
|
|
99
|
+
principalStretches: readonly [number, number];
|
|
100
|
+
anisotropy: number;
|
|
101
|
+
components: readonly { id: string; sourcePointMm: LensFieldPointMm; jacobian: GeometricJacobian }[];
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## GeometricRaster
|
|
106
|
+
|
|
107
|
+
Regular pixel centers on the optical plane: +X right, +Y up; row order down.
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
export interface GeometricRaster {
|
|
111
|
+
width: number;
|
|
112
|
+
height: number;
|
|
113
|
+
centerMm: LensFieldPointMm;
|
|
114
|
+
pitchMm: number;
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## GeometricResampler
|
|
119
|
+
|
|
120
|
+
Resampler identity is independent of mapping. Prefiltering is a caller obligation.
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
export interface GeometricResampler {
|
|
124
|
+
id: string;
|
|
125
|
+
version: string;
|
|
126
|
+
filter: "nearest" | "bilinear";
|
|
127
|
+
antialias: "none" | "source-prefiltered";
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## GeometricSamplingPlan
|
|
132
|
+
|
|
133
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
export interface GeometricSamplingPlan {
|
|
137
|
+
mapping: PreparedGeometricMapping;
|
|
138
|
+
sourceRaster: GeometricRaster;
|
|
139
|
+
destinationRaster: GeometricRaster;
|
|
140
|
+
resampler: GeometricResampler;
|
|
141
|
+
points: readonly GeometricMappingPoint[];
|
|
142
|
+
/** Includes exact center-domain support for the selected filter; no edge extension. */
|
|
143
|
+
validSourceMask: readonly boolean[];
|
|
144
|
+
/** Largest all-valid axis-aligned pixel rectangle, half-open. Null if empty. */
|
|
145
|
+
jointCrop: { x: number; y: number; width: number; height: number } | null;
|
|
146
|
+
requiresPrefilter: boolean;
|
|
147
|
+
canResample: boolean;
|
|
148
|
+
physicalCapturedFovDegrees: { horizontal: number; vertical: number };
|
|
149
|
+
/** Envelope of mapped pixel-center rays retained by the joint crop, not edge FOV. */
|
|
150
|
+
retainedSampleRayEnvelopeDegrees: { minX: number; maxX: number; minY: number; maxY: number } | null;
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## parseDigitalGeometricTransform
|
|
155
|
+
|
|
156
|
+
Parses strict transform data, rejecting unknown semantics and noninvertible profiles.
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
export function parseDigitalGeometricTransform(value: unknown): DigitalGeometricTransform;
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
163
|
+
|
|
164
|
+
## PreparedGeometricMapping
|
|
165
|
+
|
|
166
|
+
Serializable prepared state. Maps are applied in listed destination-to-source order.
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
export interface PreparedGeometricMapping {
|
|
170
|
+
schemaVersion: "0.1.0";
|
|
171
|
+
frameTimeSeconds: number;
|
|
172
|
+
transforms: readonly DigitalGeometricTransform[];
|
|
173
|
+
semanticKey: string;
|
|
174
|
+
groups: readonly { domain: GeometricImageDomain; componentIds: readonly string[] }[];
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## prepareGeometricMapping
|
|
179
|
+
|
|
180
|
+
Prepares deterministic still/frame geometry; time changes require another preparation.
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
export function prepareGeometricMapping(input: {
|
|
184
|
+
transforms: readonly DigitalGeometricTransform[]; frameTimeSeconds: number;
|
|
185
|
+
}): CalculationResult<PreparedGeometricMapping>;
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
189
|
+
|
|
190
|
+
## RadialGeometricTransform
|
|
191
|
+
|
|
192
|
+
Correction samples physical distorted data at the mapped ideal destination.
|
|
193
|
+
|
|
194
|
+
```ts
|
|
195
|
+
export interface RadialGeometricTransform extends TransformIdentity {
|
|
196
|
+
kind: "radial";
|
|
197
|
+
profile: RadialDistortionProfile;
|
|
198
|
+
}
|
|
199
|
+
```
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# output/lens-corrections.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateLensCorrectedCapture
|
|
6
|
+
|
|
7
|
+
Executes bounded reconstructed-linear corrections on already sampled RGB channels.
|
|
8
|
+
Compatible common geometry plus channel CA is sampled once per channel.
|
|
9
|
+
A gain between geometry components or incompatible domains requires an external staged consumer.
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
export function calculateLensCorrectedCapture(input: {
|
|
13
|
+
plan: ResolvedLensCorrectionPlan; capture: LensCorrectionCapture;
|
|
14
|
+
destinationRaster: GeometricRaster; resampler: GeometricResampler;
|
|
15
|
+
physicalProjectionDistanceMm: number; clippingLevel: number;
|
|
16
|
+
}): CalculationResult<{
|
|
17
|
+
captureId: string; noiseRealizationId: string; timeSeconds: number;
|
|
18
|
+
application: ResolvedLensCorrectionPlan["application"];
|
|
19
|
+
channels: Readonly<Record<LensCorrectionChannel, readonly (number | null)[]>>;
|
|
20
|
+
samplingPlans: Partial<Record<LensCorrectionChannel, GeometricSamplingPlan>>;
|
|
21
|
+
/** Intersection across all channel footprints, before crop; no missing colors fabricated. */
|
|
22
|
+
validSourceMask: readonly boolean[];
|
|
23
|
+
jointCrop: GeometricSamplingPlan["jointCrop"];
|
|
24
|
+
/** Gain-stage clipping events before joint support/crop; repeated stages count separately. */
|
|
25
|
+
illuminationClippingEventCount: number;
|
|
26
|
+
}>;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
30
|
+
|
|
31
|
+
## calculatePeripheralIlluminationCorrection
|
|
32
|
+
|
|
33
|
+
Applies scalar post-capture gain and reports pre-clip variance; no photon/SNR history rewrite.
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
export function calculatePeripheralIlluminationCorrection(input: {
|
|
37
|
+
component: IlluminationLensCorrection; imagePointMm: LensFieldPointMm;
|
|
38
|
+
signal: number; noiseVariance: number; clippingLevel: number;
|
|
39
|
+
}): CalculationResult<{ gain: number; signalBeforeClipping: number; signal: number; noiseVarianceBeforeClipping: number; clipped: boolean }>;
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
43
|
+
|
|
44
|
+
## GenericLensCorrectionProfile
|
|
45
|
+
|
|
46
|
+
Exact generic system binding, with components in authoritative application order.
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
export interface GenericLensCorrectionProfile {
|
|
50
|
+
schemaVersion: "0.1.0";
|
|
51
|
+
id: string;
|
|
52
|
+
version: string;
|
|
53
|
+
state: OpticalProfileState;
|
|
54
|
+
evidence: GenericOpticalEvidence;
|
|
55
|
+
components: readonly LensCorrectionComponent[];
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## GeometricLensCorrection
|
|
60
|
+
|
|
61
|
+
A separately declared correction map may deliberately retain physical distortion.
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
export interface GeometricLensCorrection extends CorrectionComponentIdentity {
|
|
65
|
+
kind: "geometry";
|
|
66
|
+
transform: DigitalGeometricTransform;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## IlluminationLensCorrection
|
|
71
|
+
|
|
72
|
+
Post-capture scalar gain; strength 0..1 leaves explicit residual falloff.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
export interface IlluminationLensCorrection extends CorrectionComponentIdentity {
|
|
76
|
+
kind: "peripheral-illumination";
|
|
77
|
+
profile: IlluminationVignettingProfile;
|
|
78
|
+
strength: number;
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## LateralCaLensCorrection
|
|
83
|
+
|
|
84
|
+
Channel registration only, not longitudinal CA or color shading.
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
export interface LateralCaLensCorrection extends CorrectionComponentIdentity {
|
|
88
|
+
kind: "lateral-ca";
|
|
89
|
+
transforms: Readonly<Record<LensCorrectionChannel, DigitalGeometricTransform>>;
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## LensCorrectionCapture
|
|
94
|
+
|
|
95
|
+
Immutable capture identity accompanies downstream channels for meaningful On/Off comparisons.
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
export interface LensCorrectionCapture {
|
|
99
|
+
state: OpticalProfileState;
|
|
100
|
+
captureId: string;
|
|
101
|
+
noiseRealizationId: string;
|
|
102
|
+
timeSeconds: number;
|
|
103
|
+
raster: GeometricRaster;
|
|
104
|
+
channels: Readonly<Record<LensCorrectionChannel, readonly number[]>>;
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## LensCorrectionChannel
|
|
109
|
+
|
|
110
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
export type LensCorrectionChannel = "red" | "green" | "blue";
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## LensCorrectionComponent
|
|
117
|
+
|
|
118
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
119
|
+
|
|
120
|
+
```ts
|
|
121
|
+
export type LensCorrectionComponent = GeometricLensCorrection | LateralCaLensCorrection | IlluminationLensCorrection;
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## parseGenericLensCorrectionProfile
|
|
125
|
+
|
|
126
|
+
Strict parser for generic system corrections; no extrapolation or restoration claim.
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
export function parseGenericLensCorrectionProfile(value: unknown): GenericLensCorrectionProfile;
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
133
|
+
|
|
134
|
+
## ResolvedLensCorrectionPlan
|
|
135
|
+
|
|
136
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
export interface ResolvedLensCorrectionPlan {
|
|
140
|
+
profile: GenericLensCorrectionProfile;
|
|
141
|
+
outputKind: "raw-like" | "processed";
|
|
142
|
+
selectionKind: "camera-selectable" | "reference-bypass";
|
|
143
|
+
components: readonly { component: LensCorrectionComponent; enabled: boolean;
|
|
144
|
+
reason: "selected" | "default" | "mandatory" | "stabilization-dependency" | "component-dependency" | "reference-bypass" }[];
|
|
145
|
+
/** RAW-like intent remains metadata only in this first foundation. */
|
|
146
|
+
application: "metadata-only" | "bake-downstream";
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## resolveLensCorrectionPlan
|
|
151
|
+
|
|
152
|
+
Resolves independent camera states, explicit dependencies, RAW intent and educational bypass.
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
export function resolveLensCorrectionPlan(input: {
|
|
156
|
+
profile: GenericLensCorrectionProfile; state: OpticalProfileState;
|
|
157
|
+
selections: Readonly<Record<string, "on" | "off" | "auto">>;
|
|
158
|
+
outputKind: "raw-like" | "processed"; selectionKind: "camera-selectable" | "reference-bypass";
|
|
159
|
+
}): CalculationResult<ResolvedLensCorrectionPlan>;
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# output/sdr-rendering.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateSdrRendering
|
|
6
|
+
|
|
7
|
+
Standalone SDR rendering: rendering exposure → tone → gamut → sRGB transfer → quantization.
|
|
8
|
+
No physical capture, metering, WB/color/correction integration or display adaptation runs.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
export function calculateSdrRendering(input: SdrRenderingInput): CalculationResult<SdrRenderingResult>;
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
15
|
+
|
|
16
|
+
## parseSdrRenderingInput
|
|
17
|
+
|
|
18
|
+
Validates declared image state and a bounded finite inline raster; never resolves WB/color.
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
export function parseSdrRenderingInput(value: unknown): SdrRenderingInput;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
25
|
+
|
|
26
|
+
## parseSdrRenderingProfile
|
|
27
|
+
|
|
28
|
+
Validates every explicit rendering/encoding policy; unknown HDR/display modes fail.
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
export function parseSdrRenderingProfile(value: unknown): SdrRenderingProfile;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
35
|
+
|
|
36
|
+
## SDR_RENDERING_SCHEMA_VERSION
|
|
37
|
+
|
|
38
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
SDR_RENDERING_SCHEMA_VERSION = "0.1.0" as const
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## SdrRenderingInput
|
|
45
|
+
|
|
46
|
+
Only an explicitly color-transformed, co-sited linear-sRGB/D65 raster is accepted.
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
export interface SdrRenderingInput {
|
|
50
|
+
sourceImageStateId: string;
|
|
51
|
+
inputImageState: "color-transformed-linear-rgb";
|
|
52
|
+
inputColorSpace: "linear-srgb-d65";
|
|
53
|
+
whiteBalanceHandling: "already-applied-upstream" | "not-required";
|
|
54
|
+
pixelWidth: number;
|
|
55
|
+
pixelHeight: number;
|
|
56
|
+
referenceWhiteValue: number;
|
|
57
|
+
/** Relative linear RGB, row-major tightly interleaved red/green/blue. */
|
|
58
|
+
samples: readonly number[];
|
|
59
|
+
profile: SdrRenderingProfile;
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## SdrRenderingProfile
|
|
64
|
+
|
|
65
|
+
First-party rendering choices, independent of physical exposure and display calibration.
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
export interface SdrRenderingProfile {
|
|
69
|
+
schemaVersion: typeof SDR_RENDERING_SCHEMA_VERSION;
|
|
70
|
+
profileId: string;
|
|
71
|
+
profileVersion: string;
|
|
72
|
+
renderingExposureEv: number;
|
|
73
|
+
toneCurve: "identity" | "positive-reinhard-per-channel";
|
|
74
|
+
gamutHandling: "clip-components" | "reject-out-of-range";
|
|
75
|
+
outputDynamicRange: "sdr";
|
|
76
|
+
transferFunction: "srgb";
|
|
77
|
+
bitDepth: 8 | 16;
|
|
78
|
+
rounding: "nearest-ties-up";
|
|
79
|
+
dither: "none";
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## SdrRenderingResult
|
|
84
|
+
|
|
85
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
export interface SdrRenderingResult {
|
|
89
|
+
schemaVersion: typeof SDR_RENDERING_SCHEMA_VERSION;
|
|
90
|
+
sourceImageStateId: string;
|
|
91
|
+
profile: SdrRenderingProfile;
|
|
92
|
+
pixelWidth: number;
|
|
93
|
+
pixelHeight: number;
|
|
94
|
+
channelOrder: readonly ["red", "green", "blue"];
|
|
95
|
+
whiteBalanceHandling: SdrRenderingInput["whiteBalanceHandling"];
|
|
96
|
+
/** Relative normalized linear samples after exposure/tone, before gamut handling. */
|
|
97
|
+
toneMappedLinearSamples: readonly number[];
|
|
98
|
+
outputLinearSamples: readonly number[];
|
|
99
|
+
outputEncodedSamples: readonly number[];
|
|
100
|
+
integerSamples: readonly number[];
|
|
101
|
+
outputEncoding: {
|
|
102
|
+
imageState: "output-referred-sdr";
|
|
103
|
+
colorSpace: "srgb";
|
|
104
|
+
primariesXy: { red: readonly [number, number]; green: readonly [number, number]; blue: readonly [number, number] };
|
|
105
|
+
whitePointXy: readonly [number, number];
|
|
106
|
+
referenceWhiteLuminanceCdM2: 80;
|
|
107
|
+
codeMinimum: 0;
|
|
108
|
+
codeMaximum: number;
|
|
109
|
+
};
|
|
110
|
+
diagnostics: {
|
|
111
|
+
renderingNegativeSampleCount: number;
|
|
112
|
+
renderingAboveReferenceSampleCount: number;
|
|
113
|
+
toneChangedSampleCount: number;
|
|
114
|
+
gamutClippedLowSampleCount: number;
|
|
115
|
+
gamutClippedHighSampleCount: number;
|
|
116
|
+
/** Upstream full-well/ADC/RAW saturation is unavailable, never inferred from output. */
|
|
117
|
+
captureSaturation: "not-consumed";
|
|
118
|
+
};
|
|
119
|
+
/** Platform color management follows this encoded output; no actual display is assessed. */
|
|
120
|
+
displayAdaptation: { kind: "external-platform"; applied: false; displayCapabilities: "unknown" };
|
|
121
|
+
}
|
|
122
|
+
```
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# output/subject-framing-crop.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateSubjectFramingCrop
|
|
6
|
+
|
|
7
|
+
Calculates the same-aspect-ratio crop needed for a subject to occupy a
|
|
8
|
+
requested fraction of frame height.
|
|
9
|
+
|
|
10
|
+
This calculation assumes a centered/positionable crop with enough spatial
|
|
11
|
+
margin around the subject. It does not validate subject position against
|
|
12
|
+
image edges.
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
export function calculateSubjectFramingCrop(
|
|
16
|
+
input: CalculateSubjectFramingCropInput
|
|
17
|
+
): CalculationResult<SubjectFramingCrop>;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
21
|
+
|
|
22
|
+
## CalculateSubjectFramingCropInput
|
|
23
|
+
|
|
24
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
export interface CalculateSubjectFramingCropInput {
|
|
28
|
+
/** Source image width in pixels. */
|
|
29
|
+
pixelWidth: number;
|
|
30
|
+
/** Source image height in pixels. */
|
|
31
|
+
pixelHeight: number;
|
|
32
|
+
/** Projected subject height in source-image pixels. */
|
|
33
|
+
subjectHeightPixels: number;
|
|
34
|
+
/** Desired subject height as a fraction of output frame height, >0 and <=1. */
|
|
35
|
+
targetSubjectHeightFraction: number;
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## SubjectFramingCrop
|
|
40
|
+
|
|
41
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
export interface SubjectFramingCrop {
|
|
45
|
+
cropFactor: number;
|
|
46
|
+
pixelWidth: number;
|
|
47
|
+
pixelHeight: number;
|
|
48
|
+
megapixels: number;
|
|
49
|
+
/**
|
|
50
|
+
* Actual subject height divided by cropped frame height.
|
|
51
|
+
* Values greater than 1 mean the subject is taller than the output frame.
|
|
52
|
+
*/
|
|
53
|
+
subjectHeightFraction: number;
|
|
54
|
+
/** Whether the projected subject exceeds the cropped frame height. */
|
|
55
|
+
subjectClipped: boolean;
|
|
56
|
+
/** Whether achieving the target required an additional crop. */
|
|
57
|
+
cropped: boolean;
|
|
58
|
+
}
|
|
59
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# schema/camera.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## CameraConfiguration
|
|
6
|
+
|
|
7
|
+
Renderer-independent camera configuration consumed by simulation modules.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export interface CameraConfiguration {
|
|
11
|
+
sensor: SensorConfiguration;
|
|
12
|
+
lens: LensConfiguration;
|
|
13
|
+
exposure: ExposureConfiguration;
|
|
14
|
+
focus: FocusConfiguration;
|
|
15
|
+
stabilization?: StabilizationConfiguration;
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## CameraSupport
|
|
20
|
+
|
|
21
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
export type CameraSupport = "handheld" | "braced" | "monopod" | "tripod";
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## ExposureConfiguration
|
|
28
|
+
|
|
29
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
export interface ExposureConfiguration {
|
|
33
|
+
shutterSeconds: number;
|
|
34
|
+
iso: number;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## FocusConfiguration
|
|
39
|
+
|
|
40
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
export interface FocusConfiguration {
|
|
44
|
+
focusDistanceM: number;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## LensConfiguration
|
|
49
|
+
|
|
50
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
export interface LensConfiguration {
|
|
54
|
+
focalLengthMm: number;
|
|
55
|
+
aperture: number;
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## SensorConfiguration
|
|
60
|
+
|
|
61
|
+
The legacy CameraConfiguration is a finite unit-bearing POC setting record, not a complete
|
|
62
|
+
equipment capability profile. Its parser lives in schema/validation; newer ISO/exposure
|
|
63
|
+
capabilities remain separate so adding a control policy does not reinterpret saved POC data.
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
export interface SensorConfiguration {
|
|
67
|
+
widthMm: number;
|
|
68
|
+
heightMm: number;
|
|
69
|
+
pixelWidth: number;
|
|
70
|
+
pixelHeight: number;
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## StabilizationConfiguration
|
|
75
|
+
|
|
76
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
export interface StabilizationConfiguration {
|
|
80
|
+
bodyEnabled: boolean;
|
|
81
|
+
lensEnabled: boolean;
|
|
82
|
+
support: CameraSupport;
|
|
83
|
+
}
|
|
84
|
+
```
|