Three semi-related improvements to YamlCamera I'd like to make:
- YamlCamera should be a factory for Camera, not a derived class - at present, it looks like all it adds is a new construction pattern, but the derived type will not round-trip through persistence, and hence we're currently in danger of someone adding new functionality to a derived class or relying on an isinstance relationship that will break once we start getting and putting Cameras via Butler.
- We should consider moving this to afw and definitely remove the usage of DetectorConfig, so we can ultimately retire the Config/FITS way of defining Cameras. If we don't move this to afw we may need to move some cameraGeom tests to obs_base in order to retire the old construction mechanisms; the best home for it probably depends on how much afw content could only easily be tested in obs_base if it isn't moved.
- We need to modify it to take advantage of
DM-14980by giving all Detectors the same TransformMap instance given to the Camera itself.
My current plan is to do this myself sometime after the Camera Bootcamp, as I think it's easy but at least slightly disruptive to obs_lsstCam (and it'd be nice to have obs_comCam fully retired before doing this, too). Anyone else should feel welcome to steal it and do it earlier if it'd help them solve any other problem.
Note that I'm not proposing actually converting all other obs packages to YAML cameras here; I just want to remove the YAML construction pattern's dependency on the Config/FITS construction pattern.