DM-5503 adds VisitInfo to ExposureInfo. Making this information settable in Exposure has exposed some weaknesses in the integration of ExposureInfo, e.g. there is no way to construct an Exposure given an ExposureInfo, nor any way to set ExposureInfo in an existing Exposure. As a result, every new field added to ExposureInfo needs new accessors added to Exposure, as well. This is starting getting clumsy and makes it difficult to construct new Exposures.
Furthermore, the existing method name getInfo is now ambiguous: does it get an ExposureInfo or a VisitInfo?
I propose the following changes to Exposure:
- Add a constructor Exposure(MaskedImageT & maskedImage, PTR(ExposureInfo) exposureInfo)
- Rename method getInfo() to getExposureInfo() to disambiguate ExposureInfo and VisitInfo
- Add method setExposureInfo(PTR(ExposureInfo) exposureInfo)
Note that the constructor and setter both take PTR, not CONST_PTR and that Exposure allows non-const access to the contained ExposureInfo. A slightly safer alternative would be to accept a reference to ExposureInfo and make a deep copy of it.
If accepted, I propose to perform the work as part of
DM-5503, since this change or something similar is required in order to finish moving exposure time and date from Calib to VisitInfo.